aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nyc
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nyc')
-rw-r--r--node_modules/nyc/CHANGELOG.md53
-rw-r--r--node_modules/nyc/README.md32
-rwxr-xr-xnode_modules/nyc/bin/nyc.js2
-rwxr-xr-xnode_modules/nyc/index.js29
-rw-r--r--node_modules/nyc/lib/config-util.js14
-rw-r--r--node_modules/nyc/lib/instrumenters/istanbul.js3
-rw-r--r--node_modules/nyc/node_modules/align-text/package.json4
-rw-r--r--node_modules/nyc/node_modules/amdefine/package.json4
-rw-r--r--node_modules/nyc/node_modules/ansi-regex/package.json4
-rw-r--r--node_modules/nyc/node_modules/ansi-styles/package.json4
-rw-r--r--node_modules/nyc/node_modules/append-transform/package.json4
-rw-r--r--node_modules/nyc/node_modules/archy/package.json4
-rw-r--r--node_modules/nyc/node_modules/arr-diff/package.json4
-rwxr-xr-xnode_modules/nyc/node_modules/arr-flatten/LICENSE2
-rwxr-xr-xnode_modules/nyc/node_modules/arr-flatten/README.md17
-rw-r--r--node_modules/nyc/node_modules/arr-flatten/index.js21
-rw-r--r--node_modules/nyc/node_modules/arr-flatten/package.json41
-rwxr-xr-xnode_modules/nyc/node_modules/array-unique/package.json4
-rw-r--r--node_modules/nyc/node_modules/arrify/package.json4
-rw-r--r--node_modules/nyc/node_modules/async/package.json4
-rw-r--r--node_modules/nyc/node_modules/babel-code-frame/package.json4
-rw-r--r--node_modules/nyc/node_modules/babel-generator/lib/generators/flow.js6
-rw-r--r--node_modules/nyc/node_modules/babel-generator/package.json46
-rw-r--r--node_modules/nyc/node_modules/babel-messages/package.json4
-rw-r--r--node_modules/nyc/node_modules/babel-runtime/package.json4
-rw-r--r--node_modules/nyc/node_modules/babel-template/package.json48
-rw-r--r--node_modules/nyc/node_modules/babel-traverse/lib/path/lib/hoister.js4
-rw-r--r--node_modules/nyc/node_modules/babel-traverse/lib/scope/index.js2
-rw-r--r--node_modules/nyc/node_modules/babel-traverse/package.json48
-rw-r--r--node_modules/nyc/node_modules/babel-types/README.md17
-rw-r--r--node_modules/nyc/node_modules/babel-types/lib/definitions/core.js2
-rw-r--r--node_modules/nyc/node_modules/babel-types/lib/definitions/es2015.js2
-rw-r--r--node_modules/nyc/node_modules/babel-types/lib/definitions/flow.js6
-rw-r--r--node_modules/nyc/node_modules/babel-types/package.json46
-rw-r--r--node_modules/nyc/node_modules/babylon/CHANGELOG.md45
-rw-r--r--node_modules/nyc/node_modules/babylon/lib/index.js159
-rw-r--r--node_modules/nyc/node_modules/babylon/package.json59
-rw-r--r--node_modules/nyc/node_modules/balanced-match/index.js1
-rw-r--r--node_modules/nyc/node_modules/balanced-match/package.json44
-rw-r--r--node_modules/nyc/node_modules/brace-expansion/package.json40
-rw-r--r--node_modules/nyc/node_modules/braces/package.json4
-rw-r--r--node_modules/nyc/node_modules/builtin-modules/package.json4
-rw-r--r--node_modules/nyc/node_modules/caching-transform/package.json4
-rw-r--r--node_modules/nyc/node_modules/camelcase/package.json4
-rw-r--r--node_modules/nyc/node_modules/center-align/package.json4
-rw-r--r--node_modules/nyc/node_modules/chalk/package.json4
-rw-r--r--node_modules/nyc/node_modules/cliui/node_modules/wordwrap/package.json4
-rw-r--r--node_modules/nyc/node_modules/cliui/package.json4
-rw-r--r--node_modules/nyc/node_modules/code-point-at/package.json7
-rw-r--r--node_modules/nyc/node_modules/commondir/package.json4
-rw-r--r--node_modules/nyc/node_modules/concat-map/package.json4
-rw-r--r--node_modules/nyc/node_modules/convert-source-map/package.json4
-rw-r--r--node_modules/nyc/node_modules/core-js/package.json4
-rw-r--r--node_modules/nyc/node_modules/cross-spawn/package.json5
-rw-r--r--node_modules/nyc/node_modules/debug-log/package.json4
-rw-r--r--node_modules/nyc/node_modules/debug/CHANGELOG.md11
-rw-r--r--node_modules/nyc/node_modules/debug/README.md2
-rw-r--r--node_modules/nyc/node_modules/debug/component.json2
-rw-r--r--node_modules/nyc/node_modules/debug/package.json32
-rw-r--r--node_modules/nyc/node_modules/debug/src/browser.js8
-rw-r--r--node_modules/nyc/node_modules/debug/src/node.js7
-rw-r--r--node_modules/nyc/node_modules/decamelize/package.json4
-rw-r--r--node_modules/nyc/node_modules/default-require-extensions/package.json4
-rw-r--r--node_modules/nyc/node_modules/detect-indent/package.json4
-rw-r--r--node_modules/nyc/node_modules/error-ex/package.json4
-rw-r--r--node_modules/nyc/node_modules/escape-string-regexp/package.json4
-rw-r--r--node_modules/nyc/node_modules/esutils/package.json4
-rw-r--r--node_modules/nyc/node_modules/execa/index.js275
-rw-r--r--node_modules/nyc/node_modules/execa/lib/errname.js37
-rw-r--r--node_modules/nyc/node_modules/execa/license21
-rw-r--r--node_modules/nyc/node_modules/execa/package.json141
-rw-r--r--node_modules/nyc/node_modules/execa/readme.md150
-rw-r--r--node_modules/nyc/node_modules/expand-brackets/package.json4
-rw-r--r--node_modules/nyc/node_modules/expand-range/package.json4
-rw-r--r--node_modules/nyc/node_modules/extglob/package.json4
-rw-r--r--node_modules/nyc/node_modules/filename-regex/package.json4
-rw-r--r--node_modules/nyc/node_modules/fill-range/package.json4
-rw-r--r--node_modules/nyc/node_modules/find-cache-dir/package.json4
-rw-r--r--node_modules/nyc/node_modules/find-up/index.js61
-rw-r--r--node_modules/nyc/node_modules/find-up/package.json55
-rw-r--r--node_modules/nyc/node_modules/find-up/readme.md33
-rw-r--r--node_modules/nyc/node_modules/for-in/package.json4
-rw-r--r--node_modules/nyc/node_modules/for-own/package.json4
-rw-r--r--node_modules/nyc/node_modules/foreground-child/package.json4
-rw-r--r--node_modules/nyc/node_modules/fs.realpath/package.json4
-rw-r--r--node_modules/nyc/node_modules/get-caller-file/package.json4
-rw-r--r--node_modules/nyc/node_modules/get-stream/buffer-stream.js54
-rw-r--r--node_modules/nyc/node_modules/get-stream/index.js59
-rw-r--r--node_modules/nyc/node_modules/get-stream/license21
-rw-r--r--node_modules/nyc/node_modules/get-stream/package.json121
-rw-r--r--node_modules/nyc/node_modules/get-stream/readme.md115
-rw-r--r--node_modules/nyc/node_modules/glob-base/package.json4
-rw-r--r--node_modules/nyc/node_modules/glob-parent/package.json4
-rw-r--r--node_modules/nyc/node_modules/glob/glob.js2
-rw-r--r--node_modules/nyc/node_modules/glob/package.json29
-rw-r--r--node_modules/nyc/node_modules/globals/globals.json3
-rw-r--r--node_modules/nyc/node_modules/globals/package.json27
-rw-r--r--node_modules/nyc/node_modules/graceful-fs/package.json7
-rw-r--r--node_modules/nyc/node_modules/handlebars/.gitattributes6
-rw-r--r--node_modules/nyc/node_modules/handlebars/.idea/workspace.xml936
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/base.js4
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js5
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/base.js4
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js5
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.js11
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.min.js8
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.js7
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.min.js8
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.js6
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.min.js4
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.js4
-rw-r--r--node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.min.js4
-rw-r--r--node_modules/nyc/node_modules/handlebars/lib/handlebars/base.js2
-rw-r--r--node_modules/nyc/node_modules/handlebars/lib/handlebars/compiler/compiler.js5
-rw-r--r--node_modules/nyc/node_modules/handlebars/node_modules/source-map/package.json4
-rw-r--r--node_modules/nyc/node_modules/handlebars/package.json22
-rw-r--r--node_modules/nyc/node_modules/handlebars/release-notes.md26
-rw-r--r--node_modules/nyc/node_modules/has-ansi/package.json4
-rw-r--r--node_modules/nyc/node_modules/has-flag/package.json4
-rw-r--r--node_modules/nyc/node_modules/hosted-git-info/index.js12
-rw-r--r--node_modules/nyc/node_modules/hosted-git-info/package.json27
-rw-r--r--node_modules/nyc/node_modules/imurmurhash/package.json4
-rw-r--r--node_modules/nyc/node_modules/inflight/package.json4
-rw-r--r--node_modules/nyc/node_modules/inherits/package.json4
-rw-r--r--node_modules/nyc/node_modules/invariant/package.json4
-rw-r--r--node_modules/nyc/node_modules/invert-kv/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-arrayish/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-buffer/package.json8
-rw-r--r--node_modules/nyc/node_modules/is-builtin-module/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-dotfile/LICENSE2
-rw-r--r--node_modules/nyc/node_modules/is-dotfile/README.md61
-rw-r--r--node_modules/nyc/node_modules/is-dotfile/index.js11
-rw-r--r--node_modules/nyc/node_modules/is-dotfile/package.json60
-rw-r--r--node_modules/nyc/node_modules/is-equal-shallow/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-extendable/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-extglob/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-finite/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-fullwidth-code-point/package.json7
-rw-r--r--node_modules/nyc/node_modules/is-glob/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-number/package.json7
-rw-r--r--node_modules/nyc/node_modules/is-posix-bracket/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-primitive/package.json4
-rw-r--r--node_modules/nyc/node_modules/is-stream/index.js21
-rw-r--r--node_modules/nyc/node_modules/is-stream/license21
-rw-r--r--node_modules/nyc/node_modules/is-stream/package.json107
-rw-r--r--node_modules/nyc/node_modules/is-stream/readme.md42
-rw-r--r--node_modules/nyc/node_modules/is-utf8/package.json4
-rw-r--r--node_modules/nyc/node_modules/isarray/package.json4
-rw-r--r--node_modules/nyc/node_modules/isexe/package.json4
-rw-r--r--node_modules/nyc/node_modules/isobject/package.json4
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-coverage/CHANGELOG.md6
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-coverage/package.json45
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-hook/CHANGELOG.md6
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-hook/package.json45
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-instrument/CHANGELOG.md28
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-instrument/dist/visitor.js13
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-instrument/package.json48
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-report/CHANGELOG.md6
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color/package.json4
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-report/package.json47
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-source-maps/CHANGELOG.md6
-rw-r--r--node_modules/nyc/node_modules/istanbul-lib-source-maps/package.json47
-rw-r--r--node_modules/nyc/node_modules/istanbul-reports/CHANGELOG.md6
-rw-r--r--node_modules/nyc/node_modules/istanbul-reports/package.json49
-rw-r--r--node_modules/nyc/node_modules/js-tokens/CHANGELOG.md5
-rw-r--r--node_modules/nyc/node_modules/js-tokens/README.md4
-rw-r--r--node_modules/nyc/node_modules/js-tokens/package.json34
-rw-r--r--node_modules/nyc/node_modules/jsesc/package.json4
-rw-r--r--node_modules/nyc/node_modules/kind-of/README.md26
-rw-r--r--node_modules/nyc/node_modules/kind-of/package.json31
-rw-r--r--node_modules/nyc/node_modules/lazy-cache/package.json4
-rw-r--r--node_modules/nyc/node_modules/lcid/package.json4
-rw-r--r--node_modules/nyc/node_modules/load-json-file/package.json4
-rw-r--r--node_modules/nyc/node_modules/locate-path/index.js24
-rw-r--r--node_modules/nyc/node_modules/locate-path/license21
-rw-r--r--node_modules/nyc/node_modules/locate-path/node_modules/path-exists/index.js17
-rw-r--r--node_modules/nyc/node_modules/locate-path/node_modules/path-exists/license21
-rw-r--r--node_modules/nyc/node_modules/locate-path/node_modules/path-exists/package.json109
-rw-r--r--node_modules/nyc/node_modules/locate-path/node_modules/path-exists/readme.md50
-rw-r--r--node_modules/nyc/node_modules/locate-path/package.json115
-rw-r--r--node_modules/nyc/node_modules/locate-path/readme.md99
-rw-r--r--node_modules/nyc/node_modules/lodash/package.json4
-rw-r--r--node_modules/nyc/node_modules/longest/package.json4
-rw-r--r--node_modules/nyc/node_modules/loose-envify/package.json4
-rw-r--r--node_modules/nyc/node_modules/lru-cache/README.md4
-rw-r--r--node_modules/nyc/node_modules/lru-cache/index.js (renamed from node_modules/nyc/node_modules/lru-cache/lib/lru-cache.js)182
-rw-r--r--node_modules/nyc/node_modules/lru-cache/package.json47
-rw-r--r--node_modules/nyc/node_modules/md5-hex/package.json4
-rw-r--r--node_modules/nyc/node_modules/md5-o-matic/package.json4
-rw-r--r--node_modules/nyc/node_modules/mem/index.js55
-rw-r--r--node_modules/nyc/node_modules/mem/license21
-rw-r--r--node_modules/nyc/node_modules/mem/package.json113
-rw-r--r--node_modules/nyc/node_modules/mem/readme.md147
-rw-r--r--node_modules/nyc/node_modules/merge-source-map/index.js27
-rw-r--r--node_modules/nyc/node_modules/merge-source-map/package.json48
-rw-r--r--node_modules/nyc/node_modules/micromatch/package.json4
-rw-r--r--node_modules/nyc/node_modules/mimic-fn/index.js7
-rw-r--r--node_modules/nyc/node_modules/mimic-fn/license21
-rw-r--r--node_modules/nyc/node_modules/mimic-fn/package.json112
-rw-r--r--node_modules/nyc/node_modules/mimic-fn/readme.md66
-rw-r--r--node_modules/nyc/node_modules/minimatch/package.json54
-rw-r--r--node_modules/nyc/node_modules/minimist/package.json4
-rw-r--r--node_modules/nyc/node_modules/mkdirp/package.json4
-rw-r--r--node_modules/nyc/node_modules/ms/index.js77
-rw-r--r--node_modules/nyc/node_modules/ms/package.json85
-rw-r--r--node_modules/nyc/node_modules/ms/readme.md3
-rw-r--r--node_modules/nyc/node_modules/normalize-package-data/lib/fixer.js3
-rw-r--r--node_modules/nyc/node_modules/normalize-package-data/lib/warning_messages.json1
-rw-r--r--node_modules/nyc/node_modules/normalize-package-data/package.json30
-rw-r--r--node_modules/nyc/node_modules/normalize-path/package.json4
-rw-r--r--node_modules/nyc/node_modules/npm-run-path/index.js39
-rw-r--r--node_modules/nyc/node_modules/npm-run-path/license21
-rw-r--r--node_modules/nyc/node_modules/npm-run-path/package.json113
-rw-r--r--node_modules/nyc/node_modules/npm-run-path/readme.md81
-rw-r--r--node_modules/nyc/node_modules/number-is-nan/package.json4
-rw-r--r--node_modules/nyc/node_modules/object-assign/package.json5
-rw-r--r--node_modules/nyc/node_modules/object.omit/package.json4
-rw-r--r--node_modules/nyc/node_modules/once/package.json4
-rw-r--r--node_modules/nyc/node_modules/optimist/package.json4
-rw-r--r--node_modules/nyc/node_modules/os-homedir/package.json4
-rw-r--r--node_modules/nyc/node_modules/os-locale/index.js160
-rw-r--r--node_modules/nyc/node_modules/os-locale/package.json61
-rw-r--r--node_modules/nyc/node_modules/os-locale/readme.md20
-rw-r--r--node_modules/nyc/node_modules/p-finally/index.js15
-rw-r--r--node_modules/nyc/node_modules/p-finally/license21
-rw-r--r--node_modules/nyc/node_modules/p-finally/package.json111
-rw-r--r--node_modules/nyc/node_modules/p-finally/readme.md47
-rw-r--r--node_modules/nyc/node_modules/p-limit/index.js40
-rw-r--r--node_modules/nyc/node_modules/p-limit/license21
-rw-r--r--node_modules/nyc/node_modules/p-limit/package.json118
-rw-r--r--node_modules/nyc/node_modules/p-limit/readme.md68
-rw-r--r--node_modules/nyc/node_modules/p-locate/index.js31
-rw-r--r--node_modules/nyc/node_modules/p-locate/license21
-rw-r--r--node_modules/nyc/node_modules/p-locate/package.json122
-rw-r--r--node_modules/nyc/node_modules/p-locate/readme.md86
-rw-r--r--node_modules/nyc/node_modules/parse-glob/package.json4
-rw-r--r--node_modules/nyc/node_modules/parse-json/package.json7
-rw-r--r--node_modules/nyc/node_modules/path-exists/package.json7
-rw-r--r--node_modules/nyc/node_modules/path-is-absolute/package.json4
-rw-r--r--node_modules/nyc/node_modules/path-key/index.js13
-rw-r--r--node_modules/nyc/node_modules/path-key/license21
-rw-r--r--node_modules/nyc/node_modules/path-key/package.json108
-rw-r--r--node_modules/nyc/node_modules/path-key/readme.md51
-rw-r--r--node_modules/nyc/node_modules/path-parse/package.json4
-rw-r--r--node_modules/nyc/node_modules/path-type/package.json4
-rw-r--r--node_modules/nyc/node_modules/pify/package.json8
-rw-r--r--node_modules/nyc/node_modules/pinkie-promise/package.json10
-rw-r--r--node_modules/nyc/node_modules/pinkie/package.json4
-rw-r--r--node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/index.js53
-rw-r--r--node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/license21
-rw-r--r--node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/package.json119
-rw-r--r--node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/readme.md72
-rw-r--r--node_modules/nyc/node_modules/pkg-dir/package.json9
-rw-r--r--node_modules/nyc/node_modules/preserve/package.json4
-rw-r--r--node_modules/nyc/node_modules/pseudomap/package.json20
-rwxr-xr-xnode_modules/nyc/node_modules/randomatic/LICENSE2
-rw-r--r--node_modules/nyc/node_modules/randomatic/README.md30
-rw-r--r--node_modules/nyc/node_modules/randomatic/index.js7
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/LICENSE21
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/README.md115
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/index.js22
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/LICENSE21
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/README.md261
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js116
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json191
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/is-number/package.json163
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/kind-of/LICENSE21
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/kind-of/README.md267
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/kind-of/index.js119
-rw-r--r--node_modules/nyc/node_modules/randomatic/node_modules/kind-of/package.json179
-rw-r--r--node_modules/nyc/node_modules/randomatic/package.json69
-rw-r--r--node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/index.js53
-rw-r--r--node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/license21
-rw-r--r--node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/package.json119
-rw-r--r--node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/readme.md72
-rw-r--r--node_modules/nyc/node_modules/read-pkg-up/package.json12
-rw-r--r--node_modules/nyc/node_modules/read-pkg/package.json4
-rw-r--r--node_modules/nyc/node_modules/regenerator-runtime/package.json4
-rw-r--r--node_modules/nyc/node_modules/regex-cache/package.json4
-rw-r--r--node_modules/nyc/node_modules/remove-trailing-separator/history.md6
-rw-r--r--node_modules/nyc/node_modules/remove-trailing-separator/index.js2
-rw-r--r--node_modules/nyc/node_modules/remove-trailing-separator/package.json28
-rw-r--r--node_modules/nyc/node_modules/remove-trailing-separator/readme.md6
-rw-r--r--node_modules/nyc/node_modules/repeat-element/package.json4
-rw-r--r--node_modules/nyc/node_modules/repeat-string/package.json4
-rw-r--r--node_modules/nyc/node_modules/repeating/package.json4
-rw-r--r--node_modules/nyc/node_modules/require-directory/package.json4
-rw-r--r--node_modules/nyc/node_modules/require-main-filename/package.json4
-rw-r--r--node_modules/nyc/node_modules/resolve-from/package.json4
-rw-r--r--node_modules/nyc/node_modules/right-align/package.json4
-rw-r--r--node_modules/nyc/node_modules/rimraf/package.json4
-rw-r--r--node_modules/nyc/node_modules/semver/package.json4
-rw-r--r--node_modules/nyc/node_modules/set-blocking/package.json4
-rw-r--r--node_modules/nyc/node_modules/signal-exit/package.json8
-rw-r--r--node_modules/nyc/node_modules/slide/package.json4
-rw-r--r--node_modules/nyc/node_modules/source-map/package.json4
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/.npmignore1
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/.travis.yml7
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/appveyor.yml20
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/index.js398
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/lib/win-rebase.js18
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.npmignore4
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.travis.yml7
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/README.md38
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/index.js148
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/package.json96
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/signals.js47
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/all-integration-test.js94
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/awaiter.js35
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code-expect.json800
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code.js96
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/end-of-execution.js5
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit-last.js14
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit.js7
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exiter.js45
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/load-unload.js7
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/multiple-load.js52
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/parent.js51
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigint.js11
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigkill.js19
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-default.js99
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-last.js17
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-listener.js23
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigpipe.js8
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigterm.js9
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/unwrap.js37
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/multi-exit.js58
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/signal-exit-test.js108
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/package.json64
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/shim.js51
-rwxr-xr-xnode_modules/nyc/node_modules/spawn-wrap/t.js26
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/abs-shebang.js68
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/basic.js419
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/fixtures/node_modules/npm/bin/npm-cli.js4
-rwxr-xr-xnode_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm5
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm.cmd2
-rwxr-xr-xnode_modules/nyc/node_modules/spawn-wrap/test/fixtures/script.js6
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/fixtures/test-shim.js3
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/fixtures/wrap.js27
-rw-r--r--node_modules/nyc/node_modules/spawn-wrap/test/win-rebase.js40
-rw-r--r--node_modules/nyc/node_modules/spdx-correct/package.json4
-rw-r--r--node_modules/nyc/node_modules/spdx-expression-parse/package.json4
-rw-r--r--node_modules/nyc/node_modules/spdx-license-ids/package.json4
-rw-r--r--node_modules/nyc/node_modules/string-width/index.js20
-rw-r--r--node_modules/nyc/node_modules/string-width/license20
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/index.js10
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/license9
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/package.json130
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/readme.md46
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js46
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/license21
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json114
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md39
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/index.js4
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/license9
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/package.json128
-rw-r--r--node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/readme.md39
-rw-r--r--node_modules/nyc/node_modules/string-width/package.json55
-rw-r--r--node_modules/nyc/node_modules/string-width/readme.md4
-rw-r--r--node_modules/nyc/node_modules/strip-ansi/package.json9
-rw-r--r--node_modules/nyc/node_modules/strip-bom/package.json4
-rw-r--r--node_modules/nyc/node_modules/strip-eof/index.js15
-rw-r--r--node_modules/nyc/node_modules/strip-eof/license21
-rw-r--r--node_modules/nyc/node_modules/strip-eof/package.json104
-rw-r--r--node_modules/nyc/node_modules/strip-eof/readme.md28
-rw-r--r--node_modules/nyc/node_modules/supports-color/package.json4
-rw-r--r--node_modules/nyc/node_modules/test-exclude/CHANGELOG.md11
-rw-r--r--node_modules/nyc/node_modules/test-exclude/index.js44
-rw-r--r--node_modules/nyc/node_modules/test-exclude/package.json53
-rw-r--r--node_modules/nyc/node_modules/to-fast-properties/package.json4
-rw-r--r--node_modules/nyc/node_modules/trim-right/package.json4
-rw-r--r--node_modules/nyc/node_modules/uglify-js/README.md48
-rwxr-xr-xnode_modules/nyc/node_modules/uglify-js/bin/uglifyjs16
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/ast.js13
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/compress.js252
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/mozilla-ast.js52
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/output.js35
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/parse.js113
-rw-r--r--node_modules/nyc/node_modules/uglify-js/lib/scope.js5
-rw-r--r--node_modules/nyc/node_modules/uglify-js/node_modules/yargs/package.json4
-rw-r--r--node_modules/nyc/node_modules/uglify-js/package.json33
-rw-r--r--node_modules/nyc/node_modules/uglify-to-browserify/package.json4
-rw-r--r--node_modules/nyc/node_modules/validate-npm-package-license/package.json4
-rw-r--r--node_modules/nyc/node_modules/which-module/CHANGELOG.md15
-rw-r--r--node_modules/nyc/node_modules/which-module/package.json52
-rw-r--r--node_modules/nyc/node_modules/which/package.json4
-rw-r--r--node_modules/nyc/node_modules/window-size/package.json4
-rw-r--r--node_modules/nyc/node_modules/wordwrap/package.json4
-rw-r--r--node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/index.js37
-rw-r--r--node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/license21
-rw-r--r--node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/package.json124
-rw-r--r--node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/readme.md42
-rw-r--r--node_modules/nyc/node_modules/wrap-ansi/package.json10
-rw-r--r--node_modules/nyc/node_modules/wrappy/package.json4
-rw-r--r--node_modules/nyc/node_modules/write-file-atomic/package.json4
-rw-r--r--node_modules/nyc/node_modules/y18n/package.json4
-rw-r--r--node_modules/nyc/node_modules/yallist/package.json20
-rw-r--r--node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase/package.json4
-rw-r--r--node_modules/nyc/node_modules/yargs-parser/package.json7
-rw-r--r--node_modules/nyc/node_modules/yargs/CHANGELOG.md40
-rw-r--r--node_modules/nyc/node_modules/yargs/README.md2028
-rw-r--r--node_modules/nyc/node_modules/yargs/lib/apply-extends.js27
-rw-r--r--node_modules/nyc/node_modules/yargs/lib/command.js8
-rw-r--r--node_modules/nyc/node_modules/yargs/lib/validation.js5
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/camelcase/index.js62
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/camelcase/package.json54
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/camelcase/readme.md2
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js37
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json124
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md42
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/cliui/package.json10
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/load-json-file/index.js11
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/load-json-file/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/load-json-file/package.json111
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/load-json-file/readme.md45
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/path-type/index.js26
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/path-type/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/path-type/package.json116
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/path-type/readme.md42
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/index.js26
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/package.json130
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/readme.md80
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg/index.js47
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg/package.json113
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/read-pkg/readme.md79
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/strip-bom/index.js14
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/strip-bom/license21
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/strip-bom/package.json109
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/strip-bom/readme.md36
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md223
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt (renamed from node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/LICENSE.txt)2
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/README.md281
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/index.js764
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js34
-rw-r--r--node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/package.json115
-rw-r--r--node_modules/nyc/node_modules/yargs/package.json156
-rw-r--r--node_modules/nyc/node_modules/yargs/yargs.js23
-rw-r--r--node_modules/nyc/package.json22
441 files changed, 12709 insertions, 7110 deletions
diff --git a/node_modules/nyc/CHANGELOG.md b/node_modules/nyc/CHANGELOG.md
index b8ab0e038..564c7a2d8 100644
--- a/node_modules/nyc/CHANGELOG.md
+++ b/node_modules/nyc/CHANGELOG.md
@@ -2,6 +2,59 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="11.1.0"></a>
+# [11.1.0](https://github.com/istanbuljs/nyc/compare/v11.0.3...v11.1.0) (2017-07-16)
+
+
+### Features
+
+* add support for per file coverage checking ([#591](https://github.com/istanbuljs/nyc/issues/591)) ([bbadc1f](https://github.com/istanbuljs/nyc/commit/bbadc1f))
+* upgrade to version of spawn-wrap that supports .EXE ([#626](https://github.com/istanbuljs/nyc/issues/626)) ([8768afe](https://github.com/istanbuljs/nyc/commit/8768afe))
+
+
+
+<a name="11.0.3"></a>
+## [11.0.3](https://github.com/istanbuljs/nyc/compare/v11.0.2...v11.0.3) (2017-06-25)
+
+
+### Bug Fixes
+
+* update help link to list of reporters ([#601](https://github.com/istanbuljs/nyc/issues/601)) ([b1eb4d6](https://github.com/istanbuljs/nyc/commit/b1eb4d6))
+* upgrade to spawn-wrap version that works with babel-register ([#617](https://github.com/istanbuljs/nyc/issues/617)) ([923b062](https://github.com/istanbuljs/nyc/commit/923b062))
+
+
+
+<a name="11.0.2"></a>
+## [11.0.2](https://github.com/istanbuljs/nyc/compare/v11.0.1...v11.0.2) (2017-06-02)
+
+
+
+<a name="11.0.1"></a>
+## [11.0.1](https://github.com/istanbuljs/nyc/compare/v11.0.0...v11.0.1) (2017-06-01)
+
+
+
+<a name="11.0.0"></a>
+# [11.0.0](https://github.com/istanbuljs/nyc/compare/v10.3.2...v11.0.0) (2017-05-31)
+
+
+### Bug Fixes
+
+* add support for ES6 modules ([f18f780](https://github.com/istanbuljs/nyc/commit/f18f780))
+
+
+### Features
+
+* allow .nycrc.json ([#580](https://github.com/istanbuljs/nyc/issues/580)) ([a1a457f](https://github.com/istanbuljs/nyc/commit/a1a457f))
+* upgrade to version of yargs with support for presets ([33829b8](https://github.com/istanbuljs/nyc/commit/33829b8))
+
+
+### BREAKING CHANGES
+
+* new version of find-up requires dropping 0.10/0.12 support (which we had already been planning).
+
+
+
<a name="10.3.2"></a>
## [10.3.2](https://github.com/istanbuljs/nyc/compare/v10.3.1...v10.3.2) (2017-05-05)
diff --git a/node_modules/nyc/README.md b/node_modules/nyc/README.md
index 214ea245f..6c7025c60 100644
--- a/node_modules/nyc/README.md
+++ b/node_modules/nyc/README.md
@@ -70,9 +70,10 @@ of the pre-transpiled code. You'll have to configure your custom require hook
to inline the source map in the transpiled code. For Babel that means setting
the `sourceMaps` option to `inline`.
-## Use with `babel-plugin-istanbul` for ES2015+ Support
+## Use with `babel-plugin-istanbul` for Babel Support
-[`babel-plugin-istanbul`](https://github.com/istanbuljs/babel-plugin-istanbul) can be used to enable first-class ES2015+ support.
+We recommend using [`babel-plugin-istanbul`](https://github.com/istanbuljs/babel-plugin-istanbul) if your
+project uses the babel tool chain:
1. enable the `babel-plugin-istanbul` plugin:
@@ -152,6 +153,12 @@ nyc --check-coverage --lines 100 npm test
The above check fails if coverage falls below 100%.
+To check thresholds on a per-file basis run:
+
+```shell
+nyc check-coverage --lines 95 --per-file
+```
+
## Running reports
Once you've run your tests with nyc, simply run:
@@ -239,6 +246,7 @@ Any configuration options that can be set via the command line can also be speci
"description": "These are just examples for demonstration, nothing prescriptive",
"nyc": {
"check-coverage": true,
+ "per-file": true,
"lines": 99,
"statements": 99,
"functions": 99,
@@ -266,6 +274,23 @@ Any configuration options that can be set via the command line can also be speci
}
```
+### Publish, and reuse, your nyc configuration
+
+nyc allows you to inherit other configurations using the key `extends`. As an example,
+an alternative way to configure nyc for `babel-plugin-istanbul` would be to use the
+[@istanbuljs/nyc-config-babel preset](https://www.npmjs.com/package/@istanbuljs/nyc-config-babel):
+
+```json
+{
+ "nyc": {
+ "extends": "@istanbuljs/nyc-config-babel"
+ }
+}
+```
+
+To publish and resuse your own `nyc` configuration, simply create an npm module that
+exports an `index.json` with your `nyc` config.
+
## High and low watermarks
Several of the coverage reporters supported by nyc display special information
@@ -366,6 +391,9 @@ Here's how to get `nyc` integrated with codecov and travis-ci.org:
That's all there is to it!
+## Integrating with TAP formatters
+Many testing frameworks (Mocha, Tape, Tap, etc.) can produce [TAP](https://en.wikipedia.org/wiki/Test_Anything_Protocol) output. [tap-nyc](https://github.com/MegaArman/tap-nyc) is a TAP formatter designed to look nice with nyc.
+
## More tutorials
You can find more tutorials at http://istanbul.js.org/docs/tutorials
diff --git a/node_modules/nyc/bin/nyc.js b/node_modules/nyc/bin/nyc.js
index 5428c4e61..26bedddf8 100755
--- a/node_modules/nyc/bin/nyc.js
+++ b/node_modules/nyc/bin/nyc.js
@@ -97,5 +97,5 @@ function checkCoverage (argv, cb) {
functions: argv.functions,
branches: argv.branches,
statements: argv.statements
- })
+ }, argv['per-file'])
}
diff --git a/node_modules/nyc/index.js b/node_modules/nyc/index.js
index 4c93cd3bd..4a989749a 100755
--- a/node_modules/nyc/index.js
+++ b/node_modules/nyc/index.js
@@ -441,21 +441,36 @@ NYC.prototype.showProcessTree = function () {
console.log(processTree.render(this))
}
-NYC.prototype.checkCoverage = function (thresholds) {
+NYC.prototype.checkCoverage = function (thresholds, perFile) {
var map = this._getCoverageMapFromAllCoverageFiles()
- var summary = map.getCoverageSummary()
+ var nyc = this
- // ERROR: Coverage for lines (90.12%) does not meet global threshold (120%)
+ if (perFile) {
+ map.files().forEach(function (file) {
+ // ERROR: Coverage for lines (90.12%) does not meet threshold (120%) for index.js
+ nyc._checkCoverage(map.fileCoverageFor(file).toSummary(), thresholds, file)
+ })
+ } else {
+ // ERROR: Coverage for lines (90.12%) does not meet global threshold (120%)
+ nyc._checkCoverage(map.getCoverageSummary(), thresholds)
+ }
+
+ // process.exitCode was not implemented until v0.11.8.
+ if (/^v0\.(1[0-1]\.|[0-9]\.)/.test(process.version) && process.exitCode !== 0) process.exit(process.exitCode)
+}
+
+NYC.prototype._checkCoverage = function (summary, thresholds, file) {
Object.keys(thresholds).forEach(function (key) {
var coverage = summary[key].pct
if (coverage < thresholds[key]) {
process.exitCode = 1
- console.error('ERROR: Coverage for ' + key + ' (' + coverage + '%) does not meet global threshold (' + thresholds[key] + '%)')
+ if (file) {
+ console.error('ERROR: Coverage for ' + key + ' (' + coverage + '%) does not meet threshold (' + thresholds[key] + '%) for ' + file)
+ } else {
+ console.error('ERROR: Coverage for ' + key + ' (' + coverage + '%) does not meet global threshold (' + thresholds[key] + '%)')
+ }
}
})
-
- // process.exitCode was not implemented until v0.11.8.
- if (/^v0\.(1[0-1]\.|[0-9]\.)/.test(process.version) && process.exitCode !== 0) process.exit(process.exitCode)
}
NYC.prototype._loadProcessInfos = function () {
diff --git a/node_modules/nyc/lib/config-util.js b/node_modules/nyc/lib/config-util.js
index 62d057a3f..e355d8720 100644
--- a/node_modules/nyc/lib/config-util.js
+++ b/node_modules/nyc/lib/config-util.js
@@ -14,7 +14,7 @@ var Config = {}
Config.loadConfig = function (argv, cwd) {
cwd = cwd || process.env.NYC_CWD || process.cwd()
var pkgPath = findUp.sync('package.json', {cwd: cwd})
- var rcPath = findUp.sync('.nycrc', {cwd: cwd})
+ var rcPath = findUp.sync(['.nycrc', '.nycrc.json'], {cwd: cwd})
var rcConfig = null
if (rcPath) {
@@ -93,6 +93,10 @@ Config.buildYargs = function (cwd) {
default: 0,
description: 'what % of statements must be covered?'
})
+ .option('per-file', {
+ default: false,
+ description: 'check thresholds per file'
+ })
.example('$0 check-coverage --lines 95', "check whether the JSON in nyc's output folder meets the thresholds provided")
})
.option('reporter', {
@@ -195,6 +199,12 @@ Config.buildYargs = function (cwd) {
description: 'should nyc detect and handle source maps?',
global: false
})
+ .option('per-file', {
+ default: false,
+ type: 'boolean',
+ description: 'check thresholds per file',
+ global: false
+ })
.option('produce-source-map', {
default: false,
type: 'boolean',
@@ -234,7 +244,7 @@ Config.buildYargs = function (cwd) {
.example('$0 npm test', 'instrument your tests with coverage')
.example('$0 --require babel-core/register npm test', 'instrument your tests with coverage and babel')
.example('$0 report --reporter=text-lcov', 'output lcov report after running your tests')
- .epilog('visit https://git.io/voHar for list of available reporters')
+ .epilog('visit https://git.io/vHysA for list of available reporters')
.boolean('help')
.boolean('h')
.boolean('version')
diff --git a/node_modules/nyc/lib/instrumenters/istanbul.js b/node_modules/nyc/lib/instrumenters/istanbul.js
index c1d4b1338..38e5315bc 100644
--- a/node_modules/nyc/lib/instrumenters/istanbul.js
+++ b/node_modules/nyc/lib/instrumenters/istanbul.js
@@ -11,7 +11,8 @@ function InstrumenterIstanbul (cwd, options) {
embedSource: true,
noCompact: false,
preserveComments: true,
- produceSourceMap: options.produceSourceMap
+ produceSourceMap: options.produceSourceMap,
+ esModules: true
})
return {
diff --git a/node_modules/nyc/node_modules/align-text/package.json b/node_modules/nyc/node_modules/align-text/package.json
index a3fd11ba2..81a52afc7 100644
--- a/node_modules/nyc/node_modules/align-text/package.json
+++ b/node_modules/nyc/node_modules/align-text/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.3 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/center-align"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/center-align"
]
],
"_from": "align-text@>=0.1.3 <0.2.0",
@@ -45,7 +45,7 @@
"_shasum": "0cd90a561093f35d0a99256c22b7069433fad117",
"_shrinkwrap": null,
"_spec": "align-text@^0.1.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/center-align",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/center-align",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/amdefine/package.json b/node_modules/nyc/node_modules/amdefine/package.json
index 01efc58b6..9d5ba4a00 100644
--- a/node_modules/nyc/node_modules/amdefine/package.json
+++ b/node_modules/nyc/node_modules/amdefine/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.0.4",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/handlebars/node_modules/source-map"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars/node_modules/source-map"
]
],
"_from": "amdefine@>=0.0.4",
@@ -44,7 +44,7 @@
"_shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
"_shrinkwrap": null,
"_spec": "amdefine@>=0.0.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/handlebars/node_modules/source-map",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars/node_modules/source-map",
"author": {
"name": "James Burke",
"email": "jrburke@gmail.com",
diff --git a/node_modules/nyc/node_modules/ansi-regex/package.json b/node_modules/nyc/node_modules/ansi-regex/package.json
index 284295d8d..36edae481 100644
--- a/node_modules/nyc/node_modules/ansi-regex/package.json
+++ b/node_modules/nyc/node_modules/ansi-regex/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/has-ansi"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/has-ansi"
]
],
"_from": "ansi-regex@>=2.0.0 <3.0.0",
@@ -45,7 +45,7 @@
"_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
"_shrinkwrap": null,
"_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/has-ansi",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/has-ansi",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/ansi-styles/package.json b/node_modules/nyc/node_modules/ansi-styles/package.json
index d7eecdf1e..c22d9fb02 100644
--- a/node_modules/nyc/node_modules/ansi-styles/package.json
+++ b/node_modules/nyc/node_modules/ansi-styles/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.2.1 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/chalk"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/chalk"
]
],
"_from": "ansi-styles@>=2.2.1 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "b432dd3358b634cf75e1e4664368240533c1ddbe",
"_shrinkwrap": null,
"_spec": "ansi-styles@^2.2.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/chalk",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/append-transform/package.json b/node_modules/nyc/node_modules/append-transform/package.json
index 81f4bded2..8404fbd52 100644
--- a/node_modules/nyc/node_modules/append-transform/package.json
+++ b/node_modules/nyc/node_modules/append-transform/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.4.0 <0.5.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-hook"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-hook"
]
],
"_from": "append-transform@>=0.4.0 <0.5.0",
@@ -40,7 +40,7 @@
"_shasum": "d76ebf8ca94d276e247a36bad44a4b74ab611991",
"_shrinkwrap": null,
"_spec": "append-transform@^0.4.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-hook",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-hook",
"author": {
"name": "James Talmage",
"email": "james@talmage.io",
diff --git a/node_modules/nyc/node_modules/archy/package.json b/node_modules/nyc/node_modules/archy/package.json
index d0c7c4b65..246b8ea75 100644
--- a/node_modules/nyc/node_modules/archy/package.json
+++ b/node_modules/nyc/node_modules/archy/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "archy@>=1.0.0 <2.0.0",
@@ -39,7 +39,7 @@
"_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
"_shrinkwrap": null,
"_spec": "archy@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/arr-diff/package.json b/node_modules/nyc/node_modules/arr-diff/package.json
index 32aa44149..a7819d3a4 100644
--- a/node_modules/nyc/node_modules/arr-diff/package.json
+++ b/node_modules/nyc/node_modules/arr-diff/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "arr-diff@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "8f3b827f955a8bd669697e4a4256ac3ceae356cf",
"_shrinkwrap": null,
"_spec": "arr-diff@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/arr-flatten/LICENSE b/node_modules/nyc/node_modules/arr-flatten/LICENSE
index d290fe00b..3f2eca18f 100755
--- a/node_modules/nyc/node_modules/arr-flatten/LICENSE
+++ b/node_modules/nyc/node_modules/arr-flatten/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2014-2015, 2017, Jon Schlinkert
+Copyright (c) 2014-2017, Jon Schlinkert.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/nyc/node_modules/arr-flatten/README.md b/node_modules/nyc/node_modules/arr-flatten/README.md
index 71c1d3b4c..7dc7a9746 100755
--- a/node_modules/nyc/node_modules/arr-flatten/README.md
+++ b/node_modules/nyc/node_modules/arr-flatten/README.md
@@ -1,4 +1,4 @@
-# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten)
+# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![NPM total downloads](https://img.shields.io/npm/dt/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten)
> Recursively flatten an array or arrays.
@@ -10,12 +10,6 @@ Install with [npm](https://www.npmjs.com/):
$ npm install --save arr-flatten
```
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add arr-flatten
-```
-
## Install
Install with [bower](https://bower.io/)
@@ -50,6 +44,13 @@ I wanted the fastest implementation I could find, with implementation choices th
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 20 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 1 | [lukeed](https://github.com/lukeed) |
+
### Building docs
_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
@@ -82,4 +83,4 @@ Released under the [MIT License](LICENSE).
***
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 16, 2017._ \ No newline at end of file
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 05, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/arr-flatten/index.js b/node_modules/nyc/node_modules/arr-flatten/index.js
index d9d4c0319..0cb4ea4ec 100644
--- a/node_modules/nyc/node_modules/arr-flatten/index.js
+++ b/node_modules/nyc/node_modules/arr-flatten/index.js
@@ -1,27 +1,22 @@
/*!
* arr-flatten <https://github.com/jonschlinkert/arr-flatten>
*
- * Copyright (c) 2014-2015, 2017, Jon Schlinkert.
+ * Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
'use strict';
-module.exports = function flatten(arr) {
+module.exports = function (arr) {
return flat(arr, []);
};
-function flat(arr, acc) {
+function flat(arr, res) {
+ var i = 0, cur;
var len = arr.length;
- var idx = -1;
-
- while (++idx < len) {
- var cur = arr[idx];
- if (Array.isArray(cur)) {
- flat(cur, acc);
- } else {
- acc.push(cur);
- }
+ for (; i < len; i++) {
+ cur = arr[i];
+ Array.isArray(cur) ? flat(cur, res) : res.push(cur);
}
- return acc;
+ return res;
}
diff --git a/node_modules/nyc/node_modules/arr-flatten/package.json b/node_modules/nyc/node_modules/arr-flatten/package.json
index 698b10c0a..e663c62fb 100644
--- a/node_modules/nyc/node_modules/arr-flatten/package.json
+++ b/node_modules/nyc/node_modules/arr-flatten/package.json
@@ -10,23 +10,23 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/arr-diff"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/arr-diff"
]
],
"_from": "arr-flatten@>=1.0.1 <2.0.0",
- "_id": "arr-flatten@1.0.3",
+ "_id": "arr-flatten@1.1.0",
"_inCache": true,
"_location": "/arr-flatten",
"_nodeVersion": "7.7.3",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/arr-flatten-1.0.3.tgz_1492401133892_0.4026696104556322"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/arr-flatten-1.1.0.tgz_1499280630530_0.4138362631201744"
},
"_npmUser": {
"name": "jonschlinkert",
"email": "github@sellside.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.4",
"_phantomChildren": {},
"_requested": {
"raw": "arr-flatten@^1.0.1",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/arr-diff"
],
- "_resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz",
- "_shasum": "a274ed85ac08849b6bd7847c4580745dc51adfb1",
+ "_resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "_shasum": "36048bbff4e7b47e136644316c99669ea5ae91f1",
"_shrinkwrap": null,
"_spec": "arr-flatten@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/arr-diff",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/arr-diff",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -52,6 +52,16 @@
"bugs": {
"url": "https://github.com/jonschlinkert/arr-flatten/issues"
},
+ "contributors": [
+ {
+ "name": "Jon Schlinkert",
+ "url": "http://twitter.com/jonschlinkert"
+ },
+ {
+ "name": "Luke Edwards",
+ "url": "https://lukeed.com"
+ }
+ ],
"dependencies": {},
"description": "Recursively flatten an array or arrays.",
"devDependencies": {
@@ -74,8 +84,9 @@
},
"directories": {},
"dist": {
- "shasum": "a274ed85ac08849b6bd7847c4580745dc51adfb1",
- "tarball": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz"
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "shasum": "36048bbff4e7b47e136644316c99669ea5ae91f1",
+ "tarball": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -83,7 +94,7 @@
"files": [
"index.js"
],
- "gitHead": "9a3bc015a6989496202060dde74785d848e2d2f4",
+ "gitHead": "76a1ae28b03fdb1cbe5d49fa521bc4807b9f94d3",
"homepage": "https://github.com/jonschlinkert/arr-flatten",
"keywords": [
"arr",
@@ -106,7 +117,7 @@
],
"name": "arr-flatten",
"optionalDependencies": {},
- "readme": "# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten)\n\n> Recursively flatten an array or arrays.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save arr-flatten\n```\n\nInstall with [yarn](https://yarnpkg.com):\n\n```sh\n$ yarn add arr-flatten\n```\n\n## Install\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install arr-flatten --save\n```\n\n## Usage\n\n```js\nvar flatten = require('arr-flatten');\n\nflatten(['a', ['b', ['c']], 'd', ['e']]);\n//=> ['a', 'b', 'c', 'd', 'e']\n```\n\n## Why another flatten utility?\n\nI wanted the fastest implementation I could find, with implementation choices that should work for 95% of use cases, but no cruft to cover the other 5%.\n\n## About\n\n### Related projects\n\n* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter \"Faster alternative to javascript's native filter method.\")\n* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union \"Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.\")\n* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each \"Loop over each item in an array and call the given function on every element.\")\n* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique \"Remove duplicate values from an array. Fastest ES5 implementation.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 16, 2017._",
+ "readme": "# arr-flatten [![NPM version](https://img.shields.io/npm/v/arr-flatten.svg?style=flat)](https://www.npmjs.com/package/arr-flatten) [![NPM monthly downloads](https://img.shields.io/npm/dm/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![NPM total downloads](https://img.shields.io/npm/dt/arr-flatten.svg?style=flat)](https://npmjs.org/package/arr-flatten) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/arr-flatten.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/arr-flatten) [![Windows Build Status](https://img.shields.io/appveyor/ci/jonschlinkert/arr-flatten.svg?style=flat&label=AppVeyor)](https://ci.appveyor.com/project/jonschlinkert/arr-flatten)\n\n> Recursively flatten an array or arrays.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save arr-flatten\n```\n\n## Install\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install arr-flatten --save\n```\n\n## Usage\n\n```js\nvar flatten = require('arr-flatten');\n\nflatten(['a', ['b', ['c']], 'd', ['e']]);\n//=> ['a', 'b', 'c', 'd', 'e']\n```\n\n## Why another flatten utility?\n\nI wanted the fastest implementation I could find, with implementation choices that should work for 95% of use cases, but no cruft to cover the other 5%.\n\n## About\n\n### Related projects\n\n* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter \"Faster alternative to javascript's native filter method.\")\n* [arr-union](https://www.npmjs.com/package/arr-union): Combines a list of arrays, returning a single array with unique values, using strict equality… [more](https://github.com/jonschlinkert/arr-union) | [homepage](https://github.com/jonschlinkert/arr-union \"Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.\")\n* [array-each](https://www.npmjs.com/package/array-each): Loop over each item in an array and call the given function on every element. | [homepage](https://github.com/jonschlinkert/array-each \"Loop over each item in an array and call the given function on every element.\")\n* [array-unique](https://www.npmjs.com/package/array-unique): Remove duplicate values from an array. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique \"Remove duplicate values from an array. Fastest ES5 implementation.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 20 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 1 | [lukeed](https://github.com/lukeed) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 05, 2017._",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -126,15 +137,15 @@
],
"related": {
"list": [
+ "arr-filter",
"arr-union",
- "array-unique",
"array-each",
- "arr-filter"
+ "array-unique"
]
},
"lint": {
"reflinks": true
}
},
- "version": "1.0.3"
+ "version": "1.1.0"
}
diff --git a/node_modules/nyc/node_modules/array-unique/package.json b/node_modules/nyc/node_modules/array-unique/package.json
index a2584f58d..d209176fb 100755
--- a/node_modules/nyc/node_modules/array-unique/package.json
+++ b/node_modules/nyc/node_modules/array-unique/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.2.1 <0.3.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "array-unique@>=0.2.1 <0.3.0",
@@ -40,7 +40,7 @@
"_shasum": "a1d97ccafcbc2625cc70fadceb36a50c58b01a53",
"_shrinkwrap": null,
"_spec": "array-unique@^0.2.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/arrify/package.json b/node_modules/nyc/node_modules/arrify/package.json
index c3ab20826..f06a6be54 100644
--- a/node_modules/nyc/node_modules/arrify/package.json
+++ b/node_modules/nyc/node_modules/arrify/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "arrify@>=1.0.1 <2.0.0",
@@ -41,7 +41,7 @@
"_shasum": "898508da2226f380df904728456849c1501a4b0d",
"_shrinkwrap": null,
"_spec": "arrify@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/async/package.json b/node_modules/nyc/node_modules/async/package.json
index cf57fc154..9937cc493 100644
--- a/node_modules/nyc/node_modules/async/package.json
+++ b/node_modules/nyc/node_modules/async/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.4.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/handlebars"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars"
]
],
"_from": "async@>=1.4.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
"_shrinkwrap": null,
"_spec": "async@^1.4.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/handlebars",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars",
"author": {
"name": "Caolan McMahon"
},
diff --git a/node_modules/nyc/node_modules/babel-code-frame/package.json b/node_modules/nyc/node_modules/babel-code-frame/package.json
index 3fe17dadf..0164e2a92 100644
--- a/node_modules/nyc/node_modules/babel-code-frame/package.json
+++ b/node_modules/nyc/node_modules/babel-code-frame/package.json
@@ -10,7 +10,7 @@
"spec": ">=6.22.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse"
]
],
"_from": "babel-code-frame@>=6.22.0 <7.0.0",
@@ -44,7 +44,7 @@
"_shasum": "027620bee567a88c32561574e7fd0801d33118e4",
"_shrinkwrap": null,
"_spec": "babel-code-frame@^6.22.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
diff --git a/node_modules/nyc/node_modules/babel-generator/lib/generators/flow.js b/node_modules/nyc/node_modules/babel-generator/lib/generators/flow.js
index 077f75cf8..5422acea6 100644
--- a/node_modules/nyc/node_modules/babel-generator/lib/generators/flow.js
+++ b/node_modules/nyc/node_modules/babel-generator/lib/generators/flow.js
@@ -52,6 +52,7 @@ exports.ObjectTypeAnnotation = ObjectTypeAnnotation;
exports.ObjectTypeCallProperty = ObjectTypeCallProperty;
exports.ObjectTypeIndexer = ObjectTypeIndexer;
exports.ObjectTypeProperty = ObjectTypeProperty;
+exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty;
exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier;
exports.UnionTypeAnnotation = UnionTypeAnnotation;
exports.TypeCastExpression = TypeCastExpression;
@@ -387,6 +388,11 @@ function ObjectTypeProperty(node) {
this.print(node.value, node);
}
+function ObjectTypeSpreadProperty(node) {
+ this.token("...");
+ this.print(node.argument, node);
+}
+
function QualifiedTypeIdentifier(node) {
this.print(node.qualification, node);
this.token(".");
diff --git a/node_modules/nyc/node_modules/babel-generator/package.json b/node_modules/nyc/node_modules/babel-generator/package.json
index be82958bb..a529cd535 100644
--- a/node_modules/nyc/node_modules/babel-generator/package.json
+++ b/node_modules/nyc/node_modules/babel-generator/package.json
@@ -10,23 +10,23 @@
"spec": ">=6.18.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
"_from": "babel-generator@>=6.18.0 <7.0.0",
- "_id": "babel-generator@6.24.1",
+ "_id": "babel-generator@6.25.0",
"_inCache": true,
"_location": "/babel-generator",
"_nodeVersion": "6.9.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/babel-generator-6.24.1.tgz_1491578346993_0.8516181029845029"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babel-generator-6.25.0.tgz_1496957346945_0.81680987495929"
},
"_npmUser": {
"name": "hzoo",
"email": "hi@henryzoo.com"
},
- "_npmVersion": "3.10.10",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
"raw": "babel-generator@^6.18.0",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/istanbul-lib-instrument"
],
- "_resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
- "_shasum": "e715f486c58ded25649d888944d52aa07c5d9497",
+ "_resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz",
+ "_shasum": "33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc",
"_shrinkwrap": null,
"_spec": "babel-generator@^6.18.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
@@ -52,7 +52,7 @@
"dependencies": {
"babel-messages": "^6.23.0",
"babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1",
+ "babel-types": "^6.25.0",
"detect-indent": "^4.0.0",
"jsesc": "^1.3.0",
"lodash": "^4.2.0",
@@ -62,12 +62,12 @@
"description": "Turns an AST into code.",
"devDependencies": {
"babel-helper-fixtures": "^6.22.0",
- "babylon": "^6.11.0"
+ "babylon": "^6.17.2"
},
"directories": {},
"dist": {
- "shasum": "e715f486c58ded25649d888944d52aa07c5d9497",
- "tarball": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz"
+ "shasum": "33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc",
+ "tarball": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz"
},
"files": [
"lib"
@@ -77,28 +77,20 @@
"main": "lib/index.js",
"maintainers": [
{
- "name": "amasad",
- "email": "amjad.masad@gmail.com"
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
},
{
- "name": "hzoo",
- "email": "hi@henryzoo.com"
+ "name": "danez",
+ "email": "daniel@tschinder.de"
},
{
- "name": "jmm",
- "email": "npm-public@jessemccarthy.net"
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
},
{
"name": "loganfsmyth",
"email": "loganfsmyth@gmail.com"
- },
- {
- "name": "sebmck",
- "email": "sebmck@gmail.com"
- },
- {
- "name": "thejameskyle",
- "email": "me@thejameskyle.com"
}
],
"name": "babel-generator",
@@ -110,5 +102,5 @@
"url": "https://github.com/babel/babel/tree/master/packages/babel-generator"
},
"scripts": {},
- "version": "6.24.1"
+ "version": "6.25.0"
}
diff --git a/node_modules/nyc/node_modules/babel-messages/package.json b/node_modules/nyc/node_modules/babel-messages/package.json
index a31fbf6f4..d8bd640ba 100644
--- a/node_modules/nyc/node_modules/babel-messages/package.json
+++ b/node_modules/nyc/node_modules/babel-messages/package.json
@@ -10,7 +10,7 @@
"spec": ">=6.23.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "babel-messages@>=6.23.0 <7.0.0",
@@ -45,7 +45,7 @@
"_shasum": "f3cdf4703858035b2a2951c6ec5edf6c62f2630e",
"_shrinkwrap": null,
"_spec": "babel-messages@^6.23.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
diff --git a/node_modules/nyc/node_modules/babel-runtime/package.json b/node_modules/nyc/node_modules/babel-runtime/package.json
index 5c6e6b3c4..685ceb074 100644
--- a/node_modules/nyc/node_modules/babel-runtime/package.json
+++ b/node_modules/nyc/node_modules/babel-runtime/package.json
@@ -10,7 +10,7 @@
"spec": ">=6.22.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "babel-runtime@>=6.22.0 <7.0.0",
@@ -48,7 +48,7 @@
"_shasum": "0a9489f144de70efb3ce4300accdb329e2fc543b",
"_shrinkwrap": null,
"_spec": "babel-runtime@^6.22.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
diff --git a/node_modules/nyc/node_modules/babel-template/package.json b/node_modules/nyc/node_modules/babel-template/package.json
index 45afe775a..9b1c263e0 100644
--- a/node_modules/nyc/node_modules/babel-template/package.json
+++ b/node_modules/nyc/node_modules/babel-template/package.json
@@ -10,23 +10,23 @@
"spec": ">=6.16.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
"_from": "babel-template@>=6.16.0 <7.0.0",
- "_id": "babel-template@6.24.1",
+ "_id": "babel-template@6.25.0",
"_inCache": true,
"_location": "/babel-template",
"_nodeVersion": "6.9.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/babel-template-6.24.1.tgz_1491578353921_0.9061475147027522"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babel-template-6.25.0.tgz_1496957348463_0.7388791020493954"
},
"_npmUser": {
"name": "hzoo",
"email": "hi@henryzoo.com"
},
- "_npmVersion": "3.10.10",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
"raw": "babel-template@^6.16.0",
@@ -40,56 +40,48 @@
"_requiredBy": [
"/istanbul-lib-instrument"
],
- "_resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
- "_shasum": "04ae514f1f93b3a2537f2a0f60a5a45fb8308333",
+ "_resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz",
+ "_shasum": "665241166b7c2aa4c619d71e192969552b10c071",
"_shrinkwrap": null,
"_spec": "babel-template@^6.16.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
},
"dependencies": {
"babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1",
- "babylon": "^6.11.0",
+ "babel-traverse": "^6.25.0",
+ "babel-types": "^6.25.0",
+ "babylon": "^6.17.2",
"lodash": "^4.2.0"
},
"description": "Generate an AST from a string template.",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "04ae514f1f93b3a2537f2a0f60a5a45fb8308333",
- "tarball": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz"
+ "shasum": "665241166b7c2aa4c619d71e192969552b10c071",
+ "tarball": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz"
},
"homepage": "https://babeljs.io/",
"license": "MIT",
"main": "lib/index.js",
"maintainers": [
{
- "name": "amasad",
- "email": "amjad.masad@gmail.com"
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
},
{
- "name": "hzoo",
- "email": "hi@henryzoo.com"
+ "name": "danez",
+ "email": "daniel@tschinder.de"
},
{
- "name": "jmm",
- "email": "npm-public@jessemccarthy.net"
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
},
{
"name": "loganfsmyth",
"email": "loganfsmyth@gmail.com"
- },
- {
- "name": "sebmck",
- "email": "sebmck@gmail.com"
- },
- {
- "name": "thejameskyle",
- "email": "me@thejameskyle.com"
}
],
"name": "babel-template",
@@ -101,5 +93,5 @@
"url": "https://github.com/babel/babel/tree/master/packages/babel-template"
},
"scripts": {},
- "version": "6.24.1"
+ "version": "6.25.0"
}
diff --git a/node_modules/nyc/node_modules/babel-traverse/lib/path/lib/hoister.js b/node_modules/nyc/node_modules/babel-traverse/lib/path/lib/hoister.js
index 3cdcdeb56..7e4e8be1f 100644
--- a/node_modules/nyc/node_modules/babel-traverse/lib/path/lib/hoister.js
+++ b/node_modules/nyc/node_modules/babel-traverse/lib/path/lib/hoister.js
@@ -127,6 +127,10 @@ var PathHoister = function () {
}
}
+ if (path.parentPath.isExportDeclaration()) {
+ path = path.parentPath;
+ }
+
return path;
};
diff --git a/node_modules/nyc/node_modules/babel-traverse/lib/scope/index.js b/node_modules/nyc/node_modules/babel-traverse/lib/scope/index.js
index c960a7322..c91aa6adb 100644
--- a/node_modules/nyc/node_modules/babel-traverse/lib/scope/index.js
+++ b/node_modules/nyc/node_modules/babel-traverse/lib/scope/index.js
@@ -1012,7 +1012,7 @@ var Scope = function () {
Scope.prototype.warnOnFlowBinding = function warnOnFlowBinding(binding) {
if (_crawlCallsCount === 0 && binding && binding.path.isFlow()) {
- console.warn("\n You or one of the Babel plugins you are using are using Flow declarations as bindings.\n Support for this will be removed in version 6.8. To find out the caller, grep for this\n message and change it to a `console.trace()`.\n ");
+ console.warn("\n You or one of the Babel plugins you are using are using Flow declarations as bindings.\n Support for this will be removed in version 7. To find out the caller, grep for this\n message and change it to a `console.trace()`.\n ");
}
return binding;
};
diff --git a/node_modules/nyc/node_modules/babel-traverse/package.json b/node_modules/nyc/node_modules/babel-traverse/package.json
index 6aaacda95..8d057d6bf 100644
--- a/node_modules/nyc/node_modules/babel-traverse/package.json
+++ b/node_modules/nyc/node_modules/babel-traverse/package.json
@@ -10,23 +10,23 @@
"spec": ">=6.18.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
"_from": "babel-traverse@>=6.18.0 <7.0.0",
- "_id": "babel-traverse@6.24.1",
+ "_id": "babel-traverse@6.25.0",
"_inCache": true,
"_location": "/babel-traverse",
"_nodeVersion": "6.9.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/babel-traverse-6.24.1.tgz_1491578349995_0.6336014487314969"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babel-traverse-6.25.0.tgz_1496957347127_0.06925187911838293"
},
"_npmUser": {
"name": "hzoo",
"email": "hi@henryzoo.com"
},
- "_npmVersion": "3.10.10",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
"raw": "babel-traverse@^6.18.0",
@@ -41,11 +41,11 @@
"/babel-template",
"/istanbul-lib-instrument"
],
- "_resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
- "_shasum": "ab36673fd356f9a0948659e7b338d5feadb31695",
+ "_resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz",
+ "_shasum": "2257497e2fcd19b89edc13c4c91381f9512496f1",
"_shrinkwrap": null,
"_spec": "babel-traverse@^6.18.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
@@ -54,8 +54,8 @@
"babel-code-frame": "^6.22.0",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1",
- "babylon": "^6.15.0",
+ "babel-types": "^6.25.0",
+ "babylon": "^6.17.2",
"debug": "^2.2.0",
"globals": "^9.0.0",
"invariant": "^2.2.0",
@@ -63,40 +63,32 @@
},
"description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes",
"devDependencies": {
- "babel-generator": "^6.24.1"
+ "babel-generator": "^6.25.0"
},
"directories": {},
"dist": {
- "shasum": "ab36673fd356f9a0948659e7b338d5feadb31695",
- "tarball": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz"
+ "shasum": "2257497e2fcd19b89edc13c4c91381f9512496f1",
+ "tarball": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz"
},
"homepage": "https://babeljs.io/",
"license": "MIT",
"main": "lib/index.js",
"maintainers": [
{
- "name": "amasad",
- "email": "amjad.masad@gmail.com"
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
},
{
- "name": "hzoo",
- "email": "hi@henryzoo.com"
+ "name": "danez",
+ "email": "daniel@tschinder.de"
},
{
- "name": "jmm",
- "email": "npm-public@jessemccarthy.net"
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
},
{
"name": "loganfsmyth",
"email": "loganfsmyth@gmail.com"
- },
- {
- "name": "sebmck",
- "email": "sebmck@gmail.com"
- },
- {
- "name": "thejameskyle",
- "email": "me@thejameskyle.com"
}
],
"name": "babel-traverse",
@@ -108,5 +100,5 @@
"url": "https://github.com/babel/babel/tree/master/packages/babel-traverse"
},
"scripts": {},
- "version": "6.24.1"
+ "version": "6.25.0"
}
diff --git a/node_modules/nyc/node_modules/babel-types/README.md b/node_modules/nyc/node_modules/babel-types/README.md
index 683388362..1a2c74dc4 100644
--- a/node_modules/nyc/node_modules/babel-types/README.md
+++ b/node_modules/nyc/node_modules/babel-types/README.md
@@ -46,7 +46,7 @@ See also `t.isArrayPattern(node, opts)` and `t.assertArrayPattern(node, opts)`.
Aliases: `Pattern`, `LVal`
- - `elements`: `Array<Expression>` (required)
+ - `elements`: `Array<Identifier | Pattern | RestElement>` (required)
- `typeAnnotation` (required)
- `decorators`: `Array<Decorator>` (default: `null`)
@@ -1368,7 +1368,7 @@ See also `t.isObjectProperty(node, opts)` and `t.assertObjectProperty(node, opts
Aliases: `UserWhitespacable`, `Property`, `ObjectMember`
- `key`if computed then `Expression` else `Identifier | Literal` (required)
- - `value`: `Expression` (required)
+ - `value`: `Expression | Pattern | RestElement` (required)
- `computed`: `boolean` (default: `false`)
- `shorthand`: `boolean` (default: `false`)
- `decorators`: `Array<Decorator>` (default: `null`)
@@ -1432,6 +1432,19 @@ Aliases: `Flow`, `UserWhitespacable`
---
+### objectTypeSpreadProperty
+```javascript
+t.objectTypeSpreadProperty(argument)
+```
+
+See also `t.isObjectTypeSpreadProperty(node, opts)` and `t.assertObjectTypeSpreadProperty(node, opts)`.
+
+Aliases: `Flow`, `UserWhitespacable`
+
+ - `argument` (required)
+
+---
+
### parenthesizedExpression
```javascript
t.parenthesizedExpression(expression)
diff --git a/node_modules/nyc/node_modules/babel-types/lib/definitions/core.js b/node_modules/nyc/node_modules/babel-types/lib/definitions/core.js
index 3b03262ff..413faf8a5 100644
--- a/node_modules/nyc/node_modules/babel-types/lib/definitions/core.js
+++ b/node_modules/nyc/node_modules/babel-types/lib/definitions/core.js
@@ -506,7 +506,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
}
},
value: {
- validate: (0, _index2.assertNodeType)("Expression")
+ validate: (0, _index2.assertNodeType)("Expression", "Pattern", "RestElement")
},
shorthand: {
validate: (0, _index2.assertValueType)("boolean"),
diff --git a/node_modules/nyc/node_modules/babel-types/lib/definitions/es2015.js b/node_modules/nyc/node_modules/babel-types/lib/definitions/es2015.js
index a823aa22f..5f57b44d9 100644
--- a/node_modules/nyc/node_modules/babel-types/lib/definitions/es2015.js
+++ b/node_modules/nyc/node_modules/babel-types/lib/definitions/es2015.js
@@ -27,7 +27,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
aliases: ["Pattern", "LVal"],
fields: {
elements: {
- validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Expression")))
+ validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Identifier", "Pattern", "RestElement")))
},
decorators: {
validate: (0, _index.chain)((0, _index.assertValueType)("array"), (0, _index.assertEach)((0, _index.assertNodeType)("Decorator")))
diff --git a/node_modules/nyc/node_modules/babel-types/lib/definitions/flow.js b/node_modules/nyc/node_modules/babel-types/lib/definitions/flow.js
index dca21ec1f..8bf909a0c 100644
--- a/node_modules/nyc/node_modules/babel-types/lib/definitions/flow.js
+++ b/node_modules/nyc/node_modules/babel-types/lib/definitions/flow.js
@@ -243,6 +243,12 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
fields: {}
});
+(0, _index2.default)("ObjectTypeSpreadProperty", {
+ visitor: ["argument"],
+ aliases: ["Flow", "UserWhitespacable"],
+ fields: {}
+});
+
(0, _index2.default)("QualifiedTypeIdentifier", {
visitor: ["id", "qualification"],
aliases: ["Flow"],
diff --git a/node_modules/nyc/node_modules/babel-types/package.json b/node_modules/nyc/node_modules/babel-types/package.json
index 7216c2fe3..55a32cda4 100644
--- a/node_modules/nyc/node_modules/babel-types/package.json
+++ b/node_modules/nyc/node_modules/babel-types/package.json
@@ -10,23 +10,23 @@
"spec": ">=6.18.0 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
"_from": "babel-types@>=6.18.0 <7.0.0",
- "_id": "babel-types@6.24.1",
+ "_id": "babel-types@6.25.0",
"_inCache": true,
"_location": "/babel-types",
"_nodeVersion": "6.9.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/babel-types-6.24.1.tgz_1491578343925_0.5827958500012755"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babel-types-6.25.0.tgz_1496957345673_0.8575069205835462"
},
"_npmUser": {
"name": "hzoo",
"email": "hi@henryzoo.com"
},
- "_npmVersion": "3.10.10",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
"raw": "babel-types@^6.18.0",
@@ -43,11 +43,11 @@
"/babel-traverse",
"/istanbul-lib-instrument"
],
- "_resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
- "_shasum": "a136879dc15b3606bda0d90c1fc74304c2ff0975",
+ "_resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz",
+ "_shasum": "70afb248d5660e5d18f811d91c8303b54134a18e",
"_shrinkwrap": null,
"_spec": "babel-types@^6.18.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
@@ -60,50 +60,42 @@
},
"description": "Babel Types is a Lodash-esque utility library for AST nodes",
"devDependencies": {
- "babylon": "^6.8.2"
+ "babylon": "^6.17.2"
},
"directories": {},
"dist": {
- "shasum": "a136879dc15b3606bda0d90c1fc74304c2ff0975",
- "tarball": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz"
+ "shasum": "70afb248d5660e5d18f811d91c8303b54134a18e",
+ "tarball": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz"
},
"homepage": "https://babeljs.io/",
"license": "MIT",
"main": "lib/index.js",
"maintainers": [
{
- "name": "amasad",
- "email": "amjad.masad@gmail.com"
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
},
{
- "name": "hzoo",
- "email": "hi@henryzoo.com"
+ "name": "danez",
+ "email": "daniel@tschinder.de"
},
{
- "name": "jmm",
- "email": "npm-public@jessemccarthy.net"
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
},
{
"name": "loganfsmyth",
"email": "loganfsmyth@gmail.com"
- },
- {
- "name": "sebmck",
- "email": "sebmck@gmail.com"
- },
- {
- "name": "thejameskyle",
- "email": "me@thejameskyle.com"
}
],
"name": "babel-types",
"optionalDependencies": {},
- "readme": "# babel-types\n\n> This module contains methods for building ASTs manually and for checking the types of AST nodes.\n\n## Install\n\n```sh\nnpm install --save-dev babel-types\n```\n\n## API\n\n<!-- begin generated section -->\n\n### anyTypeAnnotation\n```javascript\nt.anyTypeAnnotation()\n```\n\nSee also `t.isAnyTypeAnnotation(node, opts)` and `t.assertAnyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### arrayExpression\n```javascript\nt.arrayExpression(elements)\n```\n\nSee also `t.isArrayExpression(node, opts)` and `t.assertArrayExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `elements`: `Array<null | Expression | SpreadElement>` (default: `[]`)\n\n---\n\n### arrayPattern\n```javascript\nt.arrayPattern(elements, typeAnnotation)\n```\n\nSee also `t.isArrayPattern(node, opts)` and `t.assertArrayPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `elements`: `Array<Expression>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### arrayTypeAnnotation\n```javascript\nt.arrayTypeAnnotation(elementType)\n```\n\nSee also `t.isArrayTypeAnnotation(node, opts)` and `t.assertArrayTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `elementType` (required)\n\n---\n\n### arrowFunctionExpression\n```javascript\nt.arrowFunctionExpression(params, body, async)\n```\n\nSee also `t.isArrowFunctionExpression(node, opts)` and `t.assertArrowFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement | Expression` (required)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### assignmentExpression\n```javascript\nt.assignmentExpression(operator, left, right)\n```\n\nSee also `t.isAssignmentExpression(node, opts)` and `t.assertAssignmentExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `string` (required)\n - `left`: `LVal` (required)\n - `right`: `Expression` (required)\n\n---\n\n### assignmentPattern\n```javascript\nt.assignmentPattern(left, right)\n```\n\nSee also `t.isAssignmentPattern(node, opts)` and `t.assertAssignmentPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `left`: `Identifier` (required)\n - `right`: `Expression` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### awaitExpression\n```javascript\nt.awaitExpression(argument)\n```\n\nSee also `t.isAwaitExpression(node, opts)` and `t.assertAwaitExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (required)\n\n---\n\n### binaryExpression\n```javascript\nt.binaryExpression(operator, left, right)\n```\n\nSee also `t.isBinaryExpression(node, opts)` and `t.assertBinaryExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<='` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### bindExpression\n```javascript\nt.bindExpression(object, callee)\n```\n\nSee also `t.isBindExpression(node, opts)` and `t.assertBindExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `object` (required)\n - `callee` (required)\n\n---\n\n### blockStatement\n```javascript\nt.blockStatement(body, directives)\n```\n\nSee also `t.isBlockStatement(node, opts)` and `t.assertBlockStatement(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `Statement`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### booleanLiteral\n```javascript\nt.booleanLiteral(value)\n```\n\nSee also `t.isBooleanLiteral(node, opts)` and `t.assertBooleanLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `boolean` (required)\n\n---\n\n### booleanLiteralTypeAnnotation\n```javascript\nt.booleanLiteralTypeAnnotation()\n```\n\nSee also `t.isBooleanLiteralTypeAnnotation(node, opts)` and `t.assertBooleanLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### booleanTypeAnnotation\n```javascript\nt.booleanTypeAnnotation()\n```\n\nSee also `t.isBooleanTypeAnnotation(node, opts)` and `t.assertBooleanTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### breakStatement\n```javascript\nt.breakStatement(label)\n```\n\nSee also `t.isBreakStatement(node, opts)` and `t.assertBreakStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### callExpression\n```javascript\nt.callExpression(callee, arguments)\n```\n\nSee also `t.isCallExpression(node, opts)` and `t.assertCallExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### catchClause\n```javascript\nt.catchClause(param, body)\n```\n\nSee also `t.isCatchClause(node, opts)` and `t.assertCatchClause(node, opts)`.\n\nAliases: `Scopable`\n\n - `param`: `Identifier` (required)\n - `body`: `BlockStatement` (required)\n\n---\n\n### classBody\n```javascript\nt.classBody(body)\n```\n\nSee also `t.isClassBody(node, opts)` and `t.assertClassBody(node, opts)`.\n\n - `body`: `Array<ClassMethod | ClassProperty>` (required)\n\n---\n\n### classDeclaration\n```javascript\nt.classDeclaration(id, superClass, body, decorators)\n```\n\nSee also `t.isClassDeclaration(node, opts)` and `t.assertClassDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Statement`, `Declaration`, `Pureish`\n\n - `id`: `Identifier` (required)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classExpression\n```javascript\nt.classExpression(id, superClass, body, decorators)\n```\n\nSee also `t.isClassExpression(node, opts)` and `t.assertClassExpression(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classImplements\n```javascript\nt.classImplements(id, typeParameters)\n```\n\nSee also `t.isClassImplements(node, opts)` and `t.assertClassImplements(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### classMethod\n```javascript\nt.classMethod(kind, key, params, body, computed, static)\n```\n\nSee also `t.isClassMethod(node, opts)` and `t.assertClassMethod(node, opts)`.\n\nAliases: `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`\n\n - `kind`: `\"get\" | \"set\" | \"method\" | \"constructor\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `static`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classProperty\n```javascript\nt.classProperty(key, value, typeAnnotation, decorators, computed)\n```\n\nSee also `t.isClassProperty(node, opts)` and `t.assertClassProperty(node, opts)`.\n\nAliases: `Property`\n\n - `key` (required)\n - `value` (required)\n - `typeAnnotation` (required)\n - `decorators` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### conditionalExpression\n```javascript\nt.conditionalExpression(test, consequent, alternate)\n```\n\nSee also `t.isConditionalExpression(node, opts)` and `t.assertConditionalExpression(node, opts)`.\n\nAliases: `Expression`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Expression` (required)\n - `alternate`: `Expression` (required)\n\n---\n\n### continueStatement\n```javascript\nt.continueStatement(label)\n```\n\nSee also `t.isContinueStatement(node, opts)` and `t.assertContinueStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### debuggerStatement\n```javascript\nt.debuggerStatement()\n```\n\nSee also `t.isDebuggerStatement(node, opts)` and `t.assertDebuggerStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### declareClass\n```javascript\nt.declareClass(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareClass(node, opts)` and `t.assertDeclareClass(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareFunction\n```javascript\nt.declareFunction(id)\n```\n\nSee also `t.isDeclareFunction(node, opts)` and `t.assertDeclareFunction(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### declareInterface\n```javascript\nt.declareInterface(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareInterface(node, opts)` and `t.assertDeclareInterface(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareModule\n```javascript\nt.declareModule(id, body)\n```\n\nSee also `t.isDeclareModule(node, opts)` and `t.assertDeclareModule(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `body` (required)\n\n---\n\n### declareModuleExports\n```javascript\nt.declareModuleExports(typeAnnotation)\n```\n\nSee also `t.isDeclareModuleExports(node, opts)` and `t.assertDeclareModuleExports(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `typeAnnotation` (required)\n\n---\n\n### declareTypeAlias\n```javascript\nt.declareTypeAlias(id, typeParameters, right)\n```\n\nSee also `t.isDeclareTypeAlias(node, opts)` and `t.assertDeclareTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### declareVariable\n```javascript\nt.declareVariable(id)\n```\n\nSee also `t.isDeclareVariable(node, opts)` and `t.assertDeclareVariable(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### decorator\n```javascript\nt.decorator(expression)\n```\n\nSee also `t.isDecorator(node, opts)` and `t.assertDecorator(node, opts)`.\n\n - `expression`: `Expression` (required)\n\n---\n\n### directive\n```javascript\nt.directive(value)\n```\n\nSee also `t.isDirective(node, opts)` and `t.assertDirective(node, opts)`.\n\n - `value`: `DirectiveLiteral` (required)\n\n---\n\n### directiveLiteral\n```javascript\nt.directiveLiteral(value)\n```\n\nSee also `t.isDirectiveLiteral(node, opts)` and `t.assertDirectiveLiteral(node, opts)`.\n\n - `value`: `string` (required)\n\n---\n\n### doExpression\n```javascript\nt.doExpression(body)\n```\n\nSee also `t.isDoExpression(node, opts)` and `t.assertDoExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `body`: `BlockStatement` (required)\n\n---\n\n### doWhileStatement\n```javascript\nt.doWhileStatement(test, body)\n```\n\nSee also `t.isDoWhileStatement(node, opts)` and `t.assertDoWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### emptyStatement\n```javascript\nt.emptyStatement()\n```\n\nSee also `t.isEmptyStatement(node, opts)` and `t.assertEmptyStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### emptyTypeAnnotation\n```javascript\nt.emptyTypeAnnotation()\n```\n\nSee also `t.isEmptyTypeAnnotation(node, opts)` and `t.assertEmptyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### existentialTypeParam\n```javascript\nt.existentialTypeParam()\n```\n\nSee also `t.isExistentialTypeParam(node, opts)` and `t.assertExistentialTypeParam(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### exportAllDeclaration\n```javascript\nt.exportAllDeclaration(source)\n```\n\nSee also `t.isExportAllDeclaration(node, opts)` and `t.assertExportAllDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `source`: `StringLiteral` (required)\n\n---\n\n### exportDefaultDeclaration\n```javascript\nt.exportDefaultDeclaration(declaration)\n```\n\nSee also `t.isExportDefaultDeclaration(node, opts)` and `t.assertExportDefaultDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `FunctionDeclaration | ClassDeclaration | Expression` (required)\n\n---\n\n### exportDefaultSpecifier\n```javascript\nt.exportDefaultSpecifier(exported)\n```\n\nSee also `t.isExportDefaultSpecifier(node, opts)` and `t.assertExportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportNamedDeclaration\n```javascript\nt.exportNamedDeclaration(declaration, specifiers, source)\n```\n\nSee also `t.isExportNamedDeclaration(node, opts)` and `t.assertExportNamedDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `Declaration` (default: `null`)\n - `specifiers`: `Array<ExportSpecifier>` (required)\n - `source`: `StringLiteral` (default: `null`)\n\n---\n\n### exportNamespaceSpecifier\n```javascript\nt.exportNamespaceSpecifier(exported)\n```\n\nSee also `t.isExportNamespaceSpecifier(node, opts)` and `t.assertExportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportSpecifier\n```javascript\nt.exportSpecifier(local, exported)\n```\n\nSee also `t.isExportSpecifier(node, opts)` and `t.assertExportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `exported`: `Identifier` (required)\n\n---\n\n### expressionStatement\n```javascript\nt.expressionStatement(expression)\n```\n\nSee also `t.isExpressionStatement(node, opts)` and `t.assertExpressionStatement(node, opts)`.\n\nAliases: `Statement`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### file\n```javascript\nt.file(program, comments, tokens)\n```\n\nSee also `t.isFile(node, opts)` and `t.assertFile(node, opts)`.\n\n - `program`: `Program` (required)\n - `comments` (required)\n - `tokens` (required)\n\n---\n\n### forAwaitStatement\n```javascript\nt.forAwaitStatement(left, right, body)\n```\n\nSee also `t.isForAwaitStatement(node, opts)` and `t.assertForAwaitStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forInStatement\n```javascript\nt.forInStatement(left, right, body)\n```\n\nSee also `t.isForInStatement(node, opts)` and `t.assertForInStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forOfStatement\n```javascript\nt.forOfStatement(left, right, body)\n```\n\nSee also `t.isForOfStatement(node, opts)` and `t.assertForOfStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forStatement\n```javascript\nt.forStatement(init, test, update, body)\n```\n\nSee also `t.isForStatement(node, opts)` and `t.assertForStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`\n\n - `init`: `VariableDeclaration | Expression` (default: `null`)\n - `test`: `Expression` (default: `null`)\n - `update`: `Expression` (default: `null`)\n - `body`: `Statement` (required)\n\n---\n\n### functionDeclaration\n```javascript\nt.functionDeclaration(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionDeclaration(node, opts)` and `t.assertFunctionDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Statement`, `Pureish`, `Declaration`\n\n - `id`: `Identifier` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionExpression\n```javascript\nt.functionExpression(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionExpression(node, opts)` and `t.assertFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionTypeAnnotation\n```javascript\nt.functionTypeAnnotation(typeParameters, params, rest, returnType)\n```\n\nSee also `t.isFunctionTypeAnnotation(node, opts)` and `t.assertFunctionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeParameters` (required)\n - `params` (required)\n - `rest` (required)\n - `returnType` (required)\n\n---\n\n### functionTypeParam\n```javascript\nt.functionTypeParam(name, typeAnnotation)\n```\n\nSee also `t.isFunctionTypeParam(node, opts)` and `t.assertFunctionTypeParam(node, opts)`.\n\nAliases: `Flow`\n\n - `name` (required)\n - `typeAnnotation` (required)\n\n---\n\n### genericTypeAnnotation\n```javascript\nt.genericTypeAnnotation(id, typeParameters)\n```\n\nSee also `t.isGenericTypeAnnotation(node, opts)` and `t.assertGenericTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### identifier\n```javascript\nt.identifier(name)\n```\n\nSee also `t.isIdentifier(node, opts)` and `t.assertIdentifier(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `name``string` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `typeAnnotation` (default: `null`)\n\n---\n\n### ifStatement\n```javascript\nt.ifStatement(test, consequent, alternate)\n```\n\nSee also `t.isIfStatement(node, opts)` and `t.assertIfStatement(node, opts)`.\n\nAliases: `Statement`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Statement` (required)\n - `alternate`: `Statement` (default: `null`)\n\n---\n\n### import\n```javascript\nt.import()\n```\n\nSee also `t.isImport(node, opts)` and `t.assertImport(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### importDeclaration\n```javascript\nt.importDeclaration(specifiers, source)\n```\n\nSee also `t.isImportDeclaration(node, opts)` and `t.assertImportDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`\n\n - `specifiers`: `Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>` (required)\n - `source`: `StringLiteral` (required)\n\n---\n\n### importDefaultSpecifier\n```javascript\nt.importDefaultSpecifier(local)\n```\n\nSee also `t.isImportDefaultSpecifier(node, opts)` and `t.assertImportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importNamespaceSpecifier\n```javascript\nt.importNamespaceSpecifier(local)\n```\n\nSee also `t.isImportNamespaceSpecifier(node, opts)` and `t.assertImportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importSpecifier\n```javascript\nt.importSpecifier(local, imported)\n```\n\nSee also `t.isImportSpecifier(node, opts)` and `t.assertImportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `imported`: `Identifier` (required)\n - `importKind`: `null | 'type' | 'typeof'` (default: `null`)\n\n---\n\n### interfaceDeclaration\n```javascript\nt.interfaceDeclaration(id, typeParameters, extends, body)\n```\n\nSee also `t.isInterfaceDeclaration(node, opts)` and `t.assertInterfaceDeclaration(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### interfaceExtends\n```javascript\nt.interfaceExtends(id, typeParameters)\n```\n\nSee also `t.isInterfaceExtends(node, opts)` and `t.assertInterfaceExtends(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### intersectionTypeAnnotation\n```javascript\nt.intersectionTypeAnnotation(types)\n```\n\nSee also `t.isIntersectionTypeAnnotation(node, opts)` and `t.assertIntersectionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### jSXAttribute\n```javascript\nt.jSXAttribute(name, value)\n```\n\nSee also `t.isJSXAttribute(node, opts)` and `t.assertJSXAttribute(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXNamespacedName` (required)\n - `value`: `JSXElement | StringLiteral | JSXExpressionContainer` (default: `null`)\n\n---\n\n### jSXClosingElement\n```javascript\nt.jSXClosingElement(name)\n```\n\nSee also `t.isJSXClosingElement(node, opts)` and `t.assertJSXClosingElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n\n---\n\n### jSXElement\n```javascript\nt.jSXElement(openingElement, closingElement, children, selfClosing)\n```\n\nSee also `t.isJSXElement(node, opts)` and `t.assertJSXElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`, `Expression`\n\n - `openingElement`: `JSXOpeningElement` (required)\n - `closingElement`: `JSXClosingElement` (default: `null`)\n - `children`: `Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement>` (required)\n - `selfClosing` (required)\n\n---\n\n### jSXEmptyExpression\n```javascript\nt.jSXEmptyExpression()\n```\n\nSee also `t.isJSXEmptyExpression(node, opts)` and `t.assertJSXEmptyExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n\n---\n\n### jSXExpressionContainer\n```javascript\nt.jSXExpressionContainer(expression)\n```\n\nSee also `t.isJSXExpressionContainer(node, opts)` and `t.assertJSXExpressionContainer(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXIdentifier\n```javascript\nt.jSXIdentifier(name)\n```\n\nSee also `t.isJSXIdentifier(node, opts)` and `t.assertJSXIdentifier(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `name`: `string` (required)\n\n---\n\n### jSXMemberExpression\n```javascript\nt.jSXMemberExpression(object, property)\n```\n\nSee also `t.isJSXMemberExpression(node, opts)` and `t.assertJSXMemberExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `object`: `JSXMemberExpression | JSXIdentifier` (required)\n - `property`: `JSXIdentifier` (required)\n\n---\n\n### jSXNamespacedName\n```javascript\nt.jSXNamespacedName(namespace, name)\n```\n\nSee also `t.isJSXNamespacedName(node, opts)` and `t.assertJSXNamespacedName(node, opts)`.\n\nAliases: `JSX`\n\n - `namespace`: `JSXIdentifier` (required)\n - `name`: `JSXIdentifier` (required)\n\n---\n\n### jSXOpeningElement\n```javascript\nt.jSXOpeningElement(name, attributes, selfClosing)\n```\n\nSee also `t.isJSXOpeningElement(node, opts)` and `t.assertJSXOpeningElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n - `attributes`: `Array<JSXAttribute | JSXSpreadAttribute>` (required)\n - `selfClosing`: `boolean` (default: `false`)\n\n---\n\n### jSXSpreadAttribute\n```javascript\nt.jSXSpreadAttribute(argument)\n```\n\nSee also `t.isJSXSpreadAttribute(node, opts)` and `t.assertJSXSpreadAttribute(node, opts)`.\n\nAliases: `JSX`\n\n - `argument`: `Expression` (required)\n\n---\n\n### jSXSpreadChild\n```javascript\nt.jSXSpreadChild(expression)\n```\n\nSee also `t.isJSXSpreadChild(node, opts)` and `t.assertJSXSpreadChild(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXText\n```javascript\nt.jSXText(value)\n```\n\nSee also `t.isJSXText(node, opts)` and `t.assertJSXText(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### labeledStatement\n```javascript\nt.labeledStatement(label, body)\n```\n\nSee also `t.isLabeledStatement(node, opts)` and `t.assertLabeledStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `label`: `Identifier` (required)\n - `body`: `Statement` (required)\n\n---\n\n### logicalExpression\n```javascript\nt.logicalExpression(operator, left, right)\n```\n\nSee also `t.isLogicalExpression(node, opts)` and `t.assertLogicalExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'||' | '&&'` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### memberExpression\n```javascript\nt.memberExpression(object, property, computed)\n```\n\nSee also `t.isMemberExpression(node, opts)` and `t.assertMemberExpression(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `object`: `Expression` (required)\n - `property`if computed then `Expression` else `Identifier` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### metaProperty\n```javascript\nt.metaProperty(meta, property)\n```\n\nSee also `t.isMetaProperty(node, opts)` and `t.assertMetaProperty(node, opts)`.\n\nAliases: `Expression`\n\n - `meta`: `string` (required)\n - `property`: `string` (required)\n\n---\n\n### mixedTypeAnnotation\n```javascript\nt.mixedTypeAnnotation()\n```\n\nSee also `t.isMixedTypeAnnotation(node, opts)` and `t.assertMixedTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### newExpression\n```javascript\nt.newExpression(callee, arguments)\n```\n\nSee also `t.isNewExpression(node, opts)` and `t.assertNewExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### noop\n```javascript\nt.noop()\n```\n\nSee also `t.isNoop(node, opts)` and `t.assertNoop(node, opts)`.\n\n\n---\n\n### nullLiteral\n```javascript\nt.nullLiteral()\n```\n\nSee also `t.isNullLiteral(node, opts)` and `t.assertNullLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n\n---\n\n### nullLiteralTypeAnnotation\n```javascript\nt.nullLiteralTypeAnnotation()\n```\n\nSee also `t.isNullLiteralTypeAnnotation(node, opts)` and `t.assertNullLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### nullableTypeAnnotation\n```javascript\nt.nullableTypeAnnotation(typeAnnotation)\n```\n\nSee also `t.isNullableTypeAnnotation(node, opts)` and `t.assertNullableTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### numberTypeAnnotation\n```javascript\nt.numberTypeAnnotation()\n```\n\nSee also `t.isNumberTypeAnnotation(node, opts)` and `t.assertNumberTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### numericLiteral\n```javascript\nt.numericLiteral(value)\n```\n\nSee also `t.isNumericLiteral(node, opts)` and `t.assertNumericLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `number` (required)\n\n---\n\n### numericLiteralTypeAnnotation\n```javascript\nt.numericLiteralTypeAnnotation()\n```\n\nSee also `t.isNumericLiteralTypeAnnotation(node, opts)` and `t.assertNumericLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### objectExpression\n```javascript\nt.objectExpression(properties)\n```\n\nSee also `t.isObjectExpression(node, opts)` and `t.assertObjectExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `properties`: `Array<ObjectMethod | ObjectProperty | SpreadProperty>` (required)\n\n---\n\n### objectMethod\n```javascript\nt.objectMethod(kind, key, params, body, computed)\n```\n\nSee also `t.isObjectMethod(node, opts)` and `t.assertObjectMethod(node, opts)`.\n\nAliases: `UserWhitespacable`, `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`, `ObjectMember`\n\n - `kind`: `\"method\" | \"get\" | \"set\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### objectPattern\n```javascript\nt.objectPattern(properties, typeAnnotation)\n```\n\nSee also `t.isObjectPattern(node, opts)` and `t.assertObjectPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `properties`: `Array<RestProperty | Property>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectProperty\n```javascript\nt.objectProperty(key, value, computed, shorthand, decorators)\n```\n\nSee also `t.isObjectProperty(node, opts)` and `t.assertObjectProperty(node, opts)`.\n\nAliases: `UserWhitespacable`, `Property`, `ObjectMember`\n\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `value`: `Expression` (required)\n - `computed`: `boolean` (default: `false`)\n - `shorthand`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectTypeAnnotation\n```javascript\nt.objectTypeAnnotation(properties, indexers, callProperties)\n```\n\nSee also `t.isObjectTypeAnnotation(node, opts)` and `t.assertObjectTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `properties` (required)\n - `indexers` (required)\n - `callProperties` (required)\n\n---\n\n### objectTypeCallProperty\n```javascript\nt.objectTypeCallProperty(value)\n```\n\nSee also `t.isObjectTypeCallProperty(node, opts)` and `t.assertObjectTypeCallProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `value` (required)\n\n---\n\n### objectTypeIndexer\n```javascript\nt.objectTypeIndexer(id, key, value)\n```\n\nSee also `t.isObjectTypeIndexer(node, opts)` and `t.assertObjectTypeIndexer(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `id` (required)\n - `key` (required)\n - `value` (required)\n\n---\n\n### objectTypeProperty\n```javascript\nt.objectTypeProperty(key, value)\n```\n\nSee also `t.isObjectTypeProperty(node, opts)` and `t.assertObjectTypeProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `key` (required)\n - `value` (required)\n\n---\n\n### parenthesizedExpression\n```javascript\nt.parenthesizedExpression(expression)\n```\n\nSee also `t.isParenthesizedExpression(node, opts)` and `t.assertParenthesizedExpression(node, opts)`.\n\nAliases: `Expression`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### program\n```javascript\nt.program(body, directives)\n```\n\nSee also `t.isProgram(node, opts)` and `t.assertProgram(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `FunctionParent`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### qualifiedTypeIdentifier\n```javascript\nt.qualifiedTypeIdentifier(id, qualification)\n```\n\nSee also `t.isQualifiedTypeIdentifier(node, opts)` and `t.assertQualifiedTypeIdentifier(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `qualification` (required)\n\n---\n\n### regExpLiteral\n```javascript\nt.regExpLiteral(pattern, flags)\n```\n\nSee also `t.isRegExpLiteral(node, opts)` and `t.assertRegExpLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `pattern`: `string` (required)\n - `flags`: `string` (default: `''`)\n\n---\n\n### restElement\n```javascript\nt.restElement(argument, typeAnnotation)\n```\n\nSee also `t.isRestElement(node, opts)` and `t.assertRestElement(node, opts)`.\n\nAliases: `LVal`\n\n - `argument`: `LVal` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### restProperty\n```javascript\nt.restProperty(argument)\n```\n\nSee also `t.isRestProperty(node, opts)` and `t.assertRestProperty(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `LVal` (required)\n\n---\n\n### returnStatement\n```javascript\nt.returnStatement(argument)\n```\n\nSee also `t.isReturnStatement(node, opts)` and `t.assertReturnStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (default: `null`)\n\n---\n\n### sequenceExpression\n```javascript\nt.sequenceExpression(expressions)\n```\n\nSee also `t.isSequenceExpression(node, opts)` and `t.assertSequenceExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### spreadElement\n```javascript\nt.spreadElement(argument)\n```\n\nSee also `t.isSpreadElement(node, opts)` and `t.assertSpreadElement(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `Expression` (required)\n\n---\n\n### spreadProperty\n```javascript\nt.spreadProperty(argument)\n```\n\nSee also `t.isSpreadProperty(node, opts)` and `t.assertSpreadProperty(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `Expression` (required)\n\n---\n\n### stringLiteral\n```javascript\nt.stringLiteral(value)\n```\n\nSee also `t.isStringLiteral(node, opts)` and `t.assertStringLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### stringLiteralTypeAnnotation\n```javascript\nt.stringLiteralTypeAnnotation()\n```\n\nSee also `t.isStringLiteralTypeAnnotation(node, opts)` and `t.assertStringLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### stringTypeAnnotation\n```javascript\nt.stringTypeAnnotation()\n```\n\nSee also `t.isStringTypeAnnotation(node, opts)` and `t.assertStringTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### super\n```javascript\nt.super()\n```\n\nSee also `t.isSuper(node, opts)` and `t.assertSuper(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### switchCase\n```javascript\nt.switchCase(test, consequent)\n```\n\nSee also `t.isSwitchCase(node, opts)` and `t.assertSwitchCase(node, opts)`.\n\n - `test`: `Expression` (default: `null`)\n - `consequent`: `Array<Statement>` (required)\n\n---\n\n### switchStatement\n```javascript\nt.switchStatement(discriminant, cases)\n```\n\nSee also `t.isSwitchStatement(node, opts)` and `t.assertSwitchStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Scopable`\n\n - `discriminant`: `Expression` (required)\n - `cases`: `Array<SwitchCase>` (required)\n\n---\n\n### taggedTemplateExpression\n```javascript\nt.taggedTemplateExpression(tag, quasi)\n```\n\nSee also `t.isTaggedTemplateExpression(node, opts)` and `t.assertTaggedTemplateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `tag`: `Expression` (required)\n - `quasi`: `TemplateLiteral` (required)\n\n---\n\n### templateElement\n```javascript\nt.templateElement(value, tail)\n```\n\nSee also `t.isTemplateElement(node, opts)` and `t.assertTemplateElement(node, opts)`.\n\n - `value` (required)\n - `tail`: `boolean` (default: `false`)\n\n---\n\n### templateLiteral\n```javascript\nt.templateLiteral(quasis, expressions)\n```\n\nSee also `t.isTemplateLiteral(node, opts)` and `t.assertTemplateLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `quasis`: `Array<TemplateElement>` (required)\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### thisExpression\n```javascript\nt.thisExpression()\n```\n\nSee also `t.isThisExpression(node, opts)` and `t.assertThisExpression(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### thisTypeAnnotation\n```javascript\nt.thisTypeAnnotation()\n```\n\nSee also `t.isThisTypeAnnotation(node, opts)` and `t.assertThisTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### throwStatement\n```javascript\nt.throwStatement(argument)\n```\n\nSee also `t.isThrowStatement(node, opts)` and `t.assertThrowStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (required)\n\n---\n\n### tryStatement\n```javascript\nt.tryStatement(block, handler, finalizer)\n```\n\nSee also `t.isTryStatement(node, opts)` and `t.assertTryStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `block` (required)\n - `handler` (default: `null`)\n - `finalizer`: `BlockStatement` (default: `null`)\n - `body`: `BlockStatement` (default: `null`)\n\n---\n\n### tupleTypeAnnotation\n```javascript\nt.tupleTypeAnnotation(types)\n```\n\nSee also `t.isTupleTypeAnnotation(node, opts)` and `t.assertTupleTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### typeAlias\n```javascript\nt.typeAlias(id, typeParameters, right)\n```\n\nSee also `t.isTypeAlias(node, opts)` and `t.assertTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### typeAnnotation\n```javascript\nt.typeAnnotation(typeAnnotation)\n```\n\nSee also `t.isTypeAnnotation(node, opts)` and `t.assertTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### typeCastExpression\n```javascript\nt.typeCastExpression(expression, typeAnnotation)\n```\n\nSee also `t.isTypeCastExpression(node, opts)` and `t.assertTypeCastExpression(node, opts)`.\n\nAliases: `Flow`, `ExpressionWrapper`, `Expression`\n\n - `expression` (required)\n - `typeAnnotation` (required)\n\n---\n\n### typeParameter\n```javascript\nt.typeParameter(bound)\n```\n\nSee also `t.isTypeParameter(node, opts)` and `t.assertTypeParameter(node, opts)`.\n\nAliases: `Flow`\n\n - `bound` (required)\n\n---\n\n### typeParameterDeclaration\n```javascript\nt.typeParameterDeclaration(params)\n```\n\nSee also `t.isTypeParameterDeclaration(node, opts)` and `t.assertTypeParameterDeclaration(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeParameterInstantiation\n```javascript\nt.typeParameterInstantiation(params)\n```\n\nSee also `t.isTypeParameterInstantiation(node, opts)` and `t.assertTypeParameterInstantiation(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeofTypeAnnotation\n```javascript\nt.typeofTypeAnnotation(argument)\n```\n\nSee also `t.isTypeofTypeAnnotation(node, opts)` and `t.assertTypeofTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `argument` (required)\n\n---\n\n### unaryExpression\n```javascript\nt.unaryExpression(operator, argument, prefix)\n```\n\nSee also `t.isUnaryExpression(node, opts)` and `t.assertUnaryExpression(node, opts)`.\n\nAliases: `UnaryLike`, `Expression`\n\n - `operator`: `'void' | 'delete' | '!' | '+' | '-' | '++' | '--' | '~' | 'typeof'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `true`)\n\n---\n\n### unionTypeAnnotation\n```javascript\nt.unionTypeAnnotation(types)\n```\n\nSee also `t.isUnionTypeAnnotation(node, opts)` and `t.assertUnionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### updateExpression\n```javascript\nt.updateExpression(operator, argument, prefix)\n```\n\nSee also `t.isUpdateExpression(node, opts)` and `t.assertUpdateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `'++' | '--'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `false`)\n\n---\n\n### variableDeclaration\n```javascript\nt.variableDeclaration(kind, declarations)\n```\n\nSee also `t.isVariableDeclaration(node, opts)` and `t.assertVariableDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`\n\n - `kind`: `\"var\" | \"let\" | \"const\"` (required)\n - `declarations`: `Array<VariableDeclarator>` (required)\n\n---\n\n### variableDeclarator\n```javascript\nt.variableDeclarator(id, init)\n```\n\nSee also `t.isVariableDeclarator(node, opts)` and `t.assertVariableDeclarator(node, opts)`.\n\n - `id`: `LVal` (required)\n - `init`: `Expression` (default: `null`)\n\n---\n\n### voidTypeAnnotation\n```javascript\nt.voidTypeAnnotation()\n```\n\nSee also `t.isVoidTypeAnnotation(node, opts)` and `t.assertVoidTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### whileStatement\n```javascript\nt.whileStatement(test, body)\n```\n\nSee also `t.isWhileStatement(node, opts)` and `t.assertWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### withStatement\n```javascript\nt.withStatement(object, body)\n```\n\nSee also `t.isWithStatement(node, opts)` and `t.assertWithStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `object` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### yieldExpression\n```javascript\nt.yieldExpression(argument, delegate)\n```\n\nSee also `t.isYieldExpression(node, opts)` and `t.assertYieldExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (default: `null`)\n - `delegate`: `boolean` (default: `false`)\n\n---\n\n\n<!-- end generated section -->\n\n",
+ "readme": "# babel-types\n\n> This module contains methods for building ASTs manually and for checking the types of AST nodes.\n\n## Install\n\n```sh\nnpm install --save-dev babel-types\n```\n\n## API\n\n<!-- begin generated section -->\n\n### anyTypeAnnotation\n```javascript\nt.anyTypeAnnotation()\n```\n\nSee also `t.isAnyTypeAnnotation(node, opts)` and `t.assertAnyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### arrayExpression\n```javascript\nt.arrayExpression(elements)\n```\n\nSee also `t.isArrayExpression(node, opts)` and `t.assertArrayExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `elements`: `Array<null | Expression | SpreadElement>` (default: `[]`)\n\n---\n\n### arrayPattern\n```javascript\nt.arrayPattern(elements, typeAnnotation)\n```\n\nSee also `t.isArrayPattern(node, opts)` and `t.assertArrayPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `elements`: `Array<Identifier | Pattern | RestElement>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### arrayTypeAnnotation\n```javascript\nt.arrayTypeAnnotation(elementType)\n```\n\nSee also `t.isArrayTypeAnnotation(node, opts)` and `t.assertArrayTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `elementType` (required)\n\n---\n\n### arrowFunctionExpression\n```javascript\nt.arrowFunctionExpression(params, body, async)\n```\n\nSee also `t.isArrowFunctionExpression(node, opts)` and `t.assertArrowFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement | Expression` (required)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### assignmentExpression\n```javascript\nt.assignmentExpression(operator, left, right)\n```\n\nSee also `t.isAssignmentExpression(node, opts)` and `t.assertAssignmentExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `string` (required)\n - `left`: `LVal` (required)\n - `right`: `Expression` (required)\n\n---\n\n### assignmentPattern\n```javascript\nt.assignmentPattern(left, right)\n```\n\nSee also `t.isAssignmentPattern(node, opts)` and `t.assertAssignmentPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `left`: `Identifier` (required)\n - `right`: `Expression` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### awaitExpression\n```javascript\nt.awaitExpression(argument)\n```\n\nSee also `t.isAwaitExpression(node, opts)` and `t.assertAwaitExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (required)\n\n---\n\n### binaryExpression\n```javascript\nt.binaryExpression(operator, left, right)\n```\n\nSee also `t.isBinaryExpression(node, opts)` and `t.assertBinaryExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<='` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### bindExpression\n```javascript\nt.bindExpression(object, callee)\n```\n\nSee also `t.isBindExpression(node, opts)` and `t.assertBindExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `object` (required)\n - `callee` (required)\n\n---\n\n### blockStatement\n```javascript\nt.blockStatement(body, directives)\n```\n\nSee also `t.isBlockStatement(node, opts)` and `t.assertBlockStatement(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `Statement`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### booleanLiteral\n```javascript\nt.booleanLiteral(value)\n```\n\nSee also `t.isBooleanLiteral(node, opts)` and `t.assertBooleanLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `boolean` (required)\n\n---\n\n### booleanLiteralTypeAnnotation\n```javascript\nt.booleanLiteralTypeAnnotation()\n```\n\nSee also `t.isBooleanLiteralTypeAnnotation(node, opts)` and `t.assertBooleanLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### booleanTypeAnnotation\n```javascript\nt.booleanTypeAnnotation()\n```\n\nSee also `t.isBooleanTypeAnnotation(node, opts)` and `t.assertBooleanTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### breakStatement\n```javascript\nt.breakStatement(label)\n```\n\nSee also `t.isBreakStatement(node, opts)` and `t.assertBreakStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### callExpression\n```javascript\nt.callExpression(callee, arguments)\n```\n\nSee also `t.isCallExpression(node, opts)` and `t.assertCallExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### catchClause\n```javascript\nt.catchClause(param, body)\n```\n\nSee also `t.isCatchClause(node, opts)` and `t.assertCatchClause(node, opts)`.\n\nAliases: `Scopable`\n\n - `param`: `Identifier` (required)\n - `body`: `BlockStatement` (required)\n\n---\n\n### classBody\n```javascript\nt.classBody(body)\n```\n\nSee also `t.isClassBody(node, opts)` and `t.assertClassBody(node, opts)`.\n\n - `body`: `Array<ClassMethod | ClassProperty>` (required)\n\n---\n\n### classDeclaration\n```javascript\nt.classDeclaration(id, superClass, body, decorators)\n```\n\nSee also `t.isClassDeclaration(node, opts)` and `t.assertClassDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Statement`, `Declaration`, `Pureish`\n\n - `id`: `Identifier` (required)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classExpression\n```javascript\nt.classExpression(id, superClass, body, decorators)\n```\n\nSee also `t.isClassExpression(node, opts)` and `t.assertClassExpression(node, opts)`.\n\nAliases: `Scopable`, `Class`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `superClass`: `Expression` (default: `null`)\n - `body`: `ClassBody` (required)\n - `decorators`: `Array<Decorator>` (required)\n - `implements` (default: `null`)\n - `mixins` (default: `null`)\n - `superTypeParameters` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classImplements\n```javascript\nt.classImplements(id, typeParameters)\n```\n\nSee also `t.isClassImplements(node, opts)` and `t.assertClassImplements(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### classMethod\n```javascript\nt.classMethod(kind, key, params, body, computed, static)\n```\n\nSee also `t.isClassMethod(node, opts)` and `t.assertClassMethod(node, opts)`.\n\nAliases: `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`\n\n - `kind`: `\"get\" | \"set\" | \"method\" | \"constructor\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `static`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### classProperty\n```javascript\nt.classProperty(key, value, typeAnnotation, decorators, computed)\n```\n\nSee also `t.isClassProperty(node, opts)` and `t.assertClassProperty(node, opts)`.\n\nAliases: `Property`\n\n - `key` (required)\n - `value` (required)\n - `typeAnnotation` (required)\n - `decorators` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### conditionalExpression\n```javascript\nt.conditionalExpression(test, consequent, alternate)\n```\n\nSee also `t.isConditionalExpression(node, opts)` and `t.assertConditionalExpression(node, opts)`.\n\nAliases: `Expression`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Expression` (required)\n - `alternate`: `Expression` (required)\n\n---\n\n### continueStatement\n```javascript\nt.continueStatement(label)\n```\n\nSee also `t.isContinueStatement(node, opts)` and `t.assertContinueStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `label`: `Identifier` (default: `null`)\n\n---\n\n### debuggerStatement\n```javascript\nt.debuggerStatement()\n```\n\nSee also `t.isDebuggerStatement(node, opts)` and `t.assertDebuggerStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### declareClass\n```javascript\nt.declareClass(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareClass(node, opts)` and `t.assertDeclareClass(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareFunction\n```javascript\nt.declareFunction(id)\n```\n\nSee also `t.isDeclareFunction(node, opts)` and `t.assertDeclareFunction(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### declareInterface\n```javascript\nt.declareInterface(id, typeParameters, extends, body)\n```\n\nSee also `t.isDeclareInterface(node, opts)` and `t.assertDeclareInterface(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### declareModule\n```javascript\nt.declareModule(id, body)\n```\n\nSee also `t.isDeclareModule(node, opts)` and `t.assertDeclareModule(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `body` (required)\n\n---\n\n### declareModuleExports\n```javascript\nt.declareModuleExports(typeAnnotation)\n```\n\nSee also `t.isDeclareModuleExports(node, opts)` and `t.assertDeclareModuleExports(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `typeAnnotation` (required)\n\n---\n\n### declareTypeAlias\n```javascript\nt.declareTypeAlias(id, typeParameters, right)\n```\n\nSee also `t.isDeclareTypeAlias(node, opts)` and `t.assertDeclareTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### declareVariable\n```javascript\nt.declareVariable(id)\n```\n\nSee also `t.isDeclareVariable(node, opts)` and `t.assertDeclareVariable(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n\n---\n\n### decorator\n```javascript\nt.decorator(expression)\n```\n\nSee also `t.isDecorator(node, opts)` and `t.assertDecorator(node, opts)`.\n\n - `expression`: `Expression` (required)\n\n---\n\n### directive\n```javascript\nt.directive(value)\n```\n\nSee also `t.isDirective(node, opts)` and `t.assertDirective(node, opts)`.\n\n - `value`: `DirectiveLiteral` (required)\n\n---\n\n### directiveLiteral\n```javascript\nt.directiveLiteral(value)\n```\n\nSee also `t.isDirectiveLiteral(node, opts)` and `t.assertDirectiveLiteral(node, opts)`.\n\n - `value`: `string` (required)\n\n---\n\n### doExpression\n```javascript\nt.doExpression(body)\n```\n\nSee also `t.isDoExpression(node, opts)` and `t.assertDoExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `body`: `BlockStatement` (required)\n\n---\n\n### doWhileStatement\n```javascript\nt.doWhileStatement(test, body)\n```\n\nSee also `t.isDoWhileStatement(node, opts)` and `t.assertDoWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### emptyStatement\n```javascript\nt.emptyStatement()\n```\n\nSee also `t.isEmptyStatement(node, opts)` and `t.assertEmptyStatement(node, opts)`.\n\nAliases: `Statement`\n\n\n---\n\n### emptyTypeAnnotation\n```javascript\nt.emptyTypeAnnotation()\n```\n\nSee also `t.isEmptyTypeAnnotation(node, opts)` and `t.assertEmptyTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### existentialTypeParam\n```javascript\nt.existentialTypeParam()\n```\n\nSee also `t.isExistentialTypeParam(node, opts)` and `t.assertExistentialTypeParam(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### exportAllDeclaration\n```javascript\nt.exportAllDeclaration(source)\n```\n\nSee also `t.isExportAllDeclaration(node, opts)` and `t.assertExportAllDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `source`: `StringLiteral` (required)\n\n---\n\n### exportDefaultDeclaration\n```javascript\nt.exportDefaultDeclaration(declaration)\n```\n\nSee also `t.isExportDefaultDeclaration(node, opts)` and `t.assertExportDefaultDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `FunctionDeclaration | ClassDeclaration | Expression` (required)\n\n---\n\n### exportDefaultSpecifier\n```javascript\nt.exportDefaultSpecifier(exported)\n```\n\nSee also `t.isExportDefaultSpecifier(node, opts)` and `t.assertExportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportNamedDeclaration\n```javascript\nt.exportNamedDeclaration(declaration, specifiers, source)\n```\n\nSee also `t.isExportNamedDeclaration(node, opts)` and `t.assertExportNamedDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`, `ExportDeclaration`\n\n - `declaration`: `Declaration` (default: `null`)\n - `specifiers`: `Array<ExportSpecifier>` (required)\n - `source`: `StringLiteral` (default: `null`)\n\n---\n\n### exportNamespaceSpecifier\n```javascript\nt.exportNamespaceSpecifier(exported)\n```\n\nSee also `t.isExportNamespaceSpecifier(node, opts)` and `t.assertExportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `exported`: `Identifier` (required)\n\n---\n\n### exportSpecifier\n```javascript\nt.exportSpecifier(local, exported)\n```\n\nSee also `t.isExportSpecifier(node, opts)` and `t.assertExportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `exported`: `Identifier` (required)\n\n---\n\n### expressionStatement\n```javascript\nt.expressionStatement(expression)\n```\n\nSee also `t.isExpressionStatement(node, opts)` and `t.assertExpressionStatement(node, opts)`.\n\nAliases: `Statement`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### file\n```javascript\nt.file(program, comments, tokens)\n```\n\nSee also `t.isFile(node, opts)` and `t.assertFile(node, opts)`.\n\n - `program`: `Program` (required)\n - `comments` (required)\n - `tokens` (required)\n\n---\n\n### forAwaitStatement\n```javascript\nt.forAwaitStatement(left, right, body)\n```\n\nSee also `t.isForAwaitStatement(node, opts)` and `t.assertForAwaitStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forInStatement\n```javascript\nt.forInStatement(left, right, body)\n```\n\nSee also `t.isForInStatement(node, opts)` and `t.assertForInStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forOfStatement\n```javascript\nt.forOfStatement(left, right, body)\n```\n\nSee also `t.isForOfStatement(node, opts)` and `t.assertForOfStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`, `ForXStatement`\n\n - `left`: `VariableDeclaration | LVal` (required)\n - `right`: `Expression` (required)\n - `body`: `Statement` (required)\n\n---\n\n### forStatement\n```javascript\nt.forStatement(init, test, update, body)\n```\n\nSee also `t.isForStatement(node, opts)` and `t.assertForStatement(node, opts)`.\n\nAliases: `Scopable`, `Statement`, `For`, `BlockParent`, `Loop`\n\n - `init`: `VariableDeclaration | Expression` (default: `null`)\n - `test`: `Expression` (default: `null`)\n - `update`: `Expression` (default: `null`)\n - `body`: `Statement` (required)\n\n---\n\n### functionDeclaration\n```javascript\nt.functionDeclaration(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionDeclaration(node, opts)` and `t.assertFunctionDeclaration(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Statement`, `Pureish`, `Declaration`\n\n - `id`: `Identifier` (required)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionExpression\n```javascript\nt.functionExpression(id, params, body, generator, async)\n```\n\nSee also `t.isFunctionExpression(node, opts)` and `t.assertFunctionExpression(node, opts)`.\n\nAliases: `Scopable`, `Function`, `BlockParent`, `FunctionParent`, `Expression`, `Pureish`\n\n - `id`: `Identifier` (default: `null`)\n - `params`: `Array<LVal>` (required)\n - `body`: `BlockStatement` (required)\n - `generator`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### functionTypeAnnotation\n```javascript\nt.functionTypeAnnotation(typeParameters, params, rest, returnType)\n```\n\nSee also `t.isFunctionTypeAnnotation(node, opts)` and `t.assertFunctionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeParameters` (required)\n - `params` (required)\n - `rest` (required)\n - `returnType` (required)\n\n---\n\n### functionTypeParam\n```javascript\nt.functionTypeParam(name, typeAnnotation)\n```\n\nSee also `t.isFunctionTypeParam(node, opts)` and `t.assertFunctionTypeParam(node, opts)`.\n\nAliases: `Flow`\n\n - `name` (required)\n - `typeAnnotation` (required)\n\n---\n\n### genericTypeAnnotation\n```javascript\nt.genericTypeAnnotation(id, typeParameters)\n```\n\nSee also `t.isGenericTypeAnnotation(node, opts)` and `t.assertGenericTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### identifier\n```javascript\nt.identifier(name)\n```\n\nSee also `t.isIdentifier(node, opts)` and `t.assertIdentifier(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `name``string` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `typeAnnotation` (default: `null`)\n\n---\n\n### ifStatement\n```javascript\nt.ifStatement(test, consequent, alternate)\n```\n\nSee also `t.isIfStatement(node, opts)` and `t.assertIfStatement(node, opts)`.\n\nAliases: `Statement`, `Conditional`\n\n - `test`: `Expression` (required)\n - `consequent`: `Statement` (required)\n - `alternate`: `Statement` (default: `null`)\n\n---\n\n### import\n```javascript\nt.import()\n```\n\nSee also `t.isImport(node, opts)` and `t.assertImport(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### importDeclaration\n```javascript\nt.importDeclaration(specifiers, source)\n```\n\nSee also `t.isImportDeclaration(node, opts)` and `t.assertImportDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`, `ModuleDeclaration`\n\n - `specifiers`: `Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>` (required)\n - `source`: `StringLiteral` (required)\n\n---\n\n### importDefaultSpecifier\n```javascript\nt.importDefaultSpecifier(local)\n```\n\nSee also `t.isImportDefaultSpecifier(node, opts)` and `t.assertImportDefaultSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importNamespaceSpecifier\n```javascript\nt.importNamespaceSpecifier(local)\n```\n\nSee also `t.isImportNamespaceSpecifier(node, opts)` and `t.assertImportNamespaceSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n\n---\n\n### importSpecifier\n```javascript\nt.importSpecifier(local, imported)\n```\n\nSee also `t.isImportSpecifier(node, opts)` and `t.assertImportSpecifier(node, opts)`.\n\nAliases: `ModuleSpecifier`\n\n - `local`: `Identifier` (required)\n - `imported`: `Identifier` (required)\n - `importKind`: `null | 'type' | 'typeof'` (default: `null`)\n\n---\n\n### interfaceDeclaration\n```javascript\nt.interfaceDeclaration(id, typeParameters, extends, body)\n```\n\nSee also `t.isInterfaceDeclaration(node, opts)` and `t.assertInterfaceDeclaration(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `extends` (required)\n - `body` (required)\n\n---\n\n### interfaceExtends\n```javascript\nt.interfaceExtends(id, typeParameters)\n```\n\nSee also `t.isInterfaceExtends(node, opts)` and `t.assertInterfaceExtends(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `typeParameters` (required)\n\n---\n\n### intersectionTypeAnnotation\n```javascript\nt.intersectionTypeAnnotation(types)\n```\n\nSee also `t.isIntersectionTypeAnnotation(node, opts)` and `t.assertIntersectionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### jSXAttribute\n```javascript\nt.jSXAttribute(name, value)\n```\n\nSee also `t.isJSXAttribute(node, opts)` and `t.assertJSXAttribute(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXNamespacedName` (required)\n - `value`: `JSXElement | StringLiteral | JSXExpressionContainer` (default: `null`)\n\n---\n\n### jSXClosingElement\n```javascript\nt.jSXClosingElement(name)\n```\n\nSee also `t.isJSXClosingElement(node, opts)` and `t.assertJSXClosingElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n\n---\n\n### jSXElement\n```javascript\nt.jSXElement(openingElement, closingElement, children, selfClosing)\n```\n\nSee also `t.isJSXElement(node, opts)` and `t.assertJSXElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`, `Expression`\n\n - `openingElement`: `JSXOpeningElement` (required)\n - `closingElement`: `JSXClosingElement` (default: `null`)\n - `children`: `Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement>` (required)\n - `selfClosing` (required)\n\n---\n\n### jSXEmptyExpression\n```javascript\nt.jSXEmptyExpression()\n```\n\nSee also `t.isJSXEmptyExpression(node, opts)` and `t.assertJSXEmptyExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n\n---\n\n### jSXExpressionContainer\n```javascript\nt.jSXExpressionContainer(expression)\n```\n\nSee also `t.isJSXExpressionContainer(node, opts)` and `t.assertJSXExpressionContainer(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXIdentifier\n```javascript\nt.jSXIdentifier(name)\n```\n\nSee also `t.isJSXIdentifier(node, opts)` and `t.assertJSXIdentifier(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `name`: `string` (required)\n\n---\n\n### jSXMemberExpression\n```javascript\nt.jSXMemberExpression(object, property)\n```\n\nSee also `t.isJSXMemberExpression(node, opts)` and `t.assertJSXMemberExpression(node, opts)`.\n\nAliases: `JSX`, `Expression`\n\n - `object`: `JSXMemberExpression | JSXIdentifier` (required)\n - `property`: `JSXIdentifier` (required)\n\n---\n\n### jSXNamespacedName\n```javascript\nt.jSXNamespacedName(namespace, name)\n```\n\nSee also `t.isJSXNamespacedName(node, opts)` and `t.assertJSXNamespacedName(node, opts)`.\n\nAliases: `JSX`\n\n - `namespace`: `JSXIdentifier` (required)\n - `name`: `JSXIdentifier` (required)\n\n---\n\n### jSXOpeningElement\n```javascript\nt.jSXOpeningElement(name, attributes, selfClosing)\n```\n\nSee also `t.isJSXOpeningElement(node, opts)` and `t.assertJSXOpeningElement(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `name`: `JSXIdentifier | JSXMemberExpression` (required)\n - `attributes`: `Array<JSXAttribute | JSXSpreadAttribute>` (required)\n - `selfClosing`: `boolean` (default: `false`)\n\n---\n\n### jSXSpreadAttribute\n```javascript\nt.jSXSpreadAttribute(argument)\n```\n\nSee also `t.isJSXSpreadAttribute(node, opts)` and `t.assertJSXSpreadAttribute(node, opts)`.\n\nAliases: `JSX`\n\n - `argument`: `Expression` (required)\n\n---\n\n### jSXSpreadChild\n```javascript\nt.jSXSpreadChild(expression)\n```\n\nSee also `t.isJSXSpreadChild(node, opts)` and `t.assertJSXSpreadChild(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `expression`: `Expression` (required)\n\n---\n\n### jSXText\n```javascript\nt.jSXText(value)\n```\n\nSee also `t.isJSXText(node, opts)` and `t.assertJSXText(node, opts)`.\n\nAliases: `JSX`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### labeledStatement\n```javascript\nt.labeledStatement(label, body)\n```\n\nSee also `t.isLabeledStatement(node, opts)` and `t.assertLabeledStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `label`: `Identifier` (required)\n - `body`: `Statement` (required)\n\n---\n\n### logicalExpression\n```javascript\nt.logicalExpression(operator, left, right)\n```\n\nSee also `t.isLogicalExpression(node, opts)` and `t.assertLogicalExpression(node, opts)`.\n\nAliases: `Binary`, `Expression`\n\n - `operator`: `'||' | '&&'` (required)\n - `left`: `Expression` (required)\n - `right`: `Expression` (required)\n\n---\n\n### memberExpression\n```javascript\nt.memberExpression(object, property, computed)\n```\n\nSee also `t.isMemberExpression(node, opts)` and `t.assertMemberExpression(node, opts)`.\n\nAliases: `Expression`, `LVal`\n\n - `object`: `Expression` (required)\n - `property`if computed then `Expression` else `Identifier` (required)\n - `computed`: `boolean` (default: `false`)\n\n---\n\n### metaProperty\n```javascript\nt.metaProperty(meta, property)\n```\n\nSee also `t.isMetaProperty(node, opts)` and `t.assertMetaProperty(node, opts)`.\n\nAliases: `Expression`\n\n - `meta`: `string` (required)\n - `property`: `string` (required)\n\n---\n\n### mixedTypeAnnotation\n```javascript\nt.mixedTypeAnnotation()\n```\n\nSee also `t.isMixedTypeAnnotation(node, opts)` and `t.assertMixedTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### newExpression\n```javascript\nt.newExpression(callee, arguments)\n```\n\nSee also `t.isNewExpression(node, opts)` and `t.assertNewExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `callee`: `Expression` (required)\n - `arguments`: `Array<Expression | SpreadElement>` (required)\n\n---\n\n### noop\n```javascript\nt.noop()\n```\n\nSee also `t.isNoop(node, opts)` and `t.assertNoop(node, opts)`.\n\n\n---\n\n### nullLiteral\n```javascript\nt.nullLiteral()\n```\n\nSee also `t.isNullLiteral(node, opts)` and `t.assertNullLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n\n---\n\n### nullLiteralTypeAnnotation\n```javascript\nt.nullLiteralTypeAnnotation()\n```\n\nSee also `t.isNullLiteralTypeAnnotation(node, opts)` and `t.assertNullLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### nullableTypeAnnotation\n```javascript\nt.nullableTypeAnnotation(typeAnnotation)\n```\n\nSee also `t.isNullableTypeAnnotation(node, opts)` and `t.assertNullableTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### numberTypeAnnotation\n```javascript\nt.numberTypeAnnotation()\n```\n\nSee also `t.isNumberTypeAnnotation(node, opts)` and `t.assertNumberTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### numericLiteral\n```javascript\nt.numericLiteral(value)\n```\n\nSee also `t.isNumericLiteral(node, opts)` and `t.assertNumericLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `number` (required)\n\n---\n\n### numericLiteralTypeAnnotation\n```javascript\nt.numericLiteralTypeAnnotation()\n```\n\nSee also `t.isNumericLiteralTypeAnnotation(node, opts)` and `t.assertNumericLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### objectExpression\n```javascript\nt.objectExpression(properties)\n```\n\nSee also `t.isObjectExpression(node, opts)` and `t.assertObjectExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `properties`: `Array<ObjectMethod | ObjectProperty | SpreadProperty>` (required)\n\n---\n\n### objectMethod\n```javascript\nt.objectMethod(kind, key, params, body, computed)\n```\n\nSee also `t.isObjectMethod(node, opts)` and `t.assertObjectMethod(node, opts)`.\n\nAliases: `UserWhitespacable`, `Function`, `Scopable`, `BlockParent`, `FunctionParent`, `Method`, `ObjectMember`\n\n - `kind`: `\"method\" | \"get\" | \"set\"` (default: `'method'`)\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `params` (required)\n - `body`: `BlockStatement` (required)\n - `computed`: `boolean` (default: `false`)\n - `async`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n - `generator`: `boolean` (default: `false`)\n - `returnType` (default: `null`)\n - `typeParameters` (default: `null`)\n\n---\n\n### objectPattern\n```javascript\nt.objectPattern(properties, typeAnnotation)\n```\n\nSee also `t.isObjectPattern(node, opts)` and `t.assertObjectPattern(node, opts)`.\n\nAliases: `Pattern`, `LVal`\n\n - `properties`: `Array<RestProperty | Property>` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectProperty\n```javascript\nt.objectProperty(key, value, computed, shorthand, decorators)\n```\n\nSee also `t.isObjectProperty(node, opts)` and `t.assertObjectProperty(node, opts)`.\n\nAliases: `UserWhitespacable`, `Property`, `ObjectMember`\n\n - `key`if computed then `Expression` else `Identifier | Literal` (required)\n - `value`: `Expression | Pattern | RestElement` (required)\n - `computed`: `boolean` (default: `false`)\n - `shorthand`: `boolean` (default: `false`)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### objectTypeAnnotation\n```javascript\nt.objectTypeAnnotation(properties, indexers, callProperties)\n```\n\nSee also `t.isObjectTypeAnnotation(node, opts)` and `t.assertObjectTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `properties` (required)\n - `indexers` (required)\n - `callProperties` (required)\n\n---\n\n### objectTypeCallProperty\n```javascript\nt.objectTypeCallProperty(value)\n```\n\nSee also `t.isObjectTypeCallProperty(node, opts)` and `t.assertObjectTypeCallProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `value` (required)\n\n---\n\n### objectTypeIndexer\n```javascript\nt.objectTypeIndexer(id, key, value)\n```\n\nSee also `t.isObjectTypeIndexer(node, opts)` and `t.assertObjectTypeIndexer(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `id` (required)\n - `key` (required)\n - `value` (required)\n\n---\n\n### objectTypeProperty\n```javascript\nt.objectTypeProperty(key, value)\n```\n\nSee also `t.isObjectTypeProperty(node, opts)` and `t.assertObjectTypeProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `key` (required)\n - `value` (required)\n\n---\n\n### objectTypeSpreadProperty\n```javascript\nt.objectTypeSpreadProperty(argument)\n```\n\nSee also `t.isObjectTypeSpreadProperty(node, opts)` and `t.assertObjectTypeSpreadProperty(node, opts)`.\n\nAliases: `Flow`, `UserWhitespacable`\n\n - `argument` (required)\n\n---\n\n### parenthesizedExpression\n```javascript\nt.parenthesizedExpression(expression)\n```\n\nSee also `t.isParenthesizedExpression(node, opts)` and `t.assertParenthesizedExpression(node, opts)`.\n\nAliases: `Expression`, `ExpressionWrapper`\n\n - `expression`: `Expression` (required)\n\n---\n\n### program\n```javascript\nt.program(body, directives)\n```\n\nSee also `t.isProgram(node, opts)` and `t.assertProgram(node, opts)`.\n\nAliases: `Scopable`, `BlockParent`, `Block`, `FunctionParent`\n\n - `body`: `Array<Statement>` (required)\n - `directives`: `Array<Directive>` (default: `[]`)\n\n---\n\n### qualifiedTypeIdentifier\n```javascript\nt.qualifiedTypeIdentifier(id, qualification)\n```\n\nSee also `t.isQualifiedTypeIdentifier(node, opts)` and `t.assertQualifiedTypeIdentifier(node, opts)`.\n\nAliases: `Flow`\n\n - `id` (required)\n - `qualification` (required)\n\n---\n\n### regExpLiteral\n```javascript\nt.regExpLiteral(pattern, flags)\n```\n\nSee also `t.isRegExpLiteral(node, opts)` and `t.assertRegExpLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `pattern`: `string` (required)\n - `flags`: `string` (default: `''`)\n\n---\n\n### restElement\n```javascript\nt.restElement(argument, typeAnnotation)\n```\n\nSee also `t.isRestElement(node, opts)` and `t.assertRestElement(node, opts)`.\n\nAliases: `LVal`\n\n - `argument`: `LVal` (required)\n - `typeAnnotation` (required)\n - `decorators`: `Array<Decorator>` (default: `null`)\n\n---\n\n### restProperty\n```javascript\nt.restProperty(argument)\n```\n\nSee also `t.isRestProperty(node, opts)` and `t.assertRestProperty(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `LVal` (required)\n\n---\n\n### returnStatement\n```javascript\nt.returnStatement(argument)\n```\n\nSee also `t.isReturnStatement(node, opts)` and `t.assertReturnStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (default: `null`)\n\n---\n\n### sequenceExpression\n```javascript\nt.sequenceExpression(expressions)\n```\n\nSee also `t.isSequenceExpression(node, opts)` and `t.assertSequenceExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### spreadElement\n```javascript\nt.spreadElement(argument)\n```\n\nSee also `t.isSpreadElement(node, opts)` and `t.assertSpreadElement(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `Expression` (required)\n\n---\n\n### spreadProperty\n```javascript\nt.spreadProperty(argument)\n```\n\nSee also `t.isSpreadProperty(node, opts)` and `t.assertSpreadProperty(node, opts)`.\n\nAliases: `UnaryLike`\n\n - `argument`: `Expression` (required)\n\n---\n\n### stringLiteral\n```javascript\nt.stringLiteral(value)\n```\n\nSee also `t.isStringLiteral(node, opts)` and `t.assertStringLiteral(node, opts)`.\n\nAliases: `Expression`, `Pureish`, `Literal`, `Immutable`\n\n - `value`: `string` (required)\n\n---\n\n### stringLiteralTypeAnnotation\n```javascript\nt.stringLiteralTypeAnnotation()\n```\n\nSee also `t.isStringLiteralTypeAnnotation(node, opts)` and `t.assertStringLiteralTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n\n---\n\n### stringTypeAnnotation\n```javascript\nt.stringTypeAnnotation()\n```\n\nSee also `t.isStringTypeAnnotation(node, opts)` and `t.assertStringTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### super\n```javascript\nt.super()\n```\n\nSee also `t.isSuper(node, opts)` and `t.assertSuper(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### switchCase\n```javascript\nt.switchCase(test, consequent)\n```\n\nSee also `t.isSwitchCase(node, opts)` and `t.assertSwitchCase(node, opts)`.\n\n - `test`: `Expression` (default: `null`)\n - `consequent`: `Array<Statement>` (required)\n\n---\n\n### switchStatement\n```javascript\nt.switchStatement(discriminant, cases)\n```\n\nSee also `t.isSwitchStatement(node, opts)` and `t.assertSwitchStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Scopable`\n\n - `discriminant`: `Expression` (required)\n - `cases`: `Array<SwitchCase>` (required)\n\n---\n\n### taggedTemplateExpression\n```javascript\nt.taggedTemplateExpression(tag, quasi)\n```\n\nSee also `t.isTaggedTemplateExpression(node, opts)` and `t.assertTaggedTemplateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `tag`: `Expression` (required)\n - `quasi`: `TemplateLiteral` (required)\n\n---\n\n### templateElement\n```javascript\nt.templateElement(value, tail)\n```\n\nSee also `t.isTemplateElement(node, opts)` and `t.assertTemplateElement(node, opts)`.\n\n - `value` (required)\n - `tail`: `boolean` (default: `false`)\n\n---\n\n### templateLiteral\n```javascript\nt.templateLiteral(quasis, expressions)\n```\n\nSee also `t.isTemplateLiteral(node, opts)` and `t.assertTemplateLiteral(node, opts)`.\n\nAliases: `Expression`, `Literal`\n\n - `quasis`: `Array<TemplateElement>` (required)\n - `expressions`: `Array<Expression>` (required)\n\n---\n\n### thisExpression\n```javascript\nt.thisExpression()\n```\n\nSee also `t.isThisExpression(node, opts)` and `t.assertThisExpression(node, opts)`.\n\nAliases: `Expression`\n\n\n---\n\n### thisTypeAnnotation\n```javascript\nt.thisTypeAnnotation()\n```\n\nSee also `t.isThisTypeAnnotation(node, opts)` and `t.assertThisTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### throwStatement\n```javascript\nt.throwStatement(argument)\n```\n\nSee also `t.isThrowStatement(node, opts)` and `t.assertThrowStatement(node, opts)`.\n\nAliases: `Statement`, `Terminatorless`, `CompletionStatement`\n\n - `argument`: `Expression` (required)\n\n---\n\n### tryStatement\n```javascript\nt.tryStatement(block, handler, finalizer)\n```\n\nSee also `t.isTryStatement(node, opts)` and `t.assertTryStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `block` (required)\n - `handler` (default: `null`)\n - `finalizer`: `BlockStatement` (default: `null`)\n - `body`: `BlockStatement` (default: `null`)\n\n---\n\n### tupleTypeAnnotation\n```javascript\nt.tupleTypeAnnotation(types)\n```\n\nSee also `t.isTupleTypeAnnotation(node, opts)` and `t.assertTupleTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### typeAlias\n```javascript\nt.typeAlias(id, typeParameters, right)\n```\n\nSee also `t.isTypeAlias(node, opts)` and `t.assertTypeAlias(node, opts)`.\n\nAliases: `Flow`, `FlowDeclaration`, `Statement`, `Declaration`\n\n - `id` (required)\n - `typeParameters` (required)\n - `right` (required)\n\n---\n\n### typeAnnotation\n```javascript\nt.typeAnnotation(typeAnnotation)\n```\n\nSee also `t.isTypeAnnotation(node, opts)` and `t.assertTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `typeAnnotation` (required)\n\n---\n\n### typeCastExpression\n```javascript\nt.typeCastExpression(expression, typeAnnotation)\n```\n\nSee also `t.isTypeCastExpression(node, opts)` and `t.assertTypeCastExpression(node, opts)`.\n\nAliases: `Flow`, `ExpressionWrapper`, `Expression`\n\n - `expression` (required)\n - `typeAnnotation` (required)\n\n---\n\n### typeParameter\n```javascript\nt.typeParameter(bound)\n```\n\nSee also `t.isTypeParameter(node, opts)` and `t.assertTypeParameter(node, opts)`.\n\nAliases: `Flow`\n\n - `bound` (required)\n\n---\n\n### typeParameterDeclaration\n```javascript\nt.typeParameterDeclaration(params)\n```\n\nSee also `t.isTypeParameterDeclaration(node, opts)` and `t.assertTypeParameterDeclaration(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeParameterInstantiation\n```javascript\nt.typeParameterInstantiation(params)\n```\n\nSee also `t.isTypeParameterInstantiation(node, opts)` and `t.assertTypeParameterInstantiation(node, opts)`.\n\nAliases: `Flow`\n\n - `params` (required)\n\n---\n\n### typeofTypeAnnotation\n```javascript\nt.typeofTypeAnnotation(argument)\n```\n\nSee also `t.isTypeofTypeAnnotation(node, opts)` and `t.assertTypeofTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `argument` (required)\n\n---\n\n### unaryExpression\n```javascript\nt.unaryExpression(operator, argument, prefix)\n```\n\nSee also `t.isUnaryExpression(node, opts)` and `t.assertUnaryExpression(node, opts)`.\n\nAliases: `UnaryLike`, `Expression`\n\n - `operator`: `'void' | 'delete' | '!' | '+' | '-' | '++' | '--' | '~' | 'typeof'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `true`)\n\n---\n\n### unionTypeAnnotation\n```javascript\nt.unionTypeAnnotation(types)\n```\n\nSee also `t.isUnionTypeAnnotation(node, opts)` and `t.assertUnionTypeAnnotation(node, opts)`.\n\nAliases: `Flow`\n\n - `types` (required)\n\n---\n\n### updateExpression\n```javascript\nt.updateExpression(operator, argument, prefix)\n```\n\nSee also `t.isUpdateExpression(node, opts)` and `t.assertUpdateExpression(node, opts)`.\n\nAliases: `Expression`\n\n - `operator`: `'++' | '--'` (required)\n - `argument`: `Expression` (required)\n - `prefix`: `boolean` (default: `false`)\n\n---\n\n### variableDeclaration\n```javascript\nt.variableDeclaration(kind, declarations)\n```\n\nSee also `t.isVariableDeclaration(node, opts)` and `t.assertVariableDeclaration(node, opts)`.\n\nAliases: `Statement`, `Declaration`\n\n - `kind`: `\"var\" | \"let\" | \"const\"` (required)\n - `declarations`: `Array<VariableDeclarator>` (required)\n\n---\n\n### variableDeclarator\n```javascript\nt.variableDeclarator(id, init)\n```\n\nSee also `t.isVariableDeclarator(node, opts)` and `t.assertVariableDeclarator(node, opts)`.\n\n - `id`: `LVal` (required)\n - `init`: `Expression` (default: `null`)\n\n---\n\n### voidTypeAnnotation\n```javascript\nt.voidTypeAnnotation()\n```\n\nSee also `t.isVoidTypeAnnotation(node, opts)` and `t.assertVoidTypeAnnotation(node, opts)`.\n\nAliases: `Flow`, `FlowBaseAnnotation`\n\n\n---\n\n### whileStatement\n```javascript\nt.whileStatement(test, body)\n```\n\nSee also `t.isWhileStatement(node, opts)` and `t.assertWhileStatement(node, opts)`.\n\nAliases: `Statement`, `BlockParent`, `Loop`, `While`, `Scopable`\n\n - `test`: `Expression` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### withStatement\n```javascript\nt.withStatement(object, body)\n```\n\nSee also `t.isWithStatement(node, opts)` and `t.assertWithStatement(node, opts)`.\n\nAliases: `Statement`\n\n - `object` (required)\n - `body`: `BlockStatement | Statement` (required)\n\n---\n\n### yieldExpression\n```javascript\nt.yieldExpression(argument, delegate)\n```\n\nSee also `t.isYieldExpression(node, opts)` and `t.assertYieldExpression(node, opts)`.\n\nAliases: `Expression`, `Terminatorless`\n\n - `argument`: `Expression` (default: `null`)\n - `delegate`: `boolean` (default: `false`)\n\n---\n\n\n<!-- end generated section -->\n\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel/tree/master/packages/babel-types"
},
"scripts": {},
- "version": "6.24.1"
+ "version": "6.25.0"
}
diff --git a/node_modules/nyc/node_modules/babylon/CHANGELOG.md b/node_modules/nyc/node_modules/babylon/CHANGELOG.md
index bb482fc5c..af5b2bce4 100644
--- a/node_modules/nyc/node_modules/babylon/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/babylon/CHANGELOG.md
@@ -15,6 +15,37 @@ _Note: Gaps between patch versions are faulty, broken or test releases._
See the [Babel Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) for the pre-6.8.0 version Changelog.
+## 6.17.3 (2017-06-09)
+
+ * Fix location info on FunctionTypeParam nodes (#565) (#571) (Michal Srb)
+ * Fix stmt value being the raw value (#557) (#558) (Daniel Tschinder)
+
+## 6.17.2 (2017-05-31)
+
+ * Fixed disappearing comments following a trailing comma on the last property of an object literal or the last argument of a call expression (#478) (aardito2)
+ * Fix #437: only prohibit 'export type from "module" ' when flow is enabled (#438) (Kevin Gibbons)
+ * Fix handling of anonymous parameters in `flowParseObjectTypeMethodish`. (#526) (Max Schaefer)
+ * Convert argument of SpreadElement correctly to assignable (#518) (Daniel Tschinder)
+
+## 6.17.1 (2017-05-10)
+
+ * Fix typo in flow spread operator error (Brian Ng)
+ * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko)
+ * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko)
+ * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng)
+ * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng)
+ * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng)
+ * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng)
+
+## 6.17.0 (2017-04-20)
+
+ * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie)
+ * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons)
+ * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng)
+ * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons)
+ * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng)
+ * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng)
+
## 6.16.0 (2017-02-23)
### :rocket: New Feature
@@ -172,7 +203,7 @@ Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Ti
Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro)
AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens)
-
+
## 6.15.0 (2017-01-10)
### :eyeglasses: Spec Compliancy
@@ -313,20 +344,20 @@ type C = { [string]: number };
```
Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner)
-
+
Supports these form now of specifying array types:
```js
var a: number[][][][];
var b: string[][];
```
-
+
### :bug: Bug Fix
Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder)
```
-declare module "foo" { declare module.exports: number }
+declare module "foo" { declare module.exports: number }
declare module "foo" { declare module.exports: number; } // also allowed now
```
@@ -414,7 +445,7 @@ Readd missin .eslinignore for IDEs (Daniel Tschinder)
Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman)
Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman)
-
+
Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman)
## v6.12.0 (2016-10-14)
@@ -627,7 +658,7 @@ function something({ set = null, get = null }) {}
```js
// regression with duplicate export check
SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13)
- 20 |
+ 20 |
21 | export const { rhythm } = typography;
> 22 | export const { TypographyStyle } = typography
```
@@ -932,7 +963,7 @@ var obj = {
There is also a new node type, `ForAwaitStatement`.
-> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals).
+> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals).
Example:
diff --git a/node_modules/nyc/node_modules/babylon/lib/index.js b/node_modules/nyc/node_modules/babylon/lib/index.js
index c2575cb5c..29febfed7 100644
--- a/node_modules/nyc/node_modules/babylon/lib/index.js
+++ b/node_modules/nyc/node_modules/babylon/lib/index.js
@@ -521,7 +521,7 @@ var State = function () {
this.potentialArrowAt = -1;
- this.inMethod = this.inFunction = this.inGenerator = this.inAsync = this.inPropertyName = this.inType = this.noAnonFunctionType = false;
+ this.inMethod = this.inFunction = this.inGenerator = this.inAsync = this.inPropertyName = this.inType = this.inClassProperty = this.noAnonFunctionType = false;
this.labels = [];
@@ -1233,25 +1233,29 @@ var Tokenizer = function () {
Tokenizer.prototype.readNumber = function readNumber(startsWithDot) {
var start = this.state.pos;
- var octal = this.input.charCodeAt(this.state.pos) === 48;
+ var octal = this.input.charCodeAt(start) === 48; // '0'
var isFloat = false;
if (!startsWithDot && this.readInt(10) === null) this.raise(start, "Invalid number");
+ if (octal && this.state.pos == start + 1) octal = false; // number === 0
+
var next = this.input.charCodeAt(this.state.pos);
- if (next === 46) {
+ if (next === 46 && !octal) {
// '.'
++this.state.pos;
this.readInt(10);
isFloat = true;
next = this.input.charCodeAt(this.state.pos);
}
- if (next === 69 || next === 101) {
+
+ if ((next === 69 || next === 101) && !octal) {
// 'eE'
next = this.input.charCodeAt(++this.state.pos);
if (next === 43 || next === 45) ++this.state.pos; // '+-'
if (this.readInt(10) === null) this.raise(start, "Invalid number");
isFloat = true;
}
+
if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.state.pos, "Identifier directly after number");
var str = this.input.slice(start, this.state.pos);
@@ -1260,8 +1264,10 @@ var Tokenizer = function () {
val = parseFloat(str);
} else if (!octal || str.length === 1) {
val = parseInt(str, 10);
- } else if (/[89]/.test(str) || this.state.strict) {
+ } else if (this.state.strict) {
this.raise(start, "Invalid number");
+ } else if (/[89]/.test(str)) {
+ val = parseInt(str, 10);
} else {
val = parseInt(str, 8);
}
@@ -2560,6 +2566,7 @@ pp$1.parseClassBody = function (node) {
};
pp$1.parseClassProperty = function (node) {
+ this.state.inClassProperty = true;
if (this.match(types.eq)) {
if (!this.hasPlugin("classProperties")) this.unexpected();
this.next();
@@ -2568,6 +2575,7 @@ pp$1.parseClassProperty = function (node) {
node.value = null;
}
this.semicolon();
+ this.state.inClassProperty = false;
return this.finishNode(node, "ClassProperty");
};
@@ -2660,7 +2668,7 @@ pp$1.parseExportDeclaration = function () {
pp$1.isExportDefaultSpecifier = function () {
if (this.match(types.name)) {
- return this.state.value !== "type" && this.state.value !== "async" && this.state.value !== "interface";
+ return this.state.value !== "async";
}
if (!this.match(types._default)) {
@@ -2973,6 +2981,8 @@ pp$2.toAssignable = function (node, isBinding, contextDescription) {
case "SpreadProperty":
node.type = "RestProperty";
+ var arg = node.argument;
+ this.toAssignable(arg, isBinding, contextDescription);
break;
case "ArrayExpression":
@@ -3599,7 +3609,7 @@ pp$3.parseExprAtom = function (refShorthandDefaultPos) {
switch (this.state.type) {
case types._super:
- if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) {
+ if (!this.state.inMethod && !this.state.inClassProperty && !this.options.allowSuperOutsideMethod) {
this.raise(this.state.start, "'super' outside of function or class");
}
@@ -4108,8 +4118,9 @@ pp$3.parseObjectProperty = function (prop, startPos, startLoc, isPattern, refSho
}
if (!prop.computed && prop.key.type === "Identifier") {
+ this.checkReservedWord(prop.key.name, prop.key.start, true, true);
+
if (isPattern) {
- this.checkReservedWord(prop.key.name, prop.key.start, true, true);
prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone());
} else if (this.match(types.eq) && refShorthandDefaultPos) {
if (!refShorthandDefaultPos.start) {
@@ -4489,7 +4500,8 @@ pp$6.processComment = function (node) {
var stack = this.state.commentStack;
- var lastChild = void 0,
+ var firstChild = void 0,
+ lastChild = void 0,
trailingComments = void 0,
i = void 0,
j = void 0;
@@ -4520,10 +4532,52 @@ pp$6.processComment = function (node) {
}
// Eating the stack.
+ if (stack.length > 0 && last(stack).start >= node.start) {
+ firstChild = stack.pop();
+ }
+
while (stack.length > 0 && last(stack).start >= node.start) {
lastChild = stack.pop();
}
+ if (!lastChild && firstChild) lastChild = firstChild;
+
+ // Attach comments that follow a trailing comma on the last
+ // property in an object literal or a trailing comma in function arguments
+ // as trailing comments
+ if (firstChild && this.state.leadingComments.length > 0) {
+ var lastComment = last(this.state.leadingComments);
+
+ if (firstChild.type === "ObjectProperty") {
+ if (lastComment.start >= node.start) {
+ if (this.state.commentPreviousNode) {
+ for (j = 0; j < this.state.leadingComments.length; j++) {
+ if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) {
+ this.state.leadingComments.splice(j, 1);
+ j--;
+ }
+ }
+
+ if (this.state.leadingComments.length > 0) {
+ firstChild.trailingComments = this.state.leadingComments;
+ this.state.leadingComments = [];
+ }
+ }
+ }
+ } else if (node.type === "CallExpression" && node.arguments && node.arguments.length) {
+ var lastArg = last(node.arguments);
+
+ if (lastArg && lastComment.start >= lastArg.start && lastComment.end <= node.end) {
+ if (this.state.commentPreviousNode) {
+ if (this.state.leadingComments.length > 0) {
+ lastArg.trailingComments = this.state.leadingComments;
+ this.state.leadingComments = [];
+ }
+ }
+ }
+ }
+ }
+
if (lastChild) {
if (lastChild.leadingComments) {
if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {
@@ -4742,6 +4796,19 @@ var estreePlugin = function (instance) {
};
});
+ instance.extend("stmtToDirective", function (inner) {
+ return function (stmt) {
+ var directive = inner.call(this, stmt);
+ var value = stmt.expression.value;
+
+ // Reset value to the actual value as in estree mode we want
+ // the stmt to have the real value and not the raw value
+ directive.value.value = value;
+
+ return directive;
+ };
+ });
+
instance.extend("parseBlockBody", function (inner) {
return function (node) {
var _this2 = this;
@@ -4759,16 +4826,14 @@ var estreePlugin = function (instance) {
};
});
- instance.extend("parseClassMethod", function (inner) {
- return function (classBody) {
- for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
- args[_key3 - 1] = arguments[_key3];
+ instance.extend("parseClassMethod", function () {
+ return function (classBody, method, isGenerator, isAsync) {
+ this.parseMethod(method, isGenerator, isAsync);
+ if (method.typeParameters) {
+ method.value.typeParameters = method.typeParameters;
+ delete method.typeParameters;
}
-
- inner.call.apply(inner, [this, classBody].concat(args));
-
- var body = classBody.body;
- body[body.length - 1].type = "MethodDefinition";
+ classBody.body.push(this.finishNode(method, "MethodDefinition"));
};
});
@@ -4792,8 +4857,8 @@ var estreePlugin = function (instance) {
return this.estreeParseLiteral(false);
default:
- for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
- args[_key4] = arguments[_key4];
+ for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+ args[_key3] = arguments[_key3];
}
return inner.call.apply(inner, [this].concat(args));
@@ -4803,8 +4868,8 @@ var estreePlugin = function (instance) {
instance.extend("parseLiteral", function (inner) {
return function () {
- for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
- args[_key5] = arguments[_key5];
+ for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+ args[_key4] = arguments[_key4];
}
var node = inner.call.apply(inner, [this].concat(args));
@@ -4820,8 +4885,8 @@ var estreePlugin = function (instance) {
var funcNode = this.startNode();
funcNode.kind = node.kind; // provide kind, so inner method correctly sets state
- for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
- args[_key6 - 1] = arguments[_key6];
+ for (var _len5 = arguments.length, args = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
+ args[_key5 - 1] = arguments[_key5];
}
funcNode = inner.call.apply(inner, [this, funcNode].concat(args));
@@ -4834,8 +4899,8 @@ var estreePlugin = function (instance) {
instance.extend("parseObjectMethod", function (inner) {
return function () {
- for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
- args[_key7] = arguments[_key7];
+ for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
+ args[_key6] = arguments[_key6];
}
var node = inner.call.apply(inner, [this].concat(args));
@@ -4851,8 +4916,8 @@ var estreePlugin = function (instance) {
instance.extend("parseObjectProperty", function (inner) {
return function () {
- for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
- args[_key8] = arguments[_key8];
+ for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
+ args[_key7] = arguments[_key7];
}
var node = inner.call.apply(inner, [this].concat(args));
@@ -4868,8 +4933,8 @@ var estreePlugin = function (instance) {
instance.extend("toAssignable", function (inner) {
return function (node, isBinding) {
- for (var _len9 = arguments.length, args = Array(_len9 > 2 ? _len9 - 2 : 0), _key9 = 2; _key9 < _len9; _key9++) {
- args[_key9 - 2] = arguments[_key9];
+ for (var _len8 = arguments.length, args = Array(_len8 > 2 ? _len8 - 2 : 0), _key8 = 2; _key8 < _len8; _key8++) {
+ args[_key8 - 2] = arguments[_key8];
}
if (isSimpleProperty(node)) {
@@ -5268,7 +5333,7 @@ pp$8.flowParseObjectTypeMethodish = function (node) {
}
this.expect(types.parenL);
- while (this.match(types.name)) {
+ while (!this.match(types.parenR) && !this.match(types.ellipsis)) {
node.params.push(this.flowParseFunctionTypeParam());
if (!this.match(types.parenR)) {
this.expect(types.comma);
@@ -5352,7 +5417,7 @@ pp$8.flowParseObjectType = function (allowStatic, allowExact, allowSpread) {
} else {
if (this.match(types.ellipsis)) {
if (!allowSpread) {
- this.unexpected(null, "Spread operator cannnot appear in class or interface definitions");
+ this.unexpected(null, "Spread operator cannot appear in class or interface definitions");
}
if (variance) {
this.unexpected(variance.start, "Spread properties cannot have variance");
@@ -5473,7 +5538,7 @@ pp$8.flowParseFunctionTypeParam = function () {
};
pp$8.reinterpretTypeAsFunctionTypeParam = function (type) {
- var node = this.startNodeAt(type.start, type.loc);
+ var node = this.startNodeAt(type.start, type.loc.start);
node.name = null;
node.optional = false;
node.typeAnnotation = type;
@@ -5684,7 +5749,7 @@ pp$8.flowParsePrefixType = function () {
pp$8.flowParseAnonFunctionWithoutParens = function () {
var param = this.flowParsePrefixType();
if (!this.state.noAnonFunctionType && this.eat(types.arrow)) {
- var node = this.startNodeAt(param.start, param.loc);
+ var node = this.startNodeAt(param.start, param.loc.start);
node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];
node.rest = null;
node.returnType = this.flowParseType();
@@ -5825,6 +5890,16 @@ var flowPlugin = function (instance) {
};
});
+ instance.extend("isExportDefaultSpecifier", function (inner) {
+ return function () {
+ if (this.match(types.name) && (this.state.value === "type" || this.state.value === "interface")) {
+ return false;
+ }
+
+ return inner.call(this);
+ };
+ });
+
instance.extend("parseConditional", function (inner) {
return function (expr, noIn, startPos, startLoc, refNeedsArrowPos) {
// only do the expensive clone if there is a question mark
@@ -6038,6 +6113,12 @@ var flowPlugin = function (instance) {
};
});
+ instance.extend("isNonstaticConstructor", function (inner) {
+ return function (method) {
+ return !this.match(types.colon) && inner.call(this, method);
+ };
+ });
+
// parse type parameters for class methods
instance.extend("parseClassMethod", function (inner) {
return function (classBody, method) {
@@ -6294,6 +6375,12 @@ var flowPlugin = function (instance) {
} catch (err) {
if (err instanceof SyntaxError) {
this.state = state;
+
+ // Remove `tc.j_expr` and `tc.j_oTag` from context added
+ // by parsing `jsxTagStart` to stop the JSX plugin from
+ // messing with the tokens
+ this.state.context.length -= 2;
+
jsxError = err;
} else {
// istanbul ignore next: no such error is expected
@@ -6302,9 +6389,6 @@ var flowPlugin = function (instance) {
}
}
- // Need to push something onto the context to stop
- // the JSX plugin from messing with the tokens
- this.state.context.push(types$1.parenExpression);
if (jsxError != null || this.isRelational("<")) {
var arrowExpression = void 0;
var typeParameters = void 0;
@@ -6327,7 +6411,6 @@ var flowPlugin = function (instance) {
this.raise(typeParameters.start, "Expected an arrow function after this type parameter declaration");
}
}
- this.state.context.pop();
return inner.apply(this, args);
};
diff --git a/node_modules/nyc/node_modules/babylon/package.json b/node_modules/nyc/node_modules/babylon/package.json
index 5bd3d5578..0518d99a5 100644
--- a/node_modules/nyc/node_modules/babylon/package.json
+++ b/node_modules/nyc/node_modules/babylon/package.json
@@ -2,39 +2,39 @@
"_args": [
[
{
- "raw": "babylon@^6.13.0",
+ "raw": "babylon@^6.17.4",
"scope": null,
"escapedName": "babylon",
"name": "babylon",
- "rawSpec": "^6.13.0",
- "spec": ">=6.13.0 <7.0.0",
+ "rawSpec": "^6.17.4",
+ "spec": ">=6.17.4 <7.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
- "_from": "babylon@>=6.13.0 <7.0.0",
- "_id": "babylon@6.17.0",
+ "_from": "babylon@>=6.17.4 <7.0.0",
+ "_id": "babylon@6.17.4",
"_inCache": true,
"_location": "/babylon",
- "_nodeVersion": "6.10.0",
+ "_nodeVersion": "8.1.2",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/babylon-6.17.0.tgz_1492702937433_0.4568659064825624"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/babylon-6.17.4.tgz_1497819728989_0.7861648334655911"
},
"_npmUser": {
- "name": "sebmck",
- "email": "sebmck@gmail.com"
+ "name": "danez",
+ "email": "daniel@tschinder.de"
},
- "_npmVersion": "3.10.10",
+ "_npmVersion": "5.0.3",
"_phantomChildren": {},
"_requested": {
- "raw": "babylon@^6.13.0",
+ "raw": "babylon@^6.17.4",
"scope": null,
"escapedName": "babylon",
"name": "babylon",
- "rawSpec": "^6.13.0",
- "spec": ">=6.13.0 <7.0.0",
+ "rawSpec": "^6.17.4",
+ "spec": ">=6.17.4 <7.0.0",
"type": "range"
},
"_requiredBy": [
@@ -42,11 +42,11 @@
"/babel-traverse",
"/istanbul-lib-instrument"
],
- "_resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.0.tgz",
- "_shasum": "37da948878488b9c4e3c4038893fa3314b3fc932",
+ "_resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz",
+ "_shasum": "3e8b7402b88d22c3423e137a1577883b15ff869a",
"_shrinkwrap": null,
- "_spec": "babylon@^6.13.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_spec": "babylon@^6.17.4",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
@@ -217,14 +217,15 @@
},
"directories": {},
"dist": {
- "shasum": "37da948878488b9c4e3c4038893fa3314b3fc932",
- "tarball": "https://registry.npmjs.org/babylon/-/babylon-6.17.0.tgz"
+ "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==",
+ "shasum": "3e8b7402b88d22c3423e137a1577883b15ff869a",
+ "tarball": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz"
},
"files": [
"bin",
"lib"
],
- "gitHead": "2e17e5bc399b9615baa4017f792ab2bac41cae13",
+ "gitHead": "5b7fd46b4b8a7c66b36de2643465b060f1ef8692",
"greenkeeper": {
"ignore": [
"cross-env"
@@ -241,8 +242,20 @@
"main": "lib/index.js",
"maintainers": [
{
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
+ },
+ {
"name": "danez",
"email": "daniel@tschinder.de"
+ },
+ {
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
+ },
+ {
+ "name": "loganfsmyth",
+ "email": "loganfsmyth@gmail.com"
}
],
"name": "babylon",
@@ -275,5 +288,5 @@
"test-only": "ava",
"watch": "npm run clean && rollup -c --watch"
},
- "version": "6.17.0"
+ "version": "6.17.4"
}
diff --git a/node_modules/nyc/node_modules/balanced-match/index.js b/node_modules/nyc/node_modules/balanced-match/index.js
index e8d858702..1685a7629 100644
--- a/node_modules/nyc/node_modules/balanced-match/index.js
+++ b/node_modules/nyc/node_modules/balanced-match/index.js
@@ -1,3 +1,4 @@
+'use strict';
module.exports = balanced;
function balanced(a, b, str) {
if (a instanceof RegExp) a = maybeMatch(a, str);
diff --git a/node_modules/nyc/node_modules/balanced-match/package.json b/node_modules/nyc/node_modules/balanced-match/package.json
index 12eefd371..ceea4be5f 100644
--- a/node_modules/nyc/node_modules/balanced-match/package.json
+++ b/node_modules/nyc/node_modules/balanced-match/package.json
@@ -2,49 +2,49 @@
"_args": [
[
{
- "raw": "balanced-match@^0.4.1",
+ "raw": "balanced-match@^1.0.0",
"scope": null,
"escapedName": "balanced-match",
"name": "balanced-match",
- "rawSpec": "^0.4.1",
- "spec": ">=0.4.1 <0.5.0",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/brace-expansion"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/brace-expansion"
]
],
- "_from": "balanced-match@>=0.4.1 <0.5.0",
- "_id": "balanced-match@0.4.2",
+ "_from": "balanced-match@>=1.0.0 <2.0.0",
+ "_id": "balanced-match@1.0.0",
"_inCache": true,
"_location": "/balanced-match",
- "_nodeVersion": "4.4.7",
+ "_nodeVersion": "7.8.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/balanced-match-0.4.2.tgz_1468834991581_0.6590619895141572"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/balanced-match-1.0.0.tgz_1497251909645_0.8755026108119637"
},
"_npmUser": {
"name": "juliangruber",
"email": "julian@juliangruber.com"
},
- "_npmVersion": "2.15.8",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "raw": "balanced-match@^0.4.1",
+ "raw": "balanced-match@^1.0.0",
"scope": null,
"escapedName": "balanced-match",
"name": "balanced-match",
- "rawSpec": "^0.4.1",
- "spec": ">=0.4.1 <0.5.0",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/brace-expansion"
],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "_shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
+ "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
"_shrinkwrap": null,
- "_spec": "balanced-match@^0.4.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/brace-expansion",
+ "_spec": "balanced-match@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/brace-expansion",
"author": {
"name": "Julian Gruber",
"email": "mail@juliangruber.com",
@@ -56,14 +56,15 @@
"dependencies": {},
"description": "Match balanced character pairs, like \"{\" and \"}\"",
"devDependencies": {
+ "matcha": "^0.7.0",
"tape": "^4.6.0"
},
"directories": {},
"dist": {
- "shasum": "cb3f3e3c732dc0f01ee70b403f302e61d7709838",
- "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+ "shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
+ "tarball": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
},
- "gitHead": "57c2ea29d89a2844ae3bdcc637c6e2cbb73725e2",
+ "gitHead": "d701a549a7653a874eebce7eca25d3577dc868ac",
"homepage": "https://github.com/juliangruber/balanced-match",
"keywords": [
"match",
@@ -89,6 +90,7 @@
"url": "git://github.com/juliangruber/balanced-match.git"
},
"scripts": {
+ "bench": "make bench",
"test": "make test"
},
"testling": {
@@ -107,5 +109,5 @@
"android-browser/4.2..latest"
]
},
- "version": "0.4.2"
+ "version": "1.0.0"
}
diff --git a/node_modules/nyc/node_modules/brace-expansion/package.json b/node_modules/nyc/node_modules/brace-expansion/package.json
index ac2dbdad6..34f34edf3 100644
--- a/node_modules/nyc/node_modules/brace-expansion/package.json
+++ b/node_modules/nyc/node_modules/brace-expansion/package.json
@@ -2,25 +2,25 @@
"_args": [
[
{
- "raw": "brace-expansion@^1.0.0",
+ "raw": "brace-expansion@^1.1.7",
"scope": null,
"escapedName": "brace-expansion",
"name": "brace-expansion",
- "rawSpec": "^1.0.0",
- "spec": ">=1.0.0 <2.0.0",
+ "rawSpec": "^1.1.7",
+ "spec": ">=1.1.7 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/minimatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/minimatch"
]
],
- "_from": "brace-expansion@>=1.0.0 <2.0.0",
- "_id": "brace-expansion@1.1.7",
+ "_from": "brace-expansion@>=1.1.7 <2.0.0",
+ "_id": "brace-expansion@1.1.8",
"_inCache": true,
"_location": "/brace-expansion",
"_nodeVersion": "7.8.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/brace-expansion-1.1.7.tgz_1491552830231_0.7213963181711733"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/brace-expansion-1.1.8.tgz_1497251980593_0.6575565172825009"
},
"_npmUser": {
"name": "juliangruber",
@@ -29,22 +29,22 @@
"_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "raw": "brace-expansion@^1.0.0",
+ "raw": "brace-expansion@^1.1.7",
"scope": null,
"escapedName": "brace-expansion",
"name": "brace-expansion",
- "rawSpec": "^1.0.0",
- "spec": ">=1.0.0 <2.0.0",
+ "rawSpec": "^1.1.7",
+ "spec": ">=1.1.7 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/minimatch"
],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
- "_shasum": "3effc3c50e000531fb720eaff80f0ae8ef23cf59",
+ "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
+ "_shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
"_shrinkwrap": null,
- "_spec": "brace-expansion@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/minimatch",
+ "_spec": "brace-expansion@^1.1.7",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/minimatch",
"author": {
"name": "Julian Gruber",
"email": "mail@juliangruber.com",
@@ -54,7 +54,7 @@
"url": "https://github.com/juliangruber/brace-expansion/issues"
},
"dependencies": {
- "balanced-match": "^0.4.1",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
},
"description": "Brace expansion as known from sh/bash",
@@ -64,10 +64,10 @@
},
"directories": {},
"dist": {
- "shasum": "3effc3c50e000531fb720eaff80f0ae8ef23cf59",
- "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
+ "shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
+ "tarball": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz"
},
- "gitHead": "892512024872ca7680554be90f6e8ce065053372",
+ "gitHead": "8f59e68bd5c915a0d624e8e39354e1ccf672edf6",
"homepage": "https://github.com/juliangruber/brace-expansion",
"keywords": [],
"license": "MIT",
@@ -111,5 +111,5 @@
"android-browser/4.2..latest"
]
},
- "version": "1.1.7"
+ "version": "1.1.8"
}
diff --git a/node_modules/nyc/node_modules/braces/package.json b/node_modules/nyc/node_modules/braces/package.json
index 90b1f2302..fb2224c57 100644
--- a/node_modules/nyc/node_modules/braces/package.json
+++ b/node_modules/nyc/node_modules/braces/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.8.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "braces@>=1.8.2 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "ba77962e12dff969d6b76711e914b737857bf6a7",
"_shrinkwrap": null,
"_spec": "braces@^1.8.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/builtin-modules/package.json b/node_modules/nyc/node_modules/builtin-modules/package.json
index c39c77b8b..46b07eff9 100644
--- a/node_modules/nyc/node_modules/builtin-modules/package.json
+++ b/node_modules/nyc/node_modules/builtin-modules/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/is-builtin-module"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/is-builtin-module"
]
],
"_from": "builtin-modules@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f",
"_shrinkwrap": null,
"_spec": "builtin-modules@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/is-builtin-module",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/is-builtin-module",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/caching-transform/package.json b/node_modules/nyc/node_modules/caching-transform/package.json
index f8469f274..ed54e3526 100644
--- a/node_modules/nyc/node_modules/caching-transform/package.json
+++ b/node_modules/nyc/node_modules/caching-transform/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "caching-transform@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1",
"_shrinkwrap": null,
"_spec": "caching-transform@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "James Talmage",
"email": "james@talmage.io",
diff --git a/node_modules/nyc/node_modules/camelcase/package.json b/node_modules/nyc/node_modules/camelcase/package.json
index 62c0be1c8..57c43196b 100644
--- a/node_modules/nyc/node_modules/camelcase/package.json
+++ b/node_modules/nyc/node_modules/camelcase/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs"
]
],
"_from": "camelcase@>=1.0.2 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39",
"_shrinkwrap": null,
"_spec": "camelcase@^1.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/center-align/package.json b/node_modules/nyc/node_modules/center-align/package.json
index 79cf7ab69..458f8487f 100644
--- a/node_modules/nyc/node_modules/center-align/package.json
+++ b/node_modules/nyc/node_modules/center-align/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/cliui"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/cliui"
]
],
"_from": "center-align@>=0.1.1 <0.2.0",
@@ -44,7 +44,7 @@
"_shasum": "aa0d32629b6ee972200411cbd4461c907bc2b7ad",
"_shrinkwrap": null,
"_spec": "center-align@^0.1.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/cliui",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/cliui",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/chalk/package.json b/node_modules/nyc/node_modules/chalk/package.json
index 0001a0f20..a8a2e2380 100644
--- a/node_modules/nyc/node_modules/chalk/package.json
+++ b/node_modules/nyc/node_modules/chalk/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.1.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-code-frame"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-code-frame"
]
],
"_from": "chalk@>=1.1.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "a8115c55e4a702fe4d150abd3872822a7e09fc98",
"_shrinkwrap": null,
"_spec": "chalk@^1.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-code-frame",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-code-frame",
"bugs": {
"url": "https://github.com/chalk/chalk/issues"
},
diff --git a/node_modules/nyc/node_modules/cliui/node_modules/wordwrap/package.json b/node_modules/nyc/node_modules/cliui/node_modules/wordwrap/package.json
index 60c4139f4..c69f3442f 100644
--- a/node_modules/nyc/node_modules/cliui/node_modules/wordwrap/package.json
+++ b/node_modules/nyc/node_modules/cliui/node_modules/wordwrap/package.json
@@ -10,7 +10,7 @@
"spec": "0.0.2",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/cliui"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/cliui"
]
],
"_defaultsLoaded": true,
@@ -38,7 +38,7 @@
"_shasum": "b79669bb42ecb409f83d583cad52ca17eaa1643f",
"_shrinkwrap": null,
"_spec": "wordwrap@0.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/cliui",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/cliui",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/cliui/package.json b/node_modules/nyc/node_modules/cliui/package.json
index a9d9adbd6..add378f19 100644
--- a/node_modules/nyc/node_modules/cliui/package.json
+++ b/node_modules/nyc/node_modules/cliui/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.1.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs"
]
],
"_from": "cliui@>=2.1.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "4b475760ff80264c762c3a1719032e91c7fea0d1",
"_shrinkwrap": null,
"_spec": "cliui@^2.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/code-point-at/package.json b/node_modules/nyc/node_modules/code-point-at/package.json
index 3698bde97..99cb47961 100644
--- a/node_modules/nyc/node_modules/code-point-at/package.json
+++ b/node_modules/nyc/node_modules/code-point-at/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/string-width"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width"
]
],
"_from": "code-point-at@>=1.0.0 <2.0.0",
@@ -38,13 +38,14 @@
"type": "range"
},
"_requiredBy": [
- "/string-width"
+ "/wrap-ansi/string-width",
+ "/yargs/cliui/string-width"
],
"_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
"_shrinkwrap": null,
"_spec": "code-point-at@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/string-width",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/commondir/package.json b/node_modules/nyc/node_modules/commondir/package.json
index 14799b545..fe7c6c96f 100644
--- a/node_modules/nyc/node_modules/commondir/package.json
+++ b/node_modules/nyc/node_modules/commondir/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/find-cache-dir"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/find-cache-dir"
]
],
"_from": "commondir@>=1.0.1 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "ddd800da0c66127393cca5950ea968a3aaf1253b",
"_shrinkwrap": null,
"_spec": "commondir@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/find-cache-dir",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/find-cache-dir",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/concat-map/package.json b/node_modules/nyc/node_modules/concat-map/package.json
index d0325d0c6..96e3e2db1 100644
--- a/node_modules/nyc/node_modules/concat-map/package.json
+++ b/node_modules/nyc/node_modules/concat-map/package.json
@@ -10,7 +10,7 @@
"spec": "0.0.1",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/brace-expansion"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/brace-expansion"
]
],
"_from": "concat-map@0.0.1",
@@ -39,7 +39,7 @@
"_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
"_shrinkwrap": null,
"_spec": "concat-map@0.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/brace-expansion",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/brace-expansion",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/convert-source-map/package.json b/node_modules/nyc/node_modules/convert-source-map/package.json
index dbc0b0940..c9fad298a 100644
--- a/node_modules/nyc/node_modules/convert-source-map/package.json
+++ b/node_modules/nyc/node_modules/convert-source-map/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.3.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "convert-source-map@>=1.3.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "9acd70851c6d5dfdd93d9282e5edf94a03ff46b5",
"_shrinkwrap": null,
"_spec": "convert-source-map@^1.3.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Thorsten Lorenz",
"email": "thlorenz@gmx.de",
diff --git a/node_modules/nyc/node_modules/core-js/package.json b/node_modules/nyc/node_modules/core-js/package.json
index f0ecf6b57..76fec6598 100644
--- a/node_modules/nyc/node_modules/core-js/package.json
+++ b/node_modules/nyc/node_modules/core-js/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.4.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-runtime"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-runtime"
]
],
"_from": "core-js@>=2.4.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "4de911e667b0eae9124e34254b53aea6fc618d3e",
"_shrinkwrap": null,
"_spec": "core-js@^2.4.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-runtime",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-runtime",
"bugs": {
"url": "https://github.com/zloirock/core-js/issues"
},
diff --git a/node_modules/nyc/node_modules/cross-spawn/package.json b/node_modules/nyc/node_modules/cross-spawn/package.json
index e58d4e857..b73a16d60 100644
--- a/node_modules/nyc/node_modules/cross-spawn/package.json
+++ b/node_modules/nyc/node_modules/cross-spawn/package.json
@@ -10,7 +10,7 @@
"spec": ">=4.0.0 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/foreground-child"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/foreground-child"
]
],
"_from": "cross-spawn@>=4.0.0 <5.0.0",
@@ -38,13 +38,14 @@
"type": "range"
},
"_requiredBy": [
+ "/execa",
"/foreground-child"
],
"_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
"_shasum": "7b9247621c23adfdd3856004a823cbe397424d41",
"_shrinkwrap": null,
"_spec": "cross-spawn@^4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/foreground-child",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/foreground-child",
"author": {
"name": "IndigoUnited",
"email": "hello@indigounited.com",
diff --git a/node_modules/nyc/node_modules/debug-log/package.json b/node_modules/nyc/node_modules/debug-log/package.json
index be98f5dbd..dedcb0b73 100644
--- a/node_modules/nyc/node_modules/debug-log/package.json
+++ b/node_modules/nyc/node_modules/debug-log/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "debug-log@>=1.0.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "2307632d4c04382b8df8a32f70b895046d52745f",
"_shrinkwrap": null,
"_spec": "debug-log@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/debug/CHANGELOG.md b/node_modules/nyc/node_modules/debug/CHANGELOG.md
index 93580f1cc..a1a270cd4 100644
--- a/node_modules/nyc/node_modules/debug/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/debug/CHANGELOG.md
@@ -1,8 +1,15 @@
-2.6.6 / 2017-04-27
+2.6.8 / 2017-05-18
==================
- * Fix: regression from removal of undefined check (@thebigredgeek)
+ * Fix: Check for undefined on browser globals (#462, @marbemac)
+
+2.6.7 / 2017-05-16
+==================
+
+ * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
+ * Fix: Inline extend function in node implementation (#452, @dougwilson)
+ * Docs: Fix typo (#455, @msasad)
2.6.5 / 2017-04-27
==================
diff --git a/node_modules/nyc/node_modules/debug/README.md b/node_modules/nyc/node_modules/debug/README.md
index 4aeab13f1..f67be6b31 100644
--- a/node_modules/nyc/node_modules/debug/README.md
+++ b/node_modules/nyc/node_modules/debug/README.md
@@ -100,7 +100,7 @@ Then, run the program to be debugged as usual.
| Name | Purpose |
|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disabled specific debugging namespaces. |
+| `DEBUG` | Enables/disables specific debugging namespaces. |
| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
| `DEBUG_DEPTH` | Object inspection depth. |
| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
diff --git a/node_modules/nyc/node_modules/debug/component.json b/node_modules/nyc/node_modules/debug/component.json
index 0705b91aa..94cd36d8b 100644
--- a/node_modules/nyc/node_modules/debug/component.json
+++ b/node_modules/nyc/node_modules/debug/component.json
@@ -2,7 +2,7 @@
"name": "debug",
"repo": "visionmedia/debug",
"description": "small debugging utility",
- "version": "2.6.6",
+ "version": "2.6.8",
"keywords": [
"debug",
"log",
diff --git a/node_modules/nyc/node_modules/debug/package.json b/node_modules/nyc/node_modules/debug/package.json
index b88aad2f6..5e97a5cf6 100644
--- a/node_modules/nyc/node_modules/debug/package.json
+++ b/node_modules/nyc/node_modules/debug/package.json
@@ -10,23 +10,23 @@
"spec": ">=2.2.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse"
]
],
"_from": "debug@>=2.2.0 <3.0.0",
- "_id": "debug@2.6.6",
+ "_id": "debug@2.6.8",
"_inCache": true,
"_location": "/debug",
- "_nodeVersion": "6.9.2",
+ "_nodeVersion": "7.10.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/debug-2.6.6.tgz_1493336101823_0.35170009173452854"
+ "tmp": "tmp/debug-2.6.8.tgz_1495138020906_0.5965513256378472"
},
"_npmUser": {
- "name": "thebigredgeek",
- "email": "rhyneandrew@gmail.com"
+ "name": "tootallnate",
+ "email": "nathan@tootallnate.net"
},
- "_npmVersion": "3.10.9",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
"raw": "debug@^2.2.0",
@@ -41,11 +41,11 @@
"/babel-traverse",
"/istanbul-lib-source-maps"
],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.6.tgz",
- "_shasum": "a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a",
+ "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "_shasum": "e731531ca2ede27d188222427da17821d68ff4fc",
"_shrinkwrap": null,
"_spec": "debug@^2.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse",
"author": {
"name": "TJ Holowaychuk",
"email": "tj@vision-media.ca"
@@ -72,7 +72,7 @@
}
],
"dependencies": {
- "ms": "0.7.3"
+ "ms": "2.0.0"
},
"description": "small debugging utility",
"devDependencies": {
@@ -95,10 +95,10 @@
},
"directories": {},
"dist": {
- "shasum": "a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a",
- "tarball": "https://registry.npmjs.org/debug/-/debug-2.6.6.tgz"
+ "shasum": "e731531ca2ede27d188222427da17821d68ff4fc",
+ "tarball": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz"
},
- "gitHead": "c90a2b3c6c17300f3c183f0d665092c16388c7ff",
+ "gitHead": "52e1f21284322f167839e5d3a60f635c8b2dc842",
"homepage": "https://github.com/visionmedia/debug#readme",
"keywords": [
"debug",
@@ -115,12 +115,12 @@
],
"name": "debug",
"optionalDependencies": {},
- "readme": "# debug\n[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) \n[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)\n\n\n\nA tiny node.js debugging utility modelled after node core's debugging technique.\n\n**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**\n\n## Installation\n\n```bash\n$ npm install debug\n```\n\n## Usage\n\n`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.\n\nExample _app.js_:\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %s', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require('debug')('worker');\n\nsetInterval(function(){\n debug('doing some work');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\n\n#### Windows note\n\n On Windows the environment variable is set using the `set` command.\n\n ```cmd\n set DEBUG=*,-not_this\n ```\n\n Note that PowerShell uses different syntax to set environment variables.\n\n ```cmd\n $env:DEBUG = \"*,-not_this\"\n ```\n\nThen, run the program to be debugged as usual.\n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n\n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\n\n## Conventions\n\n If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\".\n\n## Wildcards\n\n The `*` character may be used as a wildcard. Suppose for example your library has debuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a \"-\" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with \"connect:\".\n\n## Environment Variables\n\n When running through Node.js, you can set a few environment variables that will\n change the behavior of the debug logging:\n\n| Name | Purpose |\n|-----------|-------------------------------------------------|\n| `DEBUG` | Enables/disabled specific debugging namespaces. |\n| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |\n| `DEBUG_DEPTH` | Object inspection depth. |\n| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |\n\n\n __Note:__ The environment variables beginning with `DEBUG_` end up being\n converted into an Options object that gets used with `%o`/`%O` formatters.\n See the Node.js documentation for\n [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)\n for the complete list.\n\n## Formatters\n\n\n Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:\n\n| Formatter | Representation |\n|-----------|----------------|\n| `%O` | Pretty-print an Object on multiple lines. |\n| `%o` | Pretty-print an Object all on a single line. |\n| `%s` | String. |\n| `%d` | Number (both integer and float). |\n| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |\n| `%%` | Single percent sign ('%'). This does not consume an argument. |\n\n### Custom formatters\n\n You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:\n\n```js\nconst createDebug = require('debug')\ncreateDebug.formatters.h = (v) => {\n return v.toString('hex')\n}\n\n// …elsewhere\nconst debug = createDebug('foo')\ndebug('this is hex: %h', new Buffer('hello world'))\n// foo this is hex: 68656c6c6f20776f726c6421 +0ms\n```\n\n## Browser support\n You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),\n or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),\n if you don't want to build it yourself.\n\n Debug's enable state is currently persisted by `localStorage`.\n Consider the situation shown below where you have `worker:a` and `worker:b`,\n and wish to debug both. You can enable this using `localStorage.debug`:\n\n```js\nlocalStorage.debug = 'worker:*'\n```\n\nAnd then refresh the page.\n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n b('doing some work');\n}, 1200);\n```\n\n#### Web Inspector Colors\n\n Colors are also enabled on \"Web Inspectors\" that understand the `%c` formatting\n option. These are WebKit web inspectors, Firefox ([since version\n 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))\n and the Firebug plugin for Firefox (any version).\n\n Colored output looks something like:\n\n ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)\n\n\n## Output streams\n\n By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:\n\nExample _stdout.js_:\n\n```js\nvar debug = require('debug');\nvar error = debug('app:error');\n\n// by default stderr is used\nerror('goes to stderr!');\n\nvar log = debug('app:log');\n// set this namespace to log via console.log\nlog.log = console.log.bind(console); // don't forget to bind to console!\nlog('goes to stdout');\nerror('still goes to stderr!');\n\n// set all output to go via console.info\n// overrides all per-namespace log settings\ndebug.log = console.info.bind(console);\nerror('now goes to stdout via console.info');\nlog('still goes to stdout, but via console.info now');\n```\n\n\n## Authors\n\n - TJ Holowaychuk\n - Nathan Rajlich\n - Andrew Rhyne\n \n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]\n\n<a href=\"https://opencollective.com/debug/backer/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/9/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/10/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/11/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/12/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/13/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/14/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/15/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/16/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/17/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/18/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/19/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/20/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/21/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/22/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/23/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/24/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/25/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/26/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/27/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/28/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/29/avatar.svg\"></a>\n\n\n## Sponsors\n\nBecome a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]\n\n<a href=\"https://opencollective.com/debug/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/9/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/10/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/11/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/12/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/13/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/14/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/15/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/16/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/17/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/18/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/19/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/20/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/21/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/22/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/23/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/24/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/25/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/26/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/27/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/28/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/29/avatar.svg\"></a>\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
+ "readme": "# debug\n[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) \n[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)\n\n\n\nA tiny node.js debugging utility modelled after node core's debugging technique.\n\n**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**\n\n## Installation\n\n```bash\n$ npm install debug\n```\n\n## Usage\n\n`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.\n\nExample _app.js_:\n\n```js\nvar debug = require('debug')('http')\n , http = require('http')\n , name = 'My App';\n\n// fake app\n\ndebug('booting %s', name);\n\nhttp.createServer(function(req, res){\n debug(req.method + ' ' + req.url);\n res.end('hello\\n');\n}).listen(3000, function(){\n debug('listening');\n});\n\n// fake worker of some kind\n\nrequire('./worker');\n```\n\nExample _worker.js_:\n\n```js\nvar debug = require('debug')('worker');\n\nsetInterval(function(){\n debug('doing some work');\n}, 1000);\n```\n\n The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:\n\n ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)\n\n ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)\n\n#### Windows note\n\n On Windows the environment variable is set using the `set` command.\n\n ```cmd\n set DEBUG=*,-not_this\n ```\n\n Note that PowerShell uses different syntax to set environment variables.\n\n ```cmd\n $env:DEBUG = \"*,-not_this\"\n ```\n\nThen, run the program to be debugged as usual.\n\n## Millisecond diff\n\n When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the \"+NNNms\" will show you how much time was spent between calls.\n\n ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)\n\n When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:\n\n ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)\n\n## Conventions\n\n If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use \":\" to separate features. For example \"bodyParser\" from Connect would then be \"connect:bodyParser\".\n\n## Wildcards\n\n The `*` character may be used as a wildcard. Suppose for example your library has debuggers named \"connect:bodyParser\", \"connect:compress\", \"connect:session\", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.\n\n You can also exclude specific debuggers by prefixing them with a \"-\" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with \"connect:\".\n\n## Environment Variables\n\n When running through Node.js, you can set a few environment variables that will\n change the behavior of the debug logging:\n\n| Name | Purpose |\n|-----------|-------------------------------------------------|\n| `DEBUG` | Enables/disables specific debugging namespaces. |\n| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |\n| `DEBUG_DEPTH` | Object inspection depth. |\n| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |\n\n\n __Note:__ The environment variables beginning with `DEBUG_` end up being\n converted into an Options object that gets used with `%o`/`%O` formatters.\n See the Node.js documentation for\n [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)\n for the complete list.\n\n## Formatters\n\n\n Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:\n\n| Formatter | Representation |\n|-----------|----------------|\n| `%O` | Pretty-print an Object on multiple lines. |\n| `%o` | Pretty-print an Object all on a single line. |\n| `%s` | String. |\n| `%d` | Number (both integer and float). |\n| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |\n| `%%` | Single percent sign ('%'). This does not consume an argument. |\n\n### Custom formatters\n\n You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:\n\n```js\nconst createDebug = require('debug')\ncreateDebug.formatters.h = (v) => {\n return v.toString('hex')\n}\n\n// …elsewhere\nconst debug = createDebug('foo')\ndebug('this is hex: %h', new Buffer('hello world'))\n// foo this is hex: 68656c6c6f20776f726c6421 +0ms\n```\n\n## Browser support\n You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),\n or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),\n if you don't want to build it yourself.\n\n Debug's enable state is currently persisted by `localStorage`.\n Consider the situation shown below where you have `worker:a` and `worker:b`,\n and wish to debug both. You can enable this using `localStorage.debug`:\n\n```js\nlocalStorage.debug = 'worker:*'\n```\n\nAnd then refresh the page.\n\n```js\na = debug('worker:a');\nb = debug('worker:b');\n\nsetInterval(function(){\n a('doing some work');\n}, 1000);\n\nsetInterval(function(){\n b('doing some work');\n}, 1200);\n```\n\n#### Web Inspector Colors\n\n Colors are also enabled on \"Web Inspectors\" that understand the `%c` formatting\n option. These are WebKit web inspectors, Firefox ([since version\n 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))\n and the Firebug plugin for Firefox (any version).\n\n Colored output looks something like:\n\n ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)\n\n\n## Output streams\n\n By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:\n\nExample _stdout.js_:\n\n```js\nvar debug = require('debug');\nvar error = debug('app:error');\n\n// by default stderr is used\nerror('goes to stderr!');\n\nvar log = debug('app:log');\n// set this namespace to log via console.log\nlog.log = console.log.bind(console); // don't forget to bind to console!\nlog('goes to stdout');\nerror('still goes to stderr!');\n\n// set all output to go via console.info\n// overrides all per-namespace log settings\ndebug.log = console.info.bind(console);\nerror('now goes to stdout via console.info');\nlog('still goes to stdout, but via console.info now');\n```\n\n\n## Authors\n\n - TJ Holowaychuk\n - Nathan Rajlich\n - Andrew Rhyne\n \n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]\n\n<a href=\"https://opencollective.com/debug/backer/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/9/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/10/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/11/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/12/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/13/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/14/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/15/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/16/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/17/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/18/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/19/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/20/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/21/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/22/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/23/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/24/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/25/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/26/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/27/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/28/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/backer/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/backer/29/avatar.svg\"></a>\n\n\n## Sponsors\n\nBecome a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]\n\n<a href=\"https://opencollective.com/debug/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/5/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/6/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/7/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/8/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/9/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/9/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/10/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/10/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/11/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/11/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/12/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/12/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/13/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/13/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/14/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/14/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/15/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/15/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/16/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/16/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/17/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/17/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/18/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/18/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/19/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/19/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/20/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/20/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/21/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/21/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/22/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/22/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/23/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/23/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/24/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/24/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/25/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/25/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/26/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/26/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/27/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/27/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/28/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/28/avatar.svg\"></a>\n<a href=\"https://opencollective.com/debug/sponsor/29/website\" target=\"_blank\"><img src=\"https://opencollective.com/debug/sponsor/29/avatar.svg\"></a>\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git://github.com/visionmedia/debug.git"
},
"scripts": {},
- "version": "2.6.6"
+ "version": "2.6.8"
}
diff --git a/node_modules/nyc/node_modules/debug/src/browser.js b/node_modules/nyc/node_modules/debug/src/browser.js
index 053f4b898..710692493 100644
--- a/node_modules/nyc/node_modules/debug/src/browser.js
+++ b/node_modules/nyc/node_modules/debug/src/browser.js
@@ -46,14 +46,14 @@ function useColors() {
// is webkit? http://stackoverflow.com/a/16459606/376773
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
+ return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
// is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
+ (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
// is firefox >= v31?
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
// double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
}
/**
diff --git a/node_modules/nyc/node_modules/debug/src/node.js b/node_modules/nyc/node_modules/debug/src/node.js
index 3c7407b6b..af6129768 100644
--- a/node_modules/nyc/node_modules/debug/src/node.js
+++ b/node_modules/nyc/node_modules/debug/src/node.js
@@ -231,7 +231,12 @@ function createWritableStdioStream (fd) {
*/
function init (debug) {
- debug.inspectOpts = util._extend({}, exports.inspectOpts);
+ debug.inspectOpts = {};
+
+ var keys = Object.keys(exports.inspectOpts);
+ for (var i = 0; i < keys.length; i++) {
+ debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
+ }
}
/**
diff --git a/node_modules/nyc/node_modules/decamelize/package.json b/node_modules/nyc/node_modules/decamelize/package.json
index d87284ecd..a91fd850f 100644
--- a/node_modules/nyc/node_modules/decamelize/package.json
+++ b/node_modules/nyc/node_modules/decamelize/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs"
]
],
"_from": "decamelize@>=1.0.0 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "f6534d15148269b20352e7bee26f501f9a191290",
"_shrinkwrap": null,
"_spec": "decamelize@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/default-require-extensions/package.json b/node_modules/nyc/node_modules/default-require-extensions/package.json
index 182231b83..b551be733 100644
--- a/node_modules/nyc/node_modules/default-require-extensions/package.json
+++ b/node_modules/nyc/node_modules/default-require-extensions/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "default-require-extensions@>=1.0.0 <2.0.0",
@@ -41,7 +41,7 @@
"_shasum": "f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8",
"_shrinkwrap": null,
"_spec": "default-require-extensions@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "James Talmage",
"email": "james@talmage.io",
diff --git a/node_modules/nyc/node_modules/detect-indent/package.json b/node_modules/nyc/node_modules/detect-indent/package.json
index 0d69f99dd..20b1d7ca8 100644
--- a/node_modules/nyc/node_modules/detect-indent/package.json
+++ b/node_modules/nyc/node_modules/detect-indent/package.json
@@ -10,7 +10,7 @@
"spec": ">=4.0.0 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "detect-indent@>=4.0.0 <5.0.0",
@@ -40,7 +40,7 @@
"_shasum": "f76d064352cdf43a1cb6ce619c4ee3a9475de208",
"_shrinkwrap": null,
"_spec": "detect-indent@^4.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/error-ex/package.json b/node_modules/nyc/node_modules/error-ex/package.json
index b34aeef18..ce9cd259b 100644
--- a/node_modules/nyc/node_modules/error-ex/package.json
+++ b/node_modules/nyc/node_modules/error-ex/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.2.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/parse-json"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/parse-json"
]
],
"_from": "error-ex@>=1.2.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "f855a86ce61adc4e8621c3cda21e7a7612c3a8dc",
"_shrinkwrap": null,
"_spec": "error-ex@^1.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/parse-json",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/parse-json",
"bugs": {
"url": "https://github.com/qix-/node-error-ex/issues"
},
diff --git a/node_modules/nyc/node_modules/escape-string-regexp/package.json b/node_modules/nyc/node_modules/escape-string-regexp/package.json
index 527a95358..e5fc066fc 100644
--- a/node_modules/nyc/node_modules/escape-string-regexp/package.json
+++ b/node_modules/nyc/node_modules/escape-string-regexp/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/chalk"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/chalk"
]
],
"_from": "escape-string-regexp@>=1.0.2 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
"_shrinkwrap": null,
"_spec": "escape-string-regexp@^1.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/chalk",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/esutils/package.json b/node_modules/nyc/node_modules/esutils/package.json
index 900230c26..25a3dae30 100644
--- a/node_modules/nyc/node_modules/esutils/package.json
+++ b/node_modules/nyc/node_modules/esutils/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.2 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-types"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-types"
]
],
"_from": "esutils@>=2.0.2 <3.0.0",
@@ -41,7 +41,7 @@
"_shasum": "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b",
"_shrinkwrap": null,
"_spec": "esutils@^2.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-types",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-types",
"bugs": {
"url": "https://github.com/estools/esutils/issues"
},
diff --git a/node_modules/nyc/node_modules/execa/index.js b/node_modules/nyc/node_modules/execa/index.js
new file mode 100644
index 000000000..0219cfa73
--- /dev/null
+++ b/node_modules/nyc/node_modules/execa/index.js
@@ -0,0 +1,275 @@
+'use strict';
+const childProcess = require('child_process');
+const util = require('util');
+const crossSpawn = require('cross-spawn');
+const stripEof = require('strip-eof');
+const npmRunPath = require('npm-run-path');
+const isStream = require('is-stream');
+const _getStream = require('get-stream');
+const pFinally = require('p-finally');
+const onExit = require('signal-exit');
+const errname = require('./lib/errname');
+
+const TEN_MEGABYTES = 1000 * 1000 * 10;
+
+function handleArgs(cmd, args, opts) {
+ let parsed;
+
+ if (opts && opts.__winShell === true) {
+ delete opts.__winShell;
+ parsed = {
+ command: cmd,
+ args,
+ options: opts,
+ file: cmd,
+ original: cmd
+ };
+ } else {
+ parsed = crossSpawn._parse(cmd, args, opts);
+ }
+
+ opts = Object.assign({
+ maxBuffer: TEN_MEGABYTES,
+ stripEof: true,
+ preferLocal: true,
+ encoding: 'utf8',
+ reject: true,
+ cleanup: true
+ }, parsed.options);
+
+ if (opts.preferLocal) {
+ opts.env = npmRunPath.env(opts);
+ }
+
+ return {
+ cmd: parsed.command,
+ args: parsed.args,
+ opts
+ };
+}
+
+function handleInput(spawned, opts) {
+ const input = opts.input;
+
+ if (input === null || input === undefined) {
+ return;
+ }
+
+ if (isStream(input)) {
+ input.pipe(spawned.stdin);
+ } else {
+ spawned.stdin.end(input);
+ }
+}
+
+function handleOutput(opts, val) {
+ if (val && opts.stripEof) {
+ val = stripEof(val);
+ }
+
+ return val;
+}
+
+function handleShell(fn, cmd, opts) {
+ let file = '/bin/sh';
+ let args = ['-c', cmd];
+
+ opts = Object.assign({}, opts);
+
+ if (process.platform === 'win32') {
+ opts.__winShell = true;
+ file = process.env.comspec || 'cmd.exe';
+ args = ['/s', '/c', `"${cmd}"`];
+ opts.windowsVerbatimArguments = true;
+ }
+
+ if (opts.shell) {
+ file = opts.shell;
+ delete opts.shell;
+ }
+
+ return fn(file, args, opts);
+}
+
+function getStream(process, stream, encoding, maxBuffer) {
+ if (!process[stream]) {
+ return null;
+ }
+
+ let ret;
+
+ if (encoding) {
+ ret = _getStream(process[stream], {
+ encoding,
+ maxBuffer
+ });
+ } else {
+ ret = _getStream.buffer(process[stream], {maxBuffer});
+ }
+
+ return ret.catch(err => {
+ err.stream = stream;
+ err.message = `${stream} ${err.message}`;
+ throw err;
+ });
+}
+
+module.exports = (cmd, args, opts) => {
+ let joinedCmd = cmd;
+
+ if (Array.isArray(args) && args.length > 0) {
+ joinedCmd += ' ' + args.join(' ');
+ }
+
+ const parsed = handleArgs(cmd, args, opts);
+ const encoding = parsed.opts.encoding;
+ const maxBuffer = parsed.opts.maxBuffer;
+
+ let spawned;
+ try {
+ spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts);
+ } catch (err) {
+ return Promise.reject(err);
+ }
+
+ let removeExitHandler;
+ if (parsed.opts.cleanup) {
+ removeExitHandler = onExit(() => {
+ spawned.kill();
+ });
+ }
+
+ let timeoutId = null;
+ let timedOut = false;
+
+ const cleanupTimeout = () => {
+ if (timeoutId) {
+ clearTimeout(timeoutId);
+ timeoutId = null;
+ }
+ };
+
+ if (parsed.opts.timeout > 0) {
+ timeoutId = setTimeout(() => {
+ timeoutId = null;
+ timedOut = true;
+ spawned.kill(parsed.killSignal);
+ }, parsed.opts.timeout);
+ }
+
+ const processDone = new Promise(resolve => {
+ spawned.on('exit', (code, signal) => {
+ cleanupTimeout();
+ resolve({code, signal});
+ });
+
+ spawned.on('error', err => {
+ cleanupTimeout();
+ resolve({err});
+ });
+ });
+
+ function destroy() {
+ if (spawned.stdout) {
+ spawned.stdout.destroy();
+ }
+
+ if (spawned.stderr) {
+ spawned.stderr.destroy();
+ }
+ }
+
+ const promise = pFinally(Promise.all([
+ processDone,
+ getStream(spawned, 'stdout', encoding, maxBuffer),
+ getStream(spawned, 'stderr', encoding, maxBuffer)
+ ]).then(arr => {
+ const result = arr[0];
+ const stdout = arr[1];
+ const stderr = arr[2];
+
+ let err = result.err;
+ const code = result.code;
+ const signal = result.signal;
+
+ if (removeExitHandler) {
+ removeExitHandler();
+ }
+
+ if (err || code !== 0 || signal !== null) {
+ if (!err) {
+ err = new Error(`Command failed: ${joinedCmd}\n${stderr}${stdout}`);
+ err.code = code < 0 ? errname(code) : code;
+ }
+
+ // TODO: missing some timeout logic for killed
+ // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203
+ // err.killed = spawned.killed || killed;
+ err.killed = err.killed || spawned.killed;
+
+ err.stdout = stdout;
+ err.stderr = stderr;
+ err.failed = true;
+ err.signal = signal || null;
+ err.cmd = joinedCmd;
+ err.timedOut = timedOut;
+
+ if (!parsed.opts.reject) {
+ return err;
+ }
+
+ throw err;
+ }
+
+ return {
+ stdout: handleOutput(parsed.opts, stdout),
+ stderr: handleOutput(parsed.opts, stderr),
+ code: 0,
+ failed: false,
+ killed: false,
+ signal: null,
+ cmd: joinedCmd,
+ timedOut: false
+ };
+ }), destroy);
+
+ crossSpawn._enoent.hookChildProcess(spawned, parsed);
+
+ handleInput(spawned, parsed.opts);
+
+ spawned.then = promise.then.bind(promise);
+ spawned.catch = promise.catch.bind(promise);
+
+ return spawned;
+};
+
+module.exports.stdout = function () {
+ // TODO: set `stderr: 'ignore'` when that option is implemented
+ return module.exports.apply(null, arguments).then(x => x.stdout);
+};
+
+module.exports.stderr = function () {
+ // TODO: set `stdout: 'ignore'` when that option is implemented
+ return module.exports.apply(null, arguments).then(x => x.stderr);
+};
+
+module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts);
+
+module.exports.sync = (cmd, args, opts) => {
+ const parsed = handleArgs(cmd, args, opts);
+
+ if (isStream(parsed.opts.input)) {
+ throw new TypeError('The `input` option cannot be a stream in sync mode');
+ }
+
+ const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts);
+
+ result.stdout = handleOutput(parsed.opts, result.stdout);
+ result.stderr = handleOutput(parsed.opts, result.stderr);
+
+ return result;
+};
+
+module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts);
+
+module.exports.spawn = util.deprecate(module.exports, 'execa.spawn() is deprecated. Use execa() instead.');
diff --git a/node_modules/nyc/node_modules/execa/lib/errname.js b/node_modules/nyc/node_modules/execa/lib/errname.js
new file mode 100644
index 000000000..a99d7500c
--- /dev/null
+++ b/node_modules/nyc/node_modules/execa/lib/errname.js
@@ -0,0 +1,37 @@
+'use strict';
+// The Node team wants to deprecate `process.bind(...)`.
+// https://github.com/nodejs/node/pull/2768
+//
+// However, we need the 'uv' binding for errname support.
+// This is a defensive wrapper around it so `execa` will not fail entirely if it stops working someday.
+//
+// If this ever stops working. See: https://github.com/sindresorhus/execa/issues/31#issuecomment-215939939 for another possible solution.
+let uv;
+
+try {
+ uv = process.binding('uv');
+
+ if (typeof uv.errname !== 'function') {
+ throw new Error('uv.errname is not a function');
+ }
+} catch (err) {
+ console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err);
+ uv = null;
+}
+
+function errname(uv, code) {
+ if (uv) {
+ return uv.errname(code);
+ }
+
+ if (!(code < 0)) {
+ throw new Error('err >= 0');
+ }
+
+ return `Unknown system error ${code}`;
+}
+
+module.exports = code => errname(uv, code);
+
+// used for testing the fallback behavior
+module.exports.__test__ = errname;
diff --git a/node_modules/nyc/node_modules/execa/license b/node_modules/nyc/node_modules/execa/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/execa/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/execa/package.json b/node_modules/nyc/node_modules/execa/package.json
new file mode 100644
index 000000000..cb6b95e07
--- /dev/null
+++ b/node_modules/nyc/node_modules/execa/package.json
@@ -0,0 +1,141 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "execa@^0.5.0",
+ "scope": null,
+ "escapedName": "execa",
+ "name": "execa",
+ "rawSpec": "^0.5.0",
+ "spec": ">=0.5.0 <0.6.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale"
+ ]
+ ],
+ "_from": "execa@>=0.5.0 <0.6.0",
+ "_id": "execa@0.5.1",
+ "_inCache": true,
+ "_location": "/execa",
+ "_nodeVersion": "4.6.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/execa-0.5.1.tgz_1483889519424_0.4603614055085927"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.11",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "execa@^0.5.0",
+ "scope": null,
+ "escapedName": "execa",
+ "name": "execa",
+ "rawSpec": "^0.5.0",
+ "spec": ">=0.5.0 <0.6.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/os-locale"
+ ],
+ "_resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz",
+ "_shasum": "de3fb85cb8d6e91c85bcbceb164581785cb57b36",
+ "_shrinkwrap": null,
+ "_spec": "execa@^0.5.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/execa/issues"
+ },
+ "dependencies": {
+ "cross-spawn": "^4.0.0",
+ "get-stream": "^2.2.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"
+ },
+ "description": "A better `child_process`",
+ "devDependencies": {
+ "ava": "*",
+ "cat-names": "^1.0.2",
+ "coveralls": "^2.11.9",
+ "delay": "^1.3.1",
+ "is-running": "^2.0.0",
+ "nyc": "^8.3.0",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "de3fb85cb8d6e91c85bcbceb164581785cb57b36",
+ "tarball": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "lib"
+ ],
+ "gitHead": "e5598cf42a5433ff1f7954f9cd31a57b429d4875",
+ "homepage": "https://github.com/sindresorhus/execa#readme",
+ "keywords": [
+ "exec",
+ "child",
+ "process",
+ "execute",
+ "fork",
+ "execfile",
+ "spawn",
+ "file",
+ "shell",
+ "bin",
+ "binary",
+ "binaries",
+ "npm",
+ "path",
+ "local"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "James Talmage",
+ "email": "james@talmage.io",
+ "url": "github.com/jamestalmage"
+ }
+ ],
+ "name": "execa",
+ "nyc": {
+ "reporter": [
+ "text",
+ "lcov"
+ ],
+ "exclude": [
+ "node_modules",
+ "**/fixtures/**",
+ "**/test.js",
+ "**/test/**"
+ ]
+ },
+ "optionalDependencies": {},
+ "readme": "# execa [![Build Status: Linux](https://travis-ci.org/sindresorhus/execa.svg?branch=master)](https://travis-ci.org/sindresorhus/execa) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/x5ajamxtjtt93cqv/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/execa/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/execa/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/execa?branch=master)\n\n> A better [`child_process`](https://nodejs.org/api/child_process.html)\n\n\n## Why\n\n- Promise interface.\n- [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`.\n- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform.\n- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why)\n- Higher max buffer. 10 MB instead of 200 KB.\n- [Executes locally installed binaries by name.](#preferlocal)\n- [Cleans up spawned processes when the parent process dies.](#cleanup)\n\n\n## Install\n\n```\n$ npm install --save execa\n```\n\n\n## Usage\n\n```js\nconst execa = require('execa');\n\nexeca('echo', ['unicorns']).then(result => {\n\tconsole.log(result.stdout);\n\t//=> 'unicorns'\n});\n\n// pipe the child process stdout to the current stdout\nexeca('echo', ['unicorns']).stdout.pipe(process.stdout);\n\nexeca.shell('echo unicorns').then(result => {\n\tconsole.log(result.stdout);\n\t//=> 'unicorns'\n});\n\n// example of catching an error\nexeca.shell('exit 3').catch(error => {\n\tconsole.log(error);\n\t/*\n\t{\n\t\tmessage: 'Command failed: /bin/sh -c exit 3'\n\t\tkilled: false,\n\t\tcode: 3,\n\t\tsignal: null,\n\t\tcmd: '/bin/sh -c exit 3',\n\t\tstdout: '',\n\t\tstderr: '',\n\t\ttimedOut: false\n\t}\n\t*/\n});\n```\n\n\n## API\n\n### execa(file, [arguments], [options])\n\nExecute a file.\n\nSame options as [`child_process.execFile`](https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback).\n\nThink of this as a mix of `child_process.execFile` and `child_process.spawn`.\n\nReturns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties.\n\n### execa.stdout(file, [arguments], [options])\n\nSame as `execa()`, but returns only `stdout`.\n\n### execa.stderr(file, [arguments], [options])\n\nSame as `execa()`, but returns only `stderr`.\n\n### execa.shell(command, [options])\n\nExecute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer.\n\nSame options as [`child_process.exec`](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback).\n\nReturns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess).\n\nThe `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties.\n\n### execa.sync(file, [arguments], [options])\n\nExecute a file synchronously.\n\nSame options as [`child_process.execFileSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options), except the default encoding is `utf8` instead of `buffer`.\n\nReturns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).\n\n### execa.shellSync(file, [options])\n\nExecute a command synchronously through the system shell.\n\nSame options as [`child_process.execSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options), except the default encoding is `utf8` instead of `buffer`.\n\nReturns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).\n\n### options\n\nAdditional options:\n\n#### stripEof\n\nType: `boolean`<br>\nDefault: `true`\n\n[Strip EOF](https://github.com/sindresorhus/strip-eof) (last newline) from the output.\n\n#### preferLocal\n\nType: `boolean`<br>\nDefault: `true`\n\nPrefer locally installed binaries when looking for a binary to execute.<br>\nIf you `$ npm install foo`, you can then `execa('foo')`.\n\n#### input\n\nType: `string` `Buffer` `ReadableStream`\n\nWrite some input to the `stdin` of your binary.<br>\nStreams are not allowed when using the synchronous methods.\n\n#### reject\n\nType: `boolean`<br>\nDefault: `true`\n\nSetting this to `false` resolves the promise with the error instead of rejecting it.\n\n#### cleanup\n\nType: `boolean`<br>\nDefault: `true`\n\nKeep track of the spawned process and `kill` it when the parent process exits.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/execa.git"
+ },
+ "scripts": {
+ "test": "xo && nyc ava"
+ },
+ "version": "0.5.1",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/execa/readme.md b/node_modules/nyc/node_modules/execa/readme.md
new file mode 100644
index 000000000..16189acb2
--- /dev/null
+++ b/node_modules/nyc/node_modules/execa/readme.md
@@ -0,0 +1,150 @@
+# execa [![Build Status: Linux](https://travis-ci.org/sindresorhus/execa.svg?branch=master)](https://travis-ci.org/sindresorhus/execa) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/x5ajamxtjtt93cqv/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/execa/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/execa/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/execa?branch=master)
+
+> A better [`child_process`](https://nodejs.org/api/child_process.html)
+
+
+## Why
+
+- Promise interface.
+- [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`.
+- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform.
+- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why)
+- Higher max buffer. 10 MB instead of 200 KB.
+- [Executes locally installed binaries by name.](#preferlocal)
+- [Cleans up spawned processes when the parent process dies.](#cleanup)
+
+
+## Install
+
+```
+$ npm install --save execa
+```
+
+
+## Usage
+
+```js
+const execa = require('execa');
+
+execa('echo', ['unicorns']).then(result => {
+ console.log(result.stdout);
+ //=> 'unicorns'
+});
+
+// pipe the child process stdout to the current stdout
+execa('echo', ['unicorns']).stdout.pipe(process.stdout);
+
+execa.shell('echo unicorns').then(result => {
+ console.log(result.stdout);
+ //=> 'unicorns'
+});
+
+// example of catching an error
+execa.shell('exit 3').catch(error => {
+ console.log(error);
+ /*
+ {
+ message: 'Command failed: /bin/sh -c exit 3'
+ killed: false,
+ code: 3,
+ signal: null,
+ cmd: '/bin/sh -c exit 3',
+ stdout: '',
+ stderr: '',
+ timedOut: false
+ }
+ */
+});
+```
+
+
+## API
+
+### execa(file, [arguments], [options])
+
+Execute a file.
+
+Same options as [`child_process.execFile`](https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback).
+
+Think of this as a mix of `child_process.execFile` and `child_process.spawn`.
+
+Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties.
+
+### execa.stdout(file, [arguments], [options])
+
+Same as `execa()`, but returns only `stdout`.
+
+### execa.stderr(file, [arguments], [options])
+
+Same as `execa()`, but returns only `stderr`.
+
+### execa.shell(command, [options])
+
+Execute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer.
+
+Same options as [`child_process.exec`](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback).
+
+Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess).
+
+The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties.
+
+### execa.sync(file, [arguments], [options])
+
+Execute a file synchronously.
+
+Same options as [`child_process.execFileSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options), except the default encoding is `utf8` instead of `buffer`.
+
+Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
+
+### execa.shellSync(file, [options])
+
+Execute a command synchronously through the system shell.
+
+Same options as [`child_process.execSync`](https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options), except the default encoding is `utf8` instead of `buffer`.
+
+Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
+
+### options
+
+Additional options:
+
+#### stripEof
+
+Type: `boolean`<br>
+Default: `true`
+
+[Strip EOF](https://github.com/sindresorhus/strip-eof) (last newline) from the output.
+
+#### preferLocal
+
+Type: `boolean`<br>
+Default: `true`
+
+Prefer locally installed binaries when looking for a binary to execute.<br>
+If you `$ npm install foo`, you can then `execa('foo')`.
+
+#### input
+
+Type: `string` `Buffer` `ReadableStream`
+
+Write some input to the `stdin` of your binary.<br>
+Streams are not allowed when using the synchronous methods.
+
+#### reject
+
+Type: `boolean`<br>
+Default: `true`
+
+Setting this to `false` resolves the promise with the error instead of rejecting it.
+
+#### cleanup
+
+Type: `boolean`<br>
+Default: `true`
+
+Keep track of the spawned process and `kill` it when the parent process exits.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/expand-brackets/package.json b/node_modules/nyc/node_modules/expand-brackets/package.json
index 0da27a61b..cf09841eb 100644
--- a/node_modules/nyc/node_modules/expand-brackets/package.json
+++ b/node_modules/nyc/node_modules/expand-brackets/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.4 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "expand-brackets@>=0.1.4 <0.2.0",
@@ -44,7 +44,7 @@
"_shasum": "df07284e342a807cd733ac5af72411e581d1177b",
"_shrinkwrap": null,
"_spec": "expand-brackets@^0.1.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/expand-range/package.json b/node_modules/nyc/node_modules/expand-range/package.json
index 5bfbc8334..f5c2258b6 100644
--- a/node_modules/nyc/node_modules/expand-range/package.json
+++ b/node_modules/nyc/node_modules/expand-range/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.8.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/braces"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/braces"
]
],
"_from": "expand-range@>=1.8.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "a299effd335fe2721ebae8e257ec79644fc85337",
"_shrinkwrap": null,
"_spec": "expand-range@^1.8.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/braces",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/braces",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/extglob/package.json b/node_modules/nyc/node_modules/extglob/package.json
index 611c27930..349807279 100644
--- a/node_modules/nyc/node_modules/extglob/package.json
+++ b/node_modules/nyc/node_modules/extglob/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.3.1 <0.4.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "extglob@>=0.3.1 <0.4.0",
@@ -40,7 +40,7 @@
"_shasum": "2e18ff3d2f49ab2765cec9023f011daa8d8349a1",
"_shrinkwrap": null,
"_spec": "extglob@^0.3.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/filename-regex/package.json b/node_modules/nyc/node_modules/filename-regex/package.json
index 3772dd7d1..53a898b3d 100644
--- a/node_modules/nyc/node_modules/filename-regex/package.json
+++ b/node_modules/nyc/node_modules/filename-regex/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "filename-regex@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26",
"_shrinkwrap": null,
"_spec": "filename-regex@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/fill-range/package.json b/node_modules/nyc/node_modules/fill-range/package.json
index 3f5b870f2..cfaf71d1d 100644
--- a/node_modules/nyc/node_modules/fill-range/package.json
+++ b/node_modules/nyc/node_modules/fill-range/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.1.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/expand-range"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/expand-range"
]
],
"_from": "fill-range@>=2.1.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "50b77dfd7e469bc7492470963699fe7a8485a723",
"_shrinkwrap": null,
"_spec": "fill-range@^2.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/expand-range",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/expand-range",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/find-cache-dir/package.json b/node_modules/nyc/node_modules/find-cache-dir/package.json
index 0c06fe4f9..a6fd769ce 100644
--- a/node_modules/nyc/node_modules/find-cache-dir/package.json
+++ b/node_modules/nyc/node_modules/find-cache-dir/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "find-cache-dir@>=0.1.1 <0.2.0",
@@ -40,7 +40,7 @@
"_shasum": "c8defae57c8a52a8a784f9e31c57c742e993a0b9",
"_shrinkwrap": null,
"_spec": "find-cache-dir@^0.1.1",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "James Talmage",
"email": "james@talmage.io",
diff --git a/node_modules/nyc/node_modules/find-up/index.js b/node_modules/nyc/node_modules/find-up/index.js
index 7ff0e2b78..939c9553d 100644
--- a/node_modules/nyc/node_modules/find-up/index.js
+++ b/node_modules/nyc/node_modules/find-up/index.js
@@ -1,53 +1,48 @@
'use strict';
-var path = require('path');
-var pathExists = require('path-exists');
-var Promise = require('pinkie-promise');
+const path = require('path');
+const locatePath = require('locate-path');
-function splitPath(x) {
- return path.resolve(x || '').split(path.sep);
-}
-
-function join(parts, filename) {
- return path.resolve(parts.join(path.sep) + path.sep, filename);
-}
-
-module.exports = function (filename, opts) {
+module.exports = (filename, opts) => {
opts = opts || {};
- var parts = splitPath(opts.cwd);
+ const startDir = path.resolve(opts.cwd || '');
+ const root = path.parse(startDir).root;
- return new Promise(function (resolve) {
- (function find() {
- var fp = join(parts, filename);
+ const filenames = [].concat(filename);
- pathExists(fp).then(function (exists) {
- if (exists) {
- resolve(fp);
- } else if (parts.pop()) {
- find();
- } else {
+ return new Promise(resolve => {
+ (function find(dir) {
+ locatePath(filenames, {cwd: dir}).then(file => {
+ if (file) {
+ resolve(path.join(dir, file));
+ } else if (dir === root) {
resolve(null);
+ } else {
+ find(path.dirname(dir));
}
});
- })();
+ })(startDir);
});
};
-module.exports.sync = function (filename, opts) {
+module.exports.sync = (filename, opts) => {
opts = opts || {};
- var parts = splitPath(opts.cwd);
- var len = parts.length;
+ let dir = path.resolve(opts.cwd || '');
+ const root = path.parse(dir).root;
+
+ const filenames = [].concat(filename);
- while (len--) {
- var fp = join(parts, filename);
+ // eslint-disable-next-line no-constant-condition
+ while (true) {
+ const file = locatePath.sync(filenames, {cwd: dir});
- if (pathExists.sync(fp)) {
- return fp;
+ if (file) {
+ return path.join(dir, file);
+ } else if (dir === root) {
+ return null;
}
- parts.pop();
+ dir = path.dirname(dir);
}
-
- return null;
};
diff --git a/node_modules/nyc/node_modules/find-up/package.json b/node_modules/nyc/node_modules/find-up/package.json
index 02ac95d6b..e68e4be18 100644
--- a/node_modules/nyc/node_modules/find-up/package.json
+++ b/node_modules/nyc/node_modules/find-up/package.json
@@ -2,51 +2,50 @@
"_args": [
[
{
- "raw": "find-up@^1.1.2",
+ "raw": "find-up@^2.1.0",
"scope": null,
"escapedName": "find-up",
"name": "find-up",
- "rawSpec": "^1.1.2",
- "spec": ">=1.1.2 <2.0.0",
+ "rawSpec": "^2.1.0",
+ "spec": ">=2.1.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "find-up@>=1.1.2 <2.0.0",
- "_id": "find-up@1.1.2",
+ "_from": "find-up@>=2.1.0 <3.0.0",
+ "_id": "find-up@2.1.0",
"_inCache": true,
"_location": "/find-up",
- "_nodeVersion": "4.3.0",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/find-up-1.1.2.tgz_1457199955637_0.3445317060686648"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/find-up-2.1.0.tgz_1480684911017_0.33125952794216573"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.14.12",
+ "_npmVersion": "4.0.2",
"_phantomChildren": {},
"_requested": {
- "raw": "find-up@^1.1.2",
+ "raw": "find-up@^2.1.0",
"scope": null,
"escapedName": "find-up",
"name": "find-up",
- "rawSpec": "^1.1.2",
- "spec": ">=1.1.2 <2.0.0",
+ "rawSpec": "^2.1.0",
+ "spec": ">=2.1.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/",
- "/pkg-dir",
- "/read-pkg-up"
+ "/yargs/read-pkg-up"
],
- "_resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "_shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
+ "_resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "_shasum": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
"_shrinkwrap": null,
- "_spec": "find-up@^1.1.2",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "find-up@^2.1.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -56,8 +55,7 @@
"url": "https://github.com/sindresorhus/find-up/issues"
},
"dependencies": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
+ "locate-path": "^2.0.0"
},
"description": "Find a file by walking up parent directories",
"devDependencies": {
@@ -67,16 +65,16 @@
},
"directories": {},
"dist": {
- "shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
- "tarball": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ "shasum": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
+ "tarball": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
],
- "gitHead": "f2d7c1ff74fbac82b2cff038e311ef4b075d9184",
+ "gitHead": "10202fb1621f0c277d5d5eeaf01c1c32b008fbef",
"homepage": "https://github.com/sindresorhus/find-up#readme",
"keywords": [
"find",
@@ -108,7 +106,7 @@
],
"name": "find-up",
"optionalDependencies": {},
- "readme": "# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)\n\n> Find a file by walking up parent directories\n\n\n## Install\n\n```\n$ npm install --save find-up\n```\n\n\n## Usage\n\n```\n/\n└── Users\n └── sindresorhus\n ├── unicorn.png\n └── foo\n └── bar\n ├── baz\n └── example.js\n```\n\n```js\n// example.js\nconst findUp = require('find-up');\n\nfindUp('unicorn.png').then(filepath => {\n\tconsole.log(filepath);\n\t//=> '/Users/sindresorhus/unicorn.png'\n});\n```\n\n\n## API\n\n### findUp(filename, [options])\n\nReturns a promise for the filepath or `null`.\n\n### findUp.sync(filename, [options])\n\nReturns a filepath or `null`.\n\n#### filename\n\nType: `string`\n\nFilename of the file to find.\n\n#### options\n\n##### cwd\n\nType: `string` \nDefault: `process.cwd()`\n\nDirectory to start from.\n\n\n## Related\n\n- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module\n- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file\n- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readme": "# find-up [![Build Status: Linux and macOS](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/l0cyjmvh5lq72vq2/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/find-up/branch/master)\n\n> Find a file by walking up parent directories\n\n\n## Install\n\n```\n$ npm install --save find-up\n```\n\n\n## Usage\n\n```\n/\n└── Users\n\t\t└── sindresorhus\n\t\t\t\t├── unicorn.png\n\t\t\t\t└── foo\n\t\t\t\t\t\t└── bar\n\t\t\t\t\t\t\t\t├── baz\n\t\t\t\t\t\t\t\t└── example.js\n```\n\n```js\n// example.js\nconst findUp = require('find-up');\n\nfindUp('unicorn.png').then(filepath => {\n\tconsole.log(filepath);\n\t//=> '/Users/sindresorhus/unicorn.png'\n});\n\nfindUp(['rainbow.png', 'unicorn.png']).then(filepath => {\n\tconsole.log(filepath);\n\t//=> '/Users/sindresorhus/unicorn.png'\n});\n```\n\n\n## API\n\n### findUp(filename, [options])\n\nReturns a `Promise` for the filepath or `null`.\n\n### findUp([filenameA, filenameB], [options])\n\nReturns a `Promise` for the first filepath found (by respecting the order) or `null`.\n\n### findUp.sync(filename, [options])\n\nReturns a filepath or `null`.\n\n### findUp.sync([filenameA, filenameB], [options])\n\nReturns the first filepath found (by respecting the order) or `null`.\n\n#### filename\n\nType: `string`\n\nFilename of the file to find.\n\n#### options\n\n##### cwd\n\nType: `string`<br>\nDefault: `process.cwd()`\n\nDirectory to start from.\n\n\n## Related\n\n- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module\n- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file\n- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
@@ -117,5 +115,8 @@
"scripts": {
"test": "xo && ava"
},
- "version": "1.1.2"
+ "version": "2.1.0",
+ "xo": {
+ "esnext": true
+ }
}
diff --git a/node_modules/nyc/node_modules/find-up/readme.md b/node_modules/nyc/node_modules/find-up/readme.md
index 9ea0611c3..b5ad69455 100644
--- a/node_modules/nyc/node_modules/find-up/readme.md
+++ b/node_modules/nyc/node_modules/find-up/readme.md
@@ -1,4 +1,4 @@
-# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)
+# find-up [![Build Status: Linux and macOS](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/l0cyjmvh5lq72vq2/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/find-up/branch/master)
> Find a file by walking up parent directories
@@ -15,12 +15,12 @@ $ npm install --save find-up
```
/
└── Users
- └── sindresorhus
- ├── unicorn.png
- └── foo
- └── bar
- ├── baz
- └── example.js
+ └── sindresorhus
+ ├── unicorn.png
+ └── foo
+ └── bar
+ ├── baz
+ └── example.js
```
```js
@@ -31,6 +31,11 @@ findUp('unicorn.png').then(filepath => {
console.log(filepath);
//=> '/Users/sindresorhus/unicorn.png'
});
+
+findUp(['rainbow.png', 'unicorn.png']).then(filepath => {
+ console.log(filepath);
+ //=> '/Users/sindresorhus/unicorn.png'
+});
```
@@ -38,12 +43,20 @@ findUp('unicorn.png').then(filepath => {
### findUp(filename, [options])
-Returns a promise for the filepath or `null`.
+Returns a `Promise` for the filepath or `null`.
+
+### findUp([filenameA, filenameB], [options])
+
+Returns a `Promise` for the first filepath found (by respecting the order) or `null`.
### findUp.sync(filename, [options])
Returns a filepath or `null`.
+### findUp.sync([filenameA, filenameB], [options])
+
+Returns the first filepath found (by respecting the order) or `null`.
+
#### filename
Type: `string`
@@ -54,7 +67,7 @@ Filename of the file to find.
##### cwd
-Type: `string`
+Type: `string`<br>
Default: `process.cwd()`
Directory to start from.
@@ -69,4 +82,4 @@ Directory to start from.
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/for-in/package.json b/node_modules/nyc/node_modules/for-in/package.json
index d14bbca3d..781e92d1b 100644
--- a/node_modules/nyc/node_modules/for-in/package.json
+++ b/node_modules/nyc/node_modules/for-in/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/for-own"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/for-own"
]
],
"_from": "for-in@>=1.0.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "81068d295a8142ec0ac726c6e2200c30fb6d5e80",
"_shrinkwrap": null,
"_spec": "for-in@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/for-own",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/for-own",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/for-own/package.json b/node_modules/nyc/node_modules/for-own/package.json
index bd0979cc3..953d369c3 100644
--- a/node_modules/nyc/node_modules/for-own/package.json
+++ b/node_modules/nyc/node_modules/for-own/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.4 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/object.omit"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/object.omit"
]
],
"_from": "for-own@>=0.1.4 <0.2.0",
@@ -44,7 +44,7 @@
"_shasum": "5265c681a4f294dabbf17c9509b6763aa84510ce",
"_shrinkwrap": null,
"_spec": "for-own@^0.1.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/object.omit",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/object.omit",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/foreground-child/package.json b/node_modules/nyc/node_modules/foreground-child/package.json
index 7073f7496..d3135c6d2 100644
--- a/node_modules/nyc/node_modules/foreground-child/package.json
+++ b/node_modules/nyc/node_modules/foreground-child/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.5.3 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "foreground-child@>=1.5.3 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9",
"_shrinkwrap": null,
"_spec": "foreground-child@^1.5.3",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/fs.realpath/package.json b/node_modules/nyc/node_modules/fs.realpath/package.json
index 784777a7f..806103c50 100644
--- a/node_modules/nyc/node_modules/fs.realpath/package.json
+++ b/node_modules/nyc/node_modules/fs.realpath/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
"_from": "fs.realpath@>=1.0.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
"_shrinkwrap": null,
"_spec": "fs.realpath@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/get-caller-file/package.json b/node_modules/nyc/node_modules/get-caller-file/package.json
index 997d7e80c..478b37f2f 100644
--- a/node_modules/nyc/node_modules/get-caller-file/package.json
+++ b/node_modules/nyc/node_modules/get-caller-file/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
"_from": "get-caller-file@>=1.0.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "f702e63127e7e231c160a80c1554acb70d5047e5",
"_shrinkwrap": null,
"_spec": "get-caller-file@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Stefan Penner"
},
diff --git a/node_modules/nyc/node_modules/get-stream/buffer-stream.js b/node_modules/nyc/node_modules/get-stream/buffer-stream.js
new file mode 100644
index 000000000..cc834c4dc
--- /dev/null
+++ b/node_modules/nyc/node_modules/get-stream/buffer-stream.js
@@ -0,0 +1,54 @@
+var PassThrough = require('stream').PassThrough;
+var objectAssign = require('object-assign');
+
+module.exports = function (opts) {
+ opts = objectAssign({}, opts);
+
+ var array = opts.array;
+ var encoding = opts.encoding;
+
+ var buffer = encoding === 'buffer';
+ var objectMode = false;
+
+ if (array) {
+ objectMode = !(encoding || buffer);
+ } else {
+ encoding = encoding || 'utf8';
+ }
+
+ if (buffer) {
+ encoding = null;
+ }
+
+ var len = 0;
+ var ret = [];
+
+ var stream = new PassThrough({objectMode: objectMode});
+
+ if (encoding) {
+ stream.setEncoding(encoding);
+ }
+
+ stream.on('data', function (chunk) {
+ ret.push(chunk);
+
+ if (objectMode) {
+ len = ret.length;
+ } else {
+ len += chunk.length;
+ }
+ });
+
+ stream.getBufferedValue = function () {
+ if (array) {
+ return ret;
+ }
+ return buffer ? Buffer.concat(ret, len) : ret.join('');
+ };
+
+ stream.getBufferedLength = function () {
+ return len;
+ };
+
+ return stream;
+};
diff --git a/node_modules/nyc/node_modules/get-stream/index.js b/node_modules/nyc/node_modules/get-stream/index.js
new file mode 100644
index 000000000..aa60cf038
--- /dev/null
+++ b/node_modules/nyc/node_modules/get-stream/index.js
@@ -0,0 +1,59 @@
+'use strict';
+var Promise = require('pinkie-promise');
+var objectAssign = require('object-assign');
+var bufferStream = require('./buffer-stream');
+
+function getStream(inputStream, opts) {
+ if (!inputStream) {
+ return Promise.reject(new Error('Expected a stream'));
+ }
+
+ opts = objectAssign({maxBuffer: Infinity}, opts);
+ var maxBuffer = opts.maxBuffer;
+ var stream;
+ var clean;
+
+ var p = new Promise(function (resolve, reject) {
+ stream = bufferStream(opts);
+ inputStream.once('error', error);
+ inputStream.pipe(stream);
+
+ stream.on('data', function () {
+ if (stream.getBufferedLength() > maxBuffer) {
+ reject(new Error('maxBuffer exceeded'));
+ }
+ });
+ stream.once('error', error);
+ stream.on('end', resolve);
+
+ clean = function () {
+ // some streams doesn't implement the stream.Readable interface correctly
+ if (inputStream.unpipe) {
+ inputStream.unpipe(stream);
+ }
+ };
+
+ function error(err) {
+ if (err) { // null check
+ err.bufferedData = stream.getBufferedValue();
+ }
+ reject(err);
+ }
+ });
+
+ p.then(clean, clean);
+
+ return p.then(function () {
+ return stream.getBufferedValue();
+ });
+}
+
+module.exports = getStream;
+
+module.exports.buffer = function (stream, opts) {
+ return getStream(stream, objectAssign({}, opts, {encoding: 'buffer'}));
+};
+
+module.exports.array = function (stream, opts) {
+ return getStream(stream, objectAssign({}, opts, {array: true}));
+};
diff --git a/node_modules/nyc/node_modules/get-stream/license b/node_modules/nyc/node_modules/get-stream/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/get-stream/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/get-stream/package.json b/node_modules/nyc/node_modules/get-stream/package.json
new file mode 100644
index 000000000..4b5d84ed3
--- /dev/null
+++ b/node_modules/nyc/node_modules/get-stream/package.json
@@ -0,0 +1,121 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "get-stream@^2.2.0",
+ "scope": null,
+ "escapedName": "get-stream",
+ "name": "get-stream",
+ "rawSpec": "^2.2.0",
+ "spec": ">=2.2.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/execa"
+ ]
+ ],
+ "_from": "get-stream@>=2.2.0 <3.0.0",
+ "_id": "get-stream@2.3.1",
+ "_inCache": true,
+ "_location": "/get-stream",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/get-stream-2.3.1.tgz_1473873226777_0.8189526884816587"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "get-stream@^2.2.0",
+ "scope": null,
+ "escapedName": "get-stream",
+ "name": "get-stream",
+ "rawSpec": "^2.2.0",
+ "spec": ">=2.2.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
+ "_shasum": "5f38f93f346009666ee0150a054167f91bdd95de",
+ "_shrinkwrap": null,
+ "_spec": "get-stream@^2.2.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/get-stream/issues"
+ },
+ "dependencies": {
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
+ },
+ "description": "Get a stream as a string, buffer, or array",
+ "devDependencies": {
+ "ava": "*",
+ "buffer-equals": "^1.0.3",
+ "into-stream": "^2.0.1",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "5f38f93f346009666ee0150a054167f91bdd95de",
+ "tarball": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js",
+ "buffer-stream.js"
+ ],
+ "gitHead": "1607196593ead1d000caae8aec37ea4bed5f0797",
+ "homepage": "https://github.com/sindresorhus/get-stream#readme",
+ "keywords": [
+ "get",
+ "stream",
+ "promise",
+ "concat",
+ "string",
+ "str",
+ "text",
+ "buffer",
+ "read",
+ "data",
+ "readable",
+ "readablestream",
+ "array",
+ "object",
+ "obj"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "jamestalmage",
+ "email": "james@talmage.io"
+ },
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "get-stream",
+ "optionalDependencies": {},
+ "readme": "# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)\n\n> Get a stream as a string, buffer, or array\n\n\n## Install\n\n```\n$ npm install --save get-stream\n```\n\n\n## Usage\n\n```js\nconst fs = require('fs');\nconst getStream = require('get-stream');\nconst stream = fs.createReadStream('unicorn.txt');\n\ngetStream(stream).then(str => {\n\tconsole.log(str);\n\t/*\n\t ,,))))))));,\n\t __)))))))))))))),\n\t\\|/ -\\(((((''''((((((((.\n\t-*-==//////(('' . `)))))),\n\t/|\\ ))| o ;-. '((((( ,(,\n\t ( `| / ) ;))))' ,_))^;(~\n\t | | | ,))((((_ _____------~~~-. %,;(;(>';'~\n\t o_); ; )))(((` ~---~ `:: \\ %%~~)(v;(`('~\n\t ; ''''```` `: `:::|\\,__,%% );`'; ~\n\t | _ ) / `:|`----' `-'\n\t ______/\\/~ | / /\n\t /~;;.____/;;' / ___--,-( `;;;/\n\t / // _;______;'------~~~~~ /;;/\\ /\n\t // | | / ; \\;;,\\\n\t (<_ | ; /',/-----' _>\n\t \\_| ||_ //~;~~~~~~~~~\n\t `\\_| (,~~\n\t \\~\\\n\t ~~\n\t*/\n});\n```\n\n\n## API\n\nThe methods returns a promise that is resolved when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.\n\n### getStream(stream, [options])\n\nGet the `stream` as a string.\n\n#### options\n\n##### encoding\n\nType: `string`<br>\nDefault: `utf8`\n\n[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.\n\n##### maxBuffer\n\nType: `number`<br>\nDefault: `Infinity`\n\nMaximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.\n\n### getStream.buffer(stream, [options])\n\nGet the `stream` as a buffer.\n\nIt honors the `maxBuffer` option as above, but it refers to byte length rather than string length.\n\n### getStream.array(stream, [options])\n\nGet the `stream` as an array of values.\n\nIt honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:\n\n- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).\n\n- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.\n\n- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.\n\n\n## Errors\n\nIf the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.\n\n```js\ngetStream(streamThatErrorsAtTheEnd('unicorn'))\n\t.catch(err => console.log(err.bufferedData));\n// unicorn\n```\n\n\n## FAQ\n\n### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?\n\nThis module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.\n\n\n## Related\n\n- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/get-stream.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.3.1"
+}
diff --git a/node_modules/nyc/node_modules/get-stream/readme.md b/node_modules/nyc/node_modules/get-stream/readme.md
new file mode 100644
index 000000000..a74866bb2
--- /dev/null
+++ b/node_modules/nyc/node_modules/get-stream/readme.md
@@ -0,0 +1,115 @@
+# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)
+
+> Get a stream as a string, buffer, or array
+
+
+## Install
+
+```
+$ npm install --save get-stream
+```
+
+
+## Usage
+
+```js
+const fs = require('fs');
+const getStream = require('get-stream');
+const stream = fs.createReadStream('unicorn.txt');
+
+getStream(stream).then(str => {
+ console.log(str);
+ /*
+ ,,))))))));,
+ __)))))))))))))),
+ \|/ -\(((((''''((((((((.
+ -*-==//////(('' . `)))))),
+ /|\ ))| o ;-. '((((( ,(,
+ ( `| / ) ;))))' ,_))^;(~
+ | | | ,))((((_ _____------~~~-. %,;(;(>';'~
+ o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
+ ; ''''```` `: `:::|\,__,%% );`'; ~
+ | _ ) / `:|`----' `-'
+ ______/\/~ | / /
+ /~;;.____/;;' / ___--,-( `;;;/
+ / // _;______;'------~~~~~ /;;/\ /
+ // | | / ; \;;,\
+ (<_ | ; /',/-----' _>
+ \_| ||_ //~;~~~~~~~~~
+ `\_| (,~~
+ \~\
+ ~~
+ */
+});
+```
+
+
+## API
+
+The methods returns a promise that is resolved when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
+
+### getStream(stream, [options])
+
+Get the `stream` as a string.
+
+#### options
+
+##### encoding
+
+Type: `string`<br>
+Default: `utf8`
+
+[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
+
+##### maxBuffer
+
+Type: `number`<br>
+Default: `Infinity`
+
+Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.
+
+### getStream.buffer(stream, [options])
+
+Get the `stream` as a buffer.
+
+It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
+
+### getStream.array(stream, [options])
+
+Get the `stream` as an array of values.
+
+It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
+
+- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
+
+- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
+
+- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
+
+
+## Errors
+
+If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.
+
+```js
+getStream(streamThatErrorsAtTheEnd('unicorn'))
+ .catch(err => console.log(err.bufferedData));
+// unicorn
+```
+
+
+## FAQ
+
+### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?
+
+This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.
+
+
+## Related
+
+- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/glob-base/package.json b/node_modules/nyc/node_modules/glob-base/package.json
index 9fffb7a27..fa7a18507 100644
--- a/node_modules/nyc/node_modules/glob-base/package.json
+++ b/node_modules/nyc/node_modules/glob-base/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.3.0 <0.4.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/parse-glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/parse-glob"
]
],
"_from": "glob-base@>=0.3.0 <0.4.0",
@@ -40,7 +40,7 @@
"_shasum": "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4",
"_shrinkwrap": null,
"_spec": "glob-base@^0.3.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/parse-glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/parse-glob",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/glob-parent/package.json b/node_modules/nyc/node_modules/glob-parent/package.json
index 5363e9214..0270d4704 100644
--- a/node_modules/nyc/node_modules/glob-parent/package.json
+++ b/node_modules/nyc/node_modules/glob-parent/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob-base"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob-base"
]
],
"_from": "glob-parent@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "81383d72db054fcccf5336daa902f182f6edbb28",
"_shrinkwrap": null,
"_spec": "glob-parent@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob-base",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob-base",
"author": {
"name": "Elan Shanker"
},
diff --git a/node_modules/nyc/node_modules/glob/glob.js b/node_modules/nyc/node_modules/glob/glob.js
index bfdd7a11b..58dec0f6c 100644
--- a/node_modules/nyc/node_modules/glob/glob.js
+++ b/node_modules/nyc/node_modules/glob/glob.js
@@ -153,9 +153,7 @@ function Glob (pattern, options, cb) {
}
var self = this
- var n = this.minimatch.set.length
this._processing = 0
- this.matches = new Array(n)
this._emitQueue = []
this._processQueue = []
diff --git a/node_modules/nyc/node_modules/glob/package.json b/node_modules/nyc/node_modules/glob/package.json
index ac55fc95b..5589b9450 100644
--- a/node_modules/nyc/node_modules/glob/package.json
+++ b/node_modules/nyc/node_modules/glob/package.json
@@ -10,23 +10,23 @@
"spec": ">=7.0.6 <8.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "glob@>=7.0.6 <8.0.0",
- "_id": "glob@7.1.1",
+ "_id": "glob@7.1.2",
"_inCache": true,
"_location": "/glob",
- "_nodeVersion": "6.5.0",
+ "_nodeVersion": "8.0.0-pre",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/glob-7.1.1.tgz_1475876991562_0.924720095237717"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/glob-7.1.2.tgz_1495224925341_0.07115248567424715"
},
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_npmVersion": "3.10.7",
+ "_npmVersion": "5.0.0-beta.56",
"_phantomChildren": {},
"_requested": {
"raw": "glob@^7.0.6",
@@ -41,11 +41,11 @@
"/",
"/rimraf"
],
- "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "_shasum": "805211df04faaf1c63a3600306cdf5ade50b2ec8",
+ "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "_shasum": "c19c9df9a028702d678612384a6552404c636d15",
"_shrinkwrap": null,
"_spec": "glob@^7.0.6",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -58,7 +58,7 @@
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.2",
+ "minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
@@ -71,8 +71,9 @@
},
"directories": {},
"dist": {
- "shasum": "805211df04faaf1c63a3600306cdf5ade50b2ec8",
- "tarball": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "shasum": "c19c9df9a028702d678612384a6552404c636d15",
+ "tarball": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz"
},
"engines": {
"node": "*"
@@ -82,7 +83,7 @@
"sync.js",
"common.js"
],
- "gitHead": "bc8d43b736a98a9e289fdfceee9266cff35e5742",
+ "gitHead": "8fa8d561e08c9eed1d286c6a35be2cd8123b2fb7",
"homepage": "https://github.com/isaacs/node-glob#readme",
"license": "ISC",
"main": "glob.js",
@@ -109,5 +110,5 @@
"test": "tap test/*.js --cov",
"test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
},
- "version": "7.1.1"
+ "version": "7.1.2"
}
diff --git a/node_modules/nyc/node_modules/globals/globals.json b/node_modules/nyc/node_modules/globals/globals.json
index 0bb6547c0..99ae89f35 100644
--- a/node_modules/nyc/node_modules/globals/globals.json
+++ b/node_modules/nyc/node_modules/globals/globals.json
@@ -196,6 +196,7 @@
"caches": false,
"CacheStorage": false,
"cancelAnimationFrame": false,
+ "cancelIdleCallback": false,
"CanvasGradient": false,
"CanvasPattern": false,
"CanvasRenderingContext2D": false,
@@ -217,6 +218,7 @@
"confirm": false,
"console": false,
"ConvolverNode": false,
+ "createImageBitmap": false,
"Credential": false,
"CredentialsContainer": false,
"crypto": false,
@@ -914,6 +916,7 @@
"pending": false,
"runs": false,
"spyOn": false,
+ "spyOnProperty": false,
"waits": false,
"waitsFor": false,
"xdescribe": false,
diff --git a/node_modules/nyc/node_modules/globals/package.json b/node_modules/nyc/node_modules/globals/package.json
index 1a0410e32..bc0e428ad 100644
--- a/node_modules/nyc/node_modules/globals/package.json
+++ b/node_modules/nyc/node_modules/globals/package.json
@@ -10,23 +10,23 @@
"spec": ">=9.0.0 <10.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse"
]
],
"_from": "globals@>=9.0.0 <10.0.0",
- "_id": "globals@9.17.0",
+ "_id": "globals@9.18.0",
"_inCache": true,
"_location": "/globals",
- "_nodeVersion": "4.7.3",
+ "_nodeVersion": "8.0.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/globals-9.17.0.tgz_1490427430895_0.24591433047316968"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/globals-9.18.0.tgz_1496827524121_0.8153965487144887"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.15.11",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
"raw": "globals@^9.0.0",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/babel-traverse"
],
- "_resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz",
- "_shasum": "0c0ca696d9b9bb694d2e5470bd37777caad50286",
+ "_resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "_shasum": "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a",
"_shrinkwrap": null,
"_spec": "globals@^9.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -60,8 +60,9 @@
},
"directories": {},
"dist": {
- "shasum": "0c0ca696d9b9bb694d2e5470bd37777caad50286",
- "tarball": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz"
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "shasum": "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a",
+ "tarball": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -70,7 +71,7 @@
"index.js",
"globals.json"
],
- "gitHead": "49b918ba1e72d831247a3f92cd8c59acc763a6bf",
+ "gitHead": "09ba8754235e5953507b8d0543d65098bc7bb78d",
"homepage": "https://github.com/sindresorhus/globals#readme",
"keywords": [
"globals",
@@ -112,5 +113,5 @@
"scripts": {
"test": "mocha"
},
- "version": "9.17.0"
+ "version": "9.18.0"
}
diff --git a/node_modules/nyc/node_modules/graceful-fs/package.json b/node_modules/nyc/node_modules/graceful-fs/package.json
index 453eebf22..80e65f208 100644
--- a/node_modules/nyc/node_modules/graceful-fs/package.json
+++ b/node_modules/nyc/node_modules/graceful-fs/package.json
@@ -10,7 +10,7 @@
"spec": ">=4.1.11 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic"
]
],
"_from": "graceful-fs@>=4.1.11 <5.0.0",
@@ -40,13 +40,14 @@
"_requiredBy": [
"/load-json-file",
"/path-type",
- "/write-file-atomic"
+ "/write-file-atomic",
+ "/yargs/load-json-file"
],
"_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
"_shrinkwrap": null,
"_spec": "graceful-fs@^4.1.11",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic",
"bugs": {
"url": "https://github.com/isaacs/node-graceful-fs/issues"
},
diff --git a/node_modules/nyc/node_modules/handlebars/.gitattributes b/node_modules/nyc/node_modules/handlebars/.gitattributes
new file mode 100644
index 000000000..eeda54e24
--- /dev/null
+++ b/node_modules/nyc/node_modules/handlebars/.gitattributes
@@ -0,0 +1,6 @@
+# Handlebars-template fixtures in test cases need deterministic eol
+*.handlebars text eol=lf
+*.hbs text eol=lf
+
+# Lexer files as well
+*.l text eol=lf
diff --git a/node_modules/nyc/node_modules/handlebars/.idea/workspace.xml b/node_modules/nyc/node_modules/handlebars/.idea/workspace.xml
index 51d9d5053..34bd8eb71 100644
--- a/node_modules/nyc/node_modules/handlebars/.idea/workspace.xml
+++ b/node_modules/nyc/node_modules/handlebars/.idea/workspace.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
- <list default="true" id="4b292870-df0f-40ed-8ad0-3637ddba5dd2" name="Default" comment="Allow partial-blocks to be executed without &quot;options&quot;&#10;&#10;Closes #1342&#10;&#10;If the @partial-block is called as parameter of a helper (like in&#10;{{#if @partial-block}}...{{/if}}, the partialBlockWrapper is executed&#10;without &quot;options&quot;-parameter. It should still work in without an error&#10;in such a case." />
+ <list default="true" id="4b292870-df0f-40ed-8ad0-3637ddba5dd2" name="Default" comment="" />
<ignored path="handlebars.js.iws" />
<ignored path=".idea/workspace.xml" />
<ignored path=".idea/dataSources.local.xml" />
@@ -21,28 +21,25 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
- <file leaf-file-name="CONTRIBUTING.md" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
- <state split_layout="SPLIT">
- <first_editor relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
- <folding />
- </first_editor>
- <second_editor />
+ <file leaf-file-name="compiler.js" pinned="false" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/compiler.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="111">
+ <caret line="488" column="3" lean-forward="false" selection-start-line="488" selection-start-column="3" selection-end-line="488" selection-end-column="3" />
+ <folding>
+ <element signature="n#!!doc" expanded="true" />
+ <element signature="e#30#67#0" expanded="true" />
+ </folding>
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="release-notes.md" pinned="false" current-in-tab="true">
- <entry file="file://$PROJECT_DIR$/release-notes.md">
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
- <state split_layout="SPLIT">
- <first_editor relative-caret-position="215">
- <caret line="16" column="95" lean-forward="false" selection-start-line="16" selection-start-column="95" selection-end-line="16" selection-end-column="95" />
- <folding />
- </first_editor>
- <second_editor />
+ <file leaf-file-name="utils.js" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/utils.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="304">
+ <caret line="108" column="0" lean-forward="false" selection-start-line="108" selection-start-column="0" selection-end-line="108" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
@@ -50,22 +47,15 @@
<file leaf-file-name="Gruntfile.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Gruntfile.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="234">
- <caret line="14" column="22" lean-forward="false" selection-start-line="14" selection-start-column="22" selection-end-line="14" selection-end-column="22" />
- <folding>
- <marker date="1493754106914" expanded="true" signature="69:6525" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="91:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="434:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="448:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="467:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="513:575" ph="{...}" />
- </folding>
+ <state relative-caret-position="323">
+ <caret line="79" column="20" lean-forward="false" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" />
+ <folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="git.js" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/tasks/util/git.js">
+ <file leaf-file-name="Changes" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/spec/mustache/Changes">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
@@ -74,49 +64,68 @@
</provider>
</entry>
</file>
- <file leaf-file-name=".travis.yml" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/.travis.yml">
+ <file leaf-file-name="release-notes.md" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/release-notes.md">
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+ <state split_layout="FIRST">
+ <first_editor relative-caret-position="126">
+ <caret line="24" column="24" lean-forward="false" selection-start-line="24" selection-start-column="24" selection-end-line="24" selection-end-column="24" />
+ <folding />
+ </first_editor>
+ <second_editor />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="CONTRIBUTING.md" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+ <state split_layout="SPLIT">
+ <first_editor relative-caret-position="208">
+ <caret line="86" column="17" lean-forward="false" selection-start-line="86" selection-start-column="17" selection-end-line="86" selection-end-column="17" />
+ <folding />
+ </first_editor>
+ <second_editor />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="compiler.js" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/spec/compiler.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="54">
- <caret line="18" column="136" lean-forward="false" selection-start-line="18" selection-start-column="136" selection-end-line="18" selection-end-column="136" />
+ <state relative-caret-position="1476">
+ <caret line="82" column="6" lean-forward="false" selection-start-line="82" selection-start-column="6" selection-end-line="82" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="package.json" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/package.json">
+ <file leaf-file-name="common.js" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/spec/env/common.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="198">
- <caret line="17" column="19" lean-forward="false" selection-start-line="17" selection-start-column="19" selection-end-line="17" selection-end-column="19" />
- <folding>
- <marker date="1493758511672" expanded="true" signature="0:1829" ph="{&quot;name&quot;: &quot;handlebars&quot;...}" />
- <marker date="1493758511672" expanded="true" signature="1767:1774" ph="{&quot;lib&quot;: &quot;dist/cjs&quot;...}" />
- <marker date="1493758511672" expanded="true" signature="1767:1827" ph="{&quot;main&quot;: &quot;handlebars&quot;...}" />
- </folding>
+ <state relative-caret-position="309">
+ <caret line="57" column="0" lean-forward="false" selection-start-line="57" selection-start-column="0" selection-end-line="57" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="regressions.js" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/spec/regressions.js">
+ <file leaf-file-name="print-script" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/print-script">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="163">
- <caret line="293" column="3" lean-forward="false" selection-start-line="293" selection-start-column="3" selection-end-line="293" selection-end-column="3" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
- <file leaf-file-name="runtime.js" pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/lib/handlebars/runtime.js">
+ <file leaf-file-name="package.json" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="189">
- <caret line="214" column="20" lean-forward="false" selection-start-line="214" selection-start-column="20" selection-end-line="214" selection-end-column="20" />
- <folding>
- <marker date="1493758195915" expanded="true" signature="8145:8437" ph="{...}" />
- <marker date="1493758195915" expanded="true" signature="9101:9293" ph="{...}" />
- </folding>
+ <state relative-caret-position="-24">
+ <caret line="33" column="5" lean-forward="false" selection-start-line="33" selection-start-column="5" selection-end-line="33" selection-end-column="5" />
+ <folding />
</state>
</provider>
</entry>
@@ -125,36 +134,36 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
- <find>counter</find>
- <find>container</find>
- <find>invokePartial</find>
- <find>invokePart</find>
- <find>extra-paren</find>
- <find>source</find>
- <find>env.parse</find>
- <find>parse</find>
- <find>wra</find>
- <find>registerPa</find>
- <find>v</find>
- <find>version</find>
- <find>revision</find>
- <find>noop</find>
- <find>nullCone</find>
- <find>helper</find>
- <find>template</find>
- <find>root</find>
- <find>webpackUniversalModuleDefinition</find>
- <find>name</find>
- <find>module</find>
- <find>umd</find>
- <find>@nknapp</find>
- <find>\#\# v4\.0\.7 \- April 29th\, 2017\n\- \[\#1319\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/issues\/1319\)\: Fix context\-stack when calling block\-helpers on null values \(\@nknapp\) \- c8f4b57\n\- \[\#1315\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1315\)Parser\: Change suffix to use ES6 default module export \(\@Turbo87\)\- b617375\n\- \[\#1290\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1290\) \[\#1252\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/issue\/1290\) Add more tests for partial\-blocks and inline partials \(\@nknapp\) \- 63a8e0c\n\- \[\#1252\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/issue\/1290\) Using \@partial\-block twice in a template not possible \(\@nknapp\) \- 5a164d0\n\- \[\#1310\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1310\) Avoid duplicate \&quot;sourceMappingURL\=\&quot; lines\. \(\@joonas\-lahtinen\) \- 01b0f65\n\- \[\#1275\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1275\) require\(\'sys\'\) is deprecated\, using \'util\' instead \(\@travnels\) \- 406f2ee\n\- \[\#1285\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1285\) \[\#1284\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/issues\/1284\) Make \&quot;column\&quot;\-property of Errors enumerable \(\@nknapp\) \- a023cb4\n\- \[\#1285\]\(https\:\/\/github\.com\/wycats\/handlebars\.js\/pull\/1285\) Testcase to verify that compile\-errors have a column\-property \(\@nknapp\) \- c7dc353</find>
- <find>\(@([^)]*)\)</find>
<find>publish</find>
- <find>partial-block</find>
- <find>@partial</find>
- <find>partialblockwrap</find>
- <find>partialBlockWrapper</find>
+ <find>grunt</find>
+ <find>test'</find>
+ <find>istanbul</find>
+ <find>bin</find>
+ <find>cl</find>
+ <find>istanbu</find>
+ <find>error</find>
+ <find>bin/</find>
+ <find>os.type</find>
+ <find>master</find>
+ <find>branch</find>
+ <find>test:</find>
+ <find>test</find>
+ <find>compile</find>
+ <find>copile</find>
+ <find>PathExpression</find>
+ <find>lodash</find>
+ <find>undest</find>
+ <find>equal</find>
+ <find>options</find>
+ <find>this.options.blockParams</find>
+ <find>this.options</find>
+ <find>blockParams</find>
+ <find>new</find>
+ <find>parse</find>
+ <find>Object.assig</find>
+ <find>forEach</find>
+ <find>webpack</find>
+ <find>object.a</find>
</findStrings>
<replaceStrings>
<replace>this.param</replace>
@@ -169,11 +178,12 @@
</dirStrings>
</component>
<component name="Git.Rebase.Settings">
- <option name="ONTO" value="refs/heads/wycats-master" />
+ <option name="ONTO" value="wycats/4.x" />
</component>
<component name="Git.Settings">
<option name="PREVIOUS_COMMIT_AUTHORS">
<list>
+ <option value="Luiz Américo &lt;luizamericop@gmail.com&gt;" />
<option value="Nils Knappmeier &lt;github@knappi.org&gt;" />
<option value="Tobias Bieniek &lt;tobias.bieniek@gmail.com&gt;" />
<option value="Joonas Lahtinen &lt;joonas.lahtinen@iki.fi&gt;" />
@@ -186,14 +196,17 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
- <entry key="$PROJECT_DIR$" value="gh-1342" />
+ <entry key="$PROJECT_DIR$" value="fix-object-assign-bug" />
</map>
</option>
<option name="RESET_MODE" value="HARD" />
<push-targets>
- <push-target-info target-remote="wycats" target-branch="4.x" repo="$PROJECT_DIR$" source="4.x" />
<push-target-info target-remote="origin" target-branch="eslint-fixes" repo="$PROJECT_DIR$" source="eslint-fixes" />
<push-target-info target-remote="wycats" target-branch="4.0.7-release" repo="$PROJECT_DIR$" source="4.0.7-release" />
+ <push-target-info target-remote="wycats" target-branch="test-publish-4.x" repo="$PROJECT_DIR$" source="test-publish-4.x" />
+ <push-target-info target-remote="wycats" target-branch="appveyor" repo="$PROJECT_DIR$" source="appveyor" />
+ <push-target-info target-remote="wycats" target-branch="4.x" repo="$PROJECT_DIR$" source="4.x" />
+ <push-target-info target-remote="wycats" target-branch="fix-object-assign-bug" repo="$PROJECT_DIR$" source="fix-object-assign-bug" />
</push-targets>
</component>
<component name="GradleLocalSettings">
@@ -211,7 +224,6 @@
<option value="$PROJECT_DIR$/lib/handlebars/utils.js" />
<option value="$PROJECT_DIR$/.editorconfig" />
<option value="$APPLICATION_CONFIG_DIR$/scratches/scratch_3.txt" />
- <option value="$PROJECT_DIR$/.travis.yml" />
<option value="$PROJECT_DIR$/LICENSE" />
<option value="$APPLICATION_CONFIG_DIR$/scratches/scratch_4.txt" />
<option value="$PROJECT_DIR$/lib/handlebars/helpers/each.js" />
@@ -219,7 +231,6 @@
<option value="$APPLICATION_CONFIG_DIR$/scratches/scratch_2.js" />
<option value="$PROJECT_DIR$/lib/handlebars/compiler/ast.js" />
<option value="$PROJECT_DIR$/lib/handlebars/compiler/code-gen.js" />
- <option value="$PROJECT_DIR$/spec/compiler.js" />
<option value="$PROJECT_DIR$/dist/cjs/precompiler.js" />
<option value="$PROJECT_DIR$/.istanbul.yml" />
<option value="$PROJECT_DIR$/src/parser-suffix.js" />
@@ -227,14 +238,25 @@
<option value="$PROJECT_DIR$/test.js" />
<option value="$PROJECT_DIR$/spec/partials.js" />
<option value="$PROJECT_DIR$/.eslintrc" />
- <option value="$PROJECT_DIR$/lib/handlebars/compiler/compiler.js" />
<option value="$PROJECT_DIR$/lib/handlebars/compiler/javascript-compiler.js" />
- <option value="$PROJECT_DIR$/Gruntfile.js" />
- <option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/dist/handlebars.js" />
<option value="$PROJECT_DIR$/lib/handlebars/runtime.js" />
+ <option value="$PROJECT_DIR$/.travis.yml" />
+ <option value="$PROJECT_DIR$/tasks/publish.js" />
+ <option value="$PROJECT_DIR$/spec/artifacts/example_1.handlebars" />
+ <option value="$PROJECT_DIR$/src/handlebars.l" />
+ <option value="$PROJECT_DIR$/src/handlebars.yy" />
+ <option value="$PROJECT_DIR$/.appveyor.yml" />
+ <option value="$PROJECT_DIR$/appveyor.yml" />
+ <option value="$PROJECT_DIR$/Gruntfile.js" />
+ <option value="$PROJECT_DIR$/tasks/test.js" />
+ <option value="$PROJECT_DIR$/.gitattributes" />
<option value="$PROJECT_DIR$/spec/regressions.js" />
+ <option value="$PROJECT_DIR$/spec/env/common.js" />
+ <option value="$PROJECT_DIR$/spec/compiler.js" />
<option value="$PROJECT_DIR$/release-notes.md" />
+ <option value="$PROJECT_DIR$/package.json" />
+ <option value="$PROJECT_DIR$/lib/handlebars/compiler/compiler.js" />
</list>
</option>
</component>
@@ -363,6 +385,8 @@
</navigator>
<panes>
<pane id="PackagesPane" />
+ <pane id="Scratches" />
+ <pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@@ -385,14 +409,12 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
- <option name="myItemId" value="spec" />
+ <option name="myItemId" value="docs" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
- <pane id="Scope" />
- <pane id="Scratches" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -416,117 +438,7 @@
<property name="node.js.path.for.package.jscs" value="project" />
<property name="node.js.selected.package.jscs" value="" />
<property name="Git.Branch.Popup.ShowAllRemotes" value="true" />
- </component>
- <component name="RestoreUpdateTree" date="Moments ago" ActionInfo="_Update">
- <UpdatedFiles>
- <FILE-GROUP>
- <option name="myUpdateName" value="Updated from server" />
- <option name="myStatusName" value="Changed on server" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="CHANGED_ON_SERVER" />
- <FILE-GROUP>
- <option name="myUpdateName" value="Updated" />
- <option name="myStatusName" value="Changed" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="UPDATED" />
- <PATH vcs="Git" revision="">$PROJECT_DIR$/lib/handlebars/runtime.js</PATH>
- <PATH vcs="Git" revision="">$PROJECT_DIR$/spec/regressions.js</PATH>
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Created" />
- <option name="myStatusName" value="Created" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="CREATED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Deleted" />
- <option name="myStatusName" value="Deleted" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="true" />
- <option name="myId" value="REMOVED_FROM_REPOSITORY" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Restored" />
- <option name="myStatusName" value="Will be restored" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="RESTORED" />
- </FILE-GROUP>
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Modified" />
- <option name="myStatusName" value="Modified" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="MODIFIED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Skipped" />
- <option name="myStatusName" value="Skipped" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="SKIPPED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Merged with conflicts" />
- <option name="myStatusName" value="Will be merged with conflicts" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="MERGED_WITH_CONFLICTS" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Merged with tree conflicts" />
- <option name="myStatusName" value="Merged with tree conflicts" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="MERGED_WITH_TREE_CONFLICT" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Merged with property conflicts" />
- <option name="myStatusName" value="Will be merged with property conflicts" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="MERGED_WITH_PROPERTY_CONFLICT" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Merged" />
- <option name="myStatusName" value="Will be merged" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="MERGED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Not in repository" />
- <option name="myStatusName" value="Not in repository" />
- <option name="mySupportsDeletion" value="true" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="UNKNOWN" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Locally added" />
- <option name="myStatusName" value="Locally added" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="LOCALLY_ADDED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Locally removed" />
- <option name="myStatusName" value="Locally removed" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="LOCALLY_REMOVED" />
- </FILE-GROUP>
- <FILE-GROUP>
- <option name="myUpdateName" value="Switched" />
- <option name="myStatusName" value="Switched" />
- <option name="mySupportsDeletion" value="false" />
- <option name="myCanBeAbsent" value="false" />
- <option name="myId" value="SWITCHED" />
- </FILE-GROUP>
- </UpdatedFiles>
+ <property name="add_unversioned_files" value="true" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
@@ -1240,35 +1152,22 @@
<workItem from="1493572990008" duration="1028000" />
<workItem from="1493668871855" duration="857000" />
<workItem from="1493670057400" duration="17000" />
- <workItem from="1493753982120" duration="4582000" />
- </task>
- <task id="LOCAL-00001" summary="Add test for #1284">
- <created>1482222738375</created>
- <option name="number" value="00001" />
- <option name="presentableId" value="LOCAL-00001" />
- <option name="project" value="LOCAL" />
- <updated>1482222738375</updated>
- </task>
- <task id="LOCAL-00002" summary="Make &quot;column&quot;-property of Errors enumerable">
- <created>1482355328397</created>
- <option name="number" value="00002" />
- <option name="presentableId" value="LOCAL-00002" />
- <option name="project" value="LOCAL" />
- <updated>1482355328397</updated>
- </task>
- <task id="LOCAL-00003" summary="Test: Add check for the message (row:column) for compile errors">
- <created>1483054179011</created>
- <option name="number" value="00003" />
- <option name="presentableId" value="LOCAL-00003" />
- <option name="project" value="LOCAL" />
- <updated>1483054179011</updated>
- </task>
- <task id="LOCAL-00004" summary="Skip test for &quot;column&quot;-property of compile errors in Safari 8">
- <created>1483055315085</created>
- <option name="number" value="00004" />
- <option name="presentableId" value="LOCAL-00004" />
- <option name="project" value="LOCAL" />
- <updated>1483055315085</updated>
+ <workItem from="1493753982120" duration="5355000" />
+ <workItem from="1493993660351" duration="84000" />
+ <workItem from="1494624758377" duration="5037000" />
+ <workItem from="1494672596005" duration="928000" />
+ <workItem from="1494708094585" duration="2312000" />
+ <workItem from="1494710547040" duration="843000" />
+ <workItem from="1494765833140" duration="1330000" />
+ <workItem from="1494793452148" duration="6689000" />
+ <workItem from="1494860875541" duration="3000" />
+ <workItem from="1494883026375" duration="1573000" />
+ <workItem from="1494945938823" duration="1392000" />
+ <workItem from="1494963348637" duration="1392000" />
+ <workItem from="1495053555370" duration="4670000" />
+ <workItem from="1495130336652" duration="4706000" />
+ <workItem from="1495365578159" duration="18000" />
+ <workItem from="1495365778333" duration="2870000" />
</task>
<task id="LOCAL-00005" summary="Test-case for #1252: Using @partial-block twice in a template not possible">
<created>1483140723041</created>
@@ -1438,11 +1337,186 @@
<option name="project" value="LOCAL" />
<updated>1493757059485</updated>
</task>
- <option name="localTasksCounter" value="29" />
+ <task id="LOCAL-00029" summary="Publish valid semver task independently of the branch">
+ <created>1494627797109</created>
+ <option name="number" value="00029" />
+ <option name="presentableId" value="LOCAL-00029" />
+ <option name="project" value="LOCAL" />
+ <updated>1494627797109</updated>
+ </task>
+ <task id="LOCAL-00030" summary="Test ci">
+ <created>1494627817760</created>
+ <option name="number" value="00030" />
+ <option name="presentableId" value="LOCAL-00030" />
+ <option name="project" value="LOCAL" />
+ <updated>1494627817760</updated>
+ </task>
+ <task id="LOCAL-00031" summary="Publish valid semver task independently of the branch">
+ <created>1494628506049</created>
+ <option name="number" value="00031" />
+ <option name="presentableId" value="LOCAL-00031" />
+ <option name="project" value="LOCAL" />
+ <updated>1494628506049</updated>
+ </task>
+ <task id="LOCAL-00032" summary="Publish valid semver task independently of the branch">
+ <created>1494628648396</created>
+ <option name="number" value="00032" />
+ <option name="presentableId" value="LOCAL-00032" />
+ <option name="project" value="LOCAL" />
+ <updated>1494628648396</updated>
+ </task>
+ <task id="LOCAL-00033" summary="Use istanbul/lib/cli.js instead of node_modules/.bin/istanbul&#10;&#10;Fixes #1331&#10;&#10;Due to the way, &quot;bin&quot;-files are distributed into the node_modules/.bin&#10;directory on Windows, the task &quot;test:cov&quot; did not work on Windows.&#10;This commit uses the node-script directly.">
+ <created>1494673256993</created>
+ <option name="number" value="00033" />
+ <option name="presentableId" value="LOCAL-00033" />
+ <option name="project" value="LOCAL" />
+ <updated>1494673256993</updated>
+ </task>
+ <task id="LOCAL-00034" summary="Force LF line-endings for spec/artifacts&#10;&#10;Fixes #1331">
+ <created>1494708990347</created>
+ <option name="number" value="00034" />
+ <option name="presentableId" value="LOCAL-00034" />
+ <option name="project" value="LOCAL" />
+ <updated>1494708990347</updated>
+ </task>
+ <task id="LOCAL-00035" summary="abc">
+ <created>1494709019797</created>
+ <option name="number" value="00035" />
+ <option name="presentableId" value="LOCAL-00035" />
+ <option name="project" value="LOCAL" />
+ <updated>1494709019797</updated>
+ </task>
+ <task id="LOCAL-00036" summary="test">
+ <created>1494709431758</created>
+ <option name="number" value="00036" />
+ <option name="presentableId" value="LOCAL-00036" />
+ <option name="project" value="LOCAL" />
+ <updated>1494709431758</updated>
+ </task>
+ <task id="LOCAL-00037" summary="test">
+ <created>1494709717961</created>
+ <option name="number" value="00037" />
+ <option name="presentableId" value="LOCAL-00037" />
+ <option name="project" value="LOCAL" />
+ <updated>1494709717961</updated>
+ </task>
+ <task id="LOCAL-00038" summary="Try appveyor">
+ <created>1494766769808</created>
+ <option name="number" value="00038" />
+ <option name="presentableId" value="LOCAL-00038" />
+ <option name="project" value="LOCAL" />
+ <updated>1494766769808</updated>
+ </task>
+ <task id="LOCAL-00039" summary="Try appveyor 2">
+ <created>1494766899540</created>
+ <option name="number" value="00039" />
+ <option name="presentableId" value="LOCAL-00039" />
+ <option name="project" value="LOCAL" />
+ <updated>1494766899540</updated>
+ </task>
+ <task id="LOCAL-00040" summary="Ensure LF line-edings in lexer-files (*.l)&#10;&#10;Related to #1233">
+ <created>1494794959317</created>
+ <option name="number" value="00040" />
+ <option name="presentableId" value="LOCAL-00040" />
+ <option name="project" value="LOCAL" />
+ <updated>1494794959317</updated>
+ </task>
+ <task id="LOCAL-00041" summary="Run integration test with `node handlebars -a ...` on Windows&#10;&#10;Fixes #1233&#10;&#10;NodeJS files cannot be executed directly on Windows.">
+ <created>1494796214972</created>
+ <option name="number" value="00041" />
+ <option name="presentableId" value="LOCAL-00041" />
+ <option name="project" value="LOCAL" />
+ <updated>1494796214972</updated>
+ </task>
+ <task id="LOCAL-00042" summary="Run integration test with `node handlebars -a ...` on Windows&#10;&#10;Fixes #1233&#10;&#10;NodeJS files cannot be executed directly on Windows.">
+ <created>1494796279280</created>
+ <option name="number" value="00042" />
+ <option name="presentableId" value="LOCAL-00042" />
+ <option name="project" value="LOCAL" />
+ <updated>1494796279280</updated>
+ </task>
+ <task id="LOCAL-00043" summary="Add appveyor-integration">
+ <created>1494796303641</created>
+ <option name="number" value="00043" />
+ <option name="presentableId" value="LOCAL-00043" />
+ <option name="project" value="LOCAL" />
+ <updated>1494796303641</updated>
+ </task>
+ <task id="LOCAL-00044" summary="Add appveyor-integration">
+ <created>1494796521245</created>
+ <option name="number" value="00044" />
+ <option name="presentableId" value="LOCAL-00044" />
+ <option name="project" value="LOCAL" />
+ <updated>1494796521245</updated>
+ </task>
+ <task id="LOCAL-00045" summary="Add appveyor-integration">
+ <created>1494796997531</created>
+ <option name="number" value="00045" />
+ <option name="presentableId" value="LOCAL-00045" />
+ <option name="project" value="LOCAL" />
+ <updated>1494796997531</updated>
+ </task>
+ <task id="LOCAL-00046" summary="Add appveyor-integration">
+ <created>1494797313543</created>
+ <option name="number" value="00046" />
+ <option name="presentableId" value="LOCAL-00046" />
+ <option name="project" value="LOCAL" />
+ <updated>1494797313543</updated>
+ </task>
+ <task id="LOCAL-00047" summary="Add missing semicolon">
+ <created>1494797447255</created>
+ <option name="number" value="00047" />
+ <option name="presentableId" value="LOCAL-00047" />
+ <option name="project" value="LOCAL" />
+ <updated>1494797447255</updated>
+ </task>
+ <task id="LOCAL-00048" summary="Appveyor">
+ <created>1494797788198</created>
+ <option name="number" value="00048" />
+ <option name="presentableId" value="LOCAL-00048" />
+ <option name="project" value="LOCAL" />
+ <updated>1494797788198</updated>
+ </task>
+ <task id="LOCAL-00049" summary="Ensure LF line-edings in handlebars-template fixtures (*.hbs)">
+ <created>1494798983828</created>
+ <option name="number" value="00049" />
+ <option name="presentableId" value="LOCAL-00049" />
+ <option name="project" value="LOCAL" />
+ <updated>1494798983829</updated>
+ </task>
+ <task id="LOCAL-00050" summary="Fix build in windows&#10;&#10;(cherry picked from commit 275ab37)">
+ <created>1494799919867</created>
+ <option name="number" value="00050" />
+ <option name="presentableId" value="LOCAL-00050" />
+ <option name="project" value="LOCAL" />
+ <updated>1494799919868</updated>
+ </task>
+ <task id="LOCAL-00051" summary="Handlebars.compile() does not modify &quot;options&quot; anymore&#10;&#10;Fixes #1327&#10;&#10;- This commit creates a shallow copy of the &quot;options&quot; passed to&#10; Handlebars.compile() in order to prevent modifications&#10;- Note that &quot;new Handlebars.Compiler().compile(..., options)&quot; still&#10; modify the options object. This might change in the future, if &#10; anybody needs a fix for that.">
+ <created>1495135115010</created>
+ <option name="number" value="00051" />
+ <option name="presentableId" value="LOCAL-00051" />
+ <option name="project" value="LOCAL" />
+ <updated>1495135115013</updated>
+ </task>
+ <task id="LOCAL-00052" summary="Replace &quot;Object.assign&quot; (not support in IE) by &quot;util/extend&quot;">
+ <created>1495367869766</created>
+ <option name="number" value="00052" />
+ <option name="presentableId" value="LOCAL-00052" />
+ <option name="project" value="LOCAL" />
+ <updated>1495367869767</updated>
+ </task>
+ <task id="LOCAL-00053" summary="Replace &quot;Object.assign&quot; (not support in IE) by &quot;util/extend&quot;">
+ <created>1495368155138</created>
+ <option name="number" value="00053" />
+ <option name="presentableId" value="LOCAL-00053" />
+ <option name="project" value="LOCAL" />
+ <updated>1495368155138</updated>
+ </task>
+ <option name="localTasksCounter" value="54" />
<servers />
</component>
<component name="TimeTrackingManager">
- <option name="totallyTimeSpent" value="135132000" />
+ <option name="totallyTimeSpent" value="169752000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
@@ -1464,27 +1538,27 @@
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.45469254" sideWeight="0.77211154" order="9" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
- <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.49837664" sideWeight="0.24780877" order="10" side_tool="false" content_ui="tabs" />
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.47564936" sideWeight="0.5466136" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.6201299" sideWeight="0.2565737" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.23346613" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
- <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.49837664" sideWeight="0.75219125" order="8" side_tool="true" content_ui="tabs" />
+ <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.6201299" sideWeight="0.7434263" order="8" side_tool="true" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23266932" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.225498" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Grunt " active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.38311687" sideWeight="0.43346614" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="true" content_ui="tabs" />
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.51785713" sideWeight="0.51713145" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="combo" />
- <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3288889" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3288889" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.18344156" sideWeight="0.6151394" order="2" side_tool="false" content_ui="tabs" />
</layout>
@@ -1504,18 +1578,18 @@
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.55011135" sideWeight="0.4948207" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.38311687" sideWeight="0.43346614" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32903227" sideWeight="0.49786553" order="7" side_tool="false" content_ui="tabs" />
- <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3288889" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3288889" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
- <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.13149351" sideWeight="0.3314741" order="10" side_tool="false" content_ui="tabs" />
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2775974" sideWeight="0.4685259" order="3" side_tool="false" content_ui="tabs" />
- <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4318182" sideWeight="0.6685259" order="8" side_tool="true" content_ui="tabs" />
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.09721115" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.36363637" sideWeight="0.5466136" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32954547" sideWeight="0.23346613" order="10" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32954547" sideWeight="0.76653385" order="8" side_tool="true" content_ui="tabs" />
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.225498" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Grunt " active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.18344156" sideWeight="0.6151394" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@@ -1601,16 +1675,10 @@
</UserGroup>
</collection>
</option>
- <option name="FILTERS">
+ <option name="COLUMN_WIDTH">
<map>
- <entry key="branch">
- <value>
- <list>
- <option value="4.x" />
- <option value="master" />
- </list>
- </value>
- </entry>
+ <entry key="2" value="81" />
+ <entry key="3" value="86" />
</map>
</option>
</State>
@@ -1634,24 +1702,6 @@
<option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
<option name="CHECK_NEW_TODO" value="false" />
<option name="FORCE_NON_EMPTY_COMMENT" value="true" />
- <MESSAGE value="Add test for #1284" />
- <MESSAGE value="Make &quot;column&quot;-property of Errors enumerable" />
- <MESSAGE value="Test: Add check for the message (row:column) for compile errors" />
- <MESSAGE value="Skip test for &quot;column&quot;-property of compile errors in Safari 8" />
- <MESSAGE value="Test-case for #1252: Using @partial-block twice in a template not possible" />
- <MESSAGE value="Possible fix for #1252: Refactoring for nested partial-block calls&#10;&#10;This fix treats partial-blocks more like closures and uses the closure-context of &#10;the &quot;invokePartial&quot;-function to store the @partial-block for the partial." />
- <MESSAGE value="require('sys') is deprecated, using 'util' instead&#10;&#10;(node:30288) DeprecationWarning: sys is deprecated. Use util instead.&#10;&#10;(cherry picked from commit 9a36966 by @travnels)" />
- <MESSAGE value="Fix istanbul dev dependency&#10;&#10;According to npm's documentation[1], dependencies on github&#10;repositories are declared with the following syntax:&#10; &quot;module&quot;: &quot;person/module&quot;&#10;&#10;This commit changes the package.json syntax on istanbul's dependency,&#10;to follow the documentation.&#10;&#10;[1] https://docs.npmjs.com/files/package.json#github-urls&#10;&#10;(cherry picked from commit 2b7ed7e)" />
- <MESSAGE value="Add more tests for different scenarios of using partial-blocks&#10;&#10;- Multiple partial-blocks at different nesting levels&#10;- Calling partial-blocks twice with nested partial-blocks&#10;- Calling the partial-block from within the #each-helper&#10;" />
- <MESSAGE value="Added tests for multiple partial-block calls with inline partials&#10;&#10;- nested inline partials with partial-blocks on different nesting levels&#10;- nested inline partials (twice at each level)" />
- <MESSAGE value="Added node v6 to travis-ci&#10;&#10;(cherry picked from commit f784e6c)" />
- <MESSAGE value="Added &quot;.editorconfig&quot;-file that specifies the indent for javascript-files&#10; &#10;- see http://editorconfig.org/&#10;- This file only includes very basic settings. It may be expanded in the future" />
- <MESSAGE value="Node 5 is out-of-support Node 6 is the current LTS version" />
- <MESSAGE value="add more machine-readable data about the license&#10;&#10;This small change is meant to make LibreJS happy.&#10;&#10;Closes: #1273&#10;&#10;(cherry picked from commit 1f2d293)" />
- <MESSAGE value="Avoid duplicate &quot;sourceMappingURL=&quot; lines.&#10;&#10;Avoid duplicate // sourceMappingURL=... lines when minifying AND&#10;generating a map. UglifyJS2 will write the line when minifying.&#10;&#10;(cherry picked from commit 660a117)" />
- <MESSAGE value="Replace Node 5 by Node 6 in .travis-ci.yml&#10;&#10;Node 5 is not officially supported anymore and Node 6 is the active LTS.&#10;That's why builds are now performed with Node 6" />
- <MESSAGE value="Merge branch '4.x'&#10;&#10;# Conflicts:&#10;#&#9;Gruntfile.js&#10;#&#9;lib/handlebars/exception.js&#10;#&#9;spec/partials.js&#10;#&#9;spec/regressions.js&#10;" />
- <MESSAGE value="Parser: Change suffix to use ES6 default module export&#10;&#10;- This export will be transpiled by Babel for the cjs distribution,&#10; but will enable others to use a pure ES6 module distribution&#10;- Instanbul: Ignore &quot;parser.js&quot; for coverage reporting. This file was ignored before&#10; via annotation, but this has no effect anymore due to the above change&#10;- Remove istanbul annotation from `parser-prefix` (@nknapp)&#10;&#10;Squashed by @nknapp&#10;" />
<MESSAGE value="Parser: Change suffix to use ES6 default module export&#10;&#10;- This export will be transpiled by Babel for the cjs distribution,&#10; but will enable others to use a pure ES6 module distribution&#10;- Instanbul: Ignore &quot;parser.js&quot; for coverage reporting. This file was ignored before&#10; via annotation, but this has no effect anymore due to the above change&#10;- Remove istanbul annotation from `parser-prefix` (@nknapp)&#10;&#10;Squashed by @nknapp&#10;&#10;(cherry picked from commit 508347e)" />
<MESSAGE value="Fix depths for null contexts.&#10;&#10;Fixes #1319&#10;&#10;" />
<MESSAGE value="Fix context-stack when calling block-helpers on null values&#10;&#10;Fixes #1319&#10;&#10;Original behaviour:&#10;- When a block-helper was called on a null-context, an empty object was used&#10; as context instead. (#1093)&#10;- The runtime verifies that whether the current context equals the&#10; last context and adds the current context to the stack, if it is not.&#10; This is done, so that inside a block-helper, the &quot;..&quot; path can be used&#10; to go back to the parent element.&#10;- If the helper is called on a &quot;null&quot; element, the context was added, even&#10; though it shouldn't be, because the &quot;null != {}&quot;&#10;&#10;Fix:&#10;- The commit replaces &quot;null&quot; by the identifiable &quot;container.nullContext&quot;&#10; instead of &quot;{}&quot;. &quot;nullContext&quot; is a sealed empty object.&#10;- An additional check in the runtime verifies that the context is&#10; only added to the stack, if it is not the nullContext.&#10;" />
@@ -1659,11 +1709,36 @@
<MESSAGE value="Update release-notes for 4.0.7" />
<MESSAGE value="Bump version in master-branch to 5.0-alpha.1&#10;&#10;This is in order to make sure that the master-branch version is not &#10;confused with the stable 4.x" />
<MESSAGE value="Allow partial-blocks to be executed without &quot;options&quot;&#10;&#10;Closes #1342&#10;&#10;If the @partial-block is called as parameter of a helper (like in&#10;{{#if @partial-block}}...{{/if}}, the partialBlockWrapper is executed&#10;without &quot;options&quot;-parameter. It should still work in without an error&#10;in such a case." />
- <option name="LAST_COMMIT_MESSAGE" value="Allow partial-blocks to be executed without &quot;options&quot;&#10;&#10;Closes #1342&#10;&#10;If the @partial-block is called as parameter of a helper (like in&#10;{{#if @partial-block}}...{{/if}}, the partialBlockWrapper is executed&#10;without &quot;options&quot;-parameter. It should still work in without an error&#10;in such a case." />
+ <MESSAGE value="Test ci" />
+ <MESSAGE value="Publish valid semver task independently of the branch" />
+ <MESSAGE value="Use istanbul/lib/cli.js instead of node_modules/.bin/istanbul&#10;&#10;Fixes #1331&#10;&#10;Due to the way, &quot;bin&quot;-files are distributed into the node_modules/.bin&#10;directory on Windows, the task &quot;test:cov&quot; did not work on Windows.&#10;This commit uses the node-script directly." />
+ <MESSAGE value="Force LF line-endings for spec/artifacts&#10;&#10;Fixes #1331" />
+ <MESSAGE value="abc" />
+ <MESSAGE value="test" />
+ <MESSAGE value="Try appveyor" />
+ <MESSAGE value="Try appveyor 2" />
+ <MESSAGE value="Ensure LF line-edings in lexer-files (*.l)&#10;&#10;Related to #1233" />
+ <MESSAGE value="Run integration test with `node handlebars -a ...` (works on Windows)&#10;&#10;Fixes #1233" />
+ <MESSAGE value="Run integration test with `node handlebars -a ...` on Windows&#10;&#10;Fixes #1233&#10;&#10;NodeJS files cannot be executed directly on Windows." />
+ <MESSAGE value="Add appveyor-integration" />
+ <MESSAGE value="Add missing semicolon" />
+ <MESSAGE value="Appveyor" />
+ <MESSAGE value="Ensure LF line-edings in handlebars-template fixtures (*.hbs)" />
+ <MESSAGE value="Fix build in windows&#10;&#10;(cherry picked from commit 275ab37)" />
+ <MESSAGE value="Handlebars.compile() does not modify &quot;options&quot; anymore&#10;&#10;Fixes #1327&#10;&#10;- This commit creates a shallow copy of the &quot;options&quot; passed to&#10; Handlebars.compile() in order to prevent modifications&#10;- Note that &quot;new Handlebars.Compiler().compile(..., options)&quot; still&#10; modify the options object. This might change in the future, if &#10; anybody needs a fix for that." />
+ <MESSAGE value="Replace &quot;Object.assign&quot; (not support in IE) by &quot;util/extend&quot;" />
+ <option name="LAST_COMMIT_MESSAGE" value="Replace &quot;Object.assign&quot; (not support in IE) by &quot;util/extend&quot;" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
- <option name="time" value="21" />
+ <breakpoints>
+ <line-breakpoint enabled="true" type="javascript">
+ <url>file://$PROJECT_DIR$/spec/compiler.js</url>
+ <line>79</line>
+ <option name="timeStamp" value="22" />
+ </line-breakpoint>
+ </breakpoints>
+ <option name="time" value="24" />
</breakpoint-manager>
<watches-manager />
</component>
@@ -1672,246 +1747,269 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/lib/handlebars/exception.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/decorators/inline.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="72">
- <caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
+ <state relative-caret-position="150">
+ <caret line="10" column="34" lean-forward="false" selection-start-line="10" selection-start-column="34" selection-end-line="10" selection-end-column="34" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/compiler.js">
+ <entry file="file://$PROJECT_DIR$/spec/partials.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1890">
- <caret line="105" column="7" lean-forward="false" selection-start-line="105" selection-start-column="7" selection-end-line="105" selection-end-column="7" />
+ <state relative-caret-position="230">
+ <caret line="172" column="58" lean-forward="false" selection-start-line="172" selection-start-column="58" selection-end-line="172" selection-end-column="58" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/.eslintrc">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/parser.js" />
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/code-gen.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="54">
- <caret line="3" column="23" lean-forward="false" selection-start-line="3" selection-start-column="23" selection-end-line="3" selection-end-column="23" />
+ <state relative-caret-position="960">
+ <caret line="64" column="0" lean-forward="false" selection-start-line="64" selection-start-column="0" selection-end-line="64" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/dist/cjs/precompiler.js" />
- <entry file="file://$PROJECT_DIR$/coverage/lcov-report/index.html">
+ <entry file="file://$PROJECT_DIR$/node_modules/istanbul/lib/cli.js" />
+ <entry file="file://$PROJECT_DIR$/node_modules/webpack-dev-server/client/web_modules/jquery/jquery-1.8.1.js" />
+ <entry file="file://$PROJECT_DIR$/dist/cjs/handlebars/runtime.js" />
+ <entry file="file://$PROJECT_DIR$/dist/handlebars.runtime.js" />
+ <entry file="file://$PROJECT_DIR$/spec/utils.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <state relative-caret-position="177">
+ <caret line="22" column="17" lean-forward="false" selection-start-line="22" selection-start-column="17" selection-end-line="22" selection-end-column="17" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/parser-prefix.js">
+ <entry file="file://$PROJECT_DIR$/node_modules/aws-sdk/lib/util.js" />
+ <entry file="file://$PROJECT_DIR$/node_modules/webpack/lib/UmdMainTemplatePlugin.js" />
+ <entry file="file://$PROJECT_DIR$/node_modules/grunt-webpack/README.md" />
+ <entry file="file://$PROJECT_DIR$/.generator-release" />
+ <entry file="file://$PROJECT_DIR$/dist/handlebars.js" />
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/runtime.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="15">
- <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
+ <state relative-caret-position="3582">
+ <caret line="201" column="20" lean-forward="false" selection-start-line="201" selection-start-column="20" selection-end-line="201" selection-end-column="20" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/test.js" />
- <entry file="file://$PROJECT_DIR$/.istanbul.yml">
+ <entry file="file://$PROJECT_DIR$/node_modules/istanbul/index.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="30">
- <caret line="2" column="0" lean-forward="false" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/bin/handlebars">
+ <entry file="file://$PROJECT_DIR$/node_modules/istanbul/LICENSE">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="265">
- <caret line="53" column="11" lean-forward="false" selection-start-line="53" selection-start-column="11" selection-end-line="53" selection-end-column="11" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/src/parser-suffix.js">
+ <entry file="file://$PROJECT_DIR$/node_modules/istanbul/package.json">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="15">
- <caret line="1" column="0" lean-forward="false" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
+ <state relative-caret-position="918">
+ <caret line="51" column="6" lean-forward="false" selection-start-line="51" selection-start-column="6" selection-end-line="51" selection-end-column="6" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/index.js">
+ <entry file="file://$PROJECT_DIR$/tasks/publish.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="27">
- <caret line="6" column="31" lean-forward="false" selection-start-line="6" selection-start-column="31" selection-end-line="6" selection-end-column="31" />
+ <state relative-caret-position="900">
+ <caret line="50" column="7" lean-forward="false" selection-start-line="50" selection-start-column="7" selection-end-line="50" selection-end-column="7" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/helpers.js">
+ <entry file="file://$PROJECT_DIR$/tasks/util/git.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <state relative-caret-position="1674">
+ <caret line="93" column="35" lean-forward="false" selection-start-line="93" selection-start-column="35" selection-end-line="93" selection-end-column="35" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/visitor.js">
+ <entry file="file://$PROJECT_DIR$/spec/artifacts/example_1.handlebars">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <caret line="0" column="5" lean-forward="false" selection-start-line="0" selection-start-column="5" selection-end-line="0" selection-end-column="5" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/whitespace-control.js">
+ <entry file="file://$PROJECT_DIR$/.eslintrc" />
+ <entry file="file://$PROJECT_DIR$/appveyor.yml" />
+ <entry file="file://$PROJECT_DIR$/tasks/test.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <state relative-caret-position="216">
+ <caret line="12" column="18" lean-forward="false" selection-start-line="12" selection-start-column="18" selection-end-line="12" selection-end-column="18" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/precompiler.js">
+ <entry file="file://$PROJECT_DIR$/spec/parser.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <state relative-caret-position="3582">
+ <caret line="199" column="5" lean-forward="false" selection-start-line="199" selection-start-column="5" selection-end-line="199" selection-end-column="5" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/node_modules/mocha/lib/runner.js" />
- <entry file="file://$PROJECT_DIR$/lib/handlebars/helpers.js">
+ <entry file="file://$PROJECT_DIR$/src/handlebars.l">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <state relative-caret-position="216">
+ <caret line="12" column="17" lean-forward="false" selection-start-line="12" selection-start-column="17" selection-end-line="12" selection-end-column="17" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/javascript-compiler.js">
+ <entry file="file://$PROJECT_DIR$/src/handlebars.yy">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="215">
- <caret line="59" column="38" lean-forward="false" selection-start-line="59" selection-start-column="30" selection-end-line="59" selection-end-column="38" />
+ <state relative-caret-position="180">
+ <caret line="10" column="7" lean-forward="false" selection-start-line="10" selection-start-column="7" selection-end-line="10" selection-end-column="7" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/coverage/lcov-report/dist/cjs/handlebars.js.html">
+ <entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="194">
- <caret line="196" column="75" lean-forward="false" selection-start-line="196" selection-start-column="75" selection-end-line="196" selection-end-column="75" />
+ <state relative-caret-position="126">
+ <caret line="7" column="12" lean-forward="false" selection-start-line="7" selection-start-column="12" selection-end-line="7" selection-end-column="12" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/dist/cjs/handlebars/compiler/compiler.js" />
- <entry file="file://$PROJECT_DIR$/lib/handlebars/decorators.js">
+ <entry file="file://$PROJECT_DIR$/.gitmodules">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="45">
- <caret line="3" column="8" lean-forward="false" selection-start-line="3" selection-start-column="8" selection-end-line="3" selection-end-column="8" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/decorators/inline.js">
+ <entry file="file://$PROJECT_DIR$/.gitattributes">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="150">
- <caret line="10" column="34" lean-forward="false" selection-start-line="10" selection-start-column="34" selection-end-line="10" selection-end-column="34" />
+ <state relative-caret-position="108">
+ <caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/partials.js">
+ <entry file="file://$PROJECT_DIR$/.travis.yml">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="230">
- <caret line="172" column="58" lean-forward="false" selection-start-line="172" selection-start-column="58" selection-end-line="172" selection-end-column="58" />
+ <state relative-caret-position="72">
+ <caret line="4" column="22" lean-forward="false" selection-start-line="4" selection-start-column="2" selection-end-line="4" selection-end-column="22" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/parser.js">
+ <entry file="file://$PROJECT_DIR$/spec/expected/empty.amd.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="3000">
- <caret line="200" column="0" lean-forward="false" selection-start-line="200" selection-start-column="0" selection-end-line="200" selection-end-column="0" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/code-gen.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/helpers/each.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="960">
- <caret line="64" column="0" lean-forward="false" selection-start-line="64" selection-start-column="0" selection-end-line="64" selection-end-column="0" />
+ <state relative-caret-position="594">
+ <caret line="34" column="21" lean-forward="false" selection-start-line="34" selection-start-column="21" selection-end-line="34" selection-end-column="21" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/.eslintrc" />
- <entry file="file://$PROJECT_DIR$/node_modules/istanbul/lib/cli.js" />
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/compiler.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars.runtime.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="0">
- <caret line="0" column="28" lean-forward="true" selection-start-line="0" selection-start-column="28" selection-end-line="0" selection-end-column="28" />
+ <state relative-caret-position="198">
+ <caret line="16" column="29" lean-forward="false" selection-start-line="16" selection-start-column="29" selection-end-line="16" selection-end-column="29" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/base.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/base.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="225">
- <caret line="18" column="55" lean-forward="false" selection-start-line="18" selection-start-column="55" selection-end-line="18" selection-end-column="55" />
+ <state relative-caret-position="54">
+ <caret line="7" column="20" lean-forward="false" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="20" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/base.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/base.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="675">
- <caret line="45" column="30" lean-forward="true" selection-start-line="45" selection-start-column="30" selection-end-line="45" selection-end-column="30" />
+ <state relative-caret-position="144">
+ <caret line="11" column="38" lean-forward="false" selection-start-line="11" selection-start-column="38" selection-end-line="11" selection-end-column="38" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/node_modules/webpack-dev-server/client/web_modules/jquery/jquery-1.8.1.js" />
- <entry file="file://$PROJECT_DIR$/dist/cjs/handlebars/runtime.js">
+ <entry file="file://$PROJECT_DIR$/lib/index.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="78">
- <caret line="8" column="0" lean-forward="false" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
+ <state relative-caret-position="324">
+ <caret line="18" column="32" lean-forward="false" selection-start-line="18" selection-start-column="32" selection-end-line="18" selection-end-column="32" />
+ <folding>
+ <element signature="n#!!doc" expanded="false" />
+ </folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/dist/handlebars.runtime.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="224">
- <caret line="1120" column="6" lean-forward="false" selection-start-line="1120" selection-start-column="6" selection-end-line="1120" selection-end-column="6" />
+ <state relative-caret-position="180">
+ <caret line="16" column="16" lean-forward="false" selection-start-line="16" selection-start-column="16" selection-end-line="16" selection-end-column="16" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/javascript-compiler.js">
+ <entry file="file://$PROJECT_DIR$/spec/regressions.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="239">
- <caret line="918" column="6" lean-forward="false" selection-start-line="918" selection-start-column="6" selection-end-line="918" selection-end-column="6" />
+ <state relative-caret-position="5274">
+ <caret line="293" column="0" lean-forward="false" selection-start-line="293" selection-start-column="0" selection-end-line="293" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/utils.js">
+ <entry file="file://$PROJECT_DIR$/spec/runtime.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="177">
- <caret line="22" column="17" lean-forward="false" selection-start-line="22" selection-start-column="17" selection-end-line="22" selection-end-column="17" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/node_modules/aws-sdk/lib/util.js" />
- <entry file="file://$PROJECT_DIR$/lib/handlebars/utils.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/javascript-compiler.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="255">
- <caret line="17" column="41" lean-forward="false" selection-start-line="17" selection-start-column="41" selection-end-line="17" selection-end-column="41" />
+ <state relative-caret-position="16470">
+ <caret line="918" column="6" lean-forward="false" selection-start-line="918" selection-start-column="6" selection-end-line="918" selection-end-column="6" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars.js">
+ <entry file="file://$PROJECT_DIR$/spec/mustache/Changes">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="414">
- <caret line="29" column="1" lean-forward="false" selection-start-line="29" selection-start-column="1" selection-end-line="29" selection-end-column="1" />
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars.runtime.js">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="450">
- <caret line="30" column="21" lean-forward="true" selection-start-line="30" selection-start-column="21" selection-end-line="30" selection-end-column="21" />
+ <entry file="file://$PROJECT_DIR$/release-notes.md">
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
+ <state split_layout="FIRST">
+ <first_editor relative-caret-position="126">
+ <caret line="24" column="24" lean-forward="false" selection-start-line="24" selection-start-column="24" selection-end-line="24" selection-end-column="24" />
+ <folding />
+ </first_editor>
+ <second_editor />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/node_modules/webpack/lib/UmdMainTemplatePlugin.js" />
- <entry file="file://$PROJECT_DIR$/node_modules/grunt-webpack/README.md" />
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
- <first_editor relative-caret-position="0">
- <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <first_editor relative-caret-position="208">
+ <caret line="86" column="17" lean-forward="false" selection-start-line="86" selection-start-column="17" selection-end-line="86" selection-end-column="17" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/.generator-release" />
- <entry file="file://$PROJECT_DIR$/tasks/util/git.js">
+ <entry file="file://$PROJECT_DIR$/Gruntfile.js">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="323">
+ <caret line="79" column="20" lean-forward="false" selection-start-line="79" selection-start-column="20" selection-end-line="79" selection-end-column="20" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/print-script">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
@@ -1921,76 +2019,46 @@
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="198">
- <caret line="17" column="19" lean-forward="false" selection-start-line="17" selection-start-column="19" selection-end-line="17" selection-end-column="19" />
- <folding>
- <marker date="1493758511672" expanded="true" signature="0:1829" ph="{&quot;name&quot;: &quot;handlebars&quot;...}" />
- <marker date="1493758511672" expanded="true" signature="1767:1774" ph="{&quot;lib&quot;: &quot;dist/cjs&quot;...}" />
- <marker date="1493758511672" expanded="true" signature="1767:1827" ph="{&quot;main&quot;: &quot;handlebars&quot;...}" />
- </folding>
+ <state relative-caret-position="-24">
+ <caret line="33" column="5" lean-forward="false" selection-start-line="33" selection-start-column="5" selection-end-line="33" selection-end-column="5" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/dist/handlebars.js">
+ <entry file="file://$PROJECT_DIR$/spec/compiler.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="105">
- <caret line="1271" column="28" lean-forward="false" selection-start-line="1271" selection-start-column="28" selection-end-line="1271" selection-end-column="28" />
+ <state relative-caret-position="1476">
+ <caret line="82" column="6" lean-forward="false" selection-start-line="82" selection-start-column="6" selection-end-line="82" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/Gruntfile.js">
+ <entry file="file://$PROJECT_DIR$/spec/env/common.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="234">
- <caret line="14" column="22" lean-forward="false" selection-start-line="14" selection-start-column="22" selection-end-line="14" selection-end-column="22" />
- <folding>
- <marker date="1493754106914" expanded="true" signature="69:6525" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="91:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="434:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="448:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="467:575" ph="{...}" />
- <marker date="1493754106914" expanded="true" signature="513:575" ph="{...}" />
- </folding>
+ <state relative-caret-position="309">
+ <caret line="57" column="0" lean-forward="false" selection-start-line="57" selection-start-column="0" selection-end-line="57" selection-end-column="0" />
+ <folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/spec/regressions.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/utils.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="163">
- <caret line="293" column="3" lean-forward="false" selection-start-line="293" selection-start-column="3" selection-end-line="293" selection-end-column="3" />
+ <state relative-caret-position="304">
+ <caret line="108" column="0" lean-forward="false" selection-start-line="108" selection-start-column="0" selection-end-line="108" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/lib/handlebars/runtime.js">
+ <entry file="file://$PROJECT_DIR$/lib/handlebars/compiler/compiler.js">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="189">
- <caret line="214" column="20" lean-forward="false" selection-start-line="214" selection-start-column="20" selection-end-line="214" selection-end-column="20" />
+ <state relative-caret-position="111">
+ <caret line="488" column="3" lean-forward="false" selection-start-line="488" selection-start-column="3" selection-end-line="488" selection-end-column="3" />
<folding>
- <marker date="1493758195915" expanded="true" signature="8145:8437" ph="{...}" />
- <marker date="1493758195915" expanded="true" signature="9101:9293" ph="{...}" />
+ <element signature="n#!!doc" expanded="true" />
+ <element signature="e#30#67#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/.travis.yml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="54">
- <caret line="18" column="136" lean-forward="false" selection-start-line="18" selection-start-column="136" selection-end-line="18" selection-end-column="136" />
- <folding />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/release-notes.md">
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
- <state split_layout="SPLIT">
- <first_editor relative-caret-position="215">
- <caret line="16" column="95" lean-forward="false" selection-start-line="16" selection-start-column="95" selection-end-line="16" selection-end-column="95" />
- <folding />
- </first_editor>
- <second_editor />
- </state>
- </provider>
- </entry>
</component>
</project> \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/base.js b/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/base.js
index c697ac9fe..fba2f1db3 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/base.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/base.js
@@ -11,7 +11,7 @@ define(['exports', './utils', './exception', './helpers', './decorators', './log
var _logger2 = _interopRequireDefault(_logger);
- var VERSION = '4.0.8';
+ var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
@@ -93,4 +93,4 @@ define(['exports', './utils', './exception', './helpers', './decorators', './log
exports.createFrame = _utils.createFrame;
exports.logger = _logger2['default'];
});
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMCc7XG5leHBvcnQgY29uc3QgQ09NUElMRVJfUkVWSVNJT04gPSA3O1xuXG5leHBvcnQgY29uc3QgUkVWSVNJT05fQ0hBTkdFUyA9IHtcbiAgMTogJzw9IDEuMC5yYy4yJywgLy8gMS4wLnJjLjIgaXMgYWN0dWFsbHkgcmV2MiBidXQgZG9lc24ndCByZXBvcnQgaXRcbiAgMjogJz09IDEuMC4wLXJjLjMnLFxuICAzOiAnPT0gMS4wLjAtcmMuNCcsXG4gIDQ6ICc9PSAxLngueCcsXG4gIDU6ICc9PSAyLjAuMC1hbHBoYS54JyxcbiAgNjogJz49IDIuMC4wLWJldGEuMScsXG4gIDc6ICc+PSA0LjAuMCdcbn07XG5cbmNvbnN0IG9iamVjdFR5cGUgPSAnW29iamVjdCBPYmplY3RdJztcblxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZWJhcnNFbnZpcm9ubWVudChoZWxwZXJzLCBwYXJ0aWFscywgZGVjb3JhdG9ycykge1xuICB0aGlzLmhlbHBlcnMgPSBoZWxwZXJzIHx8IHt9O1xuICB0aGlzLnBhcnRpYWxzID0gcGFydGlhbHMgfHwge307XG4gIHRoaXMuZGVjb3JhdG9ycyA9IGRlY29yYXRvcnMgfHwge307XG5cbiAgcmVnaXN0ZXJEZWZhdWx0SGVscGVycyh0aGlzKTtcbiAgcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyh0aGlzKTtcbn1cblxuSGFuZGxlYmFyc0Vudmlyb25tZW50LnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IEhhbmRsZWJhcnNFbnZpcm9ubWVudCxcblxuICBsb2dnZXI6IGxvZ2dlcixcbiAgbG9nOiBsb2dnZXIubG9nLFxuXG4gIHJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBoZWxwZXJzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGApO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJ0aWFsc1tuYW1lXSA9IHBhcnRpYWw7XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLnBhcnRpYWxzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBkZWNvcmF0b3JzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmRlY29yYXRvcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlY29yYXRvcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5kZWNvcmF0b3JzW25hbWVdO1xuICB9XG59O1xuXG5leHBvcnQgbGV0IGxvZyA9IGxvZ2dlci5sb2c7XG5cbmV4cG9ydCB7Y3JlYXRlRnJhbWUsIGxvZ2dlcn07XG4iXX0=
diff --git a/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js b/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
index cbb5a77c9..e1d6f5b75 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/amd/handlebars/compiler/compiler.js
@@ -81,7 +81,7 @@ define(['exports', '../exception', '../utils', './ast'], function (exports, _exc
for (var _name in knownHelpers) {
/* istanbul ignore else */
if (_name in knownHelpers) {
- options.knownHelpers[_name] = knownHelpers[_name];
+ this.options.knownHelpers[_name] = knownHelpers[_name];
}
}
}
@@ -496,6 +496,7 @@ define(['exports', '../exception', '../utils', './ast'], function (exports, _exc
throw new _Exception['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
}
+ options = _utils.extend({}, options);
if (!('data' in options)) {
options.data = true;
}
@@ -565,4 +566,4 @@ define(['exports', '../exception', '../utils', './ast'], function (exports, _exc
}
}
});
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs7QUFFaEIsV0FBUyxRQUFRLEdBQUcsRUFBRTs7Ozs7OztBQU83QixVQUFRLENBQUMsU0FBUyxHQUFHO0FBQ25CLFlBQVEsRUFBRSxRQUFROztBQUVsQixVQUFNLEVBQUUsZ0JBQVMsS0FBSyxFQUFFO0FBQ3RCLFVBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzlCLFVBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO0FBQ2hDLGVBQU8sS0FBSyxDQUFDO09BQ2Q7O0FBRUQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QixZQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4QixXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxZQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyRixpQkFBTyxLQUFLLENBQUM7U0FDZDtPQUNGOzs7O0FBSUQsU0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzNCLFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUIsWUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FB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S0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQ3JELFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2pDLFlBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzFCLGlCQUFPLEtBQUssQ0FBQztTQUNkO09BQ0Y7QUFDRCxhQUFPLElBQUksQ0FBQztLQUNiO0dBQ0Y7O0FBRUQsV0FBUyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7QUFDckMsUUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO0FBQ3JCLFVBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7OztBQUd6QixXQUFLLENBQUMsSUFBSSxHQUFHO0FBQ1gsWUFBSSxFQUFFLGdCQUFnQjtBQUN0QixZQUFJLEVBQUUsS0FBSztBQUNYLGFBQUssRUFBRSxDQUFDO0FBQ1IsYUFBSyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDOUIsZ0JBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUU7QUFDL0IsV0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO09BQ2pCLENBQUM7S0FDSDtHQUNGIiwiZmlsZSI6ImNvbXBpbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbmV3LWNhcCAqL1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5pbXBvcnQge2lzQXJyYXksIGluZGV4T2Z9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBBU1QgZnJvbSAnLi9hc3QnO1xuXG5jb25zdCBzbGljZSA9IFtdLnNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gQ29tcGlsZXIoKSB7fVxuXG4vLyB0aGUgZm91bmRIZWxwZXIgcmVnaXN0ZXIgd2lsbCBkaXNhbWJpZ3VhdGUgaGVscGVyIGxvb2t1cCBmcm9tIGZpbmRpbmcgYVxuLy8gZnVuY3Rpb24gaW4gYSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgbXVzdGFjaGUgY29tcGF0aWJpbGl0eSwgd2hpY2hcbi8vIHJlcXVpcmVzIHRoYXQgY29udGV4dCBmdW5jdGlvbnMgaW4gYmxvY2tzIGFyZSBldmFsdWF0ZWQgYnkgYmxvY2tIZWxwZXJNaXNzaW5nLFxuLy8gYW5kIHRoZW4gcHJvY2VlZCBhcyBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlIHdhcyBwcm92aWRlZCB0byBibG9ja0hlbHBlck1pc3NpbmcuXG5cbkNvbXBpbGVyLnByb3RvdHlwZSA9IHtcbiAgY29tcGlsZXI6IENvbXBpbGVyLFxuXG4gIGVxdWFsczogZnVuY3Rpb24ob3RoZXIpIHtcbiAgICBsZXQgbGVuID0gdGhpcy5vcGNvZGVzLmxlbmd0aDtcbiAgICBpZiAob3RoZXIub3Bjb2Rlcy5sZW5ndGggIT09IGxlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxldCBvcGNvZGUgPSB0aGlzLm9wY29kZXNbaV0sXG4gICAgICAgICAgb3RoZXJPcGNvZGUgPSBvdGhlci5vcGNvZGVzW2ldO1xuICAgICAgaWYgKG9wY29kZS5vcGNvZGUgIT09IG90aGVyT3Bjb2RlLm9wY29kZSB8fCAhYXJnRXF1YWxzKG9wY29kZS5hcmdzLCBvdGhlck9wY29kZS5hcmdzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Uga25vdyB0aGF0IGxlbmd0aCBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoZSB0d28gYXJyYXlzIGJlY2F1c2UgdGhleSBhcmUgZGlyZWN0bHkgdGllZFxuICAgIC8vIHRvIHRoZSBvcGNvZGUgYmVoYXZpb3IgYWJvdmUuXG4gICAgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuW2ldLmVxdWFscyhvdGhlci5jaGlsZHJlbltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIGd1aWQ6IDAsXG5cbiAgY29tcGlsZTogZnVuY3Rpb24ocHJvZ3JhbSwgb3B0aW9ucykge1xuICAgIHRoaXMuc291cmNlTm9kZSA9IFtdO1xuICAgIHRoaXMub3Bjb2RlcyA9IFtdO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gb3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IG9wdGlvbnMudHJhY2tJZHM7XG5cbiAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gb3B0aW9ucy5ibG9ja1BhcmFtcyB8fCBbXTtcblxuICAgIC8vIFRoZXNlIGNoYW5nZXMgd2lsbCBwcm9wYWdhdGUgdG8gdGhlIG90aGVyIGNvbXBpbGVyIGNvbXBvbmVudHNcbiAgICBsZXQga25vd25IZWxwZXJzID0gb3B0aW9ucy5rbm93bkhlbHBlcnM7XG4gICAgb3B0aW9ucy5rbm93bkhlbHBlcnMgPSB7XG4gICAgICAnaGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnYmxvY2tIZWxwZXJNaXNzaW5nJzogdHJ1ZSxcbiAgICAgICdlYWNoJzogdHJ1ZSxcbiAgICAgICdpZic6IHRydWUsXG4gICAgICAndW5sZXNzJzogdHJ1ZSxcbiAgICAgICd3aXRoJzogdHJ1ZSxcbiAgICAgICdsb2cnOiB0cnVlLFxuICAgICAgJ2xvb2t1cCc6IHRydWVcbiAgICB9O1xuICAgIGlmIChrbm93bkhlbHBlcnMpIHtcbiAgICAgIGZvciAobGV0IG5hbWUgaW4ga25vd25IZWxwZXJzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAgIG9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdID0ga25vd25IZWxwZXJzW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHByb2dyYW0pO1xuICB9LFxuXG4gIGNvbXBpbGVQcm9ncmFtOiBmdW5jdGlvbihwcm9ncmFtKSB7XG4gICAgbGV0IGNoaWxkQ29tcGlsZXIgPSBuZXcgdGhpcy5jb21waWxlcigpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgICAgICAgcmVzdWx0ID0gY2hpbGRDb21waWxlci5jb21waWxlKHByb2dyYW0sIHRoaXMub3B0aW9ucyksXG4gICAgICAgIGd1aWQgPSB0aGlzLmd1aWQrKztcblxuICAgIHRoaXMudXNlUGFydGlhbCA9IHRoaXMudXNlUGFydGlhbCB8fCByZXN1bHQudXNlUGFydGlhbDtcblxuICAgIHRoaXMuY2hpbGRyZW5bZ3VpZF0gPSByZXN1bHQ7XG4gICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCByZXN1bHQudXNlRGVwdGhzO1xuXG4gICAgcmV0dXJuIGd1aWQ7XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbihub2RlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IFNhbml0eSBjb2RlICovXG4gICAgaWYgKCF0aGlzW25vZGUudHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgbGV0IHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXMudW5zaGlmdChwcm9ncmFtLmJsb2NrUGFyYW1zKTtcblxuICAgIGxldCBib2R5ID0gcHJvZ3JhbS5ib2R5LFxuICAgICAgICBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBib2R5TGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWNjZXB0KGJvZHlbaV0pO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5zaGlmdCgpO1xuXG4gICAgdGhpcy5pc1NpbXBsZSA9IGJvZHlMZW5ndGggPT09IDE7XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IHByb2dyYW0uYmxvY2tQYXJhbXMgPyBwcm9ncmFtLmJsb2NrUGFyYW1zLmxlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24oYmxvY2spIHtcbiAgICB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKGJsb2NrKTtcblxuICAgIGxldCBwcm9ncmFtID0gYmxvY2sucHJvZ3JhbSxcbiAgICAgICAgaW52ZXJzZSA9IGJsb2NrLmludmVyc2U7XG5cbiAgICBwcm9ncmFtID0gcHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKHByb2dyYW0pO1xuICAgIGludmVyc2UgPSBpbnZlcnNlICYmIHRoaXMuY29tcGlsZVByb2dyYW0oaW52ZXJzZSk7XG5cbiAgICBsZXQgdHlwZSA9IHRoaXMuY2xhc3NpZnlTZXhwcihibG9jayk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2hlbHBlcicpIHtcbiAgICAgIHRoaXMuaGVscGVyU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIHRoaXMuc2ltcGxlU2V4cHIoYmxvY2spO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYmxvY2tWYWx1ZScsIGJsb2NrLnBhdGgub3JpZ2luYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFtYmlndW91c1NleHByKGJsb2NrLCBwcm9ncmFtLCBpbnZlcnNlKTtcblxuICAgICAgLy8gbm93IHRoYXQgdGhlIHNpbXBsZSBtdXN0YWNoZSBpcyByZXNvbHZlZCwgd2UgbmVlZCB0b1xuICAgICAgLy8gZXZhbHVhdGUgaXQgYnkgZXhlY3V0aW5nIGBibG9ja0hlbHBlck1pc3NpbmdgXG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2FtYmlndW91c0Jsb2NrVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gIH0sXG5cbiAgRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24ocGFydGlhbCkge1xuICAgIHRoaXMudXNlUGFydGlhbCA9IHRydWU7XG5cbiAgICBsZXQgcHJvZ3JhbSA9IHBhcnRpYWwucHJvZ3JhbTtcbiAgICBpZiAocHJvZ3JhbSkge1xuICAgICAgcHJvZ3JhbSA9IHRoaXMuY29tcGlsZVByb2dyYW0ocGFydGlhbC5wcm9ncmFtKTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFydGlhbC5wYXJhbXM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goe3R5cGU6ICdQYXRoRXhwcmVzc2lvbicsIHBhcnRzOiBbXSwgZGVwdGg6IDB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFydGlhbE5hbWUgPSBwYXJ0aWFsLm5hbWUub3JpZ2luYWwsXG4gICAgICAgIGlzRHluYW1pYyA9IHBhcnRpYWwubmFtZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbic7XG4gICAgaWYgKGlzRHluYW1pYykge1xuICAgICAgdGhpcy5hY2NlcHQocGFydGlhbC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKHBhcnRpYWwsIHByb2dyYW0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICBsZXQgaW5kZW50ID0gcGFydGlhbC5pbmRlbnQgfHwgJyc7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmV2ZW50SW5kZW50ICYmIGluZGVudCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBpbmRlbnQpO1xuICAgICAgaW5kZW50ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGNvZGUoJ2ludm9rZVBhcnRpYWwnLCBpc0R5bmFtaWMsIHBhcnRpYWxOYW1lLCBpbmRlbnQpO1xuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yKGRlY29yYXRvcikge1xuICAgIHRoaXMuRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKTtcbiAgfSxcblxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICBpZiAoY29udGVudC52YWx1ZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBjb250ZW50LnZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgQ29tbWVudFN0YXRlbWVudDogZnVuY3Rpb24oKSB7fSxcblxuICBTdWJFeHByZXNzaW9uOiBmdW5jdGlvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IHNwZWNpZmllZCBrbm93bkhlbHBlcnNPbmx5LCBidXQgdXNlZCB0aGUgdW5rbm93biBoZWxwZXIgJyArIG5hbWUsIHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgICAgcGF0aC5mYWxzeSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUhlbHBlcicsIHBhcmFtcy5sZW5ndGgsIHBhdGgub3JpZ2luYWwsIEFTVC5oZWxwZXJzLnNpbXBsZUlkKHBhdGgpKTtcbiAgICB9XG4gIH0sXG5cbiAgUGF0aEV4cHJlc3Npb246IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICB0aGlzLmFkZERlcHRoKHBhdGguZGVwdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICBsZXQgbmFtZSA9IHBhdGgucGFydHNbMF0sXG4gICAgICAgIHNjb3BlZCA9IEFTVC5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nJywgc3RyaW5nLnZhbHVlKTtcbiAgfSxcblxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBudW1iZXIudmFsdWUpO1xuICB9LFxuXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbihib29sKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgYm9vbC52YWx1ZSk7XG4gIH0sXG5cbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uKGhhc2gpIHtcbiAgICBsZXQgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgbCA9IHBhaXJzLmxlbmd0aDtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoSGFzaCcpO1xuXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhaXJzW2ldLnZhbHVlKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2Fzc2lnblRvSGFzaCcsIHBhaXJzW2ldLmtleSk7XG4gICAgfVxuICAgIHRoaXMub3Bjb2RlKCdwb3BIYXNoJyk7XG4gIH0sXG5cbiAgLy8gSEVMUEVSU1xuICBvcGNvZGU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7IG9wY29kZTogbmFtZSwgYXJnczogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLCBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2MgfSk7XG4gIH0sXG5cbiAgYWRkRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfSxcblxuICBjbGFzc2lmeVNleHByOiBmdW5jdGlvbihzZXhwcikge1xuICAgIGxldCBpc1NpbXBsZSA9IEFTVC5oZWxwZXJzLnNpbXBsZUlkKHNleHByLnBhdGgpO1xuXG4gICAgbGV0IGlzQmxvY2tQYXJhbSA9IGlzU2ltcGxlICYmICEhdGhpcy5ibG9ja1BhcmFtSW5kZXgoc2V4cHIucGF0aC5wYXJ0c1swXSk7XG5cbiAgICAvLyBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0cyBpZCBpcyBzaW1wbGUgKGEgc2luZ2xlIHBhcnQsIG5vdCBgdGhpc2Agb3IgYC4uYClcbiAgICBsZXQgaXNIZWxwZXIgPSAhaXNCbG9ja1BhcmFtICYmIEFTVC5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgbGV0IGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgbGV0IG5hbWUgPSBzZXhwci5wYXRoLnBhcnRzWzBdLFxuICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGlmIChvcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLnB1c2hQYXJhbShwYXJhbXNbaV0pO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW06IGZ1bmN0aW9uKHZhbCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXC4/XFwuXFwvKSovZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwuZGVwdGgpIHtcbiAgICAgICAgdGhpcy5hZGREZXB0aCh2YWwuZGVwdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCB2YWwuZGVwdGggfHwgMCk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFN0cmluZ1BhcmFtJywgdmFsdWUsIHZhbC50eXBlKTtcblxuICAgICAgaWYgKHZhbC50eXBlID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgLy8gU3ViRXhwcmVzc2lvbnMgZ2V0IGV2YWx1YXRlZCBhbmQgcGFzc2VkIGluXG4gICAgICAgIC8vIGluIHN0cmluZyBwYXJhbXMgbW9kZS5cbiAgICAgICAgdGhpcy5hY2NlcHQodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgbGV0IGJsb2NrUGFyYW1JbmRleDtcbiAgICAgICAgaWYgKHZhbC5wYXJ0cyAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgIGJsb2NrUGFyYW1JbmRleCA9IHRoaXMuYmxvY2tQYXJhbUluZGV4KHZhbC5wYXJ0c1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrUGFyYW1JbmRleCkge1xuICAgICAgICAgIGxldCBibG9ja1BhcmFtQ2hpbGQgPSB2YWwucGFydHMuc2xpY2UoMSkuam9pbignLicpO1xuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCAnQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JbmRleCwgYmxvY2tQYXJhbUNoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbC5vcmlnaW5hbCB8fCB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9edGhpcyg/OlxcLnwkKS8sICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuXFwvLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC4kLywgJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCB2YWwudHlwZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgIH1cbiAgfSxcblxuICBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtczogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UsIG9taXRFbXB0eSkge1xuICAgIGxldCBwYXJhbXMgPSBzZXhwci5wYXJhbXM7XG4gICAgdGhpcy5wdXNoUGFyYW1zKHBhcmFtcyk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIGlmIChzZXhwci5oYXNoKSB7XG4gICAgICB0aGlzLmFjY2VwdChzZXhwci5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcsIG9taXRFbXB0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICBibG9ja1BhcmFtSW5kZXg6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBmb3IgKGxldCBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICBsZXQgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgaW5kZXhPZihibG9ja1BhcmFtcywgbmFtZSk7XG4gICAgICBpZiAoYmxvY2tQYXJhbXMgJiYgcGFyYW0gPj0gMCkge1xuICAgICAgICByZXR1cm4gW2RlcHRoLCBwYXJhbV07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8ICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmIGlucHV0LnR5cGUgIT09ICdQcm9ncmFtJykpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgbXVzdCBwYXNzIGEgc3RyaW5nIG9yIEhhbmRsZWJhcnMgQVNUIHRvIEhhbmRsZWJhcnMucHJlY29tcGlsZS4gWW91IHBhc3NlZCAnICsgaW5wdXQpO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghKCdkYXRhJyBpbiBvcHRpb25zKSkge1xuICAgIG9wdGlvbnMuZGF0YSA9IHRydWU7XG4gIH1cbiAgaWYgKG9wdGlvbnMuY29tcGF0KSB7XG4gICAgb3B0aW9ucy51c2VEZXB0aHMgPSB0cnVlO1xuICB9XG5cbiAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXcgZW52LkphdmFTY3JpcHRDb21waWxlcigpLmNvbXBpbGUoZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShpbnB1dCwgb3B0aW9ucyA9IHt9LCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5jb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBpZiAoISgnZGF0YScgaW4gb3B0aW9ucykpIHtcbiAgICBvcHRpb25zLmRhdGEgPSB0cnVlO1xuICB9XG4gIGlmIChvcHRpb25zLmNvbXBhdCkge1xuICAgIG9wdGlvbnMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfVxuXG4gIGxldCBjb21waWxlZDtcblxuICBmdW5jdGlvbiBjb21waWxlSW5wdXQoKSB7XG4gICAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKSxcbiAgICAgICAgdGVtcGxhdGVTcGVjID0gbmV3IGVudi5KYXZhU2NyaXB0Q29tcGlsZXIoKS5jb21waWxlKGVudmlyb25tZW50LCBvcHRpb25zLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIHJldHVybiBlbnYudGVtcGxhdGUodGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGlzIG9ubHkgY29tcGlsZWQgb24gZmlyc3QgdXNlIGFuZCBjYWNoZWQgYWZ0ZXIgdGhhdCBwb2ludC5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIGV4ZWNPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLmNhbGwodGhpcywgY29udGV4dCwgZXhlY09wdGlvbnMpO1xuICB9XG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihzZXR1cE9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbXBpbGVkKSB7XG4gICAgICBjb21waWxlZCA9IGNvbXBpbGVJbnB1dCgpO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGlsZWQuX3NldHVwKHNldHVwT3B0aW9ucyk7XG4gIH07XG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9jaGlsZChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gYXJnRXF1YWxzKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KGEpICYmIGlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWFyZ0VxdWFscyhhW2ldLCBiW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpIHtcbiAgaWYgKCFzZXhwci5wYXRoLnBhcnRzKSB7XG4gICAgbGV0IGxpdGVyYWwgPSBzZXhwci5wYXRoO1xuICAgIC8vIENhc3RpbmcgdG8gc3RyaW5nIGhlcmUgdG8gbWFrZSBmYWxzZSBhbmQgMCBsaXRlcmFsIHZhbHVlcyBwbGF5IG5pY2VseSB3aXRoIHRoZSByZXN0XG4gICAgLy8gb2YgdGhlIHN5c3RlbS5cbiAgICBzZXhwci5wYXRoID0ge1xuICAgICAgdHlwZTogJ1BhdGhFeHByZXNzaW9uJyxcbiAgICAgIGRhdGE6IGZhbHNlLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBwYXJ0czogW2xpdGVyYWwub3JpZ2luYWwgKyAnJ10sXG4gICAgICBvcmlnaW5hbDogbGl0ZXJhbC5vcmlnaW5hbCArICcnLFxuICAgICAgbG9jOiBsaXRlcmFsLmxvY1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs7QUFFaEIsV0FBUyxRQUFRLEdBQUcsRUFBRTs7Ozs7OztBQU83QixVQUFRLENBQUMsU0FBUyxHQUFHO0FBQ25CLFlBQVEsRUFBRSxRQUFROztBQUVsQixVQUFNLEVBQUUsZ0JBQVMsS0FBSyxFQUFFO0FBQ3RCLFVBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzlCLFVBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO0FBQ2hDLGVBQU8sS0FBSyxDQUFDO09BQ2Q7O0FBRUQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QixZQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4QixXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxZQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyRixpQkFBTyxLQUFLLENBQUM7U0FDZDtPQUNGOzs7O0FBSUQsU0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzNCLFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUIsWUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FB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aEJELENBQUMsQ0FBQyxJQUFJLE9BbmhCWixPQUFPLENBbWhCYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDckQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakMsWUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDMUIsaUJBQU8sS0FBSyxDQUFDO1NBQ2Q7T0FDRjtBQUNELGFBQU8sSUFBSSxDQUFDO0tBQ2I7R0FDRjs7QUFFRCxXQUFTLHNCQUFzQixDQUFDLEtBQUssRUFBRTtBQUNyQyxRQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDckIsVUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7O0FBR3pCLFdBQUssQ0FBQyxJQUFJLEdBQUc7QUFDWCxZQUFJLEVBQUUsZ0JBQWdCO0FBQ3RCLFlBQUksRUFBRSxLQUFLO0FBQ1gsYUFBSyxFQUFFLENBQUM7QUFDUixhQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUM5QixnQkFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRTtBQUMvQixXQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7T0FDakIsQ0FBQztLQUNIO0dBQ0YiLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuZXctY2FwICovXG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcbmltcG9ydCB7aXNBcnJheSwgaW5kZXhPZiwgZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgQVNUIGZyb20gJy4vYXN0JztcblxuY29uc3Qgc2xpY2UgPSBbXS5zbGljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbXBpbGVyKCkge31cblxuLy8gdGhlIGZvdW5kSGVscGVyIHJlZ2lzdGVyIHdpbGwgZGlzYW1iaWd1YXRlIGhlbHBlciBsb29rdXAgZnJvbSBmaW5kaW5nIGFcbi8vIGZ1bmN0aW9uIGluIGEgY29udGV4dC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIG11c3RhY2hlIGNvbXBhdGliaWxpdHksIHdoaWNoXG4vLyByZXF1aXJlcyB0aGF0IGNvbnRleHQgZnVuY3Rpb25zIGluIGJsb2NrcyBhcmUgZXZhbHVhdGVkIGJ5IGJsb2NrSGVscGVyTWlzc2luZyxcbi8vIGFuZCB0aGVuIHByb2NlZWQgYXMgaWYgdGhlIHJlc3VsdGluZyB2YWx1ZSB3YXMgcHJvdmlkZWQgdG8gYmxvY2tIZWxwZXJNaXNzaW5nLlxuXG5Db21waWxlci5wcm90b3R5cGUgPSB7XG4gIGNvbXBpbGVyOiBDb21waWxlcixcblxuICBlcXVhbHM6IGZ1bmN0aW9uKG90aGVyKSB7XG4gICAgbGV0IGxlbiA9IHRoaXMub3Bjb2Rlcy5sZW5ndGg7XG4gICAgaWYgKG90aGVyLm9wY29kZXMubGVuZ3RoICE9PSBsZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBsZXQgb3Bjb2RlID0gdGhpcy5vcGNvZGVzW2ldLFxuICAgICAgICAgIG90aGVyT3Bjb2RlID0gb3RoZXIub3Bjb2Rlc1tpXTtcbiAgICAgIGlmIChvcGNvZGUub3Bjb2RlICE9PSBvdGhlck9wY29kZS5vcGNvZGUgfHwgIWFyZ0VxdWFscyhvcGNvZGUuYXJncywgb3RoZXJPcGNvZGUuYXJncykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdlIGtub3cgdGhhdCBsZW5ndGggaXMgdGhlIHNhbWUgYmV0d2VlbiB0aGUgdHdvIGFycmF5cyBiZWNhdXNlIHRoZXkgYXJlIGRpcmVjdGx5IHRpZWRcbiAgICAvLyB0byB0aGUgb3Bjb2RlIGJlaGF2aW9yIGFib3ZlLlxuICAgIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5jaGlsZHJlbltpXS5lcXVhbHMob3RoZXIuY2hpbGRyZW5baV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICBndWlkOiAwLFxuXG4gIGNvbXBpbGU6IGZ1bmN0aW9uKHByb2dyYW0sIG9wdGlvbnMpIHtcbiAgICB0aGlzLnNvdXJjZU5vZGUgPSBbXTtcbiAgICB0aGlzLm9wY29kZXMgPSBbXTtcbiAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnN0cmluZ1BhcmFtcyA9IG9wdGlvbnMuc3RyaW5nUGFyYW1zO1xuICAgIHRoaXMudHJhY2tJZHMgPSBvcHRpb25zLnRyYWNrSWRzO1xuXG4gICAgb3B0aW9ucy5ibG9ja1BhcmFtcyA9IG9wdGlvbnMuYmxvY2tQYXJhbXMgfHwgW107XG5cbiAgICAvLyBUaGVzZSBjaGFuZ2VzIHdpbGwgcHJvcGFnYXRlIHRvIHRoZSBvdGhlciBjb21waWxlciBjb21wb25lbnRzXG4gICAgbGV0IGtub3duSGVscGVycyA9IG9wdGlvbnMua25vd25IZWxwZXJzO1xuICAgIG9wdGlvbnMua25vd25IZWxwZXJzID0ge1xuICAgICAgJ2hlbHBlck1pc3NpbmcnOiB0cnVlLFxuICAgICAgJ2Jsb2NrSGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnZWFjaCc6IHRydWUsXG4gICAgICAnaWYnOiB0cnVlLFxuICAgICAgJ3VubGVzcyc6IHRydWUsXG4gICAgICAnd2l0aCc6IHRydWUsXG4gICAgICAnbG9nJzogdHJ1ZSxcbiAgICAgICdsb29rdXAnOiB0cnVlXG4gICAgfTtcbiAgICBpZiAoa25vd25IZWxwZXJzKSB7XG4gICAgICBmb3IgKGxldCBuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAobmFtZSBpbiBrbm93bkhlbHBlcnMpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdID0ga25vd25IZWxwZXJzW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHByb2dyYW0pO1xuICB9LFxuXG4gIGNvbXBpbGVQcm9ncmFtOiBmdW5jdGlvbihwcm9ncmFtKSB7XG4gICAgbGV0IGNoaWxkQ29tcGlsZXIgPSBuZXcgdGhpcy5jb21waWxlcigpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgICAgICAgcmVzdWx0ID0gY2hpbGRDb21waWxlci5jb21waWxlKHByb2dyYW0sIHRoaXMub3B0aW9ucyksXG4gICAgICAgIGd1aWQgPSB0aGlzLmd1aWQrKztcblxuICAgIHRoaXMudXNlUGFydGlhbCA9IHRoaXMudXNlUGFydGlhbCB8fCByZXN1bHQudXNlUGFydGlhbDtcblxuICAgIHRoaXMuY2hpbGRyZW5bZ3VpZF0gPSByZXN1bHQ7XG4gICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCByZXN1bHQudXNlRGVwdGhzO1xuXG4gICAgcmV0dXJuIGd1aWQ7XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbihub2RlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IFNhbml0eSBjb2RlICovXG4gICAgaWYgKCF0aGlzW25vZGUudHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgbGV0IHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXMudW5zaGlmdChwcm9ncmFtLmJsb2NrUGFyYW1zKTtcblxuICAgIGxldCBib2R5ID0gcHJvZ3JhbS5ib2R5LFxuICAgICAgICBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBib2R5TGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWNjZXB0KGJvZHlbaV0pO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5zaGlmdCgpO1xuXG4gICAgdGhpcy5pc1NpbXBsZSA9IGJvZHlMZW5ndGggPT09IDE7XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IHByb2dyYW0uYmxvY2tQYXJhbXMgPyBwcm9ncmFtLmJsb2NrUGFyYW1zLmxlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24oYmxvY2spIHtcbiAgICB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKGJsb2NrKTtcblxuICAgIGxldCBwcm9ncmFtID0gYmxvY2sucHJvZ3JhbSxcbiAgICAgICAgaW52ZXJzZSA9IGJsb2NrLmludmVyc2U7XG5cbiAgICBwcm9ncmFtID0gcHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKHByb2dyYW0pO1xuICAgIGludmVyc2UgPSBpbnZlcnNlICYmIHRoaXMuY29tcGlsZVByb2dyYW0oaW52ZXJzZSk7XG5cbiAgICBsZXQgdHlwZSA9IHRoaXMuY2xhc3NpZnlTZXhwcihibG9jayk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2hlbHBlcicpIHtcbiAgICAgIHRoaXMuaGVscGVyU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIHRoaXMuc2ltcGxlU2V4cHIoYmxvY2spO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYmxvY2tWYWx1ZScsIGJsb2NrLnBhdGgub3JpZ2luYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFtYmlndW91c1NleHByKGJsb2NrLCBwcm9ncmFtLCBpbnZlcnNlKTtcblxuICAgICAgLy8gbm93IHRoYXQgdGhlIHNpbXBsZSBtdXN0YWNoZSBpcyByZXNvbHZlZCwgd2UgbmVlZCB0b1xuICAgICAgLy8gZXZhbHVhdGUgaXQgYnkgZXhlY3V0aW5nIGBibG9ja0hlbHBlck1pc3NpbmdgXG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2FtYmlndW91c0Jsb2NrVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gIH0sXG5cbiAgRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24ocGFydGlhbCkge1xuICAgIHRoaXMudXNlUGFydGlhbCA9IHRydWU7XG5cbiAgICBsZXQgcHJvZ3JhbSA9IHBhcnRpYWwucHJvZ3JhbTtcbiAgICBpZiAocHJvZ3JhbSkge1xuICAgICAgcHJvZ3JhbSA9IHRoaXMuY29tcGlsZVByb2dyYW0ocGFydGlhbC5wcm9ncmFtKTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFydGlhbC5wYXJhbXM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goe3R5cGU6ICdQYXRoRXhwcmVzc2lvbicsIHBhcnRzOiBbXSwgZGVwdGg6IDB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFydGlhbE5hbWUgPSBwYXJ0aWFsLm5hbWUub3JpZ2luYWwsXG4gICAgICAgIGlzRHluYW1pYyA9IHBhcnRpYWwubmFtZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbic7XG4gICAgaWYgKGlzRHluYW1pYykge1xuICAgICAgdGhpcy5hY2NlcHQocGFydGlhbC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKHBhcnRpYWwsIHByb2dyYW0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICBsZXQgaW5kZW50ID0gcGFydGlhbC5pbmRlbnQgfHwgJyc7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmV2ZW50SW5kZW50ICYmIGluZGVudCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBpbmRlbnQpO1xuICAgICAgaW5kZW50ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGNvZGUoJ2ludm9rZVBhcnRpYWwnLCBpc0R5bmFtaWMsIHBhcnRpYWxOYW1lLCBpbmRlbnQpO1xuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yKGRlY29yYXRvcikge1xuICAgIHRoaXMuRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKTtcbiAgfSxcblxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICBpZiAoY29udGVudC52YWx1ZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBjb250ZW50LnZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgQ29tbWVudFN0YXRlbWVudDogZnVuY3Rpb24oKSB7fSxcblxuICBTdWJFeHByZXNzaW9uOiBmdW5jdGlvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IHNwZWNpZmllZCBrbm93bkhlbHBlcnNPbmx5LCBidXQgdXNlZCB0aGUgdW5rbm93biBoZWxwZXIgJyArIG5hbWUsIHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgICAgcGF0aC5mYWxzeSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUhlbHBlcicsIHBhcmFtcy5sZW5ndGgsIHBhdGgub3JpZ2luYWwsIEFTVC5oZWxwZXJzLnNpbXBsZUlkKHBhdGgpKTtcbiAgICB9XG4gIH0sXG5cbiAgUGF0aEV4cHJlc3Npb246IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICB0aGlzLmFkZERlcHRoKHBhdGguZGVwdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICBsZXQgbmFtZSA9IHBhdGgucGFydHNbMF0sXG4gICAgICAgIHNjb3BlZCA9IEFTVC5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nJywgc3RyaW5nLnZhbHVlKTtcbiAgfSxcblxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBudW1iZXIudmFsdWUpO1xuICB9LFxuXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbihib29sKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgYm9vbC52YWx1ZSk7XG4gIH0sXG5cbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uKGhhc2gpIHtcbiAgICBsZXQgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgbCA9IHBhaXJzLmxlbmd0aDtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoSGFzaCcpO1xuXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhaXJzW2ldLnZhbHVlKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2Fzc2lnblRvSGFzaCcsIHBhaXJzW2ldLmtleSk7XG4gICAgfVxuICAgIHRoaXMub3Bjb2RlKCdwb3BIYXNoJyk7XG4gIH0sXG5cbiAgLy8gSEVMUEVSU1xuICBvcGNvZGU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7IG9wY29kZTogbmFtZSwgYXJnczogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLCBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2MgfSk7XG4gIH0sXG5cbiAgYWRkRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfSxcblxuICBjbGFzc2lmeVNleHByOiBmdW5jdGlvbihzZXhwcikge1xuICAgIGxldCBpc1NpbXBsZSA9IEFTVC5oZWxwZXJzLnNpbXBsZUlkKHNleHByLnBhdGgpO1xuXG4gICAgbGV0IGlzQmxvY2tQYXJhbSA9IGlzU2ltcGxlICYmICEhdGhpcy5ibG9ja1BhcmFtSW5kZXgoc2V4cHIucGF0aC5wYXJ0c1swXSk7XG5cbiAgICAvLyBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0cyBpZCBpcyBzaW1wbGUgKGEgc2luZ2xlIHBhcnQsIG5vdCBgdGhpc2Agb3IgYC4uYClcbiAgICBsZXQgaXNIZWxwZXIgPSAhaXNCbG9ja1BhcmFtICYmIEFTVC5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgbGV0IGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgbGV0IG5hbWUgPSBzZXhwci5wYXRoLnBhcnRzWzBdLFxuICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGlmIChvcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLnB1c2hQYXJhbShwYXJhbXNbaV0pO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW06IGZ1bmN0aW9uKHZhbCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXC4/XFwuXFwvKSovZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwuZGVwdGgpIHtcbiAgICAgICAgdGhpcy5hZGREZXB0aCh2YWwuZGVwdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCB2YWwuZGVwdGggfHwgMCk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFN0cmluZ1BhcmFtJywgdmFsdWUsIHZhbC50eXBlKTtcblxuICAgICAgaWYgKHZhbC50eXBlID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgLy8gU3ViRXhwcmVzc2lvbnMgZ2V0IGV2YWx1YXRlZCBhbmQgcGFzc2VkIGluXG4gICAgICAgIC8vIGluIHN0cmluZyBwYXJhbXMgbW9kZS5cbiAgICAgICAgdGhpcy5hY2NlcHQodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgbGV0IGJsb2NrUGFyYW1JbmRleDtcbiAgICAgICAgaWYgKHZhbC5wYXJ0cyAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgIGJsb2NrUGFyYW1JbmRleCA9IHRoaXMuYmxvY2tQYXJhbUluZGV4KHZhbC5wYXJ0c1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrUGFyYW1JbmRleCkge1xuICAgICAgICAgIGxldCBibG9ja1BhcmFtQ2hpbGQgPSB2YWwucGFydHMuc2xpY2UoMSkuam9pbignLicpO1xuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCAnQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JbmRleCwgYmxvY2tQYXJhbUNoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbC5vcmlnaW5hbCB8fCB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9edGhpcyg/OlxcLnwkKS8sICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuXFwvLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC4kLywgJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCB2YWwudHlwZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgIH1cbiAgfSxcblxuICBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtczogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UsIG9taXRFbXB0eSkge1xuICAgIGxldCBwYXJhbXMgPSBzZXhwci5wYXJhbXM7XG4gICAgdGhpcy5wdXNoUGFyYW1zKHBhcmFtcyk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIGlmIChzZXhwci5oYXNoKSB7XG4gICAgICB0aGlzLmFjY2VwdChzZXhwci5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcsIG9taXRFbXB0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICBibG9ja1BhcmFtSW5kZXg6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBmb3IgKGxldCBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICBsZXQgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgaW5kZXhPZihibG9ja1BhcmFtcywgbmFtZSk7XG4gICAgICBpZiAoYmxvY2tQYXJhbXMgJiYgcGFyYW0gPj0gMCkge1xuICAgICAgICByZXR1cm4gW2RlcHRoLCBwYXJhbV07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8ICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmIGlucHV0LnR5cGUgIT09ICdQcm9ncmFtJykpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgbXVzdCBwYXNzIGEgc3RyaW5nIG9yIEhhbmRsZWJhcnMgQVNUIHRvIEhhbmRsZWJhcnMucHJlY29tcGlsZS4gWW91IHBhc3NlZCAnICsgaW5wdXQpO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghKCdkYXRhJyBpbiBvcHRpb25zKSkge1xuICAgIG9wdGlvbnMuZGF0YSA9IHRydWU7XG4gIH1cbiAgaWYgKG9wdGlvbnMuY29tcGF0KSB7XG4gICAgb3B0aW9ucy51c2VEZXB0aHMgPSB0cnVlO1xuICB9XG5cbiAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXcgZW52LkphdmFTY3JpcHRDb21waWxlcigpLmNvbXBpbGUoZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShpbnB1dCwgb3B0aW9ucyA9IHt9LCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5jb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBvcHRpb25zID0gZXh0ZW5kKHt9LCBvcHRpb25zKTtcbiAgaWYgKCEoJ2RhdGEnIGluIG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgfVxuICBpZiAob3B0aW9ucy5jb21wYXQpIHtcbiAgICBvcHRpb25zLnVzZURlcHRocyA9IHRydWU7XG4gIH1cblxuICBsZXQgY29tcGlsZWQ7XG5cbiAgZnVuY3Rpb24gY29tcGlsZUlucHV0KCkge1xuICAgIGxldCBhc3QgPSBlbnYucGFyc2UoaW5wdXQsIG9wdGlvbnMpLFxuICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyksXG4gICAgICAgIHRlbXBsYXRlU3BlYyA9IG5ldyBlbnYuSmF2YVNjcmlwdENvbXBpbGVyKCkuY29tcGlsZShlbnZpcm9ubWVudCwgb3B0aW9ucywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICByZXR1cm4gZW52LnRlbXBsYXRlKHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICAvLyBUZW1wbGF0ZSBpcyBvbmx5IGNvbXBpbGVkIG9uIGZpcnN0IHVzZSBhbmQgY2FjaGVkIGFmdGVyIHRoYXQgcG9pbnQuXG4gIGZ1bmN0aW9uIHJldChjb250ZXh0LCBleGVjT3B0aW9ucykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5jYWxsKHRoaXMsIGNvbnRleHQsIGV4ZWNPcHRpb25zKTtcbiAgfVxuICByZXQuX3NldHVwID0gZnVuY3Rpb24oc2V0dXBPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9zZXR1cChzZXR1cE9wdGlvbnMpO1xuICB9O1xuICByZXQuX2NoaWxkID0gZnVuY3Rpb24oaSwgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5fY2hpbGQoaSwgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGFyZ0VxdWFscyhhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNBcnJheShhKSAmJiBpc0FycmF5KGIpICYmIGEubGVuZ3RoID09PSBiLmxlbmd0aCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFhcmdFcXVhbHMoYVtpXSwgYltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKHNleHByKSB7XG4gIGlmICghc2V4cHIucGF0aC5wYXJ0cykge1xuICAgIGxldCBsaXRlcmFsID0gc2V4cHIucGF0aDtcbiAgICAvLyBDYXN0aW5nIHRvIHN0cmluZyBoZXJlIHRvIG1ha2UgZmFsc2UgYW5kIDAgbGl0ZXJhbCB2YWx1ZXMgcGxheSBuaWNlbHkgd2l0aCB0aGUgcmVzdFxuICAgIC8vIG9mIHRoZSBzeXN0ZW0uXG4gICAgc2V4cHIucGF0aCA9IHtcbiAgICAgIHR5cGU6ICdQYXRoRXhwcmVzc2lvbicsXG4gICAgICBkYXRhOiBmYWxzZSxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgcGFydHM6IFtsaXRlcmFsLm9yaWdpbmFsICsgJyddLFxuICAgICAgb3JpZ2luYWw6IGxpdGVyYWwub3JpZ2luYWwgKyAnJyxcbiAgICAgIGxvYzogbGl0ZXJhbC5sb2NcbiAgICB9O1xuICB9XG59XG4iXX0=
diff --git a/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/base.js b/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/base.js
index 03de5ffa4..31f1566ef 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/base.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/base.js
@@ -20,7 +20,7 @@ var _logger = require('./logger');
var _logger2 = _interopRequireDefault(_logger);
-var VERSION = '4.0.8';
+var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
@@ -101,4 +101,4 @@ var log = _logger2['default'].log;
exports.log = log;
exports.createFrame = _utils.createFrame;
exports.logger = _logger2['default'];
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4wLjgnO1xuZXhwb3J0IGNvbnN0IENPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAnXG59O1xuXG5jb25zdCBvYmplY3RUeXBlID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBIYW5kbGViYXJzRW52aXJvbm1lbnQoaGVscGVycywgcGFydGlhbHMsIGRlY29yYXRvcnMpIHtcbiAgdGhpcy5oZWxwZXJzID0gaGVscGVycyB8fCB7fTtcbiAgdGhpcy5wYXJ0aWFscyA9IHBhcnRpYWxzIHx8IHt9O1xuICB0aGlzLmRlY29yYXRvcnMgPSBkZWNvcmF0b3JzIHx8IHt9O1xuXG4gIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnModGhpcyk7XG4gIHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnModGhpcyk7XG59XG5cbkhhbmRsZWJhcnNFbnZpcm9ubWVudC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBIYW5kbGViYXJzRW52aXJvbm1lbnQsXG5cbiAgbG9nZ2VyOiBsb2dnZXIsXG4gIGxvZzogbG9nZ2VyLmxvZyxcblxuICByZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgaGVscGVycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5oZWxwZXJzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWxwZXJzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuaGVscGVyc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUsIHBhcnRpYWwpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgZXh0ZW5kKHRoaXMucGFydGlhbHMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIHBhcnRpYWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oYEF0dGVtcHRpbmcgdG8gcmVnaXN0ZXIgYSBwYXJ0aWFsIGNhbGxlZCBcIiR7bmFtZX1cIiBhcyB1bmRlZmluZWRgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpOyB9XG4gICAgICBleHRlbmQodGhpcy5kZWNvcmF0b3JzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWNvcmF0b3JzW25hbWVdID0gZm47XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMuZGVjb3JhdG9yc1tuYW1lXTtcbiAgfVxufTtcblxuZXhwb3J0IGxldCBsb2cgPSBsb2dnZXIubG9nO1xuXG5leHBvcnQge2NyZWF0ZUZyYW1lLCBsb2dnZXJ9O1xuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQTRDLFNBQVM7O3lCQUMvQixhQUFhOzs7O3VCQUNFLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNuQyxVQUFVOzs7O0FBRXRCLElBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsSUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxVQUFVO0NBQ2QsQ0FBQzs7O0FBRUYsSUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFNBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsTUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLE1BQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGtDQUF1QixJQUFJLENBQUMsQ0FBQztBQUM3Qix3Q0FBMEIsSUFBSSxDQUFDLENBQUM7Q0FDakM7O0FBRUQscUJBQXFCLENBQUMsU0FBUyxHQUFHO0FBQ2hDLGFBQVcsRUFBRSxxQkFBcUI7O0FBRWxDLFFBQU0scUJBQVE7QUFDZCxLQUFHLEVBQUUsb0JBQU8sR0FBRzs7QUFFZixnQkFBYyxFQUFFLHdCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDakMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQUUsY0FBTSwyQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO09BQUU7QUFDM0Usb0JBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekI7R0FDRjtBQUNELGtCQUFnQixFQUFFLDBCQUFTLElBQUksRUFBRTtBQUMvQixXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDM0I7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3ZDLFFBQUksZ0JBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxvQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCLE1BQU07QUFDTCxVQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtBQUNsQyxjQUFNLHlFQUEwRCxJQUFJLG9CQUFpQixDQUFDO09BQ3ZGO0FBQ0QsVUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7S0FDL0I7R0FDRjtBQUNELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDNUI7O0FBRUQsbUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFBRSxjQUFNLDJCQUFjLDRDQUE0QyxDQUFDLENBQUM7T0FBRTtBQUM5RSxvQkFBTyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQy9CLE1BQU07QUFDTCxVQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUM1QjtHQUNGO0FBQ0QscUJBQW1CLEVBQUUsNkJBQVMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUM5QjtDQUNGLENBQUM7O0FBRUssSUFBSSxHQUFHLEdBQUcsb0JBQU8sR0FBRyxDQUFDOzs7UUFFcEIsV0FBVztRQUFFLE1BQU0iLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlRnJhbWUsIGV4dGVuZCwgdG9TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdEhlbHBlcnN9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge3JlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnN9IGZyb20gJy4vZGVjb3JhdG9ycyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnNC4wLjEwJztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==
diff --git a/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js b/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
index 535dc2c87..8a9e5eed9 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js
@@ -86,7 +86,7 @@ Compiler.prototype = {
for (var _name in knownHelpers) {
/* istanbul ignore else */
if (_name in knownHelpers) {
- options.knownHelpers[_name] = knownHelpers[_name];
+ this.options.knownHelpers[_name] = knownHelpers[_name];
}
}
}
@@ -501,6 +501,7 @@ function compile(input, options, env) {
throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
}
+ options = _utils.extend({}, options);
if (!('data' in options)) {
options.data = true;
}
@@ -569,4 +570,4 @@ function transformLiteralToPath(sexpr) {
};
}
}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozt5QkFFc0IsY0FBYzs7OztxQkFDTCxVQUFVOzttQkFDekIsT0FBTzs7OztBQUV2QixJQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDOztBQUVoQixTQUFTLFFBQVEsR0FBRyxFQUFFOzs7Ozs7O0FBTzdCLFFBQVEsQ0FBQyxTQUFTLEdBQUc7QUFDbkIsVUFBUSxFQUFFLFFBQVE7O0FBRWxCLFFBQU0sRUFBRSxnQkFBUyxLQUFLLEVBQUU7QUFDdEIsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDOUIsUUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7QUFDaEMsYUFBTyxLQUFLLENBQUM7S0FDZDs7QUFFRCxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFVBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1VBQ3hCLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLFVBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3JGLGVBQU8sS0FBSyxDQUFDO09BQ2Q7S0FDRjs7OztBQUlELE9BQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQixTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFVBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxD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QUU7QUFDckQsU0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakMsVUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDMUIsZUFBTyxLQUFLLENBQUM7T0FDZDtLQUNGO0FBQ0QsV0FBTyxJQUFJLENBQUM7R0FDYjtDQUNGOztBQUVELFNBQVMsc0JBQXNCLENBQUMsS0FBSyxFQUFFO0FBQ3JDLE1BQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtBQUNyQixRQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDOzs7QUFHekIsU0FBSyxDQUFDLElBQUksR0FBRztBQUNYLFVBQUksRUFBRSxnQkFBZ0I7QUFDdEIsVUFBSSxFQUFFLEtBQUs7QUFDWCxXQUFLLEVBQUUsQ0FBQztBQUNSLFdBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQzlCLGNBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUU7QUFDL0IsU0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ2pCLENBQUM7R0FDSDtDQUNGIiwiZmlsZSI6ImNvbXBpbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbmV3LWNhcCAqL1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5pbXBvcnQge2lzQXJyYXksIGluZGV4T2Z9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBBU1QgZnJvbSAnLi9hc3QnO1xuXG5jb25zdCBzbGljZSA9IFtdLnNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gQ29tcGlsZXIoKSB7fVxuXG4vLyB0aGUgZm91bmRIZWxwZXIgcmVnaXN0ZXIgd2lsbCBkaXNhbWJpZ3VhdGUgaGVscGVyIGxvb2t1cCBmcm9tIGZpbmRpbmcgYVxuLy8gZnVuY3Rpb24gaW4gYSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgbXVzdGFjaGUgY29tcGF0aWJpbGl0eSwgd2hpY2hcbi8vIHJlcXVpcmVzIHRoYXQgY29udGV4dCBmdW5jdGlvbnMgaW4gYmxvY2tzIGFyZSBldmFsdWF0ZWQgYnkgYmxvY2tIZWxwZXJNaXNzaW5nLFxuLy8gYW5kIHRoZW4gcHJvY2VlZCBhcyBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlIHdhcyBwcm92aWRlZCB0byBibG9ja0hlbHBlck1pc3NpbmcuXG5cbkNvbXBpbGVyLnByb3RvdHlwZSA9IHtcbiAgY29tcGlsZXI6IENvbXBpbGVyLFxuXG4gIGVxdWFsczogZnVuY3Rpb24ob3RoZXIpIHtcbiAgICBsZXQgbGVuID0gdGhpcy5vcGNvZGVzLmxlbmd0aDtcbiAgICBpZiAob3RoZXIub3Bjb2Rlcy5sZW5ndGggIT09IGxlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxldCBvcGNvZGUgPSB0aGlzLm9wY29kZXNbaV0sXG4gICAgICAgICAgb3RoZXJPcGNvZGUgPSBvdGhlci5vcGNvZGVzW2ldO1xuICAgICAgaWYgKG9wY29kZS5vcGNvZGUgIT09IG90aGVyT3Bjb2RlLm9wY29kZSB8fCAhYXJnRXF1YWxzKG9wY29kZS5hcmdzLCBvdGhlck9wY29kZS5hcmdzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Uga25vdyB0aGF0IGxlbmd0aCBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoZSB0d28gYXJyYXlzIGJlY2F1c2UgdGhleSBhcmUgZGlyZWN0bHkgdGllZFxuICAgIC8vIHRvIHRoZSBvcGNvZGUgYmVoYXZpb3IgYWJvdmUuXG4gICAgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuW2ldLmVxdWFscyhvdGhlci5jaGlsZHJlbltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIGd1aWQ6IDAsXG5cbiAgY29tcGlsZTogZnVuY3Rpb24ocHJvZ3JhbSwgb3B0aW9ucykge1xuICAgIHRoaXMuc291cmNlTm9kZSA9IFtdO1xuICAgIHRoaXMub3Bjb2RlcyA9IFtdO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gb3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IG9wdGlvbnMudHJhY2tJZHM7XG5cbiAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gb3B0aW9ucy5ibG9ja1BhcmFtcyB8fCBbXTtcblxuICAgIC8vIFRoZXNlIGNoYW5nZXMgd2lsbCBwcm9wYWdhdGUgdG8gdGhlIG90aGVyIGNvbXBpbGVyIGNvbXBvbmVudHNcbiAgICBsZXQga25vd25IZWxwZXJzID0gb3B0aW9ucy5rbm93bkhlbHBlcnM7XG4gICAgb3B0aW9ucy5rbm93bkhlbHBlcnMgPSB7XG4gICAgICAnaGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnYmxvY2tIZWxwZXJNaXNzaW5nJzogdHJ1ZSxcbiAgICAgICdlYWNoJzogdHJ1ZSxcbiAgICAgICdpZic6IHRydWUsXG4gICAgICAndW5sZXNzJzogdHJ1ZSxcbiAgICAgICd3aXRoJzogdHJ1ZSxcbiAgICAgICdsb2cnOiB0cnVlLFxuICAgICAgJ2xvb2t1cCc6IHRydWVcbiAgICB9O1xuICAgIGlmIChrbm93bkhlbHBlcnMpIHtcbiAgICAgIGZvciAobGV0IG5hbWUgaW4ga25vd25IZWxwZXJzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAgIG9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdID0ga25vd25IZWxwZXJzW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHByb2dyYW0pO1xuICB9LFxuXG4gIGNvbXBpbGVQcm9ncmFtOiBmdW5jdGlvbihwcm9ncmFtKSB7XG4gICAgbGV0IGNoaWxkQ29tcGlsZXIgPSBuZXcgdGhpcy5jb21waWxlcigpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgICAgICAgcmVzdWx0ID0gY2hpbGRDb21waWxlci5jb21waWxlKHByb2dyYW0sIHRoaXMub3B0aW9ucyksXG4gICAgICAgIGd1aWQgPSB0aGlzLmd1aWQrKztcblxuICAgIHRoaXMudXNlUGFydGlhbCA9IHRoaXMudXNlUGFydGlhbCB8fCByZXN1bHQudXNlUGFydGlhbDtcblxuICAgIHRoaXMuY2hpbGRyZW5bZ3VpZF0gPSByZXN1bHQ7XG4gICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCByZXN1bHQudXNlRGVwdGhzO1xuXG4gICAgcmV0dXJuIGd1aWQ7XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbihub2RlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IFNhbml0eSBjb2RlICovXG4gICAgaWYgKCF0aGlzW25vZGUudHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgbGV0IHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXMudW5zaGlmdChwcm9ncmFtLmJsb2NrUGFyYW1zKTtcblxuICAgIGxldCBib2R5ID0gcHJvZ3JhbS5ib2R5LFxuICAgICAgICBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBib2R5TGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWNjZXB0KGJvZHlbaV0pO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5zaGlmdCgpO1xuXG4gICAgdGhpcy5pc1NpbXBsZSA9IGJvZHlMZW5ndGggPT09IDE7XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IHByb2dyYW0uYmxvY2tQYXJhbXMgPyBwcm9ncmFtLmJsb2NrUGFyYW1zLmxlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24oYmxvY2spIHtcbiAgICB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKGJsb2NrKTtcblxuICAgIGxldCBwcm9ncmFtID0gYmxvY2sucHJvZ3JhbSxcbiAgICAgICAgaW52ZXJzZSA9IGJsb2NrLmludmVyc2U7XG5cbiAgICBwcm9ncmFtID0gcHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKHByb2dyYW0pO1xuICAgIGludmVyc2UgPSBpbnZlcnNlICYmIHRoaXMuY29tcGlsZVByb2dyYW0oaW52ZXJzZSk7XG5cbiAgICBsZXQgdHlwZSA9IHRoaXMuY2xhc3NpZnlTZXhwcihibG9jayk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2hlbHBlcicpIHtcbiAgICAgIHRoaXMuaGVscGVyU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIHRoaXMuc2ltcGxlU2V4cHIoYmxvY2spO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYmxvY2tWYWx1ZScsIGJsb2NrLnBhdGgub3JpZ2luYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFtYmlndW91c1NleHByKGJsb2NrLCBwcm9ncmFtLCBpbnZlcnNlKTtcblxuICAgICAgLy8gbm93IHRoYXQgdGhlIHNpbXBsZSBtdXN0YWNoZSBpcyByZXNvbHZlZCwgd2UgbmVlZCB0b1xuICAgICAgLy8gZXZhbHVhdGUgaXQgYnkgZXhlY3V0aW5nIGBibG9ja0hlbHBlck1pc3NpbmdgXG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2FtYmlndW91c0Jsb2NrVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gIH0sXG5cbiAgRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24ocGFydGlhbCkge1xuICAgIHRoaXMudXNlUGFydGlhbCA9IHRydWU7XG5cbiAgICBsZXQgcHJvZ3JhbSA9IHBhcnRpYWwucHJvZ3JhbTtcbiAgICBpZiAocHJvZ3JhbSkge1xuICAgICAgcHJvZ3JhbSA9IHRoaXMuY29tcGlsZVByb2dyYW0ocGFydGlhbC5wcm9ncmFtKTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFydGlhbC5wYXJhbXM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goe3R5cGU6ICdQYXRoRXhwcmVzc2lvbicsIHBhcnRzOiBbXSwgZGVwdGg6IDB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFydGlhbE5hbWUgPSBwYXJ0aWFsLm5hbWUub3JpZ2luYWwsXG4gICAgICAgIGlzRHluYW1pYyA9IHBhcnRpYWwubmFtZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbic7XG4gICAgaWYgKGlzRHluYW1pYykge1xuICAgICAgdGhpcy5hY2NlcHQocGFydGlhbC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKHBhcnRpYWwsIHByb2dyYW0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICBsZXQgaW5kZW50ID0gcGFydGlhbC5pbmRlbnQgfHwgJyc7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmV2ZW50SW5kZW50ICYmIGluZGVudCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBpbmRlbnQpO1xuICAgICAgaW5kZW50ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGNvZGUoJ2ludm9rZVBhcnRpYWwnLCBpc0R5bmFtaWMsIHBhcnRpYWxOYW1lLCBpbmRlbnQpO1xuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yKGRlY29yYXRvcikge1xuICAgIHRoaXMuRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKTtcbiAgfSxcblxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICBpZiAoY29udGVudC52YWx1ZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBjb250ZW50LnZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgQ29tbWVudFN0YXRlbWVudDogZnVuY3Rpb24oKSB7fSxcblxuICBTdWJFeHByZXNzaW9uOiBmdW5jdGlvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IHNwZWNpZmllZCBrbm93bkhlbHBlcnNPbmx5LCBidXQgdXNlZCB0aGUgdW5rbm93biBoZWxwZXIgJyArIG5hbWUsIHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgICAgcGF0aC5mYWxzeSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUhlbHBlcicsIHBhcmFtcy5sZW5ndGgsIHBhdGgub3JpZ2luYWwsIEFTVC5oZWxwZXJzLnNpbXBsZUlkKHBhdGgpKTtcbiAgICB9XG4gIH0sXG5cbiAgUGF0aEV4cHJlc3Npb246IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICB0aGlzLmFkZERlcHRoKHBhdGguZGVwdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICBsZXQgbmFtZSA9IHBhdGgucGFydHNbMF0sXG4gICAgICAgIHNjb3BlZCA9IEFTVC5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nJywgc3RyaW5nLnZhbHVlKTtcbiAgfSxcblxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBudW1iZXIudmFsdWUpO1xuICB9LFxuXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbihib29sKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgYm9vbC52YWx1ZSk7XG4gIH0sXG5cbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uKGhhc2gpIHtcbiAgICBsZXQgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgbCA9IHBhaXJzLmxlbmd0aDtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoSGFzaCcpO1xuXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhaXJzW2ldLnZhbHVlKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2Fzc2lnblRvSGFzaCcsIHBhaXJzW2ldLmtleSk7XG4gICAgfVxuICAgIHRoaXMub3Bjb2RlKCdwb3BIYXNoJyk7XG4gIH0sXG5cbiAgLy8gSEVMUEVSU1xuICBvcGNvZGU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7IG9wY29kZTogbmFtZSwgYXJnczogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLCBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2MgfSk7XG4gIH0sXG5cbiAgYWRkRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfSxcblxuICBjbGFzc2lmeVNleHByOiBmdW5jdGlvbihzZXhwcikge1xuICAgIGxldCBpc1NpbXBsZSA9IEFTVC5oZWxwZXJzLnNpbXBsZUlkKHNleHByLnBhdGgpO1xuXG4gICAgbGV0IGlzQmxvY2tQYXJhbSA9IGlzU2ltcGxlICYmICEhdGhpcy5ibG9ja1BhcmFtSW5kZXgoc2V4cHIucGF0aC5wYXJ0c1swXSk7XG5cbiAgICAvLyBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0cyBpZCBpcyBzaW1wbGUgKGEgc2luZ2xlIHBhcnQsIG5vdCBgdGhpc2Agb3IgYC4uYClcbiAgICBsZXQgaXNIZWxwZXIgPSAhaXNCbG9ja1BhcmFtICYmIEFTVC5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgbGV0IGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgbGV0IG5hbWUgPSBzZXhwci5wYXRoLnBhcnRzWzBdLFxuICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGlmIChvcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLnB1c2hQYXJhbShwYXJhbXNbaV0pO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW06IGZ1bmN0aW9uKHZhbCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXC4/XFwuXFwvKSovZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwuZGVwdGgpIHtcbiAgICAgICAgdGhpcy5hZGREZXB0aCh2YWwuZGVwdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCB2YWwuZGVwdGggfHwgMCk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFN0cmluZ1BhcmFtJywgdmFsdWUsIHZhbC50eXBlKTtcblxuICAgICAgaWYgKHZhbC50eXBlID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgLy8gU3ViRXhwcmVzc2lvbnMgZ2V0IGV2YWx1YXRlZCBhbmQgcGFzc2VkIGluXG4gICAgICAgIC8vIGluIHN0cmluZyBwYXJhbXMgbW9kZS5cbiAgICAgICAgdGhpcy5hY2NlcHQodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgbGV0IGJsb2NrUGFyYW1JbmRleDtcbiAgICAgICAgaWYgKHZhbC5wYXJ0cyAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgIGJsb2NrUGFyYW1JbmRleCA9IHRoaXMuYmxvY2tQYXJhbUluZGV4KHZhbC5wYXJ0c1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrUGFyYW1JbmRleCkge1xuICAgICAgICAgIGxldCBibG9ja1BhcmFtQ2hpbGQgPSB2YWwucGFydHMuc2xpY2UoMSkuam9pbignLicpO1xuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCAnQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JbmRleCwgYmxvY2tQYXJhbUNoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbC5vcmlnaW5hbCB8fCB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9edGhpcyg/OlxcLnwkKS8sICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuXFwvLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC4kLywgJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCB2YWwudHlwZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgIH1cbiAgfSxcblxuICBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtczogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UsIG9taXRFbXB0eSkge1xuICAgIGxldCBwYXJhbXMgPSBzZXhwci5wYXJhbXM7XG4gICAgdGhpcy5wdXNoUGFyYW1zKHBhcmFtcyk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIGlmIChzZXhwci5oYXNoKSB7XG4gICAgICB0aGlzLmFjY2VwdChzZXhwci5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcsIG9taXRFbXB0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICBibG9ja1BhcmFtSW5kZXg6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBmb3IgKGxldCBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICBsZXQgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgaW5kZXhPZihibG9ja1BhcmFtcywgbmFtZSk7XG4gICAgICBpZiAoYmxvY2tQYXJhbXMgJiYgcGFyYW0gPj0gMCkge1xuICAgICAgICByZXR1cm4gW2RlcHRoLCBwYXJhbV07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8ICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmIGlucHV0LnR5cGUgIT09ICdQcm9ncmFtJykpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgbXVzdCBwYXNzIGEgc3RyaW5nIG9yIEhhbmRsZWJhcnMgQVNUIHRvIEhhbmRsZWJhcnMucHJlY29tcGlsZS4gWW91IHBhc3NlZCAnICsgaW5wdXQpO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghKCdkYXRhJyBpbiBvcHRpb25zKSkge1xuICAgIG9wdGlvbnMuZGF0YSA9IHRydWU7XG4gIH1cbiAgaWYgKG9wdGlvbnMuY29tcGF0KSB7XG4gICAgb3B0aW9ucy51c2VEZXB0aHMgPSB0cnVlO1xuICB9XG5cbiAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXcgZW52LkphdmFTY3JpcHRDb21waWxlcigpLmNvbXBpbGUoZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShpbnB1dCwgb3B0aW9ucyA9IHt9LCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5jb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBpZiAoISgnZGF0YScgaW4gb3B0aW9ucykpIHtcbiAgICBvcHRpb25zLmRhdGEgPSB0cnVlO1xuICB9XG4gIGlmIChvcHRpb25zLmNvbXBhdCkge1xuICAgIG9wdGlvbnMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfVxuXG4gIGxldCBjb21waWxlZDtcblxuICBmdW5jdGlvbiBjb21waWxlSW5wdXQoKSB7XG4gICAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKSxcbiAgICAgICAgdGVtcGxhdGVTcGVjID0gbmV3IGVudi5KYXZhU2NyaXB0Q29tcGlsZXIoKS5jb21waWxlKGVudmlyb25tZW50LCBvcHRpb25zLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIHJldHVybiBlbnYudGVtcGxhdGUodGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGlzIG9ubHkgY29tcGlsZWQgb24gZmlyc3QgdXNlIGFuZCBjYWNoZWQgYWZ0ZXIgdGhhdCBwb2ludC5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIGV4ZWNPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLmNhbGwodGhpcywgY29udGV4dCwgZXhlY09wdGlvbnMpO1xuICB9XG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihzZXR1cE9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbXBpbGVkKSB7XG4gICAgICBjb21waWxlZCA9IGNvbXBpbGVJbnB1dCgpO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGlsZWQuX3NldHVwKHNldHVwT3B0aW9ucyk7XG4gIH07XG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9jaGlsZChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gYXJnRXF1YWxzKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KGEpICYmIGlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWFyZ0VxdWFscyhhW2ldLCBiW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpIHtcbiAgaWYgKCFzZXhwci5wYXRoLnBhcnRzKSB7XG4gICAgbGV0IGxpdGVyYWwgPSBzZXhwci5wYXRoO1xuICAgIC8vIENhc3RpbmcgdG8gc3RyaW5nIGhlcmUgdG8gbWFrZSBmYWxzZSBhbmQgMCBsaXRlcmFsIHZhbHVlcyBwbGF5IG5pY2VseSB3aXRoIHRoZSByZXN0XG4gICAgLy8gb2YgdGhlIHN5c3RlbS5cbiAgICBzZXhwci5wYXRoID0ge1xuICAgICAgdHlwZTogJ1BhdGhFeHByZXNzaW9uJyxcbiAgICAgIGRhdGE6IGZhbHNlLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBwYXJ0czogW2xpdGVyYWwub3JpZ2luYWwgKyAnJ10sXG4gICAgICBvcmlnaW5hbDogbGl0ZXJhbC5vcmlnaW5hbCArICcnLFxuICAgICAgbG9jOiBsaXRlcmFsLmxvY1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozt5QkFFc0IsY0FBYzs7OztxQkFDRyxVQUFVOzttQkFDakMsT0FBTzs7OztBQUV2QixJQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDOztBQUVoQixTQUFTLFFBQVEsR0FBRyxFQUFFOzs7Ozs7O0FBTzdCLFFBQVEsQ0FBQyxTQUFTLEdBQUc7QUFDbkIsVUFBUSxFQUFFLFFBQVE7O0FBRWxCLFFBQU0sRUFBRSxnQkFBUyxLQUFLLEVBQUU7QUFDdEIsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDOUIsUUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7QUFDaEMsYUFBTyxLQUFLLENBQUM7S0FDZDs7QUFFRCxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFVBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1VBQ3hCLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ25DLFVBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO0FBQ3JGLGVBQU8sS0FBSyxDQUFDO09BQ2Q7S0FDRjs7OztBQUlELE9BQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQixTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFVBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDL0MsZUFBTyxLQUFLLENBQUM7T0FDZDtLQUNGOztBQUVELFdBQU8sSUFBSSxDQUFDO0dBQ2I7O0FBRUQsTUFBSSxFQUFFLENBQUM7O0FBRVAsU0FBTyxFQUFFLGlCQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDbEMsUUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDckIsUUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDbEIsUUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDbkIsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDdkIsUUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3pDLFFBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQzs7QUFFakMsV0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQzs7O0FBR2hELFFBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDeEMsV0FBTyxDQUFDLFlBQVksR0FBRztBQUNyQixxQkFBZSxFQUFFLElBQUk7QUFDckIsMEJBQW9CLEVBQUUsSUFBSTtBQUMxQixZQUFNLEVBQUUsSUFBSTtBQUNaLFVBQUksRUFBRSxJQUFJO0FBQ1YsY0FBUSxFQUFFLElBQUk7QUFDZCxZQUFNLEVBQUUsSUFBSTtBQUNaLFdBQUssRUFBRSxJQUFJO0FBQ1gsY0FBUSxFQUFFLElBQUk7S0FDZixDQUFDO0FBQ0YsUUFBSSxZQUFZLEVBQUU7QUFDaEIsV0FBSyxJQUFJLEtBQUksSUFBSSxZQUFZLEVBQUU7O0FBRTdCLFlBQUksS0FBSSxJQUFJLFlBQVksRUFBRTtBQUN4QixjQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSSxDQUFDLENBQUM7U0FDdEQ7T0FDRjtLQUNGOztBQUVELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztHQUM3Qjs7QUFFRCxnQkFBYyxFQUFFLHdCQUFTLE9BQU8sRUFBRTtBQUNoQyxRQUFJLGFBQWEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7O0FBQ25DLFVBQU0sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3JELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7O0FBRXZCLFFBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDOztBQUV2RCxRQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUM3QixRQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQzs7QUFFcEQsV0FBTyxJQUFJLENBQUM7R0FDYjs7QUFFRCxRQUFNLEVBQUUsZ0JBQVMsSUFBSSxFQUFFOztBQUVyQixRQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNwQixZQUFNLDJCQUFjLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDekQ7O0FBRUQsUUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsUUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoQyxRQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ3hCLFdBQU8sR0FBRyxDQUFDO0dBQ1o7O0FBRUQsU0FBTyxFQUFFLGlCQUFTLE9BQU8sRUFBRTtBQUN6QixRQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztBQUV0RCxRQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSTtRQUNuQixVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUM3QixTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ25DLFVBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEI7O0FBRUQsUUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7O0FBRWpDLFFBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxLQUFLLENBQUMsQ0FBQztBQUNqQyxRQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDOztBQUV4RSxXQUFPLElBQUksQ0FBQztHQUNiOztBQUVELGdCQUFjLEVBQUUsd0JBQVMsS0FBSyxFQUFFO0FBQzlCLDBCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUU5QixRQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTztRQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQzs7QUFFNUIsV0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELFdBQU8sR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7QUFFbEQsUUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7QUFFckMsUUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO0FBQ3JCLFVBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMzQyxNQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtBQUM1QixVQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7O0FBSXhCLFVBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLFVBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLFVBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDekIsVUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNoRCxNQUFNO0FBQ0wsVUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDOzs7O0FBSTdDLFVBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLFVBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLFVBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDekIsVUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3BDOztBQUVELFFBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7R0FDdkI7O0FBRUQsZ0JBQWMsRUFBQSx3QkFBQyxTQUFTLEVBQUU7QUFDeEIsUUFBSSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxRSxRQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEUsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7O0FBRTFCLFFBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0FBQzFCLFFBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7R0FDaEU7O0FBRUQsa0JBQWdCLEVBQUUsMEJBQVMsT0FBTyxFQUFFO0FBQ2xDLFFBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDOztBQUV2QixRQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzlCLFFBQUksT0FBTyxFQUFFO0FBQ1gsYUFBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2hEOztBQUVELFFBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDNUIsUUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUNyQixZQUFNLDJCQUFjLDJDQUEyQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDM0YsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtBQUN6QixVQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7QUFDdkMsWUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7T0FDekMsTUFBTTtBQUNMLGNBQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztPQUM1RDtLQUNGOztBQUVELFFBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNuQyxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDO0FBQ3RELFFBQUksU0FBUyxFQUFFO0FBQ2IsVUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDM0I7O0FBRUQsUUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDOztBQUVoRSxRQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztBQUNsQyxRQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLE1BQU0sRUFBRTtBQUN4QyxVQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxZQUFNLEdBQUcsRUFBRSxDQUFDO0tBQ2I7O0FBRUQsUUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM3RCxRQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0dBQ3ZCO0FBQ0QsdUJBQXFCLEVBQUUsK0JBQVMsWUFBWSxFQUFFO0FBQzVDLFFBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUNyQzs7QUFFRCxtQkFBaUIsRUFBRSwyQkFBUyxRQUFRLEVBQUU7QUFDcEMsUUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7QUFFN0IsUUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7QUFDOUMsVUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUM5QixNQUFNO0FBQ0wsVUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2QjtHQUNGO0FBQ0QsV0FBUyxFQUFBLG1CQUFDLFNBQVMsRUFBRTtBQUNuQixRQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0dBQ2hDOztBQUdELGtCQUFnQixFQUFFLDBCQUFTLE9BQU8sRUFBRTtBQUNsQyxRQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDakIsVUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0dBQ0Y7O0FBRUQsa0JBQWdCLEVBQUUsNEJBQVcsRUFBRTs7QUFFL0IsZUFBYSxFQUFFLHVCQUFTLEtBQUssRUFBRTtBQUM3QiwwQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixRQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVyQyxRQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7QUFDckIsVUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6QixNQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtBQUM1QixVQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3pCLE1BQU07QUFDTCxVQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVCO0dBQ0Y7QUFDRCxnQkFBYyxFQUFFLHdCQUFTLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ2hELFFBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixPQUFPLEdBQUcsT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDOztBQUVqRCxRQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXRDLFFBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3BDLFFBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDOztBQUVwQyxRQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUNuQixRQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVsQixRQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztHQUMvQzs7QUFFRCxhQUFXLEVBQUUscUJBQVMsS0FBSyxFQUFFO0FBQzNCLFFBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsUUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbkIsUUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQixRQUFJLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7R0FDdEM7O0FBRUQsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQzdDLFFBQUksTUFBTSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUM5RCxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRXpCLFFBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7QUFDbkMsVUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3ZELE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO0FBQ3hDLFlBQU0sMkJBQWMsOERBQThELEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ25HLE1BQU07QUFDTCxVQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztBQUNuQixVQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFbEIsVUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsQixVQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0dBQ0Y7O0FBRUQsZ0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUU7QUFDN0IsUUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsUUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUV0QyxRQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLEdBQUcsaUJBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUV4RSxRQUFJLFlBQVksRUFBRTtBQUNoQixVQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDM0QsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFOztBQUVoQixVQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQzVCLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO0FBQ3BCLFVBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6QixVQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2hFLE1BQU07QUFDTCxVQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzdFO0dBQ0Y7O0FBRUQsZUFBYSxFQUFFLHVCQUFTLE1BQU0sRUFBRTtBQUM5QixRQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDekM7O0FBRUQsZUFBYSxFQUFFLHVCQUFTLE1BQU0sRUFBRTtBQUM5QixRQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7R0FDMUM7O0FBRUQsZ0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUU7QUFDN0IsUUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQ3hDOztBQUVELGtCQUFnQixFQUFFLDRCQUFXO0FBQzNCLFFBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0dBQ3pDOztBQUVELGFBQVcsRUFBRSx1QkFBVztBQUN0QixRQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztHQUNwQzs7QUFFRCxNQUFJLEVBQUUsY0FBUyxJQUFJLEVBQUU7QUFDbkIsUUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUs7UUFDbEIsQ0FBQyxHQUFHLENBQUM7UUFDTCxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzs7QUFFckIsUUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzs7QUFFeEIsV0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2pCLFVBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0FBQ0QsV0FBTyxDQUFDLEVBQUUsRUFBRTtBQUNWLFVBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQztBQUNELFFBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7R0FDeEI7OztBQUdELFFBQU0sRUFBRSxnQkFBUyxJQUFJLEVBQUU7QUFDckIsUUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0dBQ2xHOztBQUVELFVBQVEsRUFBRSxrQkFBUyxLQUFLLEVBQUU7QUFDeEIsUUFBSSxDQUFDLEtBQUssRUFBRTtBQUNWLGFBQU87S0FDUjs7QUFFRCxRQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztHQUN2Qjs7QUFFRCxlQUFhLEVBQUUsdUJBQVMsS0FBSyxFQUFFO0FBQzdCLFFBQUksUUFBUSxHQUFHLGlCQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUVoRCxRQUFJLFlBQVksR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7OztBQUkzRSxRQUFJLFFBQVEsR0FBRyxDQUFDLFlBQVksSUFBSSxpQkFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Ozs7O0FBS3BFLFFBQUksVUFBVSxHQUFHLENBQUMsWUFBWSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUEsQUFBQyxDQUFDOzs7O0FBSXpELFFBQUksVUFBVSxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQzNCLFVBQUksTUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztVQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzs7QUFFM0IsVUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQUksQ0FBQyxFQUFFO0FBQzlCLGdCQUFRLEdBQUcsSUFBSSxDQUFDO09BQ2pCLE1BQU0sSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7QUFDbkMsa0JBQVUsR0FBRyxLQUFLLENBQUM7T0FDcEI7S0FDRjs7QUFFRCxRQUFJLFFBQVEsRUFBRTtBQUNaLGFBQU8sUUFBUSxDQUFDO0tBQ2pCLE1BQU0sSUFBSSxVQUFVLEVBQUU7QUFDckIsYUFBTyxXQUFXLENBQUM7S0FDcEIsTUFBTTtBQUNMLGFBQU8sUUFBUSxDQUFDO0tBQ2pCO0dBQ0Y7O0FBRUQsWUFBVSxFQUFFLG9CQUFTLE1BQU0sRUFBRTtBQUMzQixTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzdDLFVBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDM0I7R0FDRjs7QUFFRCxXQUFTLEVBQUUsbUJBQVMsR0FBRyxFQUFFO0FBQ3ZCLFFBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7O0FBRS9ELFFBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtBQUNyQixVQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7QUFDakIsYUFBSyxHQUFHLEtBQUssQ0FDUixPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUMzQixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO09BQzFCOztBQUVELFVBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtBQUNiLFlBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO09BQzFCO0FBQ0QsVUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMxQyxVQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRWhELFVBQUksR0FBRyxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUU7OztBQUdoQyxZQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO09BQ2xCO0tBQ0YsTUFBTTtBQUNMLFVBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUNqQixZQUFJLGVBQWUsWUFBQSxDQUFDO0FBQ3BCLFlBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLGlCQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO0FBQ3hELHlCQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7QUFDRCxZQUFJLGVBQWUsRUFBRTtBQUNuQixjQUFJLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkQsY0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztTQUN2RSxNQUFNO0FBQ0wsZUFBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0FBQzlCLGNBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtBQUNqQixpQkFBSyxHQUFHLEtBQUssQ0FDUixPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUM1QixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUNwQixPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1dBQzFCOztBQUVELGNBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDeEM7T0FDRjtBQUNELFVBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7R0FDRjs7QUFFRCx5QkFBdUIsRUFBRSxpQ0FBUyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUU7QUFDcEUsUUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUMxQixRQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztBQUV4QixRQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNwQyxRQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7QUFFcEMsUUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO0FBQ2QsVUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekIsTUFBTTtBQUNMLFVBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ3JDOztBQUVELFdBQU8sTUFBTSxDQUFDO0dBQ2Y7O0FBRUQsaUJBQWUsRUFBRSx5QkFBUyxJQUFJLEVBQUU7QUFDOUIsU0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO0FBQy9FLFVBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztVQUM3QyxLQUFLLEdBQUcsV0FBVyxJQUFJLGVBQVEsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RELFVBQUksV0FBVyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7QUFDN0IsZUFBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztPQUN2QjtLQUNGO0dBQ0Y7Q0FDRixDQUFDOztBQUVLLFNBQVMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO0FBQzlDLE1BQUksS0FBSyxJQUFJLElBQUksSUFBSyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEFBQUMsRUFBRTtBQUM1RSxVQUFNLDJCQUFjLGdGQUFnRixHQUFHLEtBQUssQ0FBQyxDQUFDO0dBQy9HOztBQUVELFNBQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQ3hCLE1BQUksRUFBRSxNQUFNLElBQUksT0FBTyxDQUFBLEFBQUMsRUFBRTtBQUN4QixXQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztHQUNyQjtBQUNELE1BQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixXQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztHQUMxQjs7QUFFRCxNQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7TUFDL0IsV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsU0FBTyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7Q0FDbkU7O0FBRU0sU0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBTyxHQUFHLEVBQUU7TUFBbkIsT0FBTyxnQkFBUCxPQUFPLEdBQUcsRUFBRTs7QUFDekMsTUFBSSxLQUFLLElBQUksSUFBSSxJQUFLLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQUFBQyxFQUFFO0FBQzVFLFVBQU0sMkJBQWMsNkVBQTZFLEdBQUcsS0FBSyxDQUFDLENBQUM7R0FDNUc7O0FBRUQsU0FBTyxHQUFHLGNBQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlCLE1BQUksRUFBRSxNQUFNLElBQUksT0FBTyxDQUFBLEFBQUMsRUFBRTtBQUN4QixXQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztHQUNyQjtBQUNELE1BQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtBQUNsQixXQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztHQUMxQjs7QUFFRCxNQUFJLFFBQVEsWUFBQSxDQUFDOztBQUViLFdBQVMsWUFBWSxHQUFHO0FBQ3RCLFFBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztRQUMvQixXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUM7UUFDdEQsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9GLFdBQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUNuQzs7O0FBR0QsV0FBUyxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRTtBQUNqQyxRQUFJLENBQUMsUUFBUSxFQUFFO0FBQ2IsY0FBUSxHQUFHLFlBQVksRUFBRSxDQUFDO0tBQzNCO0FBQ0QsV0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7R0FDbEQ7QUFDRCxLQUFHLENBQUMsTUFBTSxHQUFHLFVBQVMsWUFBWSxFQUFFO0FBQ2xDLFFBQUksQ0FBQyxRQUFRLEVBQUU7QUFDYixjQUFRLEdBQUcsWUFBWSxFQUFFLENBQUM7S0FDM0I7QUFDRCxXQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7R0FDdEMsQ0FBQztBQUNGLEtBQUcsQ0FBQyxNQUFNLEdBQUcsVUFBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7QUFDbEQsUUFBSSxDQUFDLFFBQVEsRUFBRTtBQUNiLGNBQVEsR0FBRyxZQUFZLEVBQUUsQ0FBQztLQUMzQjtBQUNELFdBQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztHQUN0RCxDQUFDO0FBQ0YsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFRCxTQUFTLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ3ZCLE1BQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUNYLFdBQU8sSUFBSSxDQUFDO0dBQ2I7O0FBRUQsTUFBSSxlQUFRLENBQUMsQ0FBQyxJQUFJLGVBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQ3JELFNBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2pDLFVBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzFCLGVBQU8sS0FBSyxDQUFDO09BQ2Q7S0FDRjtBQUNELFdBQU8sSUFBSSxDQUFDO0dBQ2I7Q0FDRjs7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQUssRUFBRTtBQUNyQyxNQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDckIsUUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7O0FBR3pCLFNBQUssQ0FBQyxJQUFJLEdBQUc7QUFDWCxVQUFJLEVBQUUsZ0JBQWdCO0FBQ3RCLFVBQUksRUFBRSxLQUFLO0FBQ1gsV0FBSyxFQUFFLENBQUM7QUFDUixXQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUM5QixjQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFO0FBQy9CLFNBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztLQUNqQixDQUFDO0dBQ0g7Q0FDRiIsImZpbGUiOiJjb21waWxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5ldy1jYXAgKi9cblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuaW1wb3J0IHtpc0FycmF5LCBpbmRleE9mLCBleHRlbmR9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBBU1QgZnJvbSAnLi9hc3QnO1xuXG5jb25zdCBzbGljZSA9IFtdLnNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gQ29tcGlsZXIoKSB7fVxuXG4vLyB0aGUgZm91bmRIZWxwZXIgcmVnaXN0ZXIgd2lsbCBkaXNhbWJpZ3VhdGUgaGVscGVyIGxvb2t1cCBmcm9tIGZpbmRpbmcgYVxuLy8gZnVuY3Rpb24gaW4gYSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgbXVzdGFjaGUgY29tcGF0aWJpbGl0eSwgd2hpY2hcbi8vIHJlcXVpcmVzIHRoYXQgY29udGV4dCBmdW5jdGlvbnMgaW4gYmxvY2tzIGFyZSBldmFsdWF0ZWQgYnkgYmxvY2tIZWxwZXJNaXNzaW5nLFxuLy8gYW5kIHRoZW4gcHJvY2VlZCBhcyBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlIHdhcyBwcm92aWRlZCB0byBibG9ja0hlbHBlck1pc3NpbmcuXG5cbkNvbXBpbGVyLnByb3RvdHlwZSA9IHtcbiAgY29tcGlsZXI6IENvbXBpbGVyLFxuXG4gIGVxdWFsczogZnVuY3Rpb24ob3RoZXIpIHtcbiAgICBsZXQgbGVuID0gdGhpcy5vcGNvZGVzLmxlbmd0aDtcbiAgICBpZiAob3RoZXIub3Bjb2Rlcy5sZW5ndGggIT09IGxlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxldCBvcGNvZGUgPSB0aGlzLm9wY29kZXNbaV0sXG4gICAgICAgICAgb3RoZXJPcGNvZGUgPSBvdGhlci5vcGNvZGVzW2ldO1xuICAgICAgaWYgKG9wY29kZS5vcGNvZGUgIT09IG90aGVyT3Bjb2RlLm9wY29kZSB8fCAhYXJnRXF1YWxzKG9wY29kZS5hcmdzLCBvdGhlck9wY29kZS5hcmdzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Uga25vdyB0aGF0IGxlbmd0aCBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoZSB0d28gYXJyYXlzIGJlY2F1c2UgdGhleSBhcmUgZGlyZWN0bHkgdGllZFxuICAgIC8vIHRvIHRoZSBvcGNvZGUgYmVoYXZpb3IgYWJvdmUuXG4gICAgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuW2ldLmVxdWFscyhvdGhlci5jaGlsZHJlbltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIGd1aWQ6IDAsXG5cbiAgY29tcGlsZTogZnVuY3Rpb24ocHJvZ3JhbSwgb3B0aW9ucykge1xuICAgIHRoaXMuc291cmNlTm9kZSA9IFtdO1xuICAgIHRoaXMub3Bjb2RlcyA9IFtdO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gb3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IG9wdGlvbnMudHJhY2tJZHM7XG5cbiAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gb3B0aW9ucy5ibG9ja1BhcmFtcyB8fCBbXTtcblxuICAgIC8vIFRoZXNlIGNoYW5nZXMgd2lsbCBwcm9wYWdhdGUgdG8gdGhlIG90aGVyIGNvbXBpbGVyIGNvbXBvbmVudHNcbiAgICBsZXQga25vd25IZWxwZXJzID0gb3B0aW9ucy5rbm93bkhlbHBlcnM7XG4gICAgb3B0aW9ucy5rbm93bkhlbHBlcnMgPSB7XG4gICAgICAnaGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnYmxvY2tIZWxwZXJNaXNzaW5nJzogdHJ1ZSxcbiAgICAgICdlYWNoJzogdHJ1ZSxcbiAgICAgICdpZic6IHRydWUsXG4gICAgICAndW5sZXNzJzogdHJ1ZSxcbiAgICAgICd3aXRoJzogdHJ1ZSxcbiAgICAgICdsb2cnOiB0cnVlLFxuICAgICAgJ2xvb2t1cCc6IHRydWVcbiAgICB9O1xuICAgIGlmIChrbm93bkhlbHBlcnMpIHtcbiAgICAgIGZvciAobGV0IG5hbWUgaW4ga25vd25IZWxwZXJzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5rbm93bkhlbHBlcnNbbmFtZV0gPSBrbm93bkhlbHBlcnNbbmFtZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY2NlcHQocHJvZ3JhbSk7XG4gIH0sXG5cbiAgY29tcGlsZVByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICBsZXQgY2hpbGRDb21waWxlciA9IG5ldyB0aGlzLmNvbXBpbGVyKCksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbmV3LWNhcFxuICAgICAgICByZXN1bHQgPSBjaGlsZENvbXBpbGVyLmNvbXBpbGUocHJvZ3JhbSwgdGhpcy5vcHRpb25zKSxcbiAgICAgICAgZ3VpZCA9IHRoaXMuZ3VpZCsrO1xuXG4gICAgdGhpcy51c2VQYXJ0aWFsID0gdGhpcy51c2VQYXJ0aWFsIHx8IHJlc3VsdC51c2VQYXJ0aWFsO1xuXG4gICAgdGhpcy5jaGlsZHJlbltndWlkXSA9IHJlc3VsdDtcbiAgICB0aGlzLnVzZURlcHRocyA9IHRoaXMudXNlRGVwdGhzIHx8IHJlc3VsdC51c2VEZXB0aHM7XG5cbiAgICByZXR1cm4gZ3VpZDtcbiAgfSxcblxuICBhY2NlcHQ6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogU2FuaXR5IGNvZGUgKi9cbiAgICBpZiAoIXRoaXNbbm9kZS50eXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVW5rbm93biB0eXBlOiAnICsgbm9kZS50eXBlLCBub2RlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNvdXJjZU5vZGUudW5zaGlmdChub2RlKTtcbiAgICBsZXQgcmV0ID0gdGhpc1tub2RlLnR5cGVdKG5vZGUpO1xuICAgIHRoaXMuc291cmNlTm9kZS5zaGlmdCgpO1xuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgUHJvZ3JhbTogZnVuY3Rpb24ocHJvZ3JhbSkge1xuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy51bnNoaWZ0KHByb2dyYW0uYmxvY2tQYXJhbXMpO1xuXG4gICAgbGV0IGJvZHkgPSBwcm9ncmFtLmJvZHksXG4gICAgICAgIGJvZHlMZW5ndGggPSBib2R5Lmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJvZHlMZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5hY2NlcHQoYm9keVtpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5vcHRpb25zLmJsb2NrUGFyYW1zLnNoaWZ0KCk7XG5cbiAgICB0aGlzLmlzU2ltcGxlID0gYm9keUxlbmd0aCA9PT0gMTtcbiAgICB0aGlzLmJsb2NrUGFyYW1zID0gcHJvZ3JhbS5ibG9ja1BhcmFtcyA/IHByb2dyYW0uYmxvY2tQYXJhbXMubGVuZ3RoIDogMDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihibG9jaykge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoYmxvY2spO1xuXG4gICAgbGV0IHByb2dyYW0gPSBibG9jay5wcm9ncmFtLFxuICAgICAgICBpbnZlcnNlID0gYmxvY2suaW52ZXJzZTtcblxuICAgIHByb2dyYW0gPSBwcm9ncmFtICYmIHRoaXMuY29tcGlsZVByb2dyYW0ocHJvZ3JhbSk7XG4gICAgaW52ZXJzZSA9IGludmVyc2UgJiYgdGhpcy5jb21waWxlUHJvZ3JhbShpbnZlcnNlKTtcblxuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKGJsb2NrKTtcblxuICAgIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihibG9jaywgcHJvZ3JhbSwgaW52ZXJzZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihibG9jayk7XG5cbiAgICAgIC8vIG5vdyB0aGF0IHRoZSBzaW1wbGUgbXVzdGFjaGUgaXMgcmVzb2x2ZWQsIHdlIG5lZWQgdG9cbiAgICAgIC8vIGV2YWx1YXRlIGl0IGJ5IGV4ZWN1dGluZyBgYmxvY2tIZWxwZXJNaXNzaW5nYFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdlbXB0eUhhc2gnKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdibG9ja1ZhbHVlJywgYmxvY2sucGF0aC5vcmlnaW5hbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYW1iaWd1b3VzQmxvY2tWYWx1ZScpO1xuICAgIH1cblxuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcblxuICBEZWNvcmF0b3JCbG9jayhkZWNvcmF0b3IpIHtcbiAgICBsZXQgcHJvZ3JhbSA9IGRlY29yYXRvci5wcm9ncmFtICYmIHRoaXMuY29tcGlsZVByb2dyYW0oZGVjb3JhdG9yLnByb2dyYW0pO1xuICAgIGxldCBwYXJhbXMgPSB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKGRlY29yYXRvciwgcHJvZ3JhbSwgdW5kZWZpbmVkKSxcbiAgICAgICAgcGF0aCA9IGRlY29yYXRvci5wYXRoO1xuXG4gICAgdGhpcy51c2VEZWNvcmF0b3JzID0gdHJ1ZTtcbiAgICB0aGlzLm9wY29kZSgncmVnaXN0ZXJEZWNvcmF0b3InLCBwYXJhbXMubGVuZ3RoLCBwYXRoLm9yaWdpbmFsKTtcbiAgfSxcblxuICBQYXJ0aWFsU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsKSB7XG4gICAgdGhpcy51c2VQYXJ0aWFsID0gdHJ1ZTtcblxuICAgIGxldCBwcm9ncmFtID0gcGFydGlhbC5wcm9ncmFtO1xuICAgIGlmIChwcm9ncmFtKSB7XG4gICAgICBwcm9ncmFtID0gdGhpcy5jb21waWxlUHJvZ3JhbShwYXJ0aWFsLnByb2dyYW0pO1xuICAgIH1cblxuICAgIGxldCBwYXJhbXMgPSBwYXJ0aWFsLnBhcmFtcztcbiAgICBpZiAocGFyYW1zLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vuc3VwcG9ydGVkIG51bWJlciBvZiBwYXJ0aWFsIGFyZ3VtZW50czogJyArIHBhcmFtcy5sZW5ndGgsIHBhcnRpYWwpO1xuICAgIH0gZWxzZSBpZiAoIXBhcmFtcy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZXhwbGljaXRQYXJ0aWFsQ29udGV4dCkge1xuICAgICAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAndW5kZWZpbmVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJhbXMucHVzaCh7dHlwZTogJ1BhdGhFeHByZXNzaW9uJywgcGFydHM6IFtdLCBkZXB0aDogMH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBwYXJ0aWFsTmFtZSA9IHBhcnRpYWwubmFtZS5vcmlnaW5hbCxcbiAgICAgICAgaXNEeW5hbWljID0gcGFydGlhbC5uYW1lLnR5cGUgPT09ICdTdWJFeHByZXNzaW9uJztcbiAgICBpZiAoaXNEeW5hbWljKSB7XG4gICAgICB0aGlzLmFjY2VwdChwYXJ0aWFsLm5hbWUpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMocGFydGlhbCwgcHJvZ3JhbSwgdW5kZWZpbmVkLCB0cnVlKTtcblxuICAgIGxldCBpbmRlbnQgPSBwYXJ0aWFsLmluZGVudCB8fCAnJztcbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXZlbnRJbmRlbnQgJiYgaW5kZW50KSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kQ29udGVudCcsIGluZGVudCk7XG4gICAgICBpbmRlbnQgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlUGFydGlhbCcsIGlzRHluYW1pYywgcGFydGlhbE5hbWUsIGluZGVudCk7XG4gICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICB9LFxuICBQYXJ0aWFsQmxvY2tTdGF0ZW1lbnQ6IGZ1bmN0aW9uKHBhcnRpYWxCbG9jaykge1xuICAgIHRoaXMuUGFydGlhbFN0YXRlbWVudChwYXJ0aWFsQmxvY2spO1xuICB9LFxuXG4gIE11c3RhY2hlU3RhdGVtZW50OiBmdW5jdGlvbihtdXN0YWNoZSkge1xuICAgIHRoaXMuU3ViRXhwcmVzc2lvbihtdXN0YWNoZSk7XG5cbiAgICBpZiAobXVzdGFjaGUuZXNjYXBlZCAmJiAhdGhpcy5vcHRpb25zLm5vRXNjYXBlKSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kRXNjYXBlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gICAgfVxuICB9LFxuICBEZWNvcmF0b3IoZGVjb3JhdG9yKSB7XG4gICAgdGhpcy5EZWNvcmF0b3JCbG9jayhkZWNvcmF0b3IpO1xuICB9LFxuXG5cbiAgQ29udGVudFN0YXRlbWVudDogZnVuY3Rpb24oY29udGVudCkge1xuICAgIGlmIChjb250ZW50LnZhbHVlKSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXBwZW5kQ29udGVudCcsIGNvbnRlbnQudmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICBDb21tZW50U3RhdGVtZW50OiBmdW5jdGlvbigpIHt9LFxuXG4gIFN1YkV4cHJlc3Npb246IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgdHJhbnNmb3JtTGl0ZXJhbFRvUGF0aChzZXhwcik7XG4gICAgbGV0IHR5cGUgPSB0aGlzLmNsYXNzaWZ5U2V4cHIoc2V4cHIpO1xuXG4gICAgaWYgKHR5cGUgPT09ICdzaW1wbGUnKSB7XG4gICAgICB0aGlzLnNpbXBsZVNleHByKHNleHByKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdoZWxwZXInKSB7XG4gICAgICB0aGlzLmhlbHBlclNleHByKHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hbWJpZ3VvdXNTZXhwcihzZXhwcik7XG4gICAgfVxuICB9LFxuICBhbWJpZ3VvdXNTZXhwcjogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UpIHtcbiAgICBsZXQgcGF0aCA9IHNleHByLnBhdGgsXG4gICAgICAgIG5hbWUgPSBwYXRoLnBhcnRzWzBdLFxuICAgICAgICBpc0Jsb2NrID0gcHJvZ3JhbSAhPSBudWxsIHx8IGludmVyc2UgIT0gbnVsbDtcblxuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcblxuICAgIHRoaXMub3Bjb2RlKCdpbnZva2VBbWJpZ3VvdXMnLCBuYW1lLCBpc0Jsb2NrKTtcbiAgfSxcblxuICBzaW1wbGVTZXhwcjogZnVuY3Rpb24oc2V4cHIpIHtcbiAgICBsZXQgcGF0aCA9IHNleHByLnBhdGg7XG4gICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdyZXNvbHZlUG9zc2libGVMYW1iZGEnKTtcbiAgfSxcblxuICBoZWxwZXJTZXhwcjogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UpIHtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhzZXhwciwgcHJvZ3JhbSwgaW52ZXJzZSksXG4gICAgICAgIHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdKSB7XG4gICAgICB0aGlzLm9wY29kZSgnaW52b2tlS25vd25IZWxwZXInLCBwYXJhbXMubGVuZ3RoLCBuYW1lKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5rbm93bkhlbHBlcnNPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3Ugc3BlY2lmaWVkIGtub3duSGVscGVyc09ubHksIGJ1dCB1c2VkIHRoZSB1bmtub3duIGhlbHBlciAnICsgbmFtZSwgc2V4cHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgICBwYXRoLmZhbHN5ID0gdHJ1ZTtcblxuICAgICAgdGhpcy5hY2NlcHQocGF0aCk7XG4gICAgICB0aGlzLm9wY29kZSgnaW52b2tlSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCwgQVNULmhlbHBlcnMuc2ltcGxlSWQocGF0aCkpO1xuICAgIH1cbiAgfSxcblxuICBQYXRoRXhwcmVzc2lvbjogZnVuY3Rpb24ocGF0aCkge1xuICAgIHRoaXMuYWRkRGVwdGgocGF0aC5kZXB0aCk7XG4gICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCBwYXRoLmRlcHRoKTtcblxuICAgIGxldCBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgc2NvcGVkID0gQVNULmhlbHBlcnMuc2NvcGVkSWQocGF0aCksXG4gICAgICAgIGJsb2NrUGFyYW1JZCA9ICFwYXRoLmRlcHRoICYmICFzY29wZWQgJiYgdGhpcy5ibG9ja1BhcmFtSW5kZXgobmFtZSk7XG5cbiAgICBpZiAoYmxvY2tQYXJhbUlkKSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JZCwgcGF0aC5wYXJ0cyk7XG4gICAgfSBlbHNlIGlmICghbmFtZSkge1xuICAgICAgLy8gQ29udGV4dCByZWZlcmVuY2UsIGkuZS4gYHt7Zm9vIC59fWAgb3IgYHt7Zm9vIC4ufX1gXG4gICAgICB0aGlzLm9wY29kZSgncHVzaENvbnRleHQnKTtcbiAgICB9IGVsc2UgaWYgKHBhdGguZGF0YSkge1xuICAgICAgdGhpcy5vcHRpb25zLmRhdGEgPSB0cnVlO1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cERhdGEnLCBwYXRoLmRlcHRoLCBwYXRoLnBhcnRzLCBwYXRoLnN0cmljdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBPbkNvbnRleHQnLCBwYXRoLnBhcnRzLCBwYXRoLmZhbHN5LCBwYXRoLnN0cmljdCwgc2NvcGVkKTtcbiAgICB9XG4gIH0sXG5cbiAgU3RyaW5nTGl0ZXJhbDogZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hTdHJpbmcnLCBzdHJpbmcudmFsdWUpO1xuICB9LFxuXG4gIE51bWJlckxpdGVyYWw6IGZ1bmN0aW9uKG51bWJlcikge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoTGl0ZXJhbCcsIG51bWJlci52YWx1ZSk7XG4gIH0sXG5cbiAgQm9vbGVhbkxpdGVyYWw6IGZ1bmN0aW9uKGJvb2wpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBib29sLnZhbHVlKTtcbiAgfSxcblxuICBVbmRlZmluZWRMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAndW5kZWZpbmVkJyk7XG4gIH0sXG5cbiAgTnVsbExpdGVyYWw6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoTGl0ZXJhbCcsICdudWxsJyk7XG4gIH0sXG5cbiAgSGFzaDogZnVuY3Rpb24oaGFzaCkge1xuICAgIGxldCBwYWlycyA9IGhhc2gucGFpcnMsXG4gICAgICAgIGkgPSAwLFxuICAgICAgICBsID0gcGFpcnMubGVuZ3RoO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hIYXNoJyk7XG5cbiAgICBmb3IgKDsgaSA8IGw7IGkrKykge1xuICAgICAgdGhpcy5wdXNoUGFyYW0ocGFpcnNbaV0udmFsdWUpO1xuICAgIH1cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLm9wY29kZSgnYXNzaWduVG9IYXNoJywgcGFpcnNbaV0ua2V5KTtcbiAgICB9XG4gICAgdGhpcy5vcGNvZGUoJ3BvcEhhc2gnKTtcbiAgfSxcblxuICAvLyBIRUxQRVJTXG4gIG9wY29kZTogZnVuY3Rpb24obmFtZSkge1xuICAgIHRoaXMub3Bjb2Rlcy5wdXNoKHsgb3Bjb2RlOiBuYW1lLCBhcmdzOiBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSksIGxvYzogdGhpcy5zb3VyY2VOb2RlWzBdLmxvYyB9KTtcbiAgfSxcblxuICBhZGREZXB0aDogZnVuY3Rpb24oZGVwdGgpIHtcbiAgICBpZiAoIWRlcHRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51c2VEZXB0aHMgPSB0cnVlO1xuICB9LFxuXG4gIGNsYXNzaWZ5U2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IGlzU2ltcGxlID0gQVNULmhlbHBlcnMuc2ltcGxlSWQoc2V4cHIucGF0aCk7XG5cbiAgICBsZXQgaXNCbG9ja1BhcmFtID0gaXNTaW1wbGUgJiYgISF0aGlzLmJsb2NrUGFyYW1JbmRleChzZXhwci5wYXRoLnBhcnRzWzBdKTtcblxuICAgIC8vIGEgbXVzdGFjaGUgaXMgYW4gZWxpZ2libGUgaGVscGVyIGlmOlxuICAgIC8vICogaXRzIGlkIGlzIHNpbXBsZSAoYSBzaW5nbGUgcGFydCwgbm90IGB0aGlzYCBvciBgLi5gKVxuICAgIGxldCBpc0hlbHBlciA9ICFpc0Jsb2NrUGFyYW0gJiYgQVNULmhlbHBlcnMuaGVscGVyRXhwcmVzc2lvbihzZXhwcik7XG5cbiAgICAvLyBpZiBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBidXQgbm90IGEgZGVmaW5pdGVcbiAgICAvLyBoZWxwZXIsIGl0IGlzIGFtYmlndW91cywgYW5kIHdpbGwgYmUgcmVzb2x2ZWQgaW4gYSBsYXRlclxuICAgIC8vIHBhc3Mgb3IgYXQgcnVudGltZS5cbiAgICBsZXQgaXNFbGlnaWJsZSA9ICFpc0Jsb2NrUGFyYW0gJiYgKGlzSGVscGVyIHx8IGlzU2ltcGxlKTtcblxuICAgIC8vIGlmIGFtYmlndW91cywgd2UgY2FuIHBvc3NpYmx5IHJlc29sdmUgdGhlIGFtYmlndWl0eSBub3dcbiAgICAvLyBBbiBlbGlnaWJsZSBoZWxwZXIgaXMgb25lIHRoYXQgZG9lcyBub3QgaGF2ZSBhIGNvbXBsZXggcGF0aCwgaS5lLiBgdGhpcy5mb29gLCBgLi4vZm9vYCBldGMuXG4gICAgaWYgKGlzRWxpZ2libGUgJiYgIWlzSGVscGVyKSB7XG4gICAgICBsZXQgbmFtZSA9IHNleHByLnBhdGgucGFydHNbMF0sXG4gICAgICAgICAgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgICAgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdKSB7XG4gICAgICAgIGlzSGVscGVyID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5rbm93bkhlbHBlcnNPbmx5KSB7XG4gICAgICAgIGlzRWxpZ2libGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNIZWxwZXIpIHtcbiAgICAgIHJldHVybiAnaGVscGVyJztcbiAgICB9IGVsc2UgaWYgKGlzRWxpZ2libGUpIHtcbiAgICAgIHJldHVybiAnYW1iaWd1b3VzJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdzaW1wbGUnO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW1zOiBmdW5jdGlvbihwYXJhbXMpIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHBhcmFtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhcmFtc1tpXSk7XG4gICAgfVxuICB9LFxuXG4gIHB1c2hQYXJhbTogZnVuY3Rpb24odmFsKSB7XG4gICAgbGV0IHZhbHVlID0gdmFsLnZhbHVlICE9IG51bGwgPyB2YWwudmFsdWUgOiB2YWwub3JpZ2luYWwgfHwgJyc7XG5cbiAgICBpZiAodGhpcy5zdHJpbmdQYXJhbXMpIHtcbiAgICAgIGlmICh2YWx1ZS5yZXBsYWNlKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC9eKFxcLj9cXC5cXC8pKi9nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbC5kZXB0aCkge1xuICAgICAgICB0aGlzLmFkZERlcHRoKHZhbC5kZXB0aCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHZhbC5kZXB0aCB8fCAwKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nUGFyYW0nLCB2YWx1ZSwgdmFsLnR5cGUpO1xuXG4gICAgICBpZiAodmFsLnR5cGUgPT09ICdTdWJFeHByZXNzaW9uJykge1xuICAgICAgICAvLyBTdWJFeHByZXNzaW9ucyBnZXQgZXZhbHVhdGVkIGFuZCBwYXNzZWQgaW5cbiAgICAgICAgLy8gaW4gc3RyaW5nIHBhcmFtcyBtb2RlLlxuICAgICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy50cmFja0lkcykge1xuICAgICAgICBsZXQgYmxvY2tQYXJhbUluZGV4O1xuICAgICAgICBpZiAodmFsLnBhcnRzICYmICFBU1QuaGVscGVycy5zY29wZWRJZCh2YWwpICYmICF2YWwuZGVwdGgpIHtcbiAgICAgICAgICAgYmxvY2tQYXJhbUluZGV4ID0gdGhpcy5ibG9ja1BhcmFtSW5kZXgodmFsLnBhcnRzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmxvY2tQYXJhbUluZGV4KSB7XG4gICAgICAgICAgbGV0IGJsb2NrUGFyYW1DaGlsZCA9IHZhbC5wYXJ0cy5zbGljZSgxKS5qb2luKCcuJyk7XG4gICAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hJZCcsICdCbG9ja1BhcmFtJywgYmxvY2tQYXJhbUluZGV4LCBibG9ja1BhcmFtQ2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdmFsLm9yaWdpbmFsIHx8IHZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZS5yZXBsYWNlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL150aGlzKD86XFwufCQpLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC5cXC8vLCAnJylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXlxcLiQvLCAnJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hJZCcsIHZhbC50eXBlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuYWNjZXB0KHZhbCk7XG4gICAgfVxuICB9LFxuXG4gIHNldHVwRnVsbE11c3RhY2hlUGFyYW1zOiBmdW5jdGlvbihzZXhwciwgcHJvZ3JhbSwgaW52ZXJzZSwgb21pdEVtcHR5KSB7XG4gICAgbGV0IHBhcmFtcyA9IHNleHByLnBhcmFtcztcbiAgICB0aGlzLnB1c2hQYXJhbXMocGFyYW1zKTtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuXG4gICAgaWYgKHNleHByLmhhc2gpIHtcbiAgICAgIHRoaXMuYWNjZXB0KHNleHByLmhhc2gpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJywgb21pdEVtcHR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9LFxuXG4gIGJsb2NrUGFyYW1JbmRleDogZnVuY3Rpb24obmFtZSkge1xuICAgIGZvciAobGV0IGRlcHRoID0gMCwgbGVuID0gdGhpcy5vcHRpb25zLmJsb2NrUGFyYW1zLmxlbmd0aDsgZGVwdGggPCBsZW47IGRlcHRoKyspIHtcbiAgICAgIGxldCBibG9ja1BhcmFtcyA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtc1tkZXB0aF0sXG4gICAgICAgICAgcGFyYW0gPSBibG9ja1BhcmFtcyAmJiBpbmRleE9mKGJsb2NrUGFyYW1zLCBuYW1lKTtcbiAgICAgIGlmIChibG9ja1BhcmFtcyAmJiBwYXJhbSA+PSAwKSB7XG4gICAgICAgIHJldHVybiBbZGVwdGgsIHBhcmFtXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVjb21waWxlKGlucHV0LCBvcHRpb25zLCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5wcmVjb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgaWYgKCEoJ2RhdGEnIGluIG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgfVxuICBpZiAob3B0aW9ucy5jb21wYXQpIHtcbiAgICBvcHRpb25zLnVzZURlcHRocyA9IHRydWU7XG4gIH1cblxuICBsZXQgYXN0ID0gZW52LnBhcnNlKGlucHV0LCBvcHRpb25zKSxcbiAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIG5ldyBlbnYuSmF2YVNjcmlwdENvbXBpbGVyKCkuY29tcGlsZShlbnZpcm9ubWVudCwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlKGlucHV0LCBvcHRpb25zID0ge30sIGVudikge1xuICBpZiAoaW5wdXQgPT0gbnVsbCB8fCAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJyAmJiBpbnB1dC50eXBlICE9PSAnUHJvZ3JhbScpKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IG11c3QgcGFzcyBhIHN0cmluZyBvciBIYW5kbGViYXJzIEFTVCB0byBIYW5kbGViYXJzLmNvbXBpbGUuIFlvdSBwYXNzZWQgJyArIGlucHV0KTtcbiAgfVxuXG4gIG9wdGlvbnMgPSBleHRlbmQoe30sIG9wdGlvbnMpO1xuICBpZiAoISgnZGF0YScgaW4gb3B0aW9ucykpIHtcbiAgICBvcHRpb25zLmRhdGEgPSB0cnVlO1xuICB9XG4gIGlmIChvcHRpb25zLmNvbXBhdCkge1xuICAgIG9wdGlvbnMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfVxuXG4gIGxldCBjb21waWxlZDtcblxuICBmdW5jdGlvbiBjb21waWxlSW5wdXQoKSB7XG4gICAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKSxcbiAgICAgICAgdGVtcGxhdGVTcGVjID0gbmV3IGVudi5KYXZhU2NyaXB0Q29tcGlsZXIoKS5jb21waWxlKGVudmlyb25tZW50LCBvcHRpb25zLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIHJldHVybiBlbnYudGVtcGxhdGUodGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGlzIG9ubHkgY29tcGlsZWQgb24gZmlyc3QgdXNlIGFuZCBjYWNoZWQgYWZ0ZXIgdGhhdCBwb2ludC5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIGV4ZWNPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLmNhbGwodGhpcywgY29udGV4dCwgZXhlY09wdGlvbnMpO1xuICB9XG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihzZXR1cE9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbXBpbGVkKSB7XG4gICAgICBjb21waWxlZCA9IGNvbXBpbGVJbnB1dCgpO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGlsZWQuX3NldHVwKHNldHVwT3B0aW9ucyk7XG4gIH07XG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9jaGlsZChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gYXJnRXF1YWxzKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KGEpICYmIGlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWFyZ0VxdWFscyhhW2ldLCBiW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpIHtcbiAgaWYgKCFzZXhwci5wYXRoLnBhcnRzKSB7XG4gICAgbGV0IGxpdGVyYWwgPSBzZXhwci5wYXRoO1xuICAgIC8vIENhc3RpbmcgdG8gc3RyaW5nIGhlcmUgdG8gbWFrZSBmYWxzZSBhbmQgMCBsaXRlcmFsIHZhbHVlcyBwbGF5IG5pY2VseSB3aXRoIHRoZSByZXN0XG4gICAgLy8gb2YgdGhlIHN5c3RlbS5cbiAgICBzZXhwci5wYXRoID0ge1xuICAgICAgdHlwZTogJ1BhdGhFeHByZXNzaW9uJyxcbiAgICAgIGRhdGE6IGZhbHNlLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBwYXJ0czogW2xpdGVyYWwub3JpZ2luYWwgKyAnJ10sXG4gICAgICBvcmlnaW5hbDogbGl0ZXJhbC5vcmlnaW5hbCArICcnLFxuICAgICAgbG9jOiBsaXRlcmFsLmxvY1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.js
index 7053e996c..2010c95e9 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -582,7 +582,7 @@ define('handlebars/base',['exports', './utils', './exception', './helpers', './d
var _logger2 = _interopRequireDefault(_logger);
- var VERSION = '4.0.8';
+ var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
@@ -664,7 +664,7 @@ define('handlebars/base',['exports', './utils', './exception', './helpers', './d
exports.createFrame = _utils.createFrame;
exports.logger = _logger2['default'];
});
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMCc7XG5leHBvcnQgY29uc3QgQ09NUElMRVJfUkVWSVNJT04gPSA3O1xuXG5leHBvcnQgY29uc3QgUkVWSVNJT05fQ0hBTkdFUyA9IHtcbiAgMTogJzw9IDEuMC5yYy4yJywgLy8gMS4wLnJjLjIgaXMgYWN0dWFsbHkgcmV2MiBidXQgZG9lc24ndCByZXBvcnQgaXRcbiAgMjogJz09IDEuMC4wLXJjLjMnLFxuICAzOiAnPT0gMS4wLjAtcmMuNCcsXG4gIDQ6ICc9PSAxLngueCcsXG4gIDU6ICc9PSAyLjAuMC1hbHBoYS54JyxcbiAgNjogJz49IDIuMC4wLWJldGEuMScsXG4gIDc6ICc+PSA0LjAuMCdcbn07XG5cbmNvbnN0IG9iamVjdFR5cGUgPSAnW29iamVjdCBPYmplY3RdJztcblxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZWJhcnNFbnZpcm9ubWVudChoZWxwZXJzLCBwYXJ0aWFscywgZGVjb3JhdG9ycykge1xuICB0aGlzLmhlbHBlcnMgPSBoZWxwZXJzIHx8IHt9O1xuICB0aGlzLnBhcnRpYWxzID0gcGFydGlhbHMgfHwge307XG4gIHRoaXMuZGVjb3JhdG9ycyA9IGRlY29yYXRvcnMgfHwge307XG5cbiAgcmVnaXN0ZXJEZWZhdWx0SGVscGVycyh0aGlzKTtcbiAgcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyh0aGlzKTtcbn1cblxuSGFuZGxlYmFyc0Vudmlyb25tZW50LnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IEhhbmRsZWJhcnNFbnZpcm9ubWVudCxcblxuICBsb2dnZXI6IGxvZ2dlcixcbiAgbG9nOiBsb2dnZXIubG9nLFxuXG4gIHJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBoZWxwZXJzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGApO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJ0aWFsc1tuYW1lXSA9IHBhcnRpYWw7XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLnBhcnRpYWxzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBkZWNvcmF0b3JzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmRlY29yYXRvcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlY29yYXRvcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5kZWNvcmF0b3JzW25hbWVdO1xuICB9XG59O1xuXG5leHBvcnQgbGV0IGxvZyA9IGxvZ2dlci5sb2c7XG5cbmV4cG9ydCB7Y3JlYXRlRnJhbWUsIGxvZ2dlcn07XG4iXX0=
;
define('handlebars/safe-string',['exports', 'module'], function (exports, module) {
// Build out our basic SafeString type
@@ -2526,7 +2526,7 @@ define('handlebars/compiler/compiler',['exports', '../exception', '../utils', '.
for (var _name in knownHelpers) {
/* istanbul ignore else */
if (_name in knownHelpers) {
- options.knownHelpers[_name] = knownHelpers[_name];
+ this.options.knownHelpers[_name] = knownHelpers[_name];
}
}
}
@@ -2941,6 +2941,7 @@ define('handlebars/compiler/compiler',['exports', '../exception', '../utils', '.
throw new _Exception['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
}
+ options = _utils.extend({}, options);
if (!('data' in options)) {
options.data = true;
}
@@ -3010,7 +3011,7 @@ define('handlebars/compiler/compiler',['exports', '../exception', '../utils', '.
}
}
});
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs7QUFFaEIsV0FBUyxRQUFRLEdBQUcsRUFBRTs7Ozs7OztBQU83QixVQUFRLENBQUMsU0FBUyxHQUFHO0FBQ25CLFlBQVEsRUFBRSxRQUFROztBQUVsQixVQUFNLEVBQUUsZ0JBQVMsS0FBSyxFQUFFO0FBQ3RCLFVBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzlCLFVBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO0FBQ2hDLGVBQU8sS0FBSyxDQUFDO09BQ2Q7O0FBRUQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QixZQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4QixXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxZQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyRixpQkFBTyxLQUFLLENBQUM7U0FDZDtPQUNGOzs7O0FBSUQsU0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzNCLFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUIsWUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FB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S0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQ3JELFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2pDLFlBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzFCLGlCQUFPLEtBQUssQ0FBQztTQUNkO09BQ0Y7QUFDRCxhQUFPLElBQUksQ0FBQztLQUNiO0dBQ0Y7O0FBRUQsV0FBUyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7QUFDckMsUUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO0FBQ3JCLFVBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7OztBQUd6QixXQUFLLENBQUMsSUFBSSxHQUFHO0FBQ1gsWUFBSSxFQUFFLGdCQUFnQjtBQUN0QixZQUFJLEVBQUUsS0FBSztBQUNYLGFBQUssRUFBRSxDQUFDO0FBQ1IsYUFBSyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDOUIsZ0JBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUU7QUFDL0IsV0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO09BQ2pCLENBQUM7S0FDSDtHQUNGIiwiZmlsZSI6ImNvbXBpbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbmV3LWNhcCAqL1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5pbXBvcnQge2lzQXJyYXksIGluZGV4T2Z9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBBU1QgZnJvbSAnLi9hc3QnO1xuXG5jb25zdCBzbGljZSA9IFtdLnNsaWNlO1xuXG5leHBvcnQgZnVuY3Rpb24gQ29tcGlsZXIoKSB7fVxuXG4vLyB0aGUgZm91bmRIZWxwZXIgcmVnaXN0ZXIgd2lsbCBkaXNhbWJpZ3VhdGUgaGVscGVyIGxvb2t1cCBmcm9tIGZpbmRpbmcgYVxuLy8gZnVuY3Rpb24gaW4gYSBjb250ZXh0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgbXVzdGFjaGUgY29tcGF0aWJpbGl0eSwgd2hpY2hcbi8vIHJlcXVpcmVzIHRoYXQgY29udGV4dCBmdW5jdGlvbnMgaW4gYmxvY2tzIGFyZSBldmFsdWF0ZWQgYnkgYmxvY2tIZWxwZXJNaXNzaW5nLFxuLy8gYW5kIHRoZW4gcHJvY2VlZCBhcyBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlIHdhcyBwcm92aWRlZCB0byBibG9ja0hlbHBlck1pc3NpbmcuXG5cbkNvbXBpbGVyLnByb3RvdHlwZSA9IHtcbiAgY29tcGlsZXI6IENvbXBpbGVyLFxuXG4gIGVxdWFsczogZnVuY3Rpb24ob3RoZXIpIHtcbiAgICBsZXQgbGVuID0gdGhpcy5vcGNvZGVzLmxlbmd0aDtcbiAgICBpZiAob3RoZXIub3Bjb2Rlcy5sZW5ndGggIT09IGxlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGxldCBvcGNvZGUgPSB0aGlzLm9wY29kZXNbaV0sXG4gICAgICAgICAgb3RoZXJPcGNvZGUgPSBvdGhlci5vcGNvZGVzW2ldO1xuICAgICAgaWYgKG9wY29kZS5vcGNvZGUgIT09IG90aGVyT3Bjb2RlLm9wY29kZSB8fCAhYXJnRXF1YWxzKG9wY29kZS5hcmdzLCBvdGhlck9wY29kZS5hcmdzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2Uga25vdyB0aGF0IGxlbmd0aCBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRoZSB0d28gYXJyYXlzIGJlY2F1c2UgdGhleSBhcmUgZGlyZWN0bHkgdGllZFxuICAgIC8vIHRvIHRoZSBvcGNvZGUgYmVoYXZpb3IgYWJvdmUuXG4gICAgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuW2ldLmVxdWFscyhvdGhlci5jaGlsZHJlbltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIGd1aWQ6IDAsXG5cbiAgY29tcGlsZTogZnVuY3Rpb24ocHJvZ3JhbSwgb3B0aW9ucykge1xuICAgIHRoaXMuc291cmNlTm9kZSA9IFtdO1xuICAgIHRoaXMub3Bjb2RlcyA9IFtdO1xuICAgIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RyaW5nUGFyYW1zID0gb3B0aW9ucy5zdHJpbmdQYXJhbXM7XG4gICAgdGhpcy50cmFja0lkcyA9IG9wdGlvbnMudHJhY2tJZHM7XG5cbiAgICBvcHRpb25zLmJsb2NrUGFyYW1zID0gb3B0aW9ucy5ibG9ja1BhcmFtcyB8fCBbXTtcblxuICAgIC8vIFRoZXNlIGNoYW5nZXMgd2lsbCBwcm9wYWdhdGUgdG8gdGhlIG90aGVyIGNvbXBpbGVyIGNvbXBvbmVudHNcbiAgICBsZXQga25vd25IZWxwZXJzID0gb3B0aW9ucy5rbm93bkhlbHBlcnM7XG4gICAgb3B0aW9ucy5rbm93bkhlbHBlcnMgPSB7XG4gICAgICAnaGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnYmxvY2tIZWxwZXJNaXNzaW5nJzogdHJ1ZSxcbiAgICAgICdlYWNoJzogdHJ1ZSxcbiAgICAgICdpZic6IHRydWUsXG4gICAgICAndW5sZXNzJzogdHJ1ZSxcbiAgICAgICd3aXRoJzogdHJ1ZSxcbiAgICAgICdsb2cnOiB0cnVlLFxuICAgICAgJ2xvb2t1cCc6IHRydWVcbiAgICB9O1xuICAgIGlmIChrbm93bkhlbHBlcnMpIHtcbiAgICAgIGZvciAobGV0IG5hbWUgaW4ga25vd25IZWxwZXJzKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAgIG9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdID0ga25vd25IZWxwZXJzW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHByb2dyYW0pO1xuICB9LFxuXG4gIGNvbXBpbGVQcm9ncmFtOiBmdW5jdGlvbihwcm9ncmFtKSB7XG4gICAgbGV0IGNoaWxkQ29tcGlsZXIgPSBuZXcgdGhpcy5jb21waWxlcigpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgICAgICAgcmVzdWx0ID0gY2hpbGRDb21waWxlci5jb21waWxlKHByb2dyYW0sIHRoaXMub3B0aW9ucyksXG4gICAgICAgIGd1aWQgPSB0aGlzLmd1aWQrKztcblxuICAgIHRoaXMudXNlUGFydGlhbCA9IHRoaXMudXNlUGFydGlhbCB8fCByZXN1bHQudXNlUGFydGlhbDtcblxuICAgIHRoaXMuY2hpbGRyZW5bZ3VpZF0gPSByZXN1bHQ7XG4gICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCByZXN1bHQudXNlRGVwdGhzO1xuXG4gICAgcmV0dXJuIGd1aWQ7XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbihub2RlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IFNhbml0eSBjb2RlICovXG4gICAgaWYgKCF0aGlzW25vZGUudHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgbGV0IHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXMudW5zaGlmdChwcm9ncmFtLmJsb2NrUGFyYW1zKTtcblxuICAgIGxldCBib2R5ID0gcHJvZ3JhbS5ib2R5LFxuICAgICAgICBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBib2R5TGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWNjZXB0KGJvZHlbaV0pO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5zaGlmdCgpO1xuXG4gICAgdGhpcy5pc1NpbXBsZSA9IGJvZHlMZW5ndGggPT09IDE7XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IHByb2dyYW0uYmxvY2tQYXJhbXMgPyBwcm9ncmFtLmJsb2NrUGFyYW1zLmxlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24oYmxvY2spIHtcbiAgICB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKGJsb2NrKTtcblxuICAgIGxldCBwcm9ncmFtID0gYmxvY2sucHJvZ3JhbSxcbiAgICAgICAgaW52ZXJzZSA9IGJsb2NrLmludmVyc2U7XG5cbiAgICBwcm9ncmFtID0gcHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKHByb2dyYW0pO1xuICAgIGludmVyc2UgPSBpbnZlcnNlICYmIHRoaXMuY29tcGlsZVByb2dyYW0oaW52ZXJzZSk7XG5cbiAgICBsZXQgdHlwZSA9IHRoaXMuY2xhc3NpZnlTZXhwcihibG9jayk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2hlbHBlcicpIHtcbiAgICAgIHRoaXMuaGVscGVyU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIHRoaXMuc2ltcGxlU2V4cHIoYmxvY2spO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYmxvY2tWYWx1ZScsIGJsb2NrLnBhdGgub3JpZ2luYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFtYmlndW91c1NleHByKGJsb2NrLCBwcm9ncmFtLCBpbnZlcnNlKTtcblxuICAgICAgLy8gbm93IHRoYXQgdGhlIHNpbXBsZSBtdXN0YWNoZSBpcyByZXNvbHZlZCwgd2UgbmVlZCB0b1xuICAgICAgLy8gZXZhbHVhdGUgaXQgYnkgZXhlY3V0aW5nIGBibG9ja0hlbHBlck1pc3NpbmdgXG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2FtYmlndW91c0Jsb2NrVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gIH0sXG5cbiAgRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24ocGFydGlhbCkge1xuICAgIHRoaXMudXNlUGFydGlhbCA9IHRydWU7XG5cbiAgICBsZXQgcHJvZ3JhbSA9IHBhcnRpYWwucHJvZ3JhbTtcbiAgICBpZiAocHJvZ3JhbSkge1xuICAgICAgcHJvZ3JhbSA9IHRoaXMuY29tcGlsZVByb2dyYW0ocGFydGlhbC5wcm9ncmFtKTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFydGlhbC5wYXJhbXM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goe3R5cGU6ICdQYXRoRXhwcmVzc2lvbicsIHBhcnRzOiBbXSwgZGVwdGg6IDB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFydGlhbE5hbWUgPSBwYXJ0aWFsLm5hbWUub3JpZ2luYWwsXG4gICAgICAgIGlzRHluYW1pYyA9IHBhcnRpYWwubmFtZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbic7XG4gICAgaWYgKGlzRHluYW1pYykge1xuICAgICAgdGhpcy5hY2NlcHQocGFydGlhbC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKHBhcnRpYWwsIHByb2dyYW0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICBsZXQgaW5kZW50ID0gcGFydGlhbC5pbmRlbnQgfHwgJyc7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmV2ZW50SW5kZW50ICYmIGluZGVudCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBpbmRlbnQpO1xuICAgICAgaW5kZW50ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGNvZGUoJ2ludm9rZVBhcnRpYWwnLCBpc0R5bmFtaWMsIHBhcnRpYWxOYW1lLCBpbmRlbnQpO1xuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yKGRlY29yYXRvcikge1xuICAgIHRoaXMuRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKTtcbiAgfSxcblxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICBpZiAoY29udGVudC52YWx1ZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBjb250ZW50LnZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgQ29tbWVudFN0YXRlbWVudDogZnVuY3Rpb24oKSB7fSxcblxuICBTdWJFeHByZXNzaW9uOiBmdW5jdGlvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IHNwZWNpZmllZCBrbm93bkhlbHBlcnNPbmx5LCBidXQgdXNlZCB0aGUgdW5rbm93biBoZWxwZXIgJyArIG5hbWUsIHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgICAgcGF0aC5mYWxzeSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUhlbHBlcicsIHBhcmFtcy5sZW5ndGgsIHBhdGgub3JpZ2luYWwsIEFTVC5oZWxwZXJzLnNpbXBsZUlkKHBhdGgpKTtcbiAgICB9XG4gIH0sXG5cbiAgUGF0aEV4cHJlc3Npb246IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICB0aGlzLmFkZERlcHRoKHBhdGguZGVwdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICBsZXQgbmFtZSA9IHBhdGgucGFydHNbMF0sXG4gICAgICAgIHNjb3BlZCA9IEFTVC5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nJywgc3RyaW5nLnZhbHVlKTtcbiAgfSxcblxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBudW1iZXIudmFsdWUpO1xuICB9LFxuXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbihib29sKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgYm9vbC52YWx1ZSk7XG4gIH0sXG5cbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uKGhhc2gpIHtcbiAgICBsZXQgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgbCA9IHBhaXJzLmxlbmd0aDtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoSGFzaCcpO1xuXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhaXJzW2ldLnZhbHVlKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2Fzc2lnblRvSGFzaCcsIHBhaXJzW2ldLmtleSk7XG4gICAgfVxuICAgIHRoaXMub3Bjb2RlKCdwb3BIYXNoJyk7XG4gIH0sXG5cbiAgLy8gSEVMUEVSU1xuICBvcGNvZGU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7IG9wY29kZTogbmFtZSwgYXJnczogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLCBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2MgfSk7XG4gIH0sXG5cbiAgYWRkRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfSxcblxuICBjbGFzc2lmeVNleHByOiBmdW5jdGlvbihzZXhwcikge1xuICAgIGxldCBpc1NpbXBsZSA9IEFTVC5oZWxwZXJzLnNpbXBsZUlkKHNleHByLnBhdGgpO1xuXG4gICAgbGV0IGlzQmxvY2tQYXJhbSA9IGlzU2ltcGxlICYmICEhdGhpcy5ibG9ja1BhcmFtSW5kZXgoc2V4cHIucGF0aC5wYXJ0c1swXSk7XG5cbiAgICAvLyBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0cyBpZCBpcyBzaW1wbGUgKGEgc2luZ2xlIHBhcnQsIG5vdCBgdGhpc2Agb3IgYC4uYClcbiAgICBsZXQgaXNIZWxwZXIgPSAhaXNCbG9ja1BhcmFtICYmIEFTVC5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgbGV0IGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgbGV0IG5hbWUgPSBzZXhwci5wYXRoLnBhcnRzWzBdLFxuICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGlmIChvcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLnB1c2hQYXJhbShwYXJhbXNbaV0pO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW06IGZ1bmN0aW9uKHZhbCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXC4/XFwuXFwvKSovZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwuZGVwdGgpIHtcbiAgICAgICAgdGhpcy5hZGREZXB0aCh2YWwuZGVwdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCB2YWwuZGVwdGggfHwgMCk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFN0cmluZ1BhcmFtJywgdmFsdWUsIHZhbC50eXBlKTtcblxuICAgICAgaWYgKHZhbC50eXBlID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgLy8gU3ViRXhwcmVzc2lvbnMgZ2V0IGV2YWx1YXRlZCBhbmQgcGFzc2VkIGluXG4gICAgICAgIC8vIGluIHN0cmluZyBwYXJhbXMgbW9kZS5cbiAgICAgICAgdGhpcy5hY2NlcHQodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgbGV0IGJsb2NrUGFyYW1JbmRleDtcbiAgICAgICAgaWYgKHZhbC5wYXJ0cyAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgIGJsb2NrUGFyYW1JbmRleCA9IHRoaXMuYmxvY2tQYXJhbUluZGV4KHZhbC5wYXJ0c1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrUGFyYW1JbmRleCkge1xuICAgICAgICAgIGxldCBibG9ja1BhcmFtQ2hpbGQgPSB2YWwucGFydHMuc2xpY2UoMSkuam9pbignLicpO1xuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCAnQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JbmRleCwgYmxvY2tQYXJhbUNoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbC5vcmlnaW5hbCB8fCB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9edGhpcyg/OlxcLnwkKS8sICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuXFwvLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC4kLywgJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCB2YWwudHlwZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgIH1cbiAgfSxcblxuICBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtczogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UsIG9taXRFbXB0eSkge1xuICAgIGxldCBwYXJhbXMgPSBzZXhwci5wYXJhbXM7XG4gICAgdGhpcy5wdXNoUGFyYW1zKHBhcmFtcyk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIGlmIChzZXhwci5oYXNoKSB7XG4gICAgICB0aGlzLmFjY2VwdChzZXhwci5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcsIG9taXRFbXB0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICBibG9ja1BhcmFtSW5kZXg6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBmb3IgKGxldCBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICBsZXQgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgaW5kZXhPZihibG9ja1BhcmFtcywgbmFtZSk7XG4gICAgICBpZiAoYmxvY2tQYXJhbXMgJiYgcGFyYW0gPj0gMCkge1xuICAgICAgICByZXR1cm4gW2RlcHRoLCBwYXJhbV07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8ICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmIGlucHV0LnR5cGUgIT09ICdQcm9ncmFtJykpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgbXVzdCBwYXNzIGEgc3RyaW5nIG9yIEhhbmRsZWJhcnMgQVNUIHRvIEhhbmRsZWJhcnMucHJlY29tcGlsZS4gWW91IHBhc3NlZCAnICsgaW5wdXQpO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghKCdkYXRhJyBpbiBvcHRpb25zKSkge1xuICAgIG9wdGlvbnMuZGF0YSA9IHRydWU7XG4gIH1cbiAgaWYgKG9wdGlvbnMuY29tcGF0KSB7XG4gICAgb3B0aW9ucy51c2VEZXB0aHMgPSB0cnVlO1xuICB9XG5cbiAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXcgZW52LkphdmFTY3JpcHRDb21waWxlcigpLmNvbXBpbGUoZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShpbnB1dCwgb3B0aW9ucyA9IHt9LCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5jb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBpZiAoISgnZGF0YScgaW4gb3B0aW9ucykpIHtcbiAgICBvcHRpb25zLmRhdGEgPSB0cnVlO1xuICB9XG4gIGlmIChvcHRpb25zLmNvbXBhdCkge1xuICAgIG9wdGlvbnMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfVxuXG4gIGxldCBjb21waWxlZDtcblxuICBmdW5jdGlvbiBjb21waWxlSW5wdXQoKSB7XG4gICAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICAgIGVudmlyb25tZW50ID0gbmV3IGVudi5Db21waWxlcigpLmNvbXBpbGUoYXN0LCBvcHRpb25zKSxcbiAgICAgICAgdGVtcGxhdGVTcGVjID0gbmV3IGVudi5KYXZhU2NyaXB0Q29tcGlsZXIoKS5jb21waWxlKGVudmlyb25tZW50LCBvcHRpb25zLCB1bmRlZmluZWQsIHRydWUpO1xuICAgIHJldHVybiBlbnYudGVtcGxhdGUodGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIC8vIFRlbXBsYXRlIGlzIG9ubHkgY29tcGlsZWQgb24gZmlyc3QgdXNlIGFuZCBjYWNoZWQgYWZ0ZXIgdGhhdCBwb2ludC5cbiAgZnVuY3Rpb24gcmV0KGNvbnRleHQsIGV4ZWNPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLmNhbGwodGhpcywgY29udGV4dCwgZXhlY09wdGlvbnMpO1xuICB9XG4gIHJldC5fc2V0dXAgPSBmdW5jdGlvbihzZXR1cE9wdGlvbnMpIHtcbiAgICBpZiAoIWNvbXBpbGVkKSB7XG4gICAgICBjb21waWxlZCA9IGNvbXBpbGVJbnB1dCgpO1xuICAgIH1cbiAgICByZXR1cm4gY29tcGlsZWQuX3NldHVwKHNldHVwT3B0aW9ucyk7XG4gIH07XG4gIHJldC5fY2hpbGQgPSBmdW5jdGlvbihpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9jaGlsZChpLCBkYXRhLCBibG9ja1BhcmFtcywgZGVwdGhzKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gYXJnRXF1YWxzKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0FycmF5KGEpICYmIGlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWFyZ0VxdWFscyhhW2ldLCBiW2ldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpIHtcbiAgaWYgKCFzZXhwci5wYXRoLnBhcnRzKSB7XG4gICAgbGV0IGxpdGVyYWwgPSBzZXhwci5wYXRoO1xuICAgIC8vIENhc3RpbmcgdG8gc3RyaW5nIGhlcmUgdG8gbWFrZSBmYWxzZSBhbmQgMCBsaXRlcmFsIHZhbHVlcyBwbGF5IG5pY2VseSB3aXRoIHRoZSByZXN0XG4gICAgLy8gb2YgdGhlIHN5c3RlbS5cbiAgICBzZXhwci5wYXRoID0ge1xuICAgICAgdHlwZTogJ1BhdGhFeHByZXNzaW9uJyxcbiAgICAgIGRhdGE6IGZhbHNlLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBwYXJ0czogW2xpdGVyYWwub3JpZ2luYWwgKyAnJ10sXG4gICAgICBvcmlnaW5hbDogbGl0ZXJhbC5vcmlnaW5hbCArICcnLFxuICAgICAgbG9jOiBsaXRlcmFsLmxvY1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2NvbXBpbGVyL2NvbXBpbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzs7QUFFaEIsV0FBUyxRQUFRLEdBQUcsRUFBRTs7Ozs7OztBQU83QixVQUFRLENBQUMsU0FBUyxHQUFHO0FBQ25CLFlBQVEsRUFBRSxRQUFROztBQUVsQixVQUFNLEVBQUUsZ0JBQVMsS0FBSyxFQUFFO0FBQ3RCLFVBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzlCLFVBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO0FBQ2hDLGVBQU8sS0FBSyxDQUFDO09BQ2Q7O0FBRUQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QixZQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4QixXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuQyxZQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtBQUNyRixpQkFBTyxLQUFLLENBQUM7U0FDZDtPQUNGOzs7O0FBSUQsU0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzNCLFdBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDNUIsWUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FB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aEJELENBQUMsQ0FBQyxJQUFJLE9BbmhCWixPQUFPLENBbWhCYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDckQsV0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDakMsWUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDMUIsaUJBQU8sS0FBSyxDQUFDO1NBQ2Q7T0FDRjtBQUNELGFBQU8sSUFBSSxDQUFDO0tBQ2I7R0FDRjs7QUFFRCxXQUFTLHNCQUFzQixDQUFDLEtBQUssRUFBRTtBQUNyQyxRQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7QUFDckIsVUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7O0FBR3pCLFdBQUssQ0FBQyxJQUFJLEdBQUc7QUFDWCxZQUFJLEVBQUUsZ0JBQWdCO0FBQ3RCLFlBQUksRUFBRSxLQUFLO0FBQ1gsYUFBSyxFQUFFLENBQUM7QUFDUixhQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUM5QixnQkFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsRUFBRTtBQUMvQixXQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7T0FDakIsQ0FBQztLQUNIO0dBQ0YiLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuZXctY2FwICovXG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcbmltcG9ydCB7aXNBcnJheSwgaW5kZXhPZiwgZXh0ZW5kfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgQVNUIGZyb20gJy4vYXN0JztcblxuY29uc3Qgc2xpY2UgPSBbXS5zbGljZTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbXBpbGVyKCkge31cblxuLy8gdGhlIGZvdW5kSGVscGVyIHJlZ2lzdGVyIHdpbGwgZGlzYW1iaWd1YXRlIGhlbHBlciBsb29rdXAgZnJvbSBmaW5kaW5nIGFcbi8vIGZ1bmN0aW9uIGluIGEgY29udGV4dC4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIG11c3RhY2hlIGNvbXBhdGliaWxpdHksIHdoaWNoXG4vLyByZXF1aXJlcyB0aGF0IGNvbnRleHQgZnVuY3Rpb25zIGluIGJsb2NrcyBhcmUgZXZhbHVhdGVkIGJ5IGJsb2NrSGVscGVyTWlzc2luZyxcbi8vIGFuZCB0aGVuIHByb2NlZWQgYXMgaWYgdGhlIHJlc3VsdGluZyB2YWx1ZSB3YXMgcHJvdmlkZWQgdG8gYmxvY2tIZWxwZXJNaXNzaW5nLlxuXG5Db21waWxlci5wcm90b3R5cGUgPSB7XG4gIGNvbXBpbGVyOiBDb21waWxlcixcblxuICBlcXVhbHM6IGZ1bmN0aW9uKG90aGVyKSB7XG4gICAgbGV0IGxlbiA9IHRoaXMub3Bjb2Rlcy5sZW5ndGg7XG4gICAgaWYgKG90aGVyLm9wY29kZXMubGVuZ3RoICE9PSBsZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBsZXQgb3Bjb2RlID0gdGhpcy5vcGNvZGVzW2ldLFxuICAgICAgICAgIG90aGVyT3Bjb2RlID0gb3RoZXIub3Bjb2Rlc1tpXTtcbiAgICAgIGlmIChvcGNvZGUub3Bjb2RlICE9PSBvdGhlck9wY29kZS5vcGNvZGUgfHwgIWFyZ0VxdWFscyhvcGNvZGUuYXJncywgb3RoZXJPcGNvZGUuYXJncykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdlIGtub3cgdGhhdCBsZW5ndGggaXMgdGhlIHNhbWUgYmV0d2VlbiB0aGUgdHdvIGFycmF5cyBiZWNhdXNlIHRoZXkgYXJlIGRpcmVjdGx5IHRpZWRcbiAgICAvLyB0byB0aGUgb3Bjb2RlIGJlaGF2aW9yIGFib3ZlLlxuICAgIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5jaGlsZHJlbltpXS5lcXVhbHMob3RoZXIuY2hpbGRyZW5baV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSxcblxuICBndWlkOiAwLFxuXG4gIGNvbXBpbGU6IGZ1bmN0aW9uKHByb2dyYW0sIG9wdGlvbnMpIHtcbiAgICB0aGlzLnNvdXJjZU5vZGUgPSBbXTtcbiAgICB0aGlzLm9wY29kZXMgPSBbXTtcbiAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnN0cmluZ1BhcmFtcyA9IG9wdGlvbnMuc3RyaW5nUGFyYW1zO1xuICAgIHRoaXMudHJhY2tJZHMgPSBvcHRpb25zLnRyYWNrSWRzO1xuXG4gICAgb3B0aW9ucy5ibG9ja1BhcmFtcyA9IG9wdGlvbnMuYmxvY2tQYXJhbXMgfHwgW107XG5cbiAgICAvLyBUaGVzZSBjaGFuZ2VzIHdpbGwgcHJvcGFnYXRlIHRvIHRoZSBvdGhlciBjb21waWxlciBjb21wb25lbnRzXG4gICAgbGV0IGtub3duSGVscGVycyA9IG9wdGlvbnMua25vd25IZWxwZXJzO1xuICAgIG9wdGlvbnMua25vd25IZWxwZXJzID0ge1xuICAgICAgJ2hlbHBlck1pc3NpbmcnOiB0cnVlLFxuICAgICAgJ2Jsb2NrSGVscGVyTWlzc2luZyc6IHRydWUsXG4gICAgICAnZWFjaCc6IHRydWUsXG4gICAgICAnaWYnOiB0cnVlLFxuICAgICAgJ3VubGVzcyc6IHRydWUsXG4gICAgICAnd2l0aCc6IHRydWUsXG4gICAgICAnbG9nJzogdHJ1ZSxcbiAgICAgICdsb29rdXAnOiB0cnVlXG4gICAgfTtcbiAgICBpZiAoa25vd25IZWxwZXJzKSB7XG4gICAgICBmb3IgKGxldCBuYW1lIGluIGtub3duSGVscGVycykge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAobmFtZSBpbiBrbm93bkhlbHBlcnMpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzW25hbWVdID0ga25vd25IZWxwZXJzW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHByb2dyYW0pO1xuICB9LFxuXG4gIGNvbXBpbGVQcm9ncmFtOiBmdW5jdGlvbihwcm9ncmFtKSB7XG4gICAgbGV0IGNoaWxkQ29tcGlsZXIgPSBuZXcgdGhpcy5jb21waWxlcigpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgICAgICAgcmVzdWx0ID0gY2hpbGRDb21waWxlci5jb21waWxlKHByb2dyYW0sIHRoaXMub3B0aW9ucyksXG4gICAgICAgIGd1aWQgPSB0aGlzLmd1aWQrKztcblxuICAgIHRoaXMudXNlUGFydGlhbCA9IHRoaXMudXNlUGFydGlhbCB8fCByZXN1bHQudXNlUGFydGlhbDtcblxuICAgIHRoaXMuY2hpbGRyZW5bZ3VpZF0gPSByZXN1bHQ7XG4gICAgdGhpcy51c2VEZXB0aHMgPSB0aGlzLnVzZURlcHRocyB8fCByZXN1bHQudXNlRGVwdGhzO1xuXG4gICAgcmV0dXJuIGd1aWQ7XG4gIH0sXG5cbiAgYWNjZXB0OiBmdW5jdGlvbihub2RlKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IFNhbml0eSBjb2RlICovXG4gICAgaWYgKCF0aGlzW25vZGUudHlwZV0pIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1Vua25vd24gdHlwZTogJyArIG5vZGUudHlwZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3VyY2VOb2RlLnVuc2hpZnQobm9kZSk7XG4gICAgbGV0IHJldCA9IHRoaXNbbm9kZS50eXBlXShub2RlKTtcbiAgICB0aGlzLnNvdXJjZU5vZGUuc2hpZnQoKTtcbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIFByb2dyYW06IGZ1bmN0aW9uKHByb2dyYW0pIHtcbiAgICB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXMudW5zaGlmdChwcm9ncmFtLmJsb2NrUGFyYW1zKTtcblxuICAgIGxldCBib2R5ID0gcHJvZ3JhbS5ib2R5LFxuICAgICAgICBib2R5TGVuZ3RoID0gYm9keS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBib2R5TGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuYWNjZXB0KGJvZHlbaV0pO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5zaGlmdCgpO1xuXG4gICAgdGhpcy5pc1NpbXBsZSA9IGJvZHlMZW5ndGggPT09IDE7XG4gICAgdGhpcy5ibG9ja1BhcmFtcyA9IHByb2dyYW0uYmxvY2tQYXJhbXMgPyBwcm9ncmFtLmJsb2NrUGFyYW1zLmxlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBCbG9ja1N0YXRlbWVudDogZnVuY3Rpb24oYmxvY2spIHtcbiAgICB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKGJsb2NrKTtcblxuICAgIGxldCBwcm9ncmFtID0gYmxvY2sucHJvZ3JhbSxcbiAgICAgICAgaW52ZXJzZSA9IGJsb2NrLmludmVyc2U7XG5cbiAgICBwcm9ncmFtID0gcHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKHByb2dyYW0pO1xuICAgIGludmVyc2UgPSBpbnZlcnNlICYmIHRoaXMuY29tcGlsZVByb2dyYW0oaW52ZXJzZSk7XG5cbiAgICBsZXQgdHlwZSA9IHRoaXMuY2xhc3NpZnlTZXhwcihibG9jayk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2hlbHBlcicpIHtcbiAgICAgIHRoaXMuaGVscGVyU2V4cHIoYmxvY2ssIHByb2dyYW0sIGludmVyc2UpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIHRoaXMuc2ltcGxlU2V4cHIoYmxvY2spO1xuXG4gICAgICAvLyBub3cgdGhhdCB0aGUgc2ltcGxlIG11c3RhY2hlIGlzIHJlc29sdmVkLCB3ZSBuZWVkIHRvXG4gICAgICAvLyBldmFsdWF0ZSBpdCBieSBleGVjdXRpbmcgYGJsb2NrSGVscGVyTWlzc2luZ2BcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIHByb2dyYW0pO1xuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG4gICAgICB0aGlzLm9wY29kZSgnZW1wdHlIYXNoJyk7XG4gICAgICB0aGlzLm9wY29kZSgnYmxvY2tWYWx1ZScsIGJsb2NrLnBhdGgub3JpZ2luYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFtYmlndW91c1NleHByKGJsb2NrLCBwcm9ncmFtLCBpbnZlcnNlKTtcblxuICAgICAgLy8gbm93IHRoYXQgdGhlIHNpbXBsZSBtdXN0YWNoZSBpcyByZXNvbHZlZCwgd2UgbmVlZCB0b1xuICAgICAgLy8gZXZhbHVhdGUgaXQgYnkgZXhlY3V0aW5nIGBibG9ja0hlbHBlck1pc3NpbmdgXG4gICAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICAgIHRoaXMub3Bjb2RlKCdwdXNoUHJvZ3JhbScsIGludmVyc2UpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2FtYmlndW91c0Jsb2NrVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wY29kZSgnYXBwZW5kJyk7XG4gIH0sXG5cbiAgRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb2dyYW0gPSBkZWNvcmF0b3IucHJvZ3JhbSAmJiB0aGlzLmNvbXBpbGVQcm9ncmFtKGRlY29yYXRvci5wcm9ncmFtKTtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZXR1cEZ1bGxNdXN0YWNoZVBhcmFtcyhkZWNvcmF0b3IsIHByb2dyYW0sIHVuZGVmaW5lZCksXG4gICAgICAgIHBhdGggPSBkZWNvcmF0b3IucGF0aDtcblxuICAgIHRoaXMudXNlRGVjb3JhdG9ycyA9IHRydWU7XG4gICAgdGhpcy5vcGNvZGUoJ3JlZ2lzdGVyRGVjb3JhdG9yJywgcGFyYW1zLmxlbmd0aCwgcGF0aC5vcmlnaW5hbCk7XG4gIH0sXG5cbiAgUGFydGlhbFN0YXRlbWVudDogZnVuY3Rpb24ocGFydGlhbCkge1xuICAgIHRoaXMudXNlUGFydGlhbCA9IHRydWU7XG5cbiAgICBsZXQgcHJvZ3JhbSA9IHBhcnRpYWwucHJvZ3JhbTtcbiAgICBpZiAocHJvZ3JhbSkge1xuICAgICAgcHJvZ3JhbSA9IHRoaXMuY29tcGlsZVByb2dyYW0ocGFydGlhbC5wcm9ncmFtKTtcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFydGlhbC5wYXJhbXM7XG4gICAgaWYgKHBhcmFtcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBudW1iZXIgb2YgcGFydGlhbCBhcmd1bWVudHM6ICcgKyBwYXJhbXMubGVuZ3RoLCBwYXJ0aWFsKTtcbiAgICB9IGVsc2UgaWYgKCFwYXJhbXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4cGxpY2l0UGFydGlhbENvbnRleHQpIHtcbiAgICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyYW1zLnB1c2goe3R5cGU6ICdQYXRoRXhwcmVzc2lvbicsIHBhcnRzOiBbXSwgZGVwdGg6IDB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGFydGlhbE5hbWUgPSBwYXJ0aWFsLm5hbWUub3JpZ2luYWwsXG4gICAgICAgIGlzRHluYW1pYyA9IHBhcnRpYWwubmFtZS50eXBlID09PSAnU3ViRXhwcmVzc2lvbic7XG4gICAgaWYgKGlzRHluYW1pYykge1xuICAgICAgdGhpcy5hY2NlcHQocGFydGlhbC5uYW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwRnVsbE11c3RhY2hlUGFyYW1zKHBhcnRpYWwsIHByb2dyYW0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cbiAgICBsZXQgaW5kZW50ID0gcGFydGlhbC5pbmRlbnQgfHwgJyc7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmV2ZW50SW5kZW50ICYmIGluZGVudCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBpbmRlbnQpO1xuICAgICAgaW5kZW50ID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5vcGNvZGUoJ2ludm9rZVBhcnRpYWwnLCBpc0R5bmFtaWMsIHBhcnRpYWxOYW1lLCBpbmRlbnQpO1xuICAgIHRoaXMub3Bjb2RlKCdhcHBlbmQnKTtcbiAgfSxcbiAgUGFydGlhbEJsb2NrU3RhdGVtZW50OiBmdW5jdGlvbihwYXJ0aWFsQmxvY2spIHtcbiAgICB0aGlzLlBhcnRpYWxTdGF0ZW1lbnQocGFydGlhbEJsb2NrKTtcbiAgfSxcblxuICBNdXN0YWNoZVN0YXRlbWVudDogZnVuY3Rpb24obXVzdGFjaGUpIHtcbiAgICB0aGlzLlN1YkV4cHJlc3Npb24obXVzdGFjaGUpO1xuXG4gICAgaWYgKG11c3RhY2hlLmVzY2FwZWQgJiYgIXRoaXMub3B0aW9ucy5ub0VzY2FwZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZEVzY2FwZWQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZCcpO1xuICAgIH1cbiAgfSxcbiAgRGVjb3JhdG9yKGRlY29yYXRvcikge1xuICAgIHRoaXMuRGVjb3JhdG9yQmxvY2soZGVjb3JhdG9yKTtcbiAgfSxcblxuXG4gIENvbnRlbnRTdGF0ZW1lbnQ6IGZ1bmN0aW9uKGNvbnRlbnQpIHtcbiAgICBpZiAoY29udGVudC52YWx1ZSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2FwcGVuZENvbnRlbnQnLCBjb250ZW50LnZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgQ29tbWVudFN0YXRlbWVudDogZnVuY3Rpb24oKSB7fSxcblxuICBTdWJFeHByZXNzaW9uOiBmdW5jdGlvbihzZXhwcikge1xuICAgIHRyYW5zZm9ybUxpdGVyYWxUb1BhdGgoc2V4cHIpO1xuICAgIGxldCB0eXBlID0gdGhpcy5jbGFzc2lmeVNleHByKHNleHByKTtcblxuICAgIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgdGhpcy5zaW1wbGVTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaGVscGVyJykge1xuICAgICAgdGhpcy5oZWxwZXJTZXhwcihzZXhwcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYW1iaWd1b3VzU2V4cHIoc2V4cHIpO1xuICAgIH1cbiAgfSxcbiAgYW1iaWd1b3VzU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoLFxuICAgICAgICBuYW1lID0gcGF0aC5wYXJ0c1swXSxcbiAgICAgICAgaXNCbG9jayA9IHByb2dyYW0gIT0gbnVsbCB8fCBpbnZlcnNlICE9IG51bGw7XG5cbiAgICB0aGlzLm9wY29kZSgnZ2V0Q29udGV4dCcsIHBhdGguZGVwdGgpO1xuXG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgcHJvZ3JhbSk7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hQcm9ncmFtJywgaW52ZXJzZSk7XG5cbiAgICBwYXRoLnN0cmljdCA9IHRydWU7XG4gICAgdGhpcy5hY2NlcHQocGF0aCk7XG5cbiAgICB0aGlzLm9wY29kZSgnaW52b2tlQW1iaWd1b3VzJywgbmFtZSwgaXNCbG9jayk7XG4gIH0sXG5cbiAgc2ltcGxlU2V4cHI6IGZ1bmN0aW9uKHNleHByKSB7XG4gICAgbGV0IHBhdGggPSBzZXhwci5wYXRoO1xuICAgIHBhdGguc3RyaWN0ID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2VwdChwYXRoKTtcbiAgICB0aGlzLm9wY29kZSgncmVzb2x2ZVBvc3NpYmxlTGFtYmRhJyk7XG4gIH0sXG5cbiAgaGVscGVyU2V4cHI6IGZ1bmN0aW9uKHNleHByLCBwcm9ncmFtLCBpbnZlcnNlKSB7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2V0dXBGdWxsTXVzdGFjaGVQYXJhbXMoc2V4cHIsIHByb2dyYW0sIGludmVyc2UpLFxuICAgICAgICBwYXRoID0gc2V4cHIucGF0aCxcbiAgICAgICAgbmFtZSA9IHBhdGgucGFydHNbMF07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUtub3duSGVscGVyJywgcGFyYW1zLmxlbmd0aCwgbmFtZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignWW91IHNwZWNpZmllZCBrbm93bkhlbHBlcnNPbmx5LCBidXQgdXNlZCB0aGUgdW5rbm93biBoZWxwZXIgJyArIG5hbWUsIHNleHByKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aC5zdHJpY3QgPSB0cnVlO1xuICAgICAgcGF0aC5mYWxzeSA9IHRydWU7XG5cbiAgICAgIHRoaXMuYWNjZXB0KHBhdGgpO1xuICAgICAgdGhpcy5vcGNvZGUoJ2ludm9rZUhlbHBlcicsIHBhcmFtcy5sZW5ndGgsIHBhdGgub3JpZ2luYWwsIEFTVC5oZWxwZXJzLnNpbXBsZUlkKHBhdGgpKTtcbiAgICB9XG4gIH0sXG5cbiAgUGF0aEV4cHJlc3Npb246IGZ1bmN0aW9uKHBhdGgpIHtcbiAgICB0aGlzLmFkZERlcHRoKHBhdGguZGVwdGgpO1xuICAgIHRoaXMub3Bjb2RlKCdnZXRDb250ZXh0JywgcGF0aC5kZXB0aCk7XG5cbiAgICBsZXQgbmFtZSA9IHBhdGgucGFydHNbMF0sXG4gICAgICAgIHNjb3BlZCA9IEFTVC5oZWxwZXJzLnNjb3BlZElkKHBhdGgpLFxuICAgICAgICBibG9ja1BhcmFtSWQgPSAhcGF0aC5kZXB0aCAmJiAhc2NvcGVkICYmIHRoaXMuYmxvY2tQYXJhbUluZGV4KG5hbWUpO1xuXG4gICAgaWYgKGJsb2NrUGFyYW1JZCkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2xvb2t1cEJsb2NrUGFyYW0nLCBibG9ja1BhcmFtSWQsIHBhdGgucGFydHMpO1xuICAgIH0gZWxzZSBpZiAoIW5hbWUpIHtcbiAgICAgIC8vIENvbnRleHQgcmVmZXJlbmNlLCBpLmUuIGB7e2ZvbyAufX1gIG9yIGB7e2ZvbyAuLn19YFxuICAgICAgdGhpcy5vcGNvZGUoJ3B1c2hDb250ZXh0Jyk7XG4gICAgfSBlbHNlIGlmIChwYXRoLmRhdGEpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgICAgIHRoaXMub3Bjb2RlKCdsb29rdXBEYXRhJywgcGF0aC5kZXB0aCwgcGF0aC5wYXJ0cywgcGF0aC5zdHJpY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wY29kZSgnbG9va3VwT25Db250ZXh0JywgcGF0aC5wYXJ0cywgcGF0aC5mYWxzeSwgcGF0aC5zdHJpY3QsIHNjb3BlZCk7XG4gICAgfVxuICB9LFxuXG4gIFN0cmluZ0xpdGVyYWw6IGZ1bmN0aW9uKHN0cmluZykge1xuICAgIHRoaXMub3Bjb2RlKCdwdXNoU3RyaW5nJywgc3RyaW5nLnZhbHVlKTtcbiAgfSxcblxuICBOdW1iZXJMaXRlcmFsOiBmdW5jdGlvbihudW1iZXIpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCBudW1iZXIudmFsdWUpO1xuICB9LFxuXG4gIEJvb2xlYW5MaXRlcmFsOiBmdW5jdGlvbihib29sKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgYm9vbC52YWx1ZSk7XG4gIH0sXG5cbiAgVW5kZWZpbmVkTGl0ZXJhbDogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5vcGNvZGUoJ3B1c2hMaXRlcmFsJywgJ3VuZGVmaW5lZCcpO1xuICB9LFxuXG4gIE51bGxMaXRlcmFsOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLm9wY29kZSgncHVzaExpdGVyYWwnLCAnbnVsbCcpO1xuICB9LFxuXG4gIEhhc2g6IGZ1bmN0aW9uKGhhc2gpIHtcbiAgICBsZXQgcGFpcnMgPSBoYXNoLnBhaXJzLFxuICAgICAgICBpID0gMCxcbiAgICAgICAgbCA9IHBhaXJzLmxlbmd0aDtcblxuICAgIHRoaXMub3Bjb2RlKCdwdXNoSGFzaCcpO1xuXG4gICAgZm9yICg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHVzaFBhcmFtKHBhaXJzW2ldLnZhbHVlKTtcbiAgICB9XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5vcGNvZGUoJ2Fzc2lnblRvSGFzaCcsIHBhaXJzW2ldLmtleSk7XG4gICAgfVxuICAgIHRoaXMub3Bjb2RlKCdwb3BIYXNoJyk7XG4gIH0sXG5cbiAgLy8gSEVMUEVSU1xuICBvcGNvZGU6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICB0aGlzLm9wY29kZXMucHVzaCh7IG9wY29kZTogbmFtZSwgYXJnczogc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLCBsb2M6IHRoaXMuc291cmNlTm9kZVswXS5sb2MgfSk7XG4gIH0sXG5cbiAgYWRkRGVwdGg6IGZ1bmN0aW9uKGRlcHRoKSB7XG4gICAgaWYgKCFkZXB0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXNlRGVwdGhzID0gdHJ1ZTtcbiAgfSxcblxuICBjbGFzc2lmeVNleHByOiBmdW5jdGlvbihzZXhwcikge1xuICAgIGxldCBpc1NpbXBsZSA9IEFTVC5oZWxwZXJzLnNpbXBsZUlkKHNleHByLnBhdGgpO1xuXG4gICAgbGV0IGlzQmxvY2tQYXJhbSA9IGlzU2ltcGxlICYmICEhdGhpcy5ibG9ja1BhcmFtSW5kZXgoc2V4cHIucGF0aC5wYXJ0c1swXSk7XG5cbiAgICAvLyBhIG11c3RhY2hlIGlzIGFuIGVsaWdpYmxlIGhlbHBlciBpZjpcbiAgICAvLyAqIGl0cyBpZCBpcyBzaW1wbGUgKGEgc2luZ2xlIHBhcnQsIG5vdCBgdGhpc2Agb3IgYC4uYClcbiAgICBsZXQgaXNIZWxwZXIgPSAhaXNCbG9ja1BhcmFtICYmIEFTVC5oZWxwZXJzLmhlbHBlckV4cHJlc3Npb24oc2V4cHIpO1xuXG4gICAgLy8gaWYgYSBtdXN0YWNoZSBpcyBhbiBlbGlnaWJsZSBoZWxwZXIgYnV0IG5vdCBhIGRlZmluaXRlXG4gICAgLy8gaGVscGVyLCBpdCBpcyBhbWJpZ3VvdXMsIGFuZCB3aWxsIGJlIHJlc29sdmVkIGluIGEgbGF0ZXJcbiAgICAvLyBwYXNzIG9yIGF0IHJ1bnRpbWUuXG4gICAgbGV0IGlzRWxpZ2libGUgPSAhaXNCbG9ja1BhcmFtICYmIChpc0hlbHBlciB8fCBpc1NpbXBsZSk7XG5cbiAgICAvLyBpZiBhbWJpZ3VvdXMsIHdlIGNhbiBwb3NzaWJseSByZXNvbHZlIHRoZSBhbWJpZ3VpdHkgbm93XG4gICAgLy8gQW4gZWxpZ2libGUgaGVscGVyIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb21wbGV4IHBhdGgsIGkuZS4gYHRoaXMuZm9vYCwgYC4uL2Zvb2AgZXRjLlxuICAgIGlmIChpc0VsaWdpYmxlICYmICFpc0hlbHBlcikge1xuICAgICAgbGV0IG5hbWUgPSBzZXhwci5wYXRoLnBhcnRzWzBdLFxuICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGlmIChvcHRpb25zLmtub3duSGVscGVyc1tuYW1lXSkge1xuICAgICAgICBpc0hlbHBlciA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua25vd25IZWxwZXJzT25seSkge1xuICAgICAgICBpc0VsaWdpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSGVscGVyKSB7XG4gICAgICByZXR1cm4gJ2hlbHBlcic7XG4gICAgfSBlbHNlIGlmIChpc0VsaWdpYmxlKSB7XG4gICAgICByZXR1cm4gJ2FtYmlndW91cyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnc2ltcGxlJztcbiAgICB9XG4gIH0sXG5cbiAgcHVzaFBhcmFtczogZnVuY3Rpb24ocGFyYW1zKSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBwYXJhbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB0aGlzLnB1c2hQYXJhbShwYXJhbXNbaV0pO1xuICAgIH1cbiAgfSxcblxuICBwdXNoUGFyYW06IGZ1bmN0aW9uKHZhbCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSAhPSBudWxsID8gdmFsLnZhbHVlIDogdmFsLm9yaWdpbmFsIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMuc3RyaW5nUGFyYW1zKSB7XG4gICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXihcXC4/XFwuXFwvKSovZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICcuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwuZGVwdGgpIHtcbiAgICAgICAgdGhpcy5hZGREZXB0aCh2YWwuZGVwdGgpO1xuICAgICAgfVxuICAgICAgdGhpcy5vcGNvZGUoJ2dldENvbnRleHQnLCB2YWwuZGVwdGggfHwgMCk7XG4gICAgICB0aGlzLm9wY29kZSgncHVzaFN0cmluZ1BhcmFtJywgdmFsdWUsIHZhbC50eXBlKTtcblxuICAgICAgaWYgKHZhbC50eXBlID09PSAnU3ViRXhwcmVzc2lvbicpIHtcbiAgICAgICAgLy8gU3ViRXhwcmVzc2lvbnMgZ2V0IGV2YWx1YXRlZCBhbmQgcGFzc2VkIGluXG4gICAgICAgIC8vIGluIHN0cmluZyBwYXJhbXMgbW9kZS5cbiAgICAgICAgdGhpcy5hY2NlcHQodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudHJhY2tJZHMpIHtcbiAgICAgICAgbGV0IGJsb2NrUGFyYW1JbmRleDtcbiAgICAgICAgaWYgKHZhbC5wYXJ0cyAmJiAhQVNULmhlbHBlcnMuc2NvcGVkSWQodmFsKSAmJiAhdmFsLmRlcHRoKSB7XG4gICAgICAgICAgIGJsb2NrUGFyYW1JbmRleCA9IHRoaXMuYmxvY2tQYXJhbUluZGV4KHZhbC5wYXJ0c1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJsb2NrUGFyYW1JbmRleCkge1xuICAgICAgICAgIGxldCBibG9ja1BhcmFtQ2hpbGQgPSB2YWwucGFydHMuc2xpY2UoMSkuam9pbignLicpO1xuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCAnQmxvY2tQYXJhbScsIGJsb2NrUGFyYW1JbmRleCwgYmxvY2tQYXJhbUNoaWxkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbC5vcmlnaW5hbCB8fCB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUucmVwbGFjZSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9edGhpcyg/OlxcLnwkKS8sICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9eXFwuXFwvLywgJycpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL15cXC4kLywgJycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMub3Bjb2RlKCdwdXNoSWQnLCB2YWwudHlwZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmFjY2VwdCh2YWwpO1xuICAgIH1cbiAgfSxcblxuICBzZXR1cEZ1bGxNdXN0YWNoZVBhcmFtczogZnVuY3Rpb24oc2V4cHIsIHByb2dyYW0sIGludmVyc2UsIG9taXRFbXB0eSkge1xuICAgIGxldCBwYXJhbXMgPSBzZXhwci5wYXJhbXM7XG4gICAgdGhpcy5wdXNoUGFyYW1zKHBhcmFtcyk7XG5cbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBwcm9ncmFtKTtcbiAgICB0aGlzLm9wY29kZSgncHVzaFByb2dyYW0nLCBpbnZlcnNlKTtcblxuICAgIGlmIChzZXhwci5oYXNoKSB7XG4gICAgICB0aGlzLmFjY2VwdChzZXhwci5oYXNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGNvZGUoJ2VtcHR5SGFzaCcsIG9taXRFbXB0eSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfSxcblxuICBibG9ja1BhcmFtSW5kZXg6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBmb3IgKGxldCBkZXB0aCA9IDAsIGxlbiA9IHRoaXMub3B0aW9ucy5ibG9ja1BhcmFtcy5sZW5ndGg7IGRlcHRoIDwgbGVuOyBkZXB0aCsrKSB7XG4gICAgICBsZXQgYmxvY2tQYXJhbXMgPSB0aGlzLm9wdGlvbnMuYmxvY2tQYXJhbXNbZGVwdGhdLFxuICAgICAgICAgIHBhcmFtID0gYmxvY2tQYXJhbXMgJiYgaW5kZXhPZihibG9ja1BhcmFtcywgbmFtZSk7XG4gICAgICBpZiAoYmxvY2tQYXJhbXMgJiYgcGFyYW0gPj0gMCkge1xuICAgICAgICByZXR1cm4gW2RlcHRoLCBwYXJhbV07XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlY29tcGlsZShpbnB1dCwgb3B0aW9ucywgZW52KSB7XG4gIGlmIChpbnB1dCA9PSBudWxsIHx8ICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmIGlucHV0LnR5cGUgIT09ICdQcm9ncmFtJykpIHtcbiAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdZb3UgbXVzdCBwYXNzIGEgc3RyaW5nIG9yIEhhbmRsZWJhcnMgQVNUIHRvIEhhbmRsZWJhcnMucHJlY29tcGlsZS4gWW91IHBhc3NlZCAnICsgaW5wdXQpO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGlmICghKCdkYXRhJyBpbiBvcHRpb25zKSkge1xuICAgIG9wdGlvbnMuZGF0YSA9IHRydWU7XG4gIH1cbiAgaWYgKG9wdGlvbnMuY29tcGF0KSB7XG4gICAgb3B0aW9ucy51c2VEZXB0aHMgPSB0cnVlO1xuICB9XG5cbiAgbGV0IGFzdCA9IGVudi5wYXJzZShpbnB1dCwgb3B0aW9ucyksXG4gICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXcgZW52LkphdmFTY3JpcHRDb21waWxlcigpLmNvbXBpbGUoZW52aXJvbm1lbnQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShpbnB1dCwgb3B0aW9ucyA9IHt9LCBlbnYpIHtcbiAgaWYgKGlucHV0ID09IG51bGwgfHwgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycgJiYgaW5wdXQudHlwZSAhPT0gJ1Byb2dyYW0nKSkge1xuICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1lvdSBtdXN0IHBhc3MgYSBzdHJpbmcgb3IgSGFuZGxlYmFycyBBU1QgdG8gSGFuZGxlYmFycy5jb21waWxlLiBZb3UgcGFzc2VkICcgKyBpbnB1dCk7XG4gIH1cblxuICBvcHRpb25zID0gZXh0ZW5kKHt9LCBvcHRpb25zKTtcbiAgaWYgKCEoJ2RhdGEnIGluIG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gdHJ1ZTtcbiAgfVxuICBpZiAob3B0aW9ucy5jb21wYXQpIHtcbiAgICBvcHRpb25zLnVzZURlcHRocyA9IHRydWU7XG4gIH1cblxuICBsZXQgY29tcGlsZWQ7XG5cbiAgZnVuY3Rpb24gY29tcGlsZUlucHV0KCkge1xuICAgIGxldCBhc3QgPSBlbnYucGFyc2UoaW5wdXQsIG9wdGlvbnMpLFxuICAgICAgICBlbnZpcm9ubWVudCA9IG5ldyBlbnYuQ29tcGlsZXIoKS5jb21waWxlKGFzdCwgb3B0aW9ucyksXG4gICAgICAgIHRlbXBsYXRlU3BlYyA9IG5ldyBlbnYuSmF2YVNjcmlwdENvbXBpbGVyKCkuY29tcGlsZShlbnZpcm9ubWVudCwgb3B0aW9ucywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICByZXR1cm4gZW52LnRlbXBsYXRlKHRlbXBsYXRlU3BlYyk7XG4gIH1cblxuICAvLyBUZW1wbGF0ZSBpcyBvbmx5IGNvbXBpbGVkIG9uIGZpcnN0IHVzZSBhbmQgY2FjaGVkIGFmdGVyIHRoYXQgcG9pbnQuXG4gIGZ1bmN0aW9uIHJldChjb250ZXh0LCBleGVjT3B0aW9ucykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5jYWxsKHRoaXMsIGNvbnRleHQsIGV4ZWNPcHRpb25zKTtcbiAgfVxuICByZXQuX3NldHVwID0gZnVuY3Rpb24oc2V0dXBPcHRpb25zKSB7XG4gICAgaWYgKCFjb21waWxlZCkge1xuICAgICAgY29tcGlsZWQgPSBjb21waWxlSW5wdXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbXBpbGVkLl9zZXR1cChzZXR1cE9wdGlvbnMpO1xuICB9O1xuICByZXQuX2NoaWxkID0gZnVuY3Rpb24oaSwgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocykge1xuICAgIGlmICghY29tcGlsZWQpIHtcbiAgICAgIGNvbXBpbGVkID0gY29tcGlsZUlucHV0KCk7XG4gICAgfVxuICAgIHJldHVybiBjb21waWxlZC5fY2hpbGQoaSwgZGF0YSwgYmxvY2tQYXJhbXMsIGRlcHRocyk7XG4gIH07XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIGFyZ0VxdWFscyhhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNBcnJheShhKSAmJiBpc0FycmF5KGIpICYmIGEubGVuZ3RoID09PSBiLmxlbmd0aCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFhcmdFcXVhbHMoYVtpXSwgYltpXSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1MaXRlcmFsVG9QYXRoKHNleHByKSB7XG4gIGlmICghc2V4cHIucGF0aC5wYXJ0cykge1xuICAgIGxldCBsaXRlcmFsID0gc2V4cHIucGF0aDtcbiAgICAvLyBDYXN0aW5nIHRvIHN0cmluZyBoZXJlIHRvIG1ha2UgZmFsc2UgYW5kIDAgbGl0ZXJhbCB2YWx1ZXMgcGxheSBuaWNlbHkgd2l0aCB0aGUgcmVzdFxuICAgIC8vIG9mIHRoZSBzeXN0ZW0uXG4gICAgc2V4cHIucGF0aCA9IHtcbiAgICAgIHR5cGU6ICdQYXRoRXhwcmVzc2lvbicsXG4gICAgICBkYXRhOiBmYWxzZSxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgcGFydHM6IFtsaXRlcmFsLm9yaWdpbmFsICsgJyddLFxuICAgICAgb3JpZ2luYWw6IGxpdGVyYWwub3JpZ2luYWwgKyAnJyxcbiAgICAgIGxvYzogbGl0ZXJhbC5sb2NcbiAgICB9O1xuICB9XG59XG4iXX0=
;
define('handlebars/compiler/code-gen',['exports', 'module', '../utils'], function (exports, module, _utils) {
/* global define */
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.min.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.min.js
index b66cc6769..bb9706b22 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.min.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.amd.min.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -24,6 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-define("handlebars/utils",["exports"],function(a){"use strict";function b(a){return j[a]}function c(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function d(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,b):a}function f(a){return!a&&0!==a||!(!o(a)||0!==a.length)}function g(a){var b=c({},a);return b._parent=a,b}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.createFrame=g,a.blockParams=h,a.appendContextPath=i;var j={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},k=/[&<>"'`=]/g,l=/[&<>"'`=]/,m=Object.prototype.toString;a.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(a.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)}),a.isFunction=n;var o=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===m.call(a)};a.isArray=o}),define("handlebars/exception",["exports","module"],function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i<d.length;i++)this[d[i]]=h[d[i]];Error.captureStackTrace&&Error.captureStackTrace(this,c);try{e&&(this.lineNumber=f,Object.defineProperty?Object.defineProperty(this,"column",{value:g,enumerable:!0}):this.column=g)}catch(j){}}var d=["description","fileName","lineNumber","message","name","number","stack"];c.prototype=new Error,b.exports=c}),define("handlebars/helpers/block-helper-missing",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("blockHelperMissing",function(b,d){var e=d.inverse,f=d.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(c.isArray(b))return b.length>0?(d.ids&&(d.ids=[d.name]),a.helpers.each(b,d)):e(this);if(d.data&&d.ids){var g=c.createFrame(d.data);g.contextPath=c.appendContextPath(d.data.contextPath,d.name),d={data:g}}return f(b,d)})}}),define("handlebars/helpers/each",["exports","module","../utils","../exception"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}var f=e(d);b.exports=function(a){a.registerHelper("each",function(a,b){function d(b,d,f){j&&(j.key=b,j.index=d,j.first=0===d,j.last=!!f,k&&(j.contextPath=k+b)),i+=e(a[b],{data:j,blockParams:c.blockParams([a[b],b],[k+b,null])})}if(!b)throw new f["default"]("Must pass iterator to #each");var e=b.fn,g=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=c.appendContextPath(b.data.contextPath,b.ids[0])+"."),c.isFunction(a)&&(a=a.call(this)),b.data&&(j=c.createFrame(b.data)),a&&"object"==typeof a)if(c.isArray(a))for(var l=a.length;h<l;h++)h in a&&d(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&d(m,h-1),m=n,h++);void 0!==m&&d(m,h-1,!0)}return 0===h&&(i=g(this)),i})}}),define("handlebars/helpers/helper-missing",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}var e=d(c);b.exports=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new e["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})}}),define("handlebars/helpers/if",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("if",function(a,b){return c.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||c.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})}}),define("handlebars/helpers/log",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})}}),define("handlebars/helpers/lookup",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})}}),define("handlebars/helpers/with",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("with",function(a,b){c.isFunction(a)&&(a=a.call(this));var d=b.fn;if(c.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=c.createFrame(b.data),e.contextPath=c.appendContextPath(b.data.contextPath,b.ids[0])),d(a,{data:e,blockParams:c.blockParams([a],[e&&e.contextPath])})})}}),define("handlebars/helpers",["exports","./helpers/block-helper-missing","./helpers/each","./helpers/helper-missing","./helpers/if","./helpers/log","./helpers/lookup","./helpers/with"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(a){k["default"](a),l["default"](a),m["default"](a),n["default"](a),o["default"](a),p["default"](a),q["default"](a)}a.__esModule=!0,a.registerDefaultHelpers=j;var k=i(b),l=i(c),m=i(d),n=i(e),o=i(f),p=i(g),q=i(h)}),define("handlebars/decorators/inline",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerDecorator("inline",function(a,b,d,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=d.partials;d.partials=c.extend({},g,b.partials);var h=a(e,f);return d.partials=g,h}),b.partials[e.args[0]]=e.fn,f})}}),define("handlebars/decorators",["exports","./decorators/inline"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a){e["default"](a)}a.__esModule=!0,a.registerDefaultDecorators=d;var e=c(b)}),define("handlebars/logger",["exports","module","./utils"],function(a,b,c){"use strict";var d={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=c.indexOf(d.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=d.lookupLevel(a),"undefined"!=typeof console&&d.lookupLevel(d.level)<=a){var b=d.methodMap[a];console[b]||(b="log");for(var c=arguments.length,e=Array(c>1?c-1:0),f=1;f<c;f++)e[f-1]=arguments[f];console[b].apply(console,e)}}};b.exports=d}),define("handlebars/base",["exports","./utils","./exception","./helpers","./decorators","./logger"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},d.registerDefaultHelpers(this),e.registerDefaultDecorators(this)}a.__esModule=!0,a.HandlebarsEnvironment=h;var i=g(c),j=g(f),k="4.0.8";a.VERSION=k;var l=7;a.COMPILER_REVISION=l;var m={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};a.REVISION_CHANGES=m;var n="[object Object]";h.prototype={constructor:h,logger:j["default"],log:j["default"].log,registerHelper:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(b.toString.call(a)===n)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new i["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple decorators");b.extend(this.decorators,a)}else this.decorators[a]=c},unregisterDecorator:function(a){delete this.decorators[a]}};var o=j["default"].log;a.log=o,a.createFrame=b.createFrame,a.logger=j["default"]}),define("handlebars/safe-string",["exports","module"],function(a,b){"use strict";function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(b<c){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new n["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new n["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function g(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash),f.ids&&(f.ids[0]=!0)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;i<j&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new n["default"]("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){function c(b){return""+a.main(f,b,f.helpers,f.partials,g,i,h)}var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=d.data;e._setup(d),!d.partial&&a.useData&&(g=l(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=d.depths?b!=d.depths[0]?[b].concat(d.depths):d.depths:[b]),(c=m(a.main,c,f,d.depths||[],g,i))(b,d)}if(!c)throw new n["default"]("No environment passed to template");if(!a||!a.main)throw new n["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new n["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],g=this.fn(a);return b||e||d||c?f=h(this,a,g,b,c,d,e):f||(f=this.programs[a]=h(this,a,g)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},nullContext:Object.seal({}),noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials,f.decorators=b.decorators):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)),(a.usePartial||a.useDecorators)&&(f.decorators=f.merge(b.decorators,c.decorators)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new n["default"]("must pass block params");if(a.useDepths&&!e)throw new n["default"]("must pass parent depths");return h(f,b,a[b],c,0,d,e)},e}function h(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=m(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function i(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function j(a,c,e){var f=e.data&&e.data["partial-block"];e.partial=!0,e.ids&&(e.data.contextPath=e.ids[0]||e.data.contextPath);var g=void 0;if(e.fn&&e.fn!==k&&!function(){e.data=d.createFrame(e.data);var a=e.fn;g=e.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=d.createFrame(c.data),c.data["partial-block"]=f,a(b,c)},a.partials&&(e.partials=b.extend({},e.partials,a.partials))}(),void 0===a&&g&&(a=g),void 0===a)throw new n["default"]("The partial "+e.name+" could not be found");if(a instanceof Function)return a(c,e)}function k(){return""}function l(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}function m(a,c,d,e,f,g){if(a.decorator){var h={};c=a.decorator(c,h,d,e&&e[0],f,g,e),b.extend(c,h)}return c}a.__esModule=!0,a.checkRevision=f,a.template=g,a.wrapProgram=h,a.resolvePartial=i,a.invokePartial=j,a.noop=k;var n=e(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){"use strict";b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=c),a}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k["default"],a.Exception=l["default"],a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var k=i(d),l=i(e),m=i(h),n=j();n.create=j,m["default"](n),n["default"]=n,b.exports=n}),define("handlebars/compiler/ast",["exports","module"],function(a,b){"use strict";var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b.exports=c}),define("handlebars/compiler/parser",["exports","module"],function(a,b){"use strict";var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){throw new Error(a);
-},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null!==n&&"undefined"!=typeof n||(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b.exports=c}),define("handlebars/compiler/visitor",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(){this.parents=[]}function f(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function g(a){f.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function h(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var i=d(c);e.prototype={constructor:e,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!e.prototype[c.type])throw new i["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new i["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;b<c;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new i["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:f,Decorator:f,BlockStatement:g,DecoratorBlock:g,PartialStatement:h,PartialBlockStatement:function(a){h.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:f,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b.exports=e}),define("handlebars/compiler/whitespace-control",["exports","module","./visitor"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function f(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function g(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function h(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function i(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var j=d(c);e.prototype=new j["default"],e.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,e=0,j=d.length;e<j;e++){var k=d[e],l=this.accept(k);if(l){var m=f(d,e,c),n=g(d,e,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&h(d,e,!0),l.open&&i(d,e,!0),b&&q&&(h(d,e),i(d,e)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[e-1].original)[1])),b&&o&&(h((k.program||k.inverse).body),i(d,e)),b&&p&&(h(d,e),i((k.inverse||k.program).body))}}return a},e.prototype.BlockStatement=e.prototype.DecoratorBlock=e.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,e=c;if(c&&c.chained)for(d=c.body[0].program;e.chained;)e=e.body[e.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:g(b.body),closeStandalone:f((d||b).body)};if(a.openStrip.close&&h(b.body,null,!0),c){var k=a.inverseStrip;k.open&&i(b.body,null,!0),k.close&&h(d.body,null,!0),a.closeStrip.open&&i(e.body,null,!0),!this.options.ignoreStandalone&&f(b.body)&&g(d.body)&&(i(b.body),h(d.body))}else a.closeStrip.open&&i(b.body,null,!0);return j},e.prototype.Decorator=e.prototype.MustacheStatement=function(a){return a.strip},e.prototype.PartialStatement=e.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b.exports=e}),define("handlebars/compiler/helpers",["exports","../exception"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new o["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;h<i;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new o["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new o["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}a.__esModule=!0,a.SourceLocation=e,a.id=f,a.stripFlags=g,a.stripComment=h,a.preparePath=i,a.prepareMustache=j,a.prepareRawBlock=k,a.prepareBlock=l,a.prepareProgram=m,a.preparePartialBlock=n;var o=c(b)}),define("handlebars/compiler/base",["exports","./parser","./whitespace-control","./helpers","../utils"],function(a,b,c,d,e){"use strict";function f(a){return a&&a.__esModule?a:{"default":a}}function g(a,b){if("Program"===a.type)return a;h["default"].yy=j,j.locInfo=function(a){return new j.SourceLocation(b&&b.srcName,a)};var c=new i["default"](b);return c.accept(h["default"].parse(a))}a.__esModule=!0,a.parse=g;var h=f(b),i=f(c);a.parser=h["default"];var j={};e.extend(j,d)}),define("handlebars/compiler/compiler",["exports","../exception","../utils","./ast"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(){}function g(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function h(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function i(a,b){if(a===b)return!0;if(c.isArray(a)&&c.isArray(b)&&a.length===b.length){for(var d=0;d<a.length;d++)if(!i(a[d],b[d]))return!1;return!0}}function j(a){if(!a.path.parts){var b=a.path;a.path={type:"PathExpression",data:!1,depth:0,parts:[b.original+""],original:b.original+"",loc:b.loc}}}a.__esModule=!0,a.Compiler=f,a.precompile=g,a.compile=h;var k=e(b),l=e(d),m=[].slice;f.prototype={compiler:f,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;c<b;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!i(d.args,e.args))return!1}b=this.children.length;for(var c=0;c<b;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;d<c;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){j(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){j(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,l["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=l["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");c<d;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:m.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=l["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&l["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;b<c;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||l["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,d=this.options.blockParams.length;b<d;b++){var e=this.options.blockParams[b],f=e&&c.indexOf(e,a);if(e&&f>=0)return[b,f]}}}}),define("handlebars/compiler/code-gen",["exports","module","../utils"],function(a,b,c){"use strict";function d(a,b,d){if(c.isArray(a)){for(var e=[],f=0,g=a.length;f<g;f++)e.push(b.wrap(a[f],d));return e}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}var f=void 0;try{if("function"!=typeof define||!define.amd){var g=require("source-map");f=g.SourceNode}}catch(h){}f||(f=function(a,b,c,d){this.src="",d&&this.add(d)},f.prototype={add:function(a){c.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){c.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;b<c;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new f(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof f?a:(a=d(a,this,b),new f(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;c<e;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b.exports=e}),define("handlebars/compiler/javascript-compiler",["exports","module","../base","../exception","../utils","./code-gen"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a){this.value=a}function i(){}function j(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f<g;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var k=g(d),l=g(f);i.prototype={nameLookup:function(a,b){return i.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=c.COMPILER_REVISION,b=c.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return e.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;h<i;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new k["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var j=this.createFunctionContext(d);if(this.isChild)return j;var l={compiler:this.compilerInfo(),main:j};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;h<i;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new l["default"](this.options.srcName),this.decorators=new l["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var f=this;if(this.options.strict||this.options.assumeObjects)return void this.push(j(this.options.strict&&e,this,b,a));for(var g=b.length;c<g;c++)this.replaceStack(function(e){var g=f.nameLookup(e,b[c],a);return d?[" && ",g]:[" != null ? ",g," : ",e]})},resolvePossibleLambda:function(){
-this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;f<g;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);if(null==h){this.context.programs.push("");var i=this.context.programs.length;d.index=i,d.name="program"+i,this.context.programs[i]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[i]=e.decorators,this.context.environments[i]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams,d.useDepths=this.useDepths,d.useBlockParams=this.useBlockParams}else d.index=h.index,d.name="program"+h.index,this.useDepths=this.useDepths||h.useDepths,this.useBlockParams=this.useBlockParams||h.useBlockParams}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;b<c;b++){var d=this.context.environments[b];if(d&&d.equals(a))return d}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof h||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new h(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,d=void 0,e=void 0;if(!this.isInline())throw new k["default"]("replaceStack on non-inline");var f=this.popStack(!0);if(f instanceof h)c=[f.value],b=["(",c],e=!0;else{d=!0;var g=this.incrStack();b=["((",this.push(g)," = ",f,")"],c=this.topStack()}var i=a.call(this,c);e||this.popStack(),d&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];if(d instanceof h)this.compileStack.push(d);else{var e=this.incrStack();this.pushSource([e," = ",d,";"]),this.compileStack.push(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof h)return c.value;if(!b){if(!this.stackSlot)throw new k["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof h?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=i.RESERVED_WORDS={},c=0,d=a.length;c<d;c++)b[a[c]]=!0}(),i.isValidJavaScriptVariableName=function(a){return!i.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b.exports=i}),define("handlebars",["exports","module","./handlebars.runtime","./handlebars/compiler/ast","./handlebars/compiler/base","./handlebars/compiler/compiler","./handlebars/compiler/javascript-compiler","./handlebars/compiler/visitor","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h,i){"use strict";function j(a){return a&&a.__esModule?a:{"default":a}}function k(){var a=q();return a.compile=function(b,c){return f.compile(b,c,a)},a.precompile=function(b,c){return f.precompile(b,c,a)},a.AST=m["default"],a.Compiler=f.Compiler,a.JavaScriptCompiler=n["default"],a.Parser=e.parser,a.parse=e.parse,a}var l=j(c),m=j(d),n=j(g),o=j(h),p=j(i),q=l["default"].create,r=k();r.create=k,p["default"](r),r.Visitor=o["default"],r["default"]=r,b.exports=r}); \ No newline at end of file
+define("handlebars/utils",["exports"],function(a){"use strict";function b(a){return j[a]}function c(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function d(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,b):a}function f(a){return!a&&0!==a||!(!o(a)||0!==a.length)}function g(a){var b=c({},a);return b._parent=a,b}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.createFrame=g,a.blockParams=h,a.appendContextPath=i;var j={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},k=/[&<>"'`=]/g,l=/[&<>"'`=]/,m=Object.prototype.toString;a.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(a.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)}),a.isFunction=n;var o=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===m.call(a)};a.isArray=o}),define("handlebars/exception",["exports","module"],function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i<d.length;i++)this[d[i]]=h[d[i]];Error.captureStackTrace&&Error.captureStackTrace(this,c);try{e&&(this.lineNumber=f,Object.defineProperty?Object.defineProperty(this,"column",{value:g,enumerable:!0}):this.column=g)}catch(j){}}var d=["description","fileName","lineNumber","message","name","number","stack"];c.prototype=new Error,b.exports=c}),define("handlebars/helpers/block-helper-missing",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("blockHelperMissing",function(b,d){var e=d.inverse,f=d.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(c.isArray(b))return b.length>0?(d.ids&&(d.ids=[d.name]),a.helpers.each(b,d)):e(this);if(d.data&&d.ids){var g=c.createFrame(d.data);g.contextPath=c.appendContextPath(d.data.contextPath,d.name),d={data:g}}return f(b,d)})}}),define("handlebars/helpers/each",["exports","module","../utils","../exception"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}var f=e(d);b.exports=function(a){a.registerHelper("each",function(a,b){function d(b,d,f){j&&(j.key=b,j.index=d,j.first=0===d,j.last=!!f,k&&(j.contextPath=k+b)),i+=e(a[b],{data:j,blockParams:c.blockParams([a[b],b],[k+b,null])})}if(!b)throw new f["default"]("Must pass iterator to #each");var e=b.fn,g=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=c.appendContextPath(b.data.contextPath,b.ids[0])+"."),c.isFunction(a)&&(a=a.call(this)),b.data&&(j=c.createFrame(b.data)),a&&"object"==typeof a)if(c.isArray(a))for(var l=a.length;h<l;h++)h in a&&d(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&d(m,h-1),m=n,h++);void 0!==m&&d(m,h-1,!0)}return 0===h&&(i=g(this)),i})}}),define("handlebars/helpers/helper-missing",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}var e=d(c);b.exports=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new e["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})}}),define("handlebars/helpers/if",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("if",function(a,b){return c.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||c.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})}}),define("handlebars/helpers/log",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})}}),define("handlebars/helpers/lookup",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})}}),define("handlebars/helpers/with",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("with",function(a,b){c.isFunction(a)&&(a=a.call(this));var d=b.fn;if(c.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=c.createFrame(b.data),e.contextPath=c.appendContextPath(b.data.contextPath,b.ids[0])),d(a,{data:e,blockParams:c.blockParams([a],[e&&e.contextPath])})})}}),define("handlebars/helpers",["exports","./helpers/block-helper-missing","./helpers/each","./helpers/helper-missing","./helpers/if","./helpers/log","./helpers/lookup","./helpers/with"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(a){k["default"](a),l["default"](a),m["default"](a),n["default"](a),o["default"](a),p["default"](a),q["default"](a)}a.__esModule=!0,a.registerDefaultHelpers=j;var k=i(b),l=i(c),m=i(d),n=i(e),o=i(f),p=i(g),q=i(h)}),define("handlebars/decorators/inline",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerDecorator("inline",function(a,b,d,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=d.partials;d.partials=c.extend({},g,b.partials);var h=a(e,f);return d.partials=g,h}),b.partials[e.args[0]]=e.fn,f})}}),define("handlebars/decorators",["exports","./decorators/inline"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a){e["default"](a)}a.__esModule=!0,a.registerDefaultDecorators=d;var e=c(b)}),define("handlebars/logger",["exports","module","./utils"],function(a,b,c){"use strict";var d={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=c.indexOf(d.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=d.lookupLevel(a),"undefined"!=typeof console&&d.lookupLevel(d.level)<=a){var b=d.methodMap[a];console[b]||(b="log");for(var c=arguments.length,e=Array(c>1?c-1:0),f=1;f<c;f++)e[f-1]=arguments[f];console[b].apply(console,e)}}};b.exports=d}),define("handlebars/base",["exports","./utils","./exception","./helpers","./decorators","./logger"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},d.registerDefaultHelpers(this),e.registerDefaultDecorators(this)}a.__esModule=!0,a.HandlebarsEnvironment=h;var i=g(c),j=g(f),k="4.0.10";a.VERSION=k;var l=7;a.COMPILER_REVISION=l;var m={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};a.REVISION_CHANGES=m;var n="[object Object]";h.prototype={constructor:h,logger:j["default"],log:j["default"].log,registerHelper:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(b.toString.call(a)===n)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new i["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple decorators");b.extend(this.decorators,a)}else this.decorators[a]=c},unregisterDecorator:function(a){delete this.decorators[a]}};var o=j["default"].log;a.log=o,a.createFrame=b.createFrame,a.logger=j["default"]}),define("handlebars/safe-string",["exports","module"],function(a,b){"use strict";function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(b<c){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new n["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new n["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function g(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash),f.ids&&(f.ids[0]=!0)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;i<j&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new n["default"]("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){function c(b){return""+a.main(f,b,f.helpers,f.partials,g,i,h)}var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=d.data;e._setup(d),!d.partial&&a.useData&&(g=l(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=d.depths?b!=d.depths[0]?[b].concat(d.depths):d.depths:[b]),(c=m(a.main,c,f,d.depths||[],g,i))(b,d)}if(!c)throw new n["default"]("No environment passed to template");if(!a||!a.main)throw new n["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new n["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],g=this.fn(a);return b||e||d||c?f=h(this,a,g,b,c,d,e):f||(f=this.programs[a]=h(this,a,g)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},nullContext:Object.seal({}),noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials,f.decorators=b.decorators):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)),(a.usePartial||a.useDecorators)&&(f.decorators=f.merge(b.decorators,c.decorators)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new n["default"]("must pass block params");if(a.useDepths&&!e)throw new n["default"]("must pass parent depths");return h(f,b,a[b],c,0,d,e)},e}function h(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=m(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function i(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function j(a,c,e){var f=e.data&&e.data["partial-block"];e.partial=!0,e.ids&&(e.data.contextPath=e.ids[0]||e.data.contextPath);var g=void 0;if(e.fn&&e.fn!==k&&!function(){e.data=d.createFrame(e.data);var a=e.fn;g=e.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=d.createFrame(c.data),c.data["partial-block"]=f,a(b,c)},a.partials&&(e.partials=b.extend({},e.partials,a.partials))}(),void 0===a&&g&&(a=g),void 0===a)throw new n["default"]("The partial "+e.name+" could not be found");if(a instanceof Function)return a(c,e)}function k(){return""}function l(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}function m(a,c,d,e,f,g){if(a.decorator){var h={};c=a.decorator(c,h,d,e&&e[0],f,g,e),b.extend(c,h)}return c}a.__esModule=!0,a.checkRevision=f,a.template=g,a.wrapProgram=h,a.resolvePartial=i,a.invokePartial=j,a.noop=k;var n=e(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){"use strict";b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=c),a}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k["default"],a.Exception=l["default"],a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var k=i(d),l=i(e),m=i(h),n=j();n.create=j,m["default"](n),n["default"]=n,b.exports=n}),define("handlebars/compiler/ast",["exports","module"],function(a,b){"use strict";var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b.exports=c}),define("handlebars/compiler/parser",["exports","module"],function(a,b){"use strict";var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){
+throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null!==n&&"undefined"!=typeof n||(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b.exports=c}),define("handlebars/compiler/visitor",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(){this.parents=[]}function f(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function g(a){f.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function h(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var i=d(c);e.prototype={constructor:e,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!e.prototype[c.type])throw new i["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new i["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;b<c;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new i["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:f,Decorator:f,BlockStatement:g,DecoratorBlock:g,PartialStatement:h,PartialBlockStatement:function(a){h.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:f,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b.exports=e}),define("handlebars/compiler/whitespace-control",["exports","module","./visitor"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function f(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function g(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function h(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function i(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var j=d(c);e.prototype=new j["default"],e.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,e=0,j=d.length;e<j;e++){var k=d[e],l=this.accept(k);if(l){var m=f(d,e,c),n=g(d,e,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&h(d,e,!0),l.open&&i(d,e,!0),b&&q&&(h(d,e),i(d,e)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[e-1].original)[1])),b&&o&&(h((k.program||k.inverse).body),i(d,e)),b&&p&&(h(d,e),i((k.inverse||k.program).body))}}return a},e.prototype.BlockStatement=e.prototype.DecoratorBlock=e.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,e=c;if(c&&c.chained)for(d=c.body[0].program;e.chained;)e=e.body[e.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:g(b.body),closeStandalone:f((d||b).body)};if(a.openStrip.close&&h(b.body,null,!0),c){var k=a.inverseStrip;k.open&&i(b.body,null,!0),k.close&&h(d.body,null,!0),a.closeStrip.open&&i(e.body,null,!0),!this.options.ignoreStandalone&&f(b.body)&&g(d.body)&&(i(b.body),h(d.body))}else a.closeStrip.open&&i(b.body,null,!0);return j},e.prototype.Decorator=e.prototype.MustacheStatement=function(a){return a.strip},e.prototype.PartialStatement=e.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b.exports=e}),define("handlebars/compiler/helpers",["exports","../exception"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new o["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;h<i;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new o["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new o["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}a.__esModule=!0,a.SourceLocation=e,a.id=f,a.stripFlags=g,a.stripComment=h,a.preparePath=i,a.prepareMustache=j,a.prepareRawBlock=k,a.prepareBlock=l,a.prepareProgram=m,a.preparePartialBlock=n;var o=c(b)}),define("handlebars/compiler/base",["exports","./parser","./whitespace-control","./helpers","../utils"],function(a,b,c,d,e){"use strict";function f(a){return a&&a.__esModule?a:{"default":a}}function g(a,b){if("Program"===a.type)return a;h["default"].yy=j,j.locInfo=function(a){return new j.SourceLocation(b&&b.srcName,a)};var c=new i["default"](b);return c.accept(h["default"].parse(a))}a.__esModule=!0,a.parse=g;var h=f(b),i=f(c);a.parser=h["default"];var j={};e.extend(j,d)}),define("handlebars/compiler/compiler",["exports","../exception","../utils","./ast"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(){}function g(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function h(a,b,d){function e(){var c=d.parse(a,b),e=(new d.Compiler).compile(c,b),f=(new d.JavaScriptCompiler).compile(e,b,void 0,!0);return d.template(f)}function f(a,b){return g||(g=e()),g.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=c.extend({},b),"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var g=void 0;return f._setup=function(a){return g||(g=e()),g._setup(a)},f._child=function(a,b,c,d){return g||(g=e()),g._child(a,b,c,d)},f}function i(a,b){if(a===b)return!0;if(c.isArray(a)&&c.isArray(b)&&a.length===b.length){for(var d=0;d<a.length;d++)if(!i(a[d],b[d]))return!1;return!0}}function j(a){if(!a.path.parts){var b=a.path;a.path={type:"PathExpression",data:!1,depth:0,parts:[b.original+""],original:b.original+"",loc:b.loc}}}a.__esModule=!0,a.Compiler=f,a.precompile=g,a.compile=h;var k=e(b),l=e(d),m=[].slice;f.prototype={compiler:f,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;c<b;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!i(d.args,e.args))return!1}b=this.children.length;for(var c=0;c<b;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(this.options.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;d<c;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){j(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){j(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,l["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=l["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");c<d;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:m.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=l["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&l["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;b<c;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||l["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,d=this.options.blockParams.length;b<d;b++){var e=this.options.blockParams[b],f=e&&c.indexOf(e,a);if(e&&f>=0)return[b,f]}}}}),define("handlebars/compiler/code-gen",["exports","module","../utils"],function(a,b,c){"use strict";function d(a,b,d){if(c.isArray(a)){for(var e=[],f=0,g=a.length;f<g;f++)e.push(b.wrap(a[f],d));return e}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}var f=void 0;try{if("function"!=typeof define||!define.amd){var g=require("source-map");f=g.SourceNode}}catch(h){}f||(f=function(a,b,c,d){this.src="",d&&this.add(d)},f.prototype={add:function(a){c.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){c.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;b<c;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new f(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof f?a:(a=d(a,this,b),new f(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;c<e;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b.exports=e}),define("handlebars/compiler/javascript-compiler",["exports","module","../base","../exception","../utils","./code-gen"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a){this.value=a}function i(){}function j(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f<g;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var k=g(d),l=g(f);i.prototype={nameLookup:function(a,b){return i.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=c.COMPILER_REVISION,b=c.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return e.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;h<i;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new k["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var j=this.createFunctionContext(d);if(this.isChild)return j;var l={compiler:this.compilerInfo(),main:j};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;h<i;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new l["default"](this.options.srcName),this.decorators=new l["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var f=this;if(this.options.strict||this.options.assumeObjects)return void this.push(j(this.options.strict&&e,this,b,a));for(var g=b.length;c<g;c++)this.replaceStack(function(e){var g=f.nameLookup(e,b[c],a);return d?[" && ",g]:[" != null ? ",g," : ",e];
+})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;f<g;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);if(null==h){this.context.programs.push("");var i=this.context.programs.length;d.index=i,d.name="program"+i,this.context.programs[i]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[i]=e.decorators,this.context.environments[i]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams,d.useDepths=this.useDepths,d.useBlockParams=this.useBlockParams}else d.index=h.index,d.name="program"+h.index,this.useDepths=this.useDepths||h.useDepths,this.useBlockParams=this.useBlockParams||h.useBlockParams}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;b<c;b++){var d=this.context.environments[b];if(d&&d.equals(a))return d}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof h||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new h(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,d=void 0,e=void 0;if(!this.isInline())throw new k["default"]("replaceStack on non-inline");var f=this.popStack(!0);if(f instanceof h)c=[f.value],b=["(",c],e=!0;else{d=!0;var g=this.incrStack();b=["((",this.push(g)," = ",f,")"],c=this.topStack()}var i=a.call(this,c);e||this.popStack(),d&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];if(d instanceof h)this.compileStack.push(d);else{var e=this.incrStack();this.pushSource([e," = ",d,";"]),this.compileStack.push(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof h)return c.value;if(!b){if(!this.stackSlot)throw new k["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof h?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=i.RESERVED_WORDS={},c=0,d=a.length;c<d;c++)b[a[c]]=!0}(),i.isValidJavaScriptVariableName=function(a){return!i.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b.exports=i}),define("handlebars",["exports","module","./handlebars.runtime","./handlebars/compiler/ast","./handlebars/compiler/base","./handlebars/compiler/compiler","./handlebars/compiler/javascript-compiler","./handlebars/compiler/visitor","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h,i){"use strict";function j(a){return a&&a.__esModule?a:{"default":a}}function k(){var a=q();return a.compile=function(b,c){return f.compile(b,c,a)},a.precompile=function(b,c){return f.precompile(b,c,a)},a.AST=m["default"],a.Compiler=f.Compiler,a.JavaScriptCompiler=n["default"],a.Parser=e.parser,a.parse=e.parse,a}var l=j(c),m=j(d),n=j(g),o=j(h),p=j(i),q=l["default"].create,r=k();r.create=k,p["default"](r),r.Visitor=o["default"],r["default"]=r,b.exports=r}); \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.js
index ae3febcde..5b5661510 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -275,7 +275,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _logger2 = _interopRequireDefault(_logger);
- var VERSION = '4.0.8';
+ var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
@@ -3048,7 +3048,7 @@ return /******/ (function(modules) { // webpackBootstrap
for (var _name in knownHelpers) {
/* istanbul ignore else */
if (_name in knownHelpers) {
- options.knownHelpers[_name] = knownHelpers[_name];
+ this.options.knownHelpers[_name] = knownHelpers[_name];
}
}
}
@@ -3463,6 +3463,7 @@ return /******/ (function(modules) { // webpackBootstrap
throw new _exception2['default']('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
}
+ options = _utils.extend({}, options);
if (!('data' in options)) {
options.data = true;
}
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.min.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.min.js
index e0e27b04e..ee8cfc0ae 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.min.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.min.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -24,6 +24,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=r();return a.compile=function(b,c){return k.compile(b,c,a)},a.precompile=function(b,c){return k.precompile(b,c,a)},a.AST=i["default"],a.Compiler=k.Compiler,a.JavaScriptCompiler=m["default"],a.Parser=j.parser,a.parse=j.parse,a}var e=c(1)["default"];b.__esModule=!0;var f=c(2),g=e(f),h=c(35),i=e(h),j=c(36),k=c(41),l=c(42),m=e(l),n=c(39),o=e(n),p=c(34),q=e(p),r=g["default"].create,s=d();s.create=d,q["default"](s),s.Visitor=o["default"],s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j["default"],a.Exception=l["default"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(3)["default"],f=c(1)["default"];b.__esModule=!0;var g=c(4),h=e(g),i=c(21),j=f(i),k=c(6),l=f(k),m=c(5),n=e(m),o=c(22),p=e(o),q=c(34),r=f(q),s=d();s.create=d,r["default"](s),s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(1)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(5),g=c(6),h=e(g),i=c(10),j=c(18),k=c(20),l=e(k),m="4.0.8";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function e(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return!a&&0!==a||!(!p(a)||0!==a.length)}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===n.call(a)};b.isArray=p},function(a,b,c){"use strict";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=" - "+g+":"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j<f.length;j++)this[f[j]]=i[f[j]];Error.captureStackTrace&&Error.captureStackTrace(this,d);try{c&&(this.lineNumber=g,e?Object.defineProperty(this,"column",{value:h,enumerable:!0}):this.column=h)}catch(k){}}var e=c(7)["default"];b.__esModule=!0;var f=["description","fileName","lineNumber","message","name","number","stack"];d.prototype=new Error,b["default"]=d,a.exports=b["default"]},function(a,b,c){a.exports={"default":c(8),__esModule:!0}},function(a,b,c){var d=c(9);a.exports=function(a,b,c){return d.setDesc(a,b,c)}},function(a,b){var c=Object;a.exports={create:c.create,getProto:c.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:c.getOwnPropertyDescriptor,setDesc:c.defineProperty,setDescs:c.defineProperties,getKeys:c.keys,getNames:c.getOwnPropertyNames,getSymbols:c.getOwnPropertySymbols,each:[].forEach}},function(a,b,c){"use strict";function d(a){g["default"](a),i["default"](a),k["default"](a),m["default"](a),o["default"](a),q["default"](a),s["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultHelpers=d;var f=c(11),g=e(f),h=c(12),i=e(h),j=c(13),k=e(j),l=c(14),m=e(l),n=c(15),o=e(n),p=c(16),q=e(p),r=c(17),s=e(r)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("blockHelperMissing",function(b,c){var e=c.inverse,f=c.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(d.isArray(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;h<l;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(6),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("with",function(a,b){d.isFunction(a)&&(a=a.call(this));var c=b.fn;if(d.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=d.createFrame(b.data),e.contextPath=d.appendContextPath(b.data.contextPath,b.ids[0])),c(a,{data:e,blockParams:d.blockParams([a],[e&&e.contextPath])})})},a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultDecorators=d;var f=c(19),g=e(f)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerDecorator("inline",function(a,b,c,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=c.partials;c.partials=d.extend({},g,b.partials);var h=a(e,f);return c.partials=g,h}),b.partials[e.args[0]]=e.fn,f})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5),e={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=d.indexOf(e.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f<c;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=s.COMPILER_REVISION;if(b!==c){if(b<c){var d=s.REVISION_CHANGES[c],e=s.REVISION_CHANGES[b];throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=p.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;h<i&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new r["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!=f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new r["default"]("No environment passed to template");if(!a||!a.main)throw new r["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new r["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:p.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=p.extend({},b,a)),c},nullContext:l({}),noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new r["default"]("must pass block params");if(a.useDepths&&!g)throw new r["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){var d=c.data&&c.data["partial-block"];c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var e=void 0;if(c.fn&&c.fn!==i&&!function(){c.data=s.createFrame(c.data);var a=c.fn;e=c.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=s.createFrame(c.data),c.data["partial-block"]=d,a(b,c)},a.partials&&(c.partials=p.extend({},c.partials,a.partials))}(),void 0===a&&e&&(a=e),void 0===a)throw new r["default"]("The partial "+c.name+" could not be found");if(a instanceof Function)return a(b,c)}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?s.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),p.extend(b,g)}return b}var l=c(23)["default"],m=c(3)["default"],n=c(1)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var o=c(5),p=m(o),q=c(6),r=n(q),s=c(4)},function(a,b,c){a.exports={"default":c(24),__esModule:!0}},function(a,b,c){c(25),a.exports=c(30).Object.seal},function(a,b,c){var d=c(26);c(27)("seal",function(a){return function(b){return a&&d(b)?a(b):b}})},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){var d=c(28),e=c(30),f=c(33);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(29),e=c(30),f=c(31),g="prototype",h=function(a,b,c){var i,j,k,l=a&h.F,m=a&h.G,n=a&h.S,o=a&h.P,p=a&h.B,q=a&h.W,r=m?e:e[b]||(e[b]={}),s=m?d:n?d[b]:(d[b]||{})[g];m&&(c=b);for(i in c)j=!l&&s&&i in s,j&&i in r||(k=j?s[i]:c[i],r[i]=m&&"function"!=typeof s[i]?c[i]:p&&j?f(k,d):q&&s[i]==k?function(a){var b=function(b){return this instanceof a?new a(b):a(b)};return b[g]=a[g],b}(k):o&&"function"==typeof k?f(Function.call,k):k,o&&((r[g]||(r[g]={}))[i]=k))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,a.exports=h},function(a,b){var c=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b){var c=a.exports={version:"1.2.6"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(32);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b.__esModule=!0;var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if("Program"===a.type)return a;h["default"].yy=n,n.locInfo=function(a){return new n.SourceLocation(b&&b.srcName,a)};var c=new j["default"](b);return c.accept(h["default"].parse(a))}var e=c(1)["default"],f=c(3)["default"];b.__esModule=!0,b.parse=d;var g=c(37),h=e(g),i=c(38),j=e(i),k=c(40),l=f(k),m=c(5);b.parser=h["default"];var n={};m.extend(n,l)},function(a,b){"use strict";b.__esModule=!0;var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],
-85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null!==n&&"undefined"!=typeof n||(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)["default"];b.__esModule=!0;var j=c(39),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;i<j;i++){var k=d[i],l=this.accept(k);if(l){var m=e(d,i,c),n=f(d,i,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&g(d,i,!0),l.open&&h(d,i,!0),b&&q&&(g(d,i),h(d,i)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[i-1].original)[1])),b&&o&&(g((k.program||k.inverse).body),h(d,i)),b&&p&&(g(d,i),h((k.inverse||k.program).body))}}return a},d.prototype.BlockStatement=d.prototype.DecoratorBlock=d.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),!this.options.ignoreStandalone&&e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.Decorator=d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(){this.parents=[]}function e(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function f(a){e.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function g(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var h=c(1)["default"];b.__esModule=!0;var i=c(6),j=h(i);d.prototype={constructor:d,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!d.prototype[c.type])throw new j["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new j["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;b<c;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new j["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:e,Decorator:e,BlockStatement:f,DecoratorBlock:f,PartialStatement:g,PartialBlockStatement:function(a){g.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:e,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new q["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;h<i;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new q["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)["default"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;c<a.length;c++)if(!g(a[c],b[c]))return!1;return!0}}function h(a){if(!a.path.parts){var b=a.path;a.path={type:"PathExpression",data:!1,depth:0,parts:[b.original+""],original:b.original+"",loc:b.loc}}}var i=c(1)["default"];b.__esModule=!0,b.Compiler=d,b.precompile=e,b.compile=f;var j=c(6),k=i(j),l=c(5),m=c(35),n=i(m),o=[].slice;d.prototype={compiler:d,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;c<b;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}b=this.children.length;for(var c=0;c<b;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;d<c;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){h(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");c<d;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:o.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=n["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&n["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;b<c;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||n["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,c=this.options.blockParams.length;b<c;b++){var d=this.options.blockParams[b],e=d&&l.indexOf(d,a);if(d&&e>=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f<g;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var g=c(1)["default"];b.__esModule=!0;var h=c(4),i=c(6),j=g(i),k=c(5),l=c(43),m=g(l);e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=h.COMPILER_REVISION,b=h.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return k.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;h<i;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new j["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;h<i;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new m["default"](this.options.srcName),this.decorators=new m["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a));for(var h=b.length;c<h;c++)this.replaceStack(function(e){var f=g.nameLookup(e,b[c],a);
-return d?[" && ",f]:[" != null ? ",f," : ",e]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:e,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;f<g;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);if(null==h){this.context.programs.push("");var i=this.context.programs.length;d.index=i,d.name="program"+i,this.context.programs[i]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[i]=e.decorators,this.context.environments[i]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams,d.useDepths=this.useDepths,d.useBlockParams=this.useBlockParams}else d.index=h.index,d.name="program"+h.index,this.useDepths=this.useDepths||h.useDepths,this.useBlockParams=this.useBlockParams||h.useBlockParams}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;b<c;b++){var d=this.context.environments[b];if(d&&d.equals(a))return d}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof d||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,e=void 0,f=void 0;if(!this.isInline())throw new j["default"]("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)c=[g.value],b=["(",c],f=!0;else{e=!0;var h=this.incrStack();b=["((",this.push(h)," = ",g,")"],c=this.topStack()}var i=a.call(this,c);f||this.popStack(),e&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b<c;b++){var e=a[b];if(e instanceof d)this.compileStack.push(e);else{var f=this.incrStack();this.pushSource([f," = ",e,";"]),this.compileStack.push(f)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new j["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=e.RESERVED_WORDS={},c=0,d=a.length;c<d;c++)b[a[c]]=!0}(),e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b["default"]=e,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b,c){if(f.isArray(a)){for(var d=[],e=0,g=a.length;e<g;e++)d.push(b.wrap(a[e],c));return d}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}b.__esModule=!0;var f=c(5),g=void 0;try{}catch(h){}g||(g=function(a,b,c,d){this.src="",d&&this.add(d)},g.prototype={add:function(a){f.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){f.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;b<c;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new g(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof g?a:(a=d(a,this,b),new g(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;c<e;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b["default"]=e,a.exports=b["default"]}])}); \ No newline at end of file
+!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=r();return a.compile=function(b,c){return k.compile(b,c,a)},a.precompile=function(b,c){return k.precompile(b,c,a)},a.AST=i["default"],a.Compiler=k.Compiler,a.JavaScriptCompiler=m["default"],a.Parser=j.parser,a.parse=j.parse,a}var e=c(1)["default"];b.__esModule=!0;var f=c(2),g=e(f),h=c(35),i=e(h),j=c(36),k=c(41),l=c(42),m=e(l),n=c(39),o=e(n),p=c(34),q=e(p),r=g["default"].create,s=d();s.create=d,q["default"](s),s.Visitor=o["default"],s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j["default"],a.Exception=l["default"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(3)["default"],f=c(1)["default"];b.__esModule=!0;var g=c(4),h=e(g),i=c(21),j=f(i),k=c(6),l=f(k),m=c(5),n=e(m),o=c(22),p=e(o),q=c(34),r=f(q),s=d();s.create=d,r["default"](s),s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(1)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(5),g=c(6),h=e(g),i=c(10),j=c(18),k=c(20),l=e(k),m="4.0.10";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function e(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return!a&&0!==a||!(!p(a)||0!==a.length)}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===n.call(a)};b.isArray=p},function(a,b,c){"use strict";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=" - "+g+":"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j<f.length;j++)this[f[j]]=i[f[j]];Error.captureStackTrace&&Error.captureStackTrace(this,d);try{c&&(this.lineNumber=g,e?Object.defineProperty(this,"column",{value:h,enumerable:!0}):this.column=h)}catch(k){}}var e=c(7)["default"];b.__esModule=!0;var f=["description","fileName","lineNumber","message","name","number","stack"];d.prototype=new Error,b["default"]=d,a.exports=b["default"]},function(a,b,c){a.exports={"default":c(8),__esModule:!0}},function(a,b,c){var d=c(9);a.exports=function(a,b,c){return d.setDesc(a,b,c)}},function(a,b){var c=Object;a.exports={create:c.create,getProto:c.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:c.getOwnPropertyDescriptor,setDesc:c.defineProperty,setDescs:c.defineProperties,getKeys:c.keys,getNames:c.getOwnPropertyNames,getSymbols:c.getOwnPropertySymbols,each:[].forEach}},function(a,b,c){"use strict";function d(a){g["default"](a),i["default"](a),k["default"](a),m["default"](a),o["default"](a),q["default"](a),s["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultHelpers=d;var f=c(11),g=e(f),h=c(12),i=e(h),j=c(13),k=e(j),l=c(14),m=e(l),n=c(15),o=e(n),p=c(16),q=e(p),r=c(17),s=e(r)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("blockHelperMissing",function(b,c){var e=c.inverse,f=c.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(d.isArray(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;h<l;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(6),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("with",function(a,b){d.isFunction(a)&&(a=a.call(this));var c=b.fn;if(d.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=d.createFrame(b.data),e.contextPath=d.appendContextPath(b.data.contextPath,b.ids[0])),c(a,{data:e,blockParams:d.blockParams([a],[e&&e.contextPath])})})},a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultDecorators=d;var f=c(19),g=e(f)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerDecorator("inline",function(a,b,c,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=c.partials;c.partials=d.extend({},g,b.partials);var h=a(e,f);return c.partials=g,h}),b.partials[e.args[0]]=e.fn,f})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5),e={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=d.indexOf(e.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f<c;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=s.COMPILER_REVISION;if(b!==c){if(b<c){var d=s.REVISION_CHANGES[c],e=s.REVISION_CHANGES[b];throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=p.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;h<i&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new r["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!=f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new r["default"]("No environment passed to template");if(!a||!a.main)throw new r["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new r["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:p.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=p.extend({},b,a)),c},nullContext:l({}),noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new r["default"]("must pass block params");if(a.useDepths&&!g)throw new r["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){var d=c.data&&c.data["partial-block"];c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var e=void 0;if(c.fn&&c.fn!==i&&!function(){c.data=s.createFrame(c.data);var a=c.fn;e=c.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=s.createFrame(c.data),c.data["partial-block"]=d,a(b,c)},a.partials&&(c.partials=p.extend({},c.partials,a.partials))}(),void 0===a&&e&&(a=e),void 0===a)throw new r["default"]("The partial "+c.name+" could not be found");if(a instanceof Function)return a(b,c)}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?s.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),p.extend(b,g)}return b}var l=c(23)["default"],m=c(3)["default"],n=c(1)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var o=c(5),p=m(o),q=c(6),r=n(q),s=c(4)},function(a,b,c){a.exports={"default":c(24),__esModule:!0}},function(a,b,c){c(25),a.exports=c(30).Object.seal},function(a,b,c){var d=c(26);c(27)("seal",function(a){return function(b){return a&&d(b)?a(b):b}})},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){var d=c(28),e=c(30),f=c(33);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(29),e=c(30),f=c(31),g="prototype",h=function(a,b,c){var i,j,k,l=a&h.F,m=a&h.G,n=a&h.S,o=a&h.P,p=a&h.B,q=a&h.W,r=m?e:e[b]||(e[b]={}),s=m?d:n?d[b]:(d[b]||{})[g];m&&(c=b);for(i in c)j=!l&&s&&i in s,j&&i in r||(k=j?s[i]:c[i],r[i]=m&&"function"!=typeof s[i]?c[i]:p&&j?f(k,d):q&&s[i]==k?function(a){var b=function(b){return this instanceof a?new a(b):a(b)};return b[g]=a[g],b}(k):o&&"function"==typeof k?f(Function.call,k):k,o&&((r[g]||(r[g]={}))[i]=k))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,a.exports=h},function(a,b){var c=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b){var c=a.exports={version:"1.2.6"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(32);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b.__esModule=!0;var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if("Program"===a.type)return a;h["default"].yy=n,n.locInfo=function(a){return new n.SourceLocation(b&&b.srcName,a)};var c=new j["default"](b);return c.accept(h["default"].parse(a))}var e=c(1)["default"],f=c(3)["default"];b.__esModule=!0,b.parse=d;var g=c(37),h=e(g),i=c(38),j=e(i),k=c(40),l=f(k),m=c(5);b.parser=h["default"];var n={};m.extend(n,l)},function(a,b){"use strict";b.__esModule=!0;var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],
+85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:(null!==n&&"undefined"!=typeof n||(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)["default"];b.__esModule=!0;var j=c(39),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;i<j;i++){var k=d[i],l=this.accept(k);if(l){var m=e(d,i,c),n=f(d,i,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&g(d,i,!0),l.open&&h(d,i,!0),b&&q&&(g(d,i),h(d,i)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[i-1].original)[1])),b&&o&&(g((k.program||k.inverse).body),h(d,i)),b&&p&&(g(d,i),h((k.inverse||k.program).body))}}return a},d.prototype.BlockStatement=d.prototype.DecoratorBlock=d.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),!this.options.ignoreStandalone&&e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.Decorator=d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(){this.parents=[]}function e(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function f(a){e.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function g(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var h=c(1)["default"];b.__esModule=!0;var i=c(6),j=h(i);d.prototype={constructor:d,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!d.prototype[c.type])throw new j["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new j["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;b<c;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new j["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:e,Decorator:e,BlockStatement:f,DecoratorBlock:f,PartialStatement:g,PartialBlockStatement:function(a){g.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:e,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new q["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;h<i;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new q["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)["default"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=l.extend({},b),"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;c<a.length;c++)if(!g(a[c],b[c]))return!1;return!0}}function h(a){if(!a.path.parts){var b=a.path;a.path={type:"PathExpression",data:!1,depth:0,parts:[b.original+""],original:b.original+"",loc:b.loc}}}var i=c(1)["default"];b.__esModule=!0,b.Compiler=d,b.precompile=e,b.compile=f;var j=c(6),k=i(j),l=c(5),m=c(35),n=i(m),o=[].slice;d.prototype={compiler:d,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;c<b;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}b=this.children.length;for(var c=0;c<b;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(this.options.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;d<c;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){h(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");c<d;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:o.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=n["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&n["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;b<c;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||n["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,c=this.options.blockParams.length;b<c;b++){var d=this.options.blockParams[b],e=d&&l.indexOf(d,a);if(d&&e>=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f<g;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var g=c(1)["default"];b.__esModule=!0;var h=c(4),i=c(6),j=g(i),k=c(5),l=c(43),m=g(l);e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=h.COMPILER_REVISION,b=h.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return k.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;h<i;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new j["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;h<i;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new m["default"](this.options.srcName),this.decorators=new m["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a));for(var h=b.length;c<h;c++)this.replaceStack(function(e){
+var f=g.nameLookup(e,b[c],a);return d?[" && ",f]:[" != null ? ",f," : ",e]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:e,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;f<g;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);if(null==h){this.context.programs.push("");var i=this.context.programs.length;d.index=i,d.name="program"+i,this.context.programs[i]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[i]=e.decorators,this.context.environments[i]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams,d.useDepths=this.useDepths,d.useBlockParams=this.useBlockParams}else d.index=h.index,d.name="program"+h.index,this.useDepths=this.useDepths||h.useDepths,this.useBlockParams=this.useBlockParams||h.useBlockParams}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;b<c;b++){var d=this.context.environments[b];if(d&&d.equals(a))return d}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof d||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,e=void 0,f=void 0;if(!this.isInline())throw new j["default"]("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)c=[g.value],b=["(",c],f=!0;else{e=!0;var h=this.incrStack();b=["((",this.push(h)," = ",g,")"],c=this.topStack()}var i=a.call(this,c);f||this.popStack(),e&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b<c;b++){var e=a[b];if(e instanceof d)this.compileStack.push(e);else{var f=this.incrStack();this.pushSource([f," = ",e,";"]),this.compileStack.push(f)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new j["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : (container.nullContext || {})");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=e.RESERVED_WORDS={},c=0,d=a.length;c<d;c++)b[a[c]]=!0}(),e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b["default"]=e,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b,c){if(f.isArray(a)){for(var d=[],e=0,g=a.length;e<g;e++)d.push(b.wrap(a[e],c));return d}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}b.__esModule=!0;var f=c(5),g=void 0;try{}catch(h){}g||(g=function(a,b,c,d){this.src="",d&&this.add(d)},g.prototype={add:function(a){f.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){f.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add([" ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;b<c;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new g(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof g?a:(a=d(a,this,b),new g(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;c<e;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b["default"]=e,a.exports=b["default"]}])}); \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.js
index 9f593768c..8d19a0434 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -582,7 +582,7 @@ define('handlebars/base',['exports', './utils', './exception', './helpers', './d
var _logger2 = _interopRequireDefault(_logger);
- var VERSION = '4.0.8';
+ var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
@@ -664,7 +664,7 @@ define('handlebars/base',['exports', './utils', './exception', './helpers', './d
exports.createFrame = _utils.createFrame;
exports.logger = _logger2['default'];
});
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQzs7QUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC44JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDc7XG5cbmV4cG9ydCBjb25zdCBSRVZJU0lPTl9DSEFOR0VTID0ge1xuICAxOiAnPD0gMS4wLnJjLjInLCAvLyAxLjAucmMuMiBpcyBhY3R1YWxseSByZXYyIGJ1dCBkb2Vzbid0IHJlcG9ydCBpdFxuICAyOiAnPT0gMS4wLjAtcmMuMycsXG4gIDM6ICc9PSAxLjAuMC1yYy40JyxcbiAgNDogJz09IDEueC54JyxcbiAgNTogJz09IDIuMC4wLWFscGhhLngnLFxuICA2OiAnPj0gMi4wLjAtYmV0YS4xJyxcbiAgNzogJz49IDQuMC4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuaGVscGVycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckhlbHBlcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmhlbHBlcnNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lLCBwYXJ0aWFsKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGV4dGVuZCh0aGlzLnBhcnRpYWxzLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKGBBdHRlbXB0aW5nIHRvIHJlZ2lzdGVyIGEgcGFydGlhbCBjYWxsZWQgXCIke25hbWV9XCIgYXMgdW5kZWZpbmVkYCk7XG4gICAgICB9XG4gICAgICB0aGlzLnBhcnRpYWxzW25hbWVdID0gcGFydGlhbDtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJQYXJ0aWFsOiBmdW5jdGlvbihuYW1lKSB7XG4gICAgZGVsZXRlIHRoaXMucGFydGlhbHNbbmFtZV07XG4gIH0sXG5cbiAgcmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGRlY29yYXRvcnMnKTsgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHtjcmVhdGVGcmFtZSwgbG9nZ2VyfTtcbiJdfQ==
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU1PLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQzs7QUFDekIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7OztBQUU1QixNQUFNLGdCQUFnQixHQUFHO0FBQzlCLEtBQUMsRUFBRSxhQUFhO0FBQ2hCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxlQUFlO0FBQ2xCLEtBQUMsRUFBRSxVQUFVO0FBQ2IsS0FBQyxFQUFFLGtCQUFrQjtBQUNyQixLQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEtBQUMsRUFBRSxVQUFVO0dBQ2QsQ0FBQzs7O0FBRUYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUM7O0FBRTlCLFdBQVMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7QUFDbkUsUUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0FBQzdCLFFBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLEVBQUUsQ0FBQztBQUMvQixRQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7O0FBRW5DLGFBeEJNLHNCQUFzQixDQXdCTCxJQUFJLENBQUMsQ0FBQztBQUM3QixnQkF4Qk0seUJBQXlCLENBd0JMLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQUVELHVCQUFxQixDQUFDLFNBQVMsR0FBRztBQUNoQyxlQUFXLEVBQUUscUJBQXFCOztBQUVsQyxVQUFNLHFCQUFRO0FBQ2QsT0FBRyxFQUFFLG9CQUFPLEdBQUc7O0FBRWYsa0JBQWMsRUFBRSx3QkFBUyxJQUFJLEVBQUUsRUFBRSxFQUFFO0FBQ2pDLFVBQUksT0FyQ3FCLFFBQVEsQ0FxQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsWUFBSSxFQUFFLEVBQUU7QUFBRSxnQkFBTSwwQkFBYyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQUU7QUFDM0UsZUF2Q2UsTUFBTSxDQXVDZCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO09BQzVCLE1BQU07QUFDTCxZQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztPQUN6QjtLQUNGO0FBQ0Qsb0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLGFBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQjs7QUFFRCxtQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsVUFBSSxPQWpEcUIsUUFBUSxDQWlEcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFVBQVUsRUFBRTtBQUN0QyxlQWxEZSxNQUFNLENBa0RkLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDN0IsTUFBTTtBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGdCQUFNLHdFQUEwRCxJQUFJLG9CQUFpQixDQUFDO1NBQ3ZGO0FBQ0QsWUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7T0FDL0I7S0FDRjtBQUNELHFCQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRTtBQUNoQyxhQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7O0FBRUQscUJBQWlCLEVBQUUsMkJBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNwQyxVQUFJLE9BL0RxQixRQUFRLENBK0RwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFlBQUksRUFBRSxFQUFFO0FBQUUsZ0JBQU0sMEJBQWMsNENBQTRDLENBQUMsQ0FBQztTQUFFO0FBQzlFLGVBakVlLE1BQU0sQ0FpRWQsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztPQUMvQixNQUFNO0FBQ0wsWUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7T0FDNUI7S0FDRjtBQUNELHVCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxhQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDOztBQUVLLE1BQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1VBRXBCLFdBQVcsVUE3RVgsV0FBVztVQTZFRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZyYW1lLCBleHRlbmQsIHRvU3RyaW5nfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi9leGNlcHRpb24nO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHRIZWxwZXJzfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHtyZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMCc7XG5leHBvcnQgY29uc3QgQ09NUElMRVJfUkVWSVNJT04gPSA3O1xuXG5leHBvcnQgY29uc3QgUkVWSVNJT05fQ0hBTkdFUyA9IHtcbiAgMTogJzw9IDEuMC5yYy4yJywgLy8gMS4wLnJjLjIgaXMgYWN0dWFsbHkgcmV2MiBidXQgZG9lc24ndCByZXBvcnQgaXRcbiAgMjogJz09IDEuMC4wLXJjLjMnLFxuICAzOiAnPT0gMS4wLjAtcmMuNCcsXG4gIDQ6ICc9PSAxLngueCcsXG4gIDU6ICc9PSAyLjAuMC1hbHBoYS54JyxcbiAgNjogJz49IDIuMC4wLWJldGEuMScsXG4gIDc6ICc+PSA0LjAuMCdcbn07XG5cbmNvbnN0IG9iamVjdFR5cGUgPSAnW29iamVjdCBPYmplY3RdJztcblxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZWJhcnNFbnZpcm9ubWVudChoZWxwZXJzLCBwYXJ0aWFscywgZGVjb3JhdG9ycykge1xuICB0aGlzLmhlbHBlcnMgPSBoZWxwZXJzIHx8IHt9O1xuICB0aGlzLnBhcnRpYWxzID0gcGFydGlhbHMgfHwge307XG4gIHRoaXMuZGVjb3JhdG9ycyA9IGRlY29yYXRvcnMgfHwge307XG5cbiAgcmVnaXN0ZXJEZWZhdWx0SGVscGVycyh0aGlzKTtcbiAgcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyh0aGlzKTtcbn1cblxuSGFuZGxlYmFyc0Vudmlyb25tZW50LnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IEhhbmRsZWJhcnNFbnZpcm9ubWVudCxcblxuICBsb2dnZXI6IGxvZ2dlcixcbiAgbG9nOiBsb2dnZXIubG9nLFxuXG4gIHJlZ2lzdGVySGVscGVyOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBoZWxwZXJzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGApO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXJ0aWFsc1tuYW1lXSA9IHBhcnRpYWw7XG4gICAgfVxuICB9LFxuICB1bnJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLnBhcnRpYWxzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyRGVjb3JhdG9yOiBmdW5jdGlvbihuYW1lLCBmbikge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBpZiAoZm4pIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbignQXJnIG5vdCBzdXBwb3J0ZWQgd2l0aCBtdWx0aXBsZSBkZWNvcmF0b3JzJyk7IH1cbiAgICAgIGV4dGVuZCh0aGlzLmRlY29yYXRvcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlY29yYXRvcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJEZWNvcmF0b3I6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5kZWNvcmF0b3JzW25hbWVdO1xuICB9XG59O1xuXG5leHBvcnQgbGV0IGxvZyA9IGxvZ2dlci5sb2c7XG5cbmV4cG9ydCB7Y3JlYXRlRnJhbWUsIGxvZ2dlcn07XG4iXX0=
;
define('handlebars/safe-string',['exports', 'module'], function (exports, module) {
// Build out our basic SafeString type
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.min.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
index a509ecc9e..973b760c6 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.amd.min.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -24,4 +24,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-define("handlebars/utils",["exports"],function(a){"use strict";function b(a){return j[a]}function c(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function d(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,b):a}function f(a){return!a&&0!==a||!(!o(a)||0!==a.length)}function g(a){var b=c({},a);return b._parent=a,b}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.createFrame=g,a.blockParams=h,a.appendContextPath=i;var j={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},k=/[&<>"'`=]/g,l=/[&<>"'`=]/,m=Object.prototype.toString;a.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(a.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)}),a.isFunction=n;var o=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===m.call(a)};a.isArray=o}),define("handlebars/exception",["exports","module"],function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i<d.length;i++)this[d[i]]=h[d[i]];Error.captureStackTrace&&Error.captureStackTrace(this,c);try{e&&(this.lineNumber=f,Object.defineProperty?Object.defineProperty(this,"column",{value:g,enumerable:!0}):this.column=g)}catch(j){}}var d=["description","fileName","lineNumber","message","name","number","stack"];c.prototype=new Error,b.exports=c}),define("handlebars/helpers/block-helper-missing",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("blockHelperMissing",function(b,d){var e=d.inverse,f=d.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(c.isArray(b))return b.length>0?(d.ids&&(d.ids=[d.name]),a.helpers.each(b,d)):e(this);if(d.data&&d.ids){var g=c.createFrame(d.data);g.contextPath=c.appendContextPath(d.data.contextPath,d.name),d={data:g}}return f(b,d)})}}),define("handlebars/helpers/each",["exports","module","../utils","../exception"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}var f=e(d);b.exports=function(a){a.registerHelper("each",function(a,b){function d(b,d,f){j&&(j.key=b,j.index=d,j.first=0===d,j.last=!!f,k&&(j.contextPath=k+b)),i+=e(a[b],{data:j,blockParams:c.blockParams([a[b],b],[k+b,null])})}if(!b)throw new f["default"]("Must pass iterator to #each");var e=b.fn,g=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=c.appendContextPath(b.data.contextPath,b.ids[0])+"."),c.isFunction(a)&&(a=a.call(this)),b.data&&(j=c.createFrame(b.data)),a&&"object"==typeof a)if(c.isArray(a))for(var l=a.length;h<l;h++)h in a&&d(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&d(m,h-1),m=n,h++);void 0!==m&&d(m,h-1,!0)}return 0===h&&(i=g(this)),i})}}),define("handlebars/helpers/helper-missing",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}var e=d(c);b.exports=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new e["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})}}),define("handlebars/helpers/if",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("if",function(a,b){return c.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||c.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})}}),define("handlebars/helpers/log",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})}}),define("handlebars/helpers/lookup",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})}}),define("handlebars/helpers/with",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("with",function(a,b){c.isFunction(a)&&(a=a.call(this));var d=b.fn;if(c.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=c.createFrame(b.data),e.contextPath=c.appendContextPath(b.data.contextPath,b.ids[0])),d(a,{data:e,blockParams:c.blockParams([a],[e&&e.contextPath])})})}}),define("handlebars/helpers",["exports","./helpers/block-helper-missing","./helpers/each","./helpers/helper-missing","./helpers/if","./helpers/log","./helpers/lookup","./helpers/with"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(a){k["default"](a),l["default"](a),m["default"](a),n["default"](a),o["default"](a),p["default"](a),q["default"](a)}a.__esModule=!0,a.registerDefaultHelpers=j;var k=i(b),l=i(c),m=i(d),n=i(e),o=i(f),p=i(g),q=i(h)}),define("handlebars/decorators/inline",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerDecorator("inline",function(a,b,d,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=d.partials;d.partials=c.extend({},g,b.partials);var h=a(e,f);return d.partials=g,h}),b.partials[e.args[0]]=e.fn,f})}}),define("handlebars/decorators",["exports","./decorators/inline"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a){e["default"](a)}a.__esModule=!0,a.registerDefaultDecorators=d;var e=c(b)}),define("handlebars/logger",["exports","module","./utils"],function(a,b,c){"use strict";var d={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=c.indexOf(d.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=d.lookupLevel(a),"undefined"!=typeof console&&d.lookupLevel(d.level)<=a){var b=d.methodMap[a];console[b]||(b="log");for(var c=arguments.length,e=Array(c>1?c-1:0),f=1;f<c;f++)e[f-1]=arguments[f];console[b].apply(console,e)}}};b.exports=d}),define("handlebars/base",["exports","./utils","./exception","./helpers","./decorators","./logger"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},d.registerDefaultHelpers(this),e.registerDefaultDecorators(this)}a.__esModule=!0,a.HandlebarsEnvironment=h;var i=g(c),j=g(f),k="4.0.8";a.VERSION=k;var l=7;a.COMPILER_REVISION=l;var m={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};a.REVISION_CHANGES=m;var n="[object Object]";h.prototype={constructor:h,logger:j["default"],log:j["default"].log,registerHelper:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(b.toString.call(a)===n)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new i["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple decorators");b.extend(this.decorators,a)}else this.decorators[a]=c},unregisterDecorator:function(a){delete this.decorators[a]}};var o=j["default"].log;a.log=o,a.createFrame=b.createFrame,a.logger=j["default"]}),define("handlebars/safe-string",["exports","module"],function(a,b){"use strict";function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(b<c){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new n["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new n["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function g(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash),f.ids&&(f.ids[0]=!0)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;i<j&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new n["default"]("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){function c(b){return""+a.main(f,b,f.helpers,f.partials,g,i,h)}var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=d.data;e._setup(d),!d.partial&&a.useData&&(g=l(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=d.depths?b!=d.depths[0]?[b].concat(d.depths):d.depths:[b]),(c=m(a.main,c,f,d.depths||[],g,i))(b,d)}if(!c)throw new n["default"]("No environment passed to template");if(!a||!a.main)throw new n["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new n["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],g=this.fn(a);return b||e||d||c?f=h(this,a,g,b,c,d,e):f||(f=this.programs[a]=h(this,a,g)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},nullContext:Object.seal({}),noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials,f.decorators=b.decorators):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)),(a.usePartial||a.useDecorators)&&(f.decorators=f.merge(b.decorators,c.decorators)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new n["default"]("must pass block params");if(a.useDepths&&!e)throw new n["default"]("must pass parent depths");return h(f,b,a[b],c,0,d,e)},e}function h(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=m(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function i(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function j(a,c,e){var f=e.data&&e.data["partial-block"];e.partial=!0,e.ids&&(e.data.contextPath=e.ids[0]||e.data.contextPath);var g=void 0;if(e.fn&&e.fn!==k&&!function(){e.data=d.createFrame(e.data);var a=e.fn;g=e.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=d.createFrame(c.data),c.data["partial-block"]=f,a(b,c)},a.partials&&(e.partials=b.extend({},e.partials,a.partials))}(),void 0===a&&g&&(a=g),void 0===a)throw new n["default"]("The partial "+e.name+" could not be found");if(a instanceof Function)return a(c,e)}function k(){return""}function l(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}function m(a,c,d,e,f,g){if(a.decorator){var h={};c=a.decorator(c,h,d,e&&e[0],f,g,e),b.extend(c,h)}return c}a.__esModule=!0,a.checkRevision=f,a.template=g,a.wrapProgram=h,a.resolvePartial=i,a.invokePartial=j,a.noop=k;var n=e(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){"use strict";b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=c),a}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k["default"],a.Exception=l["default"],a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var k=i(d),l=i(e),m=i(h),n=j();n.create=j,m["default"](n),n["default"]=n,b.exports=n}); \ No newline at end of file
+define("handlebars/utils",["exports"],function(a){"use strict";function b(a){return j[a]}function c(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function d(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function e(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return l.test(a)?a.replace(k,b):a}function f(a){return!a&&0!==a||!(!o(a)||0!==a.length)}function g(a){var b=c({},a);return b._parent=a,b}function h(a,b){return a.path=b,a}function i(a,b){return(a?a+".":"")+b}a.__esModule=!0,a.extend=c,a.indexOf=d,a.escapeExpression=e,a.isEmpty=f,a.createFrame=g,a.blockParams=h,a.appendContextPath=i;var j={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},k=/[&<>"'`=]/g,l=/[&<>"'`=]/,m=Object.prototype.toString;a.toString=m;var n=function(a){return"function"==typeof a};n(/x/)&&(a.isFunction=n=function(a){return"function"==typeof a&&"[object Function]"===m.call(a)}),a.isFunction=n;var o=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===m.call(a)};a.isArray=o}),define("handlebars/exception",["exports","module"],function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i<d.length;i++)this[d[i]]=h[d[i]];Error.captureStackTrace&&Error.captureStackTrace(this,c);try{e&&(this.lineNumber=f,Object.defineProperty?Object.defineProperty(this,"column",{value:g,enumerable:!0}):this.column=g)}catch(j){}}var d=["description","fileName","lineNumber","message","name","number","stack"];c.prototype=new Error,b.exports=c}),define("handlebars/helpers/block-helper-missing",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("blockHelperMissing",function(b,d){var e=d.inverse,f=d.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(c.isArray(b))return b.length>0?(d.ids&&(d.ids=[d.name]),a.helpers.each(b,d)):e(this);if(d.data&&d.ids){var g=c.createFrame(d.data);g.contextPath=c.appendContextPath(d.data.contextPath,d.name),d={data:g}}return f(b,d)})}}),define("handlebars/helpers/each",["exports","module","../utils","../exception"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}var f=e(d);b.exports=function(a){a.registerHelper("each",function(a,b){function d(b,d,f){j&&(j.key=b,j.index=d,j.first=0===d,j.last=!!f,k&&(j.contextPath=k+b)),i+=e(a[b],{data:j,blockParams:c.blockParams([a[b],b],[k+b,null])})}if(!b)throw new f["default"]("Must pass iterator to #each");var e=b.fn,g=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=c.appendContextPath(b.data.contextPath,b.ids[0])+"."),c.isFunction(a)&&(a=a.call(this)),b.data&&(j=c.createFrame(b.data)),a&&"object"==typeof a)if(c.isArray(a))for(var l=a.length;h<l;h++)h in a&&d(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&d(m,h-1),m=n,h++);void 0!==m&&d(m,h-1,!0)}return 0===h&&(i=g(this)),i})}}),define("handlebars/helpers/helper-missing",["exports","module","../exception"],function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}var e=d(c);b.exports=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new e["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})}}),define("handlebars/helpers/if",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("if",function(a,b){return c.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||c.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})}}),define("handlebars/helpers/log",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})}}),define("handlebars/helpers/lookup",["exports","module"],function(a,b){"use strict";b.exports=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})}}),define("handlebars/helpers/with",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerHelper("with",function(a,b){c.isFunction(a)&&(a=a.call(this));var d=b.fn;if(c.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=c.createFrame(b.data),e.contextPath=c.appendContextPath(b.data.contextPath,b.ids[0])),d(a,{data:e,blockParams:c.blockParams([a],[e&&e.contextPath])})})}}),define("handlebars/helpers",["exports","./helpers/block-helper-missing","./helpers/each","./helpers/helper-missing","./helpers/if","./helpers/log","./helpers/lookup","./helpers/with"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(a){k["default"](a),l["default"](a),m["default"](a),n["default"](a),o["default"](a),p["default"](a),q["default"](a)}a.__esModule=!0,a.registerDefaultHelpers=j;var k=i(b),l=i(c),m=i(d),n=i(e),o=i(f),p=i(g),q=i(h)}),define("handlebars/decorators/inline",["exports","module","../utils"],function(a,b,c){"use strict";b.exports=function(a){a.registerDecorator("inline",function(a,b,d,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=d.partials;d.partials=c.extend({},g,b.partials);var h=a(e,f);return d.partials=g,h}),b.partials[e.args[0]]=e.fn,f})}}),define("handlebars/decorators",["exports","./decorators/inline"],function(a,b){"use strict";function c(a){return a&&a.__esModule?a:{"default":a}}function d(a){e["default"](a)}a.__esModule=!0,a.registerDefaultDecorators=d;var e=c(b)}),define("handlebars/logger",["exports","module","./utils"],function(a,b,c){"use strict";var d={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=c.indexOf(d.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=d.lookupLevel(a),"undefined"!=typeof console&&d.lookupLevel(d.level)<=a){var b=d.methodMap[a];console[b]||(b="log");for(var c=arguments.length,e=Array(c>1?c-1:0),f=1;f<c;f++)e[f-1]=arguments[f];console[b].apply(console,e)}}};b.exports=d}),define("handlebars/base",["exports","./utils","./exception","./helpers","./decorators","./logger"],function(a,b,c,d,e,f){"use strict";function g(a){return a&&a.__esModule?a:{"default":a}}function h(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},d.registerDefaultHelpers(this),e.registerDefaultDecorators(this)}a.__esModule=!0,a.HandlebarsEnvironment=h;var i=g(c),j=g(f),k="4.0.10";a.VERSION=k;var l=7;a.COMPILER_REVISION=l;var m={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};a.REVISION_CHANGES=m;var n="[object Object]";h.prototype={constructor:h,logger:j["default"],log:j["default"].log,registerHelper:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple helpers");b.extend(this.helpers,a)}else this.helpers[a]=c},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,c){if(b.toString.call(a)===n)b.extend(this.partials,a);else{if("undefined"==typeof c)throw new i["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=c}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,c){if(b.toString.call(a)===n){if(c)throw new i["default"]("Arg not supported with multiple decorators");b.extend(this.decorators,a)}else this.decorators[a]=c},unregisterDecorator:function(a){delete this.decorators[a]}};var o=j["default"].log;a.log=o,a.createFrame=b.createFrame,a.logger=j["default"]}),define("handlebars/safe-string",["exports","module"],function(a,b){"use strict";function c(a){this.string=a}c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b.exports=c}),define("handlebars/runtime",["exports","./utils","./exception","./base"],function(a,b,c,d){"use strict";function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){var b=a&&a[0]||1,c=d.COMPILER_REVISION;if(b!==c){if(b<c){var e=d.REVISION_CHANGES[c],f=d.REVISION_CHANGES[b];throw new n["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+e+") or downgrade your runtime to an older version ("+f+").")}throw new n["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function g(a,c){function d(d,e,f){f.hash&&(e=b.extend({},e,f.hash),f.ids&&(f.ids[0]=!0)),d=c.VM.resolvePartial.call(this,d,e,f);var g=c.VM.invokePartial.call(this,d,e,f);if(null==g&&c.compile&&(f.partials[f.name]=c.compile(d,a.compilerOptions,c),g=f.partials[f.name](e,f)),null!=g){if(f.indent){for(var h=g.split("\n"),i=0,j=h.length;i<j&&(h[i]||i+1!==j);i++)h[i]=f.indent+h[i];g=h.join("\n")}return g}throw new n["default"]("The partial "+f.name+" could not be compiled when running in runtime-only mode")}function e(b){function c(b){return""+a.main(f,b,f.helpers,f.partials,g,i,h)}var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=d.data;e._setup(d),!d.partial&&a.useData&&(g=l(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=d.depths?b!=d.depths[0]?[b].concat(d.depths):d.depths:[b]),(c=m(a.main,c,f,d.depths||[],g,i))(b,d)}if(!c)throw new n["default"]("No environment passed to template");if(!a||!a.main)throw new n["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,c.VM.checkRevision(a.compiler);var f={strict:function(a,b){if(!(b in a))throw new n["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:b.escapeExpression,invokePartial:d,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var f=this.programs[a],g=this.fn(a);return b||e||d||c?f=h(this,a,g,b,c,d,e):f||(f=this.programs[a]=h(this,a,g)),f},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,c){var d=a||c;return a&&c&&a!==c&&(d=b.extend({},c,a)),d},nullContext:Object.seal({}),noop:c.VM.noop,compilerInfo:a.compiler};return e.isTop=!0,e._setup=function(b){b.partial?(f.helpers=b.helpers,f.partials=b.partials,f.decorators=b.decorators):(f.helpers=f.merge(b.helpers,c.helpers),a.usePartial&&(f.partials=f.merge(b.partials,c.partials)),(a.usePartial||a.useDecorators)&&(f.decorators=f.merge(b.decorators,c.decorators)))},e._child=function(b,c,d,e){if(a.useBlockParams&&!d)throw new n["default"]("must pass block params");if(a.useDepths&&!e)throw new n["default"]("must pass parent depths");return h(f,b,a[b],c,0,d,e)},e}function h(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=m(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function i(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function j(a,c,e){var f=e.data&&e.data["partial-block"];e.partial=!0,e.ids&&(e.data.contextPath=e.ids[0]||e.data.contextPath);var g=void 0;if(e.fn&&e.fn!==k&&!function(){e.data=d.createFrame(e.data);var a=e.fn;g=e.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=d.createFrame(c.data),c.data["partial-block"]=f,a(b,c)},a.partials&&(e.partials=b.extend({},e.partials,a.partials))}(),void 0===a&&g&&(a=g),void 0===a)throw new n["default"]("The partial "+e.name+" could not be found");if(a instanceof Function)return a(c,e)}function k(){return""}function l(a,b){return b&&"root"in b||(b=b?d.createFrame(b):{},b.root=a),b}function m(a,c,d,e,f,g){if(a.decorator){var h={};c=a.decorator(c,h,d,e&&e[0],f,g,e),b.extend(c,h)}return c}a.__esModule=!0,a.checkRevision=f,a.template=g,a.wrapProgram=h,a.resolvePartial=i,a.invokePartial=j,a.noop=k;var n=e(c)}),define("handlebars/no-conflict",["exports","module"],function(a,b){"use strict";b.exports=function(a){var b="undefined"!=typeof global?global:window,c=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=c),a}}}),define("handlebars.runtime",["exports","module","./handlebars/base","./handlebars/safe-string","./handlebars/exception","./handlebars/utils","./handlebars/runtime","./handlebars/no-conflict"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){return a&&a.__esModule?a:{"default":a}}function j(){var a=new c.HandlebarsEnvironment;return f.extend(a,c),a.SafeString=k["default"],a.Exception=l["default"],a.Utils=f,a.escapeExpression=f.escapeExpression,a.VM=g,a.template=function(b){return g.template(b,a)},a}var k=i(d),l=i(e),m=i(h),n=j();n.create=j,m["default"](n),n["default"]=n,b.exports=n}); \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.js
index 3ed4e6bbc..86c977af2 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -207,7 +207,7 @@ return /******/ (function(modules) { // webpackBootstrap
var _logger2 = _interopRequireDefault(_logger);
- var VERSION = '4.0.8';
+ var VERSION = '4.0.10';
exports.VERSION = VERSION;
var COMPILER_REVISION = 7;
diff --git a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.min.js b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.min.js
index 8b12b74cc..131c2cccd 100644
--- a/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.min.js
+++ b/node_modules/nyc/node_modules/handlebars/dist/handlebars.runtime.min.js
@@ -1,7 +1,7 @@
/**!
@license
- handlebars v4.0.8
+ handlebars v4.0.10
Copyright (C) 2011-2016 by Yehuda Katz
@@ -24,4 +24,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j["default"],a.Exception=l["default"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(1)["default"],f=c(2)["default"];b.__esModule=!0;var g=c(3),h=e(g),i=c(20),j=f(i),k=c(5),l=f(k),m=c(4),n=e(m),o=c(21),p=e(o),q=c(33),r=f(q),s=d();s.create=d,r["default"](s),s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b},b.__esModule=!0},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(2)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(4),g=c(5),h=e(g),i=c(9),j=c(17),k=c(19),l=e(k),m="4.0.8";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function e(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return!a&&0!==a||!(!p(a)||0!==a.length)}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===n.call(a)};b.isArray=p},function(a,b,c){"use strict";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=" - "+g+":"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j<f.length;j++)this[f[j]]=i[f[j]];Error.captureStackTrace&&Error.captureStackTrace(this,d);try{c&&(this.lineNumber=g,e?Object.defineProperty(this,"column",{value:h,enumerable:!0}):this.column=h)}catch(k){}}var e=c(6)["default"];b.__esModule=!0;var f=["description","fileName","lineNumber","message","name","number","stack"];d.prototype=new Error,b["default"]=d,a.exports=b["default"]},function(a,b,c){a.exports={"default":c(7),__esModule:!0}},function(a,b,c){var d=c(8);a.exports=function(a,b,c){return d.setDesc(a,b,c)}},function(a,b){var c=Object;a.exports={create:c.create,getProto:c.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:c.getOwnPropertyDescriptor,setDesc:c.defineProperty,setDescs:c.defineProperties,getKeys:c.keys,getNames:c.getOwnPropertyNames,getSymbols:c.getOwnPropertySymbols,each:[].forEach}},function(a,b,c){"use strict";function d(a){g["default"](a),i["default"](a),k["default"](a),m["default"](a),o["default"](a),q["default"](a),s["default"](a)}var e=c(2)["default"];b.__esModule=!0,b.registerDefaultHelpers=d;var f=c(10),g=e(f),h=c(11),i=e(h),j=c(12),k=e(j),l=c(13),m=e(l),n=c(14),o=e(n),p=c(15),q=e(p),r=c(16),s=e(r)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("blockHelperMissing",function(b,c){var e=c.inverse,f=c.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(d.isArray(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(2)["default"];b.__esModule=!0;var e=c(4),f=c(5),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;h<l;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(2)["default"];b.__esModule=!0;var e=c(5),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("with",function(a,b){d.isFunction(a)&&(a=a.call(this));var c=b.fn;if(d.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=d.createFrame(b.data),e.contextPath=d.appendContextPath(b.data.contextPath,b.ids[0])),c(a,{data:e,blockParams:d.blockParams([a],[e&&e.contextPath])})})},a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a)}var e=c(2)["default"];b.__esModule=!0,b.registerDefaultDecorators=d;var f=c(18),g=e(f)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerDecorator("inline",function(a,b,c,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=c.partials;c.partials=d.extend({},g,b.partials);var h=a(e,f);return c.partials=g,h}),b.partials[e.args[0]]=e.fn,f})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4),e={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=d.indexOf(e.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f<c;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=s.COMPILER_REVISION;if(b!==c){if(b<c){var d=s.REVISION_CHANGES[c],e=s.REVISION_CHANGES[b];throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=p.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;h<i&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new r["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!=f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new r["default"]("No environment passed to template");if(!a||!a.main)throw new r["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new r["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:p.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=p.extend({},b,a)),c},nullContext:l({}),noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new r["default"]("must pass block params");if(a.useDepths&&!g)throw new r["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){var d=c.data&&c.data["partial-block"];c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var e=void 0;if(c.fn&&c.fn!==i&&!function(){c.data=s.createFrame(c.data);var a=c.fn;e=c.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=s.createFrame(c.data),c.data["partial-block"]=d,a(b,c)},a.partials&&(c.partials=p.extend({},c.partials,a.partials))}(),void 0===a&&e&&(a=e),void 0===a)throw new r["default"]("The partial "+c.name+" could not be found");if(a instanceof Function)return a(b,c)}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?s.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),p.extend(b,g)}return b}var l=c(22)["default"],m=c(1)["default"],n=c(2)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var o=c(4),p=m(o),q=c(5),r=n(q),s=c(3)},function(a,b,c){a.exports={"default":c(23),__esModule:!0}},function(a,b,c){c(24),a.exports=c(29).Object.seal},function(a,b,c){var d=c(25);c(26)("seal",function(a){return function(b){return a&&d(b)?a(b):b}})},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){var d=c(27),e=c(29),f=c(32);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(28),e=c(29),f=c(30),g="prototype",h=function(a,b,c){var i,j,k,l=a&h.F,m=a&h.G,n=a&h.S,o=a&h.P,p=a&h.B,q=a&h.W,r=m?e:e[b]||(e[b]={}),s=m?d:n?d[b]:(d[b]||{})[g];m&&(c=b);for(i in c)j=!l&&s&&i in s,j&&i in r||(k=j?s[i]:c[i],r[i]=m&&"function"!=typeof s[i]?c[i]:p&&j?f(k,d):q&&s[i]==k?function(a){var b=function(b){return this instanceof a?new a(b):a(b)};return b[g]=a[g],b}(k):o&&"function"==typeof k?f(Function.call,k):k,o&&((r[g]||(r[g]={}))[i]=k))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,a.exports=h},function(a,b){var c=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b){var c=a.exports={version:"1.2.6"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(31);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())}])}); \ No newline at end of file
+!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j["default"],a.Exception=l["default"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(1)["default"],f=c(2)["default"];b.__esModule=!0;var g=c(3),h=e(g),i=c(20),j=f(i),k=c(5),l=f(k),m=c(4),n=e(m),o=c(21),p=e(o),q=c(33),r=f(q),s=d();s.create=d,r["default"](s),s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b},b.__esModule=!0},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(2)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(4),g=c(5),h=e(g),i=c(9),j=c(17),k=c(19),l=e(k),m="4.0.10";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function e(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return!a&&0!==a||!(!p(a)||0!==a.length)}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===n.call(a)};b.isArray=p},function(a,b,c){"use strict";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=" - "+g+":"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j<f.length;j++)this[f[j]]=i[f[j]];Error.captureStackTrace&&Error.captureStackTrace(this,d);try{c&&(this.lineNumber=g,e?Object.defineProperty(this,"column",{value:h,enumerable:!0}):this.column=h)}catch(k){}}var e=c(6)["default"];b.__esModule=!0;var f=["description","fileName","lineNumber","message","name","number","stack"];d.prototype=new Error,b["default"]=d,a.exports=b["default"]},function(a,b,c){a.exports={"default":c(7),__esModule:!0}},function(a,b,c){var d=c(8);a.exports=function(a,b,c){return d.setDesc(a,b,c)}},function(a,b){var c=Object;a.exports={create:c.create,getProto:c.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:c.getOwnPropertyDescriptor,setDesc:c.defineProperty,setDescs:c.defineProperties,getKeys:c.keys,getNames:c.getOwnPropertyNames,getSymbols:c.getOwnPropertySymbols,each:[].forEach}},function(a,b,c){"use strict";function d(a){g["default"](a),i["default"](a),k["default"](a),m["default"](a),o["default"](a),q["default"](a),s["default"](a)}var e=c(2)["default"];b.__esModule=!0,b.registerDefaultHelpers=d;var f=c(10),g=e(f),h=c(11),i=e(h),j=c(12),k=e(j),l=c(13),m=e(l),n=c(14),o=e(n),p=c(15),q=e(p),r=c(16),s=e(r)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("blockHelperMissing",function(b,c){var e=c.inverse,f=c.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(d.isArray(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(2)["default"];b.__esModule=!0;var e=c(4),f=c(5),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;h<l;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(2)["default"];b.__esModule=!0;var e=c(5),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerHelper("with",function(a,b){d.isFunction(a)&&(a=a.call(this));var c=b.fn;if(d.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=d.createFrame(b.data),e.contextPath=d.appendContextPath(b.data.contextPath,b.ids[0])),c(a,{data:e,blockParams:d.blockParams([a],[e&&e.contextPath])})})},a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a)}var e=c(2)["default"];b.__esModule=!0,b.registerDefaultDecorators=d;var f=c(18),g=e(f)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4);b["default"]=function(a){a.registerDecorator("inline",function(a,b,c,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=c.partials;c.partials=d.extend({},g,b.partials);var h=a(e,f);return c.partials=g,h}),b.partials[e.args[0]]=e.fn,f})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(4),e={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=d.indexOf(e.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f<c;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=s.COMPILER_REVISION;if(b!==c){if(b<c){var d=s.REVISION_CHANGES[c],e=s.REVISION_CHANGES[b];throw new r["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new r["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=p.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;h<i&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new r["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!=f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new r["default"]("No environment passed to template");if(!a||!a.main)throw new r["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new r["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;d<c;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:p.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=p.extend({},b,a)),c},nullContext:l({}),noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new r["default"]("must pass block params");if(a.useDepths&&!g)throw new r["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return!g||b==g[0]||b===a.nullContext&&null===g[0]||(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){var d=c.data&&c.data["partial-block"];c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var e=void 0;if(c.fn&&c.fn!==i&&!function(){c.data=s.createFrame(c.data);var a=c.fn;e=c.data["partial-block"]=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.data=s.createFrame(c.data),c.data["partial-block"]=d,a(b,c)},a.partials&&(c.partials=p.extend({},c.partials,a.partials))}(),void 0===a&&e&&(a=e),void 0===a)throw new r["default"]("The partial "+c.name+" could not be found");if(a instanceof Function)return a(b,c)}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?s.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),p.extend(b,g)}return b}var l=c(22)["default"],m=c(1)["default"],n=c(2)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var o=c(4),p=m(o),q=c(5),r=n(q),s=c(3)},function(a,b,c){a.exports={"default":c(23),__esModule:!0}},function(a,b,c){c(24),a.exports=c(29).Object.seal},function(a,b,c){var d=c(25);c(26)("seal",function(a){return function(b){return a&&d(b)?a(b):b}})},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b,c){var d=c(27),e=c(29),f=c(32);a.exports=function(a,b){var c=(e.Object||{})[a]||Object[a],g={};g[a]=b(c),d(d.S+d.F*f(function(){c(1)}),"Object",g)}},function(a,b,c){var d=c(28),e=c(29),f=c(30),g="prototype",h=function(a,b,c){var i,j,k,l=a&h.F,m=a&h.G,n=a&h.S,o=a&h.P,p=a&h.B,q=a&h.W,r=m?e:e[b]||(e[b]={}),s=m?d:n?d[b]:(d[b]||{})[g];m&&(c=b);for(i in c)j=!l&&s&&i in s,j&&i in r||(k=j?s[i]:c[i],r[i]=m&&"function"!=typeof s[i]?c[i]:p&&j?f(k,d):q&&s[i]==k?function(a){var b=function(b){return this instanceof a?new a(b):a(b)};return b[g]=a[g],b}(k):o&&"function"==typeof k?f(Function.call,k):k,o&&((r[g]||(r[g]={}))[i]=k))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,a.exports=h},function(a,b){var c=a.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b){var c=a.exports={version:"1.2.6"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(31);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){try{return!!a()}catch(b){return!0}}},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())}])}); \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/handlebars/lib/handlebars/base.js b/node_modules/nyc/node_modules/handlebars/lib/handlebars/base.js
index a684797c9..d0ad13310 100644
--- a/node_modules/nyc/node_modules/handlebars/lib/handlebars/base.js
+++ b/node_modules/nyc/node_modules/handlebars/lib/handlebars/base.js
@@ -4,7 +4,7 @@ import {registerDefaultHelpers} from './helpers';
import {registerDefaultDecorators} from './decorators';
import logger from './logger';
-export const VERSION = '4.0.8';
+export const VERSION = '4.0.10';
export const COMPILER_REVISION = 7;
export const REVISION_CHANGES = {
diff --git a/node_modules/nyc/node_modules/handlebars/lib/handlebars/compiler/compiler.js b/node_modules/nyc/node_modules/handlebars/lib/handlebars/compiler/compiler.js
index 987d0d459..47107cc5c 100644
--- a/node_modules/nyc/node_modules/handlebars/lib/handlebars/compiler/compiler.js
+++ b/node_modules/nyc/node_modules/handlebars/lib/handlebars/compiler/compiler.js
@@ -1,7 +1,7 @@
/* eslint-disable new-cap */
import Exception from '../exception';
-import {isArray, indexOf} from '../utils';
+import {isArray, indexOf, extend} from '../utils';
import AST from './ast';
const slice = [].slice;
@@ -70,7 +70,7 @@ Compiler.prototype = {
for (let name in knownHelpers) {
/* istanbul ignore else */
if (name in knownHelpers) {
- options.knownHelpers[name] = knownHelpers[name];
+ this.options.knownHelpers[name] = knownHelpers[name];
}
}
}
@@ -488,6 +488,7 @@ export function compile(input, options = {}, env) {
throw new Exception('You must pass a string or Handlebars AST to Handlebars.compile. You passed ' + input);
}
+ options = extend({}, options);
if (!('data' in options)) {
options.data = true;
}
diff --git a/node_modules/nyc/node_modules/handlebars/node_modules/source-map/package.json b/node_modules/nyc/node_modules/handlebars/node_modules/source-map/package.json
index 4223ae20e..70038e78e 100644
--- a/node_modules/nyc/node_modules/handlebars/node_modules/source-map/package.json
+++ b/node_modules/nyc/node_modules/handlebars/node_modules/source-map/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.4.4 <0.5.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/handlebars"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars"
]
],
"_from": "source-map@>=0.4.4 <0.5.0",
@@ -39,7 +39,7 @@
"_shasum": "eba4f5da9c0dc999de68032d8b4f76173652036b",
"_shrinkwrap": null,
"_spec": "source-map@^0.4.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/handlebars",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars",
"author": {
"name": "Nick Fitzgerald",
"email": "nfitzgerald@mozilla.com"
diff --git a/node_modules/nyc/node_modules/handlebars/package.json b/node_modules/nyc/node_modules/handlebars/package.json
index 96612462c..c9736a6b9 100644
--- a/node_modules/nyc/node_modules/handlebars/package.json
+++ b/node_modules/nyc/node_modules/handlebars/package.json
@@ -10,17 +10,17 @@
"spec": ">=4.0.3 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-reports"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-reports"
]
],
"_from": "handlebars@>=4.0.3 <5.0.0",
- "_id": "handlebars@4.0.8",
+ "_id": "handlebars@4.0.10",
"_inCache": true,
"_location": "/handlebars",
"_nodeVersion": "6.9.2",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/handlebars-4.0.8.tgz_1493758575897_0.5980861084535718"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/handlebars-4.0.10.tgz_1495368715601_0.8045995919965208"
},
"_npmUser": {
"name": "knappi",
@@ -42,11 +42,11 @@
"_requiredBy": [
"/istanbul-reports"
],
- "_resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.8.tgz",
- "_shasum": "22b875cd3f0e6cbea30314f144e82bc7a72ff420",
+ "_resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
+ "_shasum": "3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f",
"_shrinkwrap": null,
"_spec": "handlebars@^4.0.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-reports",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-reports",
"author": {
"name": "Yehuda Katz"
},
@@ -96,13 +96,13 @@
},
"directories": {},
"dist": {
- "shasum": "22b875cd3f0e6cbea30314f144e82bc7a72ff420",
- "tarball": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.8.tgz"
+ "shasum": "3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f",
+ "tarball": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz"
},
"engines": {
"node": ">=0.4.7"
},
- "gitHead": "fed5818876ec325b2b48a61395fe0089bdda05e8",
+ "gitHead": "670ec6fafbf99986a70074a37f73d41bad60b083",
"homepage": "http://www.handlebarsjs.com/",
"jspm": {
"main": "handlebars",
@@ -156,5 +156,5 @@
"scripts": {
"test": "grunt"
},
- "version": "4.0.8"
+ "version": "4.0.10"
}
diff --git a/node_modules/nyc/node_modules/handlebars/release-notes.md b/node_modules/nyc/node_modules/handlebars/release-notes.md
index 36bec7890..4db22231d 100644
--- a/node_modules/nyc/node_modules/handlebars/release-notes.md
+++ b/node_modules/nyc/node_modules/handlebars/release-notes.md
@@ -2,7 +2,31 @@
## Development
-[Commits](https://github.com/nknapp/handlebars.js/compare/v4.0.8...master)
+[Commits](https://github.com/nknapp/handlebars.js/compare/v4.0.10...master)
+
+## v4.0.10 - May 21st, 2017
+- Fix regression in 4.0.9: Replace "Object.assign" (not support in IE) by "util/extend" - 0e953d1
+
+
+
+[Commits](https://github.com/nknapp/handlebars.js/compare/v4.0.9...v4.0.10)
+
+## v4.0.9 - May 21st, 2017
+
+- [#1327](https://github.com/wycats/handlebars.js/issues/1327) Handlebars.compile() does not modify "options" anymore
+- pending [#1331](https://github.com/wycats/handlebars.js/issues/1331) Attempts to build Handlebars in a Windows environment
+ - Fix build in windows - cc554a5
+ - Ensure LF line-edings in handlebars-template fixtures (*.hbs) - ed879a6
+ - Run integration test with `node handlebars -a ...` on Windows - 2e21e2b
+ - Ensure LF line-edings in lexer-files (*.l) - bdfdbea
+ - Force LF line-endings for spec/artifacts - b50ef03
+ - Use istanbul/lib/cli.js instead of node_modules/.bin/istanbul - 6e6269f
+- TravisCI: Publish valid semver tags independently of the branch - 7378f85
+
+Compatibility notes:
+- No compatibility issues are expected.
+
+[Commits](https://github.com/nknapp/handlebars.js/compare/v4.0.8...v4.0.9)
## v4.0.8 - May 2nd, 2017
- [#1341](https://github.com/wycats/handlebars.js/issues/1341) [#1342](https://github.com/wycats/handlebars.js/issues/1342) Allow partial-blocks to be executed without "options" ([@nknapp](https://github.com/nknapp)) - a00c598
diff --git a/node_modules/nyc/node_modules/has-ansi/package.json b/node_modules/nyc/node_modules/has-ansi/package.json
index 12d5b004e..7fc231926 100644
--- a/node_modules/nyc/node_modules/has-ansi/package.json
+++ b/node_modules/nyc/node_modules/has-ansi/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/chalk"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/chalk"
]
],
"_from": "has-ansi@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91",
"_shrinkwrap": null,
"_spec": "has-ansi@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/chalk",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/has-flag/package.json b/node_modules/nyc/node_modules/has-flag/package.json
index a28913b1d..7af124eb8 100644
--- a/node_modules/nyc/node_modules/has-flag/package.json
+++ b/node_modules/nyc/node_modules/has-flag/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report/node_modules/supports-color"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report/node_modules/supports-color"
]
],
"_from": "has-flag@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "9d9e793165ce017a00f00418c43f942a7b1d11fa",
"_shrinkwrap": null,
"_spec": "has-flag@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report/node_modules/supports-color",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report/node_modules/supports-color",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/hosted-git-info/index.js b/node_modules/nyc/node_modules/hosted-git-info/index.js
index 8577ffb76..9055ab185 100644
--- a/node_modules/nyc/node_modules/hosted-git-info/index.js
+++ b/node_modules/nyc/node_modules/hosted-git-info/index.js
@@ -23,7 +23,19 @@ var authProtocols = {
'git+http:': true
}
+var cache = {}
+
module.exports.fromUrl = function (giturl, opts) {
+ var key = giturl + JSON.stringify(opts || {})
+
+ if (!(key in cache)) {
+ cache[key] = fromUrl(giturl, opts)
+ }
+
+ return cache[key]
+}
+
+function fromUrl (giturl, opts) {
if (giturl == null || giturl === '') return
var url = fixupUnqualifiedGist(
isGitHubShorthand(giturl) ? 'github:' + giturl : giturl
diff --git a/node_modules/nyc/node_modules/hosted-git-info/package.json b/node_modules/nyc/node_modules/hosted-git-info/package.json
index f4bf5c82c..6eb91ab55 100644
--- a/node_modules/nyc/node_modules/hosted-git-info/package.json
+++ b/node_modules/nyc/node_modules/hosted-git-info/package.json
@@ -10,23 +10,23 @@
"spec": ">=2.1.4 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data"
]
],
"_from": "hosted-git-info@>=2.1.4 <3.0.0",
- "_id": "hosted-git-info@2.4.2",
+ "_id": "hosted-git-info@2.5.0",
"_inCache": true,
"_location": "/hosted-git-info",
- "_nodeVersion": "7.7.4",
+ "_nodeVersion": "8.1.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/hosted-git-info-2.4.2.tgz_1492124098717_0.3664245803374797"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/hosted-git-info-2.5.0.tgz_1498508747138_0.45297089754603803"
},
"_npmUser": {
"name": "iarna",
"email": "me@re-becca.org"
},
- "_npmVersion": "4.5.0",
+ "_npmVersion": "5.0.4",
"_phantomChildren": {},
"_requested": {
"raw": "hosted-git-info@^2.1.4",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/normalize-package-data"
],
- "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz",
- "_shasum": "0076b9f46a270506ddbaaea56496897460612a67",
+ "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
+ "_shasum": "6d60e34b3abbc8313062c3b798ef8d901a07af3c",
"_shrinkwrap": null,
"_spec": "hosted-git-info@^2.1.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
@@ -61,15 +61,16 @@
},
"directories": {},
"dist": {
- "shasum": "0076b9f46a270506ddbaaea56496897460612a67",
- "tarball": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz"
+ "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "shasum": "6d60e34b3abbc8313062c3b798ef8d901a07af3c",
+ "tarball": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz"
},
"files": [
"index.js",
"git-host.js",
"git-host-info.js"
],
- "gitHead": "91fb3adc2c3c7c024f7fb4e34a1510db0f7625ed",
+ "gitHead": "88da66d167a6d896c129d97209ce9864c201d067",
"homepage": "https://github.com/npm/hosted-git-info",
"keywords": [
"git",
@@ -104,5 +105,5 @@
"scripts": {
"test": "standard && tap -J --coverage test/*.js"
},
- "version": "2.4.2"
+ "version": "2.5.0"
}
diff --git a/node_modules/nyc/node_modules/imurmurhash/package.json b/node_modules/nyc/node_modules/imurmurhash/package.json
index 90309a751..c7d3cb327 100644
--- a/node_modules/nyc/node_modules/imurmurhash/package.json
+++ b/node_modules/nyc/node_modules/imurmurhash/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.4 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic"
]
],
"_from": "imurmurhash@>=0.1.4 <0.2.0",
@@ -39,7 +39,7 @@
"_shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea",
"_shrinkwrap": null,
"_spec": "imurmurhash@^0.1.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic",
"author": {
"name": "Jens Taylor",
"email": "jensyt@gmail.com",
diff --git a/node_modules/nyc/node_modules/inflight/package.json b/node_modules/nyc/node_modules/inflight/package.json
index 94990ca73..70d39cbee 100644
--- a/node_modules/nyc/node_modules/inflight/package.json
+++ b/node_modules/nyc/node_modules/inflight/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.4 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
"_from": "inflight@>=1.0.4 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
"_shrinkwrap": null,
"_spec": "inflight@^1.0.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/inherits/package.json b/node_modules/nyc/node_modules/inherits/package.json
index 521e2ed6b..ee1a8526c 100644
--- a/node_modules/nyc/node_modules/inherits/package.json
+++ b/node_modules/nyc/node_modules/inherits/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
"_from": "inherits@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "633c2c83e3da42a502f52466022480f4208261de",
"_shrinkwrap": null,
"_spec": "inherits@2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"browser": "./inherits_browser.js",
"bugs": {
"url": "https://github.com/isaacs/inherits/issues"
diff --git a/node_modules/nyc/node_modules/invariant/package.json b/node_modules/nyc/node_modules/invariant/package.json
index c453284cd..33535de1b 100644
--- a/node_modules/nyc/node_modules/invariant/package.json
+++ b/node_modules/nyc/node_modules/invariant/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.2.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse"
]
],
"_from": "invariant@>=2.2.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "9e1f56ac0acdb6bf303306f338be3b204ae60360",
"_shrinkwrap": null,
"_spec": "invariant@^2.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-traverse",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-traverse",
"author": {
"name": "Andres Suarez",
"email": "zertosh@gmail.com"
diff --git a/node_modules/nyc/node_modules/invert-kv/package.json b/node_modules/nyc/node_modules/invert-kv/package.json
index 355c10f1c..5c0f9bee3 100644
--- a/node_modules/nyc/node_modules/invert-kv/package.json
+++ b/node_modules/nyc/node_modules/invert-kv/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/lcid"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/lcid"
]
],
"_from": "invert-kv@>=1.0.0 <2.0.0",
@@ -39,7 +39,7 @@
"_shasum": "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6",
"_shrinkwrap": null,
"_spec": "invert-kv@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/lcid",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/lcid",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/is-arrayish/package.json b/node_modules/nyc/node_modules/is-arrayish/package.json
index cbef4beff..8a0d96c4c 100644
--- a/node_modules/nyc/node_modules/is-arrayish/package.json
+++ b/node_modules/nyc/node_modules/is-arrayish/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.2.1 <0.3.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/error-ex"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/error-ex"
]
],
"_from": "is-arrayish@>=0.2.1 <0.3.0",
@@ -40,7 +40,7 @@
"_shasum": "77c99840527aa8ecb1a8ba697b80645a7a926a9d",
"_shrinkwrap": null,
"_spec": "is-arrayish@^0.2.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/error-ex",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/error-ex",
"author": {
"name": "Qix",
"url": "http://github.com/qix-"
diff --git a/node_modules/nyc/node_modules/is-buffer/package.json b/node_modules/nyc/node_modules/is-buffer/package.json
index ac00e196c..b3c9d8a78 100644
--- a/node_modules/nyc/node_modules/is-buffer/package.json
+++ b/node_modules/nyc/node_modules/is-buffer/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.1.5 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/kind-of"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/kind-of"
]
],
"_from": "is-buffer@>=1.1.5 <2.0.0",
@@ -38,13 +38,15 @@
"type": "range"
},
"_requiredBy": [
- "/kind-of"
+ "/kind-of",
+ "/randomatic/is-number/kind-of",
+ "/randomatic/kind-of"
],
"_resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
"_shasum": "1f3b26ef613b214b88cbca23cc6c01d87961eecc",
"_shrinkwrap": null,
"_spec": "is-buffer@^1.1.5",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/kind-of",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/kind-of",
"author": {
"name": "Feross Aboukhadijeh",
"email": "feross@feross.org",
diff --git a/node_modules/nyc/node_modules/is-builtin-module/package.json b/node_modules/nyc/node_modules/is-builtin-module/package.json
index d9155ebdc..2d67d51b8 100644
--- a/node_modules/nyc/node_modules/is-builtin-module/package.json
+++ b/node_modules/nyc/node_modules/is-builtin-module/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data"
]
],
"_from": "is-builtin-module@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe",
"_shrinkwrap": null,
"_spec": "is-builtin-module@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/is-dotfile/LICENSE b/node_modules/nyc/node_modules/is-dotfile/LICENSE
index 33754daec..83b56e709 100644
--- a/node_modules/nyc/node_modules/is-dotfile/LICENSE
+++ b/node_modules/nyc/node_modules/is-dotfile/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015 Jon Schlinkert
+Copyright (c) 2015-2017, Jon Schlinkert
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/nyc/node_modules/is-dotfile/README.md b/node_modules/nyc/node_modules/is-dotfile/README.md
index d17b55ccb..d69912bb1 100644
--- a/node_modules/nyc/node_modules/is-dotfile/README.md
+++ b/node_modules/nyc/node_modules/is-dotfile/README.md
@@ -1,17 +1,19 @@
-# is-dotfile [![NPM version](https://badge.fury.io/js/is-dotfile.svg)](http://badge.fury.io/js/is-dotfile)
+# is-dotfile [![NPM version](https://img.shields.io/npm/v/is-dotfile.svg?style=flat)](https://www.npmjs.com/package/is-dotfile) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-dotfile.svg?style=flat)](https://npmjs.org/package/is-dotfile) [![NPM total downloads](https://img.shields.io/npm/dt/is-dotfile.svg?style=flat)](https://npmjs.org/package/is-dotfile) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-dotfile.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-dotfile)
> Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.
## Install
-Install with [npm](https://www.npmjs.com/)
+Install with [npm](https://www.npmjs.com/):
```sh
-$ npm i is-dotfile --save
+$ npm install --save is-dotfile
```
## Usage
+To be considered a dotfile, it must be the last filename in the path, like `.gitignore`. Otherwise it's a [dot directory](https://github.com/jonschlinkert/is-dotdir), like `.git/` and `.github/`.
+
```js
var isDotfile = require('is-dotfile');
```
@@ -38,37 +40,56 @@ isDotfile('/.gitignore');
//=> true
```
-## Related projects
+## About
+
+### Related projects
+
+* [dotdir-regex](https://www.npmjs.com/package/dotdir-regex): Regex for matching dot-directories, like `.git/` | [homepage](https://github.com/regexps/dotdir-regex "Regex for matching dot-directories, like `.git/`")
+* [dotfile-regex](https://www.npmjs.com/package/dotfile-regex): Regular expresson for matching dotfiles. | [homepage](https://github.com/regexps/dotfile-regex "Regular expresson for matching dotfiles.")
+* [is-dotdir](https://www.npmjs.com/package/is-dotdir): Returns true if a path is a dot-directory. | [homepage](https://github.com/jonschlinkert/is-dotdir "Returns true if a path is a dot-directory.")
+* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
+
+### Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
-* [dotfile-regex](https://www.npmjs.com/package/dotfile-regex): Regular expresson for matching dotfiles. | [homepage](https://github.com/regexps/dotfile-regex)
-* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob)
-* [is-dotdir](https://www.npmjs.com/package/is-dotdir): Returns true if a path is a dot-directory. | [homepage](https://github.com/jonschlinkert/is-dotdir)
-* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern.… [more](https://www.npmjs.com/package/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob)
+### Contributors
-## Running tests
+| **Commits** | **Contributor** |
+| --- | --- |
+| 13 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 1 | [Lykathia](https://github.com/Lykathia) |
-Install dev dependencies:
+### Building docs
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
```sh
-$ npm i -d && npm test
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
```
-## Contributing
+### Running tests
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
-Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-dotfile/issues/new).
+```sh
+$ npm install && npm test
+```
-## Authors
+### Author
**Jon Schlinkert**
-+ [github/jonschlinkert](https://github.com/jonschlinkert)
-+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
-## License
+### License
-Copyright © 2015 Jon Schlinkert
-Released under the MIT license.
+Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
***
-_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on October 20, 2015._ \ No newline at end of file
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 30, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/is-dotfile/index.js b/node_modules/nyc/node_modules/is-dotfile/index.js
index 5a0a0caa8..46cb20b14 100644
--- a/node_modules/nyc/node_modules/is-dotfile/index.js
+++ b/node_modules/nyc/node_modules/is-dotfile/index.js
@@ -1,15 +1,14 @@
/*!
- * is-dotfile <https://github.com/regexps/is-dotfile>
+ * is-dotfile <https://github.com/jonschlinkert/is-dotfile>
*
- * Copyright (c) 2015 Jon Schlinkert, contributors.
- * Licensed under the MIT license.
+ * Copyright (c) 2015-2017, Jon Schlinkert.
+ * Released under the MIT License.
*/
module.exports = function(str) {
if (str.charCodeAt(0) === 46 /* . */ && str.indexOf('/', 1) === -1) {
return true;
}
-
- var last = str.lastIndexOf('/');
- return last !== -1 ? str.charCodeAt(last + 1) === 46 /* . */ : false;
+ var slash = str.lastIndexOf('/');
+ return slash !== -1 ? str.charCodeAt(slash + 1) === 46 /* . */ : false;
};
diff --git a/node_modules/nyc/node_modules/is-dotfile/package.json b/node_modules/nyc/node_modules/is-dotfile/package.json
index a55d9bee7..d89e42f32 100644
--- a/node_modules/nyc/node_modules/is-dotfile/package.json
+++ b/node_modules/nyc/node_modules/is-dotfile/package.json
@@ -10,19 +10,23 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/parse-glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/parse-glob"
]
],
"_from": "is-dotfile@>=1.0.0 <2.0.0",
- "_id": "is-dotfile@1.0.2",
+ "_id": "is-dotfile@1.0.3",
"_inCache": true,
"_location": "/is-dotfile",
- "_nodeVersion": "4.2.1",
+ "_nodeVersion": "7.7.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/is-dotfile-1.0.3.tgz_1496154299381_0.9273945165332407"
+ },
"_npmUser": {
"name": "jonschlinkert",
"email": "github@sellside.com"
},
- "_npmVersion": "2.14.7",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
"raw": "is-dotfile@^1.0.0",
@@ -36,11 +40,11 @@
"_requiredBy": [
"/parse-glob"
],
- "_resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
- "_shasum": "2c132383f39199f8edc268ca01b9b007d205cc4d",
+ "_resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "_shasum": "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1",
"_shrinkwrap": null,
"_spec": "is-dotfile@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/parse-glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/parse-glob",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -48,17 +52,28 @@
"bugs": {
"url": "https://github.com/jonschlinkert/is-dotfile/issues"
},
+ "contributors": [
+ {
+ "name": "Evan Lowry",
+ "url": "http://exitiumonline.com"
+ },
+ {
+ "name": "Jon Schlinkert",
+ "url": "http://twitter.com/jonschlinkert"
+ }
+ ],
"dependencies": {},
"description": "Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.",
"devDependencies": {
"benchmarked": "^0.1.3",
"dotfile-regex": "^0.1.2",
+ "gulp-format-md": "^0.1.12",
"mocha": "*"
},
"directories": {},
"dist": {
- "shasum": "2c132383f39199f8edc268ca01b9b007d205cc4d",
- "tarball": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz"
+ "shasum": "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1",
+ "tarball": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -66,7 +81,7 @@
"files": [
"index.js"
],
- "gitHead": "df258600b0afa6403a2a840f2ec486c9d350492f",
+ "gitHead": "1548d0045c182dfb0ac7b747e2d484dcd382b09d",
"homepage": "https://github.com/jonschlinkert/is-dotfile",
"keywords": [
"detect",
@@ -88,13 +103,17 @@
"main": "index.js",
"maintainers": [
{
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ },
+ {
"name": "jonschlinkert",
"email": "github@sellside.com"
}
],
"name": "is-dotfile",
"optionalDependencies": {},
- "readme": "# is-dotfile [![NPM version](https://badge.fury.io/js/is-dotfile.svg)](http://badge.fury.io/js/is-dotfile)\n\n> Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/)\n\n```sh\n$ npm i is-dotfile --save\n```\n\n## Usage\n\n```js\nvar isDotfile = require('is-dotfile');\n```\n\n**false**\n\nAll of the following return `false`:\n\n```js\nisDotfile('a/b/c.js');\nisDotfile('/.git/foo');\nisDotfile('a/b/c/.git/foo');\n//=> false\n```\n\n**true**\n\nAll of the following return `true`:\n\n```js\nisDotfile('a/b/.gitignore');\nisDotfile('.gitignore');\nisDotfile('/.gitignore');\n//=> true\n```\n\n## Related projects\n\n* [dotfile-regex](https://www.npmjs.com/package/dotfile-regex): Regular expresson for matching dotfiles. | [homepage](https://github.com/regexps/dotfile-regex)\n* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob)\n* [is-dotdir](https://www.npmjs.com/package/is-dotdir): Returns true if a path is a dot-directory. | [homepage](https://github.com/jonschlinkert/is-dotdir)\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern.… [more](https://www.npmjs.com/package/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob)\n\n## Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm i -d && npm test\n```\n\n## Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-dotfile/issues/new).\n\n## Authors\n\n**Jon Schlinkert**\n\n+ [github/jonschlinkert](https://github.com/jonschlinkert)\n+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n## License\n\nCopyright © 2015 Jon Schlinkert\nReleased under the MIT license.\n\n***\n\n_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on October 20, 2015._",
+ "readme": "# is-dotfile [![NPM version](https://img.shields.io/npm/v/is-dotfile.svg?style=flat)](https://www.npmjs.com/package/is-dotfile) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-dotfile.svg?style=flat)](https://npmjs.org/package/is-dotfile) [![NPM total downloads](https://img.shields.io/npm/dt/is-dotfile.svg?style=flat)](https://npmjs.org/package/is-dotfile) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-dotfile.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-dotfile)\n\n> Return true if a file path is (or has) a dotfile. Returns false if the path is a dot directory.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save is-dotfile\n```\n\n## Usage\n\nTo be considered a dotfile, it must be the last filename in the path, like `.gitignore`. Otherwise it's a [dot directory](https://github.com/jonschlinkert/is-dotdir), like `.git/` and `.github/`.\n\n```js\nvar isDotfile = require('is-dotfile');\n```\n\n**false**\n\nAll of the following return `false`:\n\n```js\nisDotfile('a/b/c.js');\nisDotfile('/.git/foo');\nisDotfile('a/b/c/.git/foo');\n//=> false\n```\n\n**true**\n\nAll of the following return `true`:\n\n```js\nisDotfile('a/b/.gitignore');\nisDotfile('.gitignore');\nisDotfile('/.gitignore');\n//=> true\n```\n\n## About\n\n### Related projects\n\n* [dotdir-regex](https://www.npmjs.com/package/dotdir-regex): Regex for matching dot-directories, like `.git/` | [homepage](https://github.com/regexps/dotdir-regex \"Regex for matching dot-directories, like `.git/`\")\n* [dotfile-regex](https://www.npmjs.com/package/dotfile-regex): Regular expresson for matching dotfiles. | [homepage](https://github.com/regexps/dotfile-regex \"Regular expresson for matching dotfiles.\")\n* [is-dotdir](https://www.npmjs.com/package/is-dotdir): Returns true if a path is a dot-directory. | [homepage](https://github.com/jonschlinkert/is-dotdir \"Returns true if a path is a dot-directory.\")\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 13 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 1 | [Lykathia](https://github.com/Lykathia) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 30, 2017._",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -106,12 +125,23 @@
"verb": {
"related": {
"list": [
- "has-glob",
- "is-glob",
+ "dotdir-regex",
"dotfile-regex",
- "is-dotdir"
+ "is-dotdir",
+ "is-glob"
]
+ },
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
}
},
- "version": "1.0.2"
+ "version": "1.0.3"
}
diff --git a/node_modules/nyc/node_modules/is-equal-shallow/package.json b/node_modules/nyc/node_modules/is-equal-shallow/package.json
index f5c154b46..c734eb965 100644
--- a/node_modules/nyc/node_modules/is-equal-shallow/package.json
+++ b/node_modules/nyc/node_modules/is-equal-shallow/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.3 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/regex-cache"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/regex-cache"
]
],
"_from": "is-equal-shallow@>=0.1.3 <0.2.0",
@@ -40,7 +40,7 @@
"_shasum": "2238098fc221de0bcfa5d9eac4c45d638aa1c534",
"_shrinkwrap": null,
"_spec": "is-equal-shallow@^0.1.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/regex-cache",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/regex-cache",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-extendable/package.json b/node_modules/nyc/node_modules/is-extendable/package.json
index 64d756ec2..6275ac11e 100644
--- a/node_modules/nyc/node_modules/is-extendable/package.json
+++ b/node_modules/nyc/node_modules/is-extendable/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/object.omit"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/object.omit"
]
],
"_from": "is-extendable@>=0.1.1 <0.2.0",
@@ -40,7 +40,7 @@
"_shasum": "62b110e289a471418e3ec36a617d472e301dfc89",
"_shrinkwrap": null,
"_spec": "is-extendable@^0.1.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/object.omit",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/object.omit",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-extglob/package.json b/node_modules/nyc/node_modules/is-extglob/package.json
index 65a3bbbf1..3575a055d 100644
--- a/node_modules/nyc/node_modules/is-extglob/package.json
+++ b/node_modules/nyc/node_modules/is-extglob/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "is-extglob@>=1.0.0 <2.0.0",
@@ -43,7 +43,7 @@
"_shasum": "ac468177c4943405a092fc8f29760c6ffc6206c0",
"_shrinkwrap": null,
"_spec": "is-extglob@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-finite/package.json b/node_modules/nyc/node_modules/is-finite/package.json
index 2ffe73405..126108a41 100644
--- a/node_modules/nyc/node_modules/is-finite/package.json
+++ b/node_modules/nyc/node_modules/is-finite/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/repeating"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/repeating"
]
],
"_from": "is-finite@>=1.0.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "cc6677695602be550ef11e8b4aa6305342b6d0aa",
"_shrinkwrap": null,
"_spec": "is-finite@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/repeating",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/repeating",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/is-fullwidth-code-point/package.json b/node_modules/nyc/node_modules/is-fullwidth-code-point/package.json
index 2a3e70c63..8577b0b5f 100644
--- a/node_modules/nyc/node_modules/is-fullwidth-code-point/package.json
+++ b/node_modules/nyc/node_modules/is-fullwidth-code-point/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/string-width"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width"
]
],
"_from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
@@ -34,13 +34,14 @@
"type": "range"
},
"_requiredBy": [
- "/string-width"
+ "/wrap-ansi/string-width",
+ "/yargs/cliui/string-width"
],
"_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
"_shrinkwrap": null,
"_spec": "is-fullwidth-code-point@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/string-width",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/is-glob/package.json b/node_modules/nyc/node_modules/is-glob/package.json
index a682f1ce2..1f900a59e 100644
--- a/node_modules/nyc/node_modules/is-glob/package.json
+++ b/node_modules/nyc/node_modules/is-glob/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.1 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "is-glob@>=2.0.1 <3.0.0",
@@ -43,7 +43,7 @@
"_shasum": "d096f926a3ded5600f3fdfd91198cb0888c2d863",
"_shrinkwrap": null,
"_spec": "is-glob@^2.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-number/package.json b/node_modules/nyc/node_modules/is-number/package.json
index f94ff30c9..2bfd95531 100644
--- a/node_modules/nyc/node_modules/is-number/package.json
+++ b/node_modules/nyc/node_modules/is-number/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.1.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/fill-range"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range"
]
],
"_from": "is-number@>=2.1.0 <3.0.0",
@@ -34,14 +34,13 @@
"type": "range"
},
"_requiredBy": [
- "/fill-range",
- "/randomatic"
+ "/fill-range"
],
"_resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
"_shasum": "01fcbbb393463a548f2f466cce16dece49db908f",
"_shrinkwrap": null,
"_spec": "is-number@^2.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/fill-range",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-posix-bracket/package.json b/node_modules/nyc/node_modules/is-posix-bracket/package.json
index 15949473c..97a3ac7ae 100644
--- a/node_modules/nyc/node_modules/is-posix-bracket/package.json
+++ b/node_modules/nyc/node_modules/is-posix-bracket/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.0 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/expand-brackets"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/expand-brackets"
]
],
"_from": "is-posix-bracket@>=0.1.0 <0.2.0",
@@ -44,7 +44,7 @@
"_shasum": "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4",
"_shrinkwrap": null,
"_spec": "is-posix-bracket@^0.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/expand-brackets",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/expand-brackets",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-primitive/package.json b/node_modules/nyc/node_modules/is-primitive/package.json
index fda3eedbc..f5e01fe65 100644
--- a/node_modules/nyc/node_modules/is-primitive/package.json
+++ b/node_modules/nyc/node_modules/is-primitive/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/regex-cache"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/regex-cache"
]
],
"_from": "is-primitive@>=2.0.0 <3.0.0",
@@ -41,7 +41,7 @@
"_shasum": "207bab91638499c07b2adf240a41a87210034575",
"_shrinkwrap": null,
"_spec": "is-primitive@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/regex-cache",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/regex-cache",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/is-stream/index.js b/node_modules/nyc/node_modules/is-stream/index.js
new file mode 100644
index 000000000..6f7ec91a4
--- /dev/null
+++ b/node_modules/nyc/node_modules/is-stream/index.js
@@ -0,0 +1,21 @@
+'use strict';
+
+var isStream = module.exports = function (stream) {
+ return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';
+};
+
+isStream.writable = function (stream) {
+ return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';
+};
+
+isStream.readable = function (stream) {
+ return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';
+};
+
+isStream.duplex = function (stream) {
+ return isStream.writable(stream) && isStream.readable(stream);
+};
+
+isStream.transform = function (stream) {
+ return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';
+};
diff --git a/node_modules/nyc/node_modules/is-stream/license b/node_modules/nyc/node_modules/is-stream/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/is-stream/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/is-stream/package.json b/node_modules/nyc/node_modules/is-stream/package.json
new file mode 100644
index 000000000..d527b49cd
--- /dev/null
+++ b/node_modules/nyc/node_modules/is-stream/package.json
@@ -0,0 +1,107 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "is-stream@^1.1.0",
+ "scope": null,
+ "escapedName": "is-stream",
+ "name": "is-stream",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/execa"
+ ]
+ ],
+ "_from": "is-stream@>=1.1.0 <2.0.0",
+ "_id": "is-stream@1.1.0",
+ "_inCache": true,
+ "_location": "/is-stream",
+ "_nodeVersion": "4.4.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/is-stream-1.1.0.tgz_1460446915184_0.806101513793692"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "is-stream@^1.1.0",
+ "scope": null,
+ "escapedName": "is-stream",
+ "name": "is-stream",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "_shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
+ "_shrinkwrap": null,
+ "_spec": "is-stream@^1.1.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-stream/issues"
+ },
+ "dependencies": {},
+ "description": "Check if something is a Node.js stream",
+ "devDependencies": {
+ "ava": "*",
+ "tempfile": "^1.1.0",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
+ "tarball": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "e21d73f1028c189d16150cea52641059b0936310",
+ "homepage": "https://github.com/sindresorhus/is-stream#readme",
+ "keywords": [
+ "stream",
+ "type",
+ "streams",
+ "writable",
+ "readable",
+ "duplex",
+ "transform",
+ "check",
+ "detect",
+ "is"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "is-stream",
+ "optionalDependencies": {},
+ "readme": "# is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream)\n\n> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html)\n\n\n## Install\n\n```\n$ npm install --save is-stream\n```\n\n\n## Usage\n\n```js\nconst fs = require('fs');\nconst isStream = require('is-stream');\n\nisStream(fs.createReadStream('unicorn.png'));\n//=> true\n\nisStream({});\n//=> false\n```\n\n\n## API\n\n### isStream(stream)\n\n#### isStream.writable(stream)\n\n#### isStream.readable(stream)\n\n#### isStream.duplex(stream)\n\n#### isStream.transform(stream)\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-stream.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0"
+}
diff --git a/node_modules/nyc/node_modules/is-stream/readme.md b/node_modules/nyc/node_modules/is-stream/readme.md
new file mode 100644
index 000000000..d8afce81d
--- /dev/null
+++ b/node_modules/nyc/node_modules/is-stream/readme.md
@@ -0,0 +1,42 @@
+# is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream)
+
+> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html)
+
+
+## Install
+
+```
+$ npm install --save is-stream
+```
+
+
+## Usage
+
+```js
+const fs = require('fs');
+const isStream = require('is-stream');
+
+isStream(fs.createReadStream('unicorn.png'));
+//=> true
+
+isStream({});
+//=> false
+```
+
+
+## API
+
+### isStream(stream)
+
+#### isStream.writable(stream)
+
+#### isStream.readable(stream)
+
+#### isStream.duplex(stream)
+
+#### isStream.transform(stream)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/is-utf8/package.json b/node_modules/nyc/node_modules/is-utf8/package.json
index 1728d8b0b..48d486005 100644
--- a/node_modules/nyc/node_modules/is-utf8/package.json
+++ b/node_modules/nyc/node_modules/is-utf8/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.2.0 <0.3.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/strip-bom"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/strip-bom"
]
],
"_from": "is-utf8@>=0.2.0 <0.3.0",
@@ -40,7 +40,7 @@
"_shasum": "4b0da1442104d1b336340e80797e865cf39f7d72",
"_shrinkwrap": null,
"_spec": "is-utf8@^0.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/strip-bom",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/strip-bom",
"author": {
"name": "wayfind"
},
diff --git a/node_modules/nyc/node_modules/isarray/package.json b/node_modules/nyc/node_modules/isarray/package.json
index 613520994..801eb00c7 100644
--- a/node_modules/nyc/node_modules/isarray/package.json
+++ b/node_modules/nyc/node_modules/isarray/package.json
@@ -10,7 +10,7 @@
"spec": "1.0.0",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/isobject"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/isobject"
]
],
"_from": "isarray@1.0.0",
@@ -40,7 +40,7 @@
"_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
"_shrinkwrap": null,
"_spec": "isarray@1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/isobject",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/isobject",
"author": {
"name": "Julian Gruber",
"email": "mail@juliangruber.com",
diff --git a/node_modules/nyc/node_modules/isexe/package.json b/node_modules/nyc/node_modules/isexe/package.json
index 1631a74ba..42722bca9 100644
--- a/node_modules/nyc/node_modules/isexe/package.json
+++ b/node_modules/nyc/node_modules/isexe/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/which"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/which"
]
],
"_from": "isexe@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
"_shrinkwrap": null,
"_spec": "isexe@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/which",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/which",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/isobject/package.json b/node_modules/nyc/node_modules/isobject/package.json
index 27463ad51..fbbe3325b 100644
--- a/node_modules/nyc/node_modules/isobject/package.json
+++ b/node_modules/nyc/node_modules/isobject/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/fill-range"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range"
]
],
"_from": "isobject@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "f065561096a3f1da2ef46272f815c840d87e0c89",
"_shrinkwrap": null,
"_spec": "isobject@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/fill-range",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/istanbul-lib-coverage/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-lib-coverage/CHANGELOG.md
index eef0a0053..9321687b3 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-coverage/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-lib-coverage/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-coverage@1.1.0...istanbul-lib-coverage@1.1.1) (2017-05-27)
+
+
+
+
<a name="1.1.0"></a>
# [1.1.0](https://github.com/istanbuljs/istanbul-lib-coverage/compare/istanbul-lib-coverage@1.0.2...istanbul-lib-coverage@1.1.0) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-lib-coverage/package.json b/node_modules/nyc/node_modules/istanbul-lib-coverage/package.json
index 69486a89b..a8d4c9c08 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-coverage/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-coverage/package.json
@@ -2,39 +2,39 @@
"_args": [
[
{
- "raw": "istanbul-lib-coverage@^1.1.0",
+ "raw": "istanbul-lib-coverage@^1.1.1",
"scope": null,
"escapedName": "istanbul-lib-coverage",
"name": "istanbul-lib-coverage",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-lib-coverage@>=1.1.0 <2.0.0",
- "_id": "istanbul-lib-coverage@1.1.0",
+ "_from": "istanbul-lib-coverage@>=1.1.1 <2.0.0",
+ "_id": "istanbul-lib-coverage@1.1.1",
"_inCache": true,
"_location": "/istanbul-lib-coverage",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/istanbul-lib-coverage-1.1.0.tgz_1493442004461_0.4158393524121493"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-lib-coverage-1.1.1.tgz_1495919577863_0.9000066665466875"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
- "raw": "istanbul-lib-coverage@^1.1.0",
+ "raw": "istanbul-lib-coverage@^1.1.1",
"scope": null,
"escapedName": "istanbul-lib-coverage",
"name": "istanbul-lib-coverage",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
@@ -43,17 +43,17 @@
"/istanbul-lib-report",
"/istanbul-lib-source-maps"
],
- "_resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz",
- "_shasum": "caca19decaef3525b5d6331d701f3f3b7ad48528",
+ "_resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz",
+ "_shasum": "73bfb998885299415c93d38a3e9adf784a77a9da",
"_shrinkwrap": null,
- "_spec": "istanbul-lib-coverage@^1.1.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-lib-coverage@^1.1.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-lib-coverage/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {},
"description": "Data library for istanbul coverage objects",
@@ -64,14 +64,15 @@
},
"directories": {},
"dist": {
- "shasum": "caca19decaef3525b5d6331d701f3f3b7ad48528",
- "tarball": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz"
+ "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==",
+ "shasum": "73bfb998885299415c93d38a3e9adf784a77a9da",
+ "tarball": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz"
},
"files": [
"lib",
"index.js"
],
- "homepage": "https://github.com/istanbuljs/istanbul-lib-coverage",
+ "homepage": "https://github.com/istanbuljs/istanbuljs",
"karmaDeps": {
"browserify-istanbul": "^0.2.1",
"karma": "^0.13.10",
@@ -105,11 +106,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-lib-coverage.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "jshint index.js lib/ test/",
"test": "mocha"
},
- "version": "1.1.0"
+ "version": "1.1.1"
}
diff --git a/node_modules/nyc/node_modules/istanbul-lib-hook/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-lib-hook/CHANGELOG.md
index 37056c0c2..801bc7039 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-hook/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-lib-hook/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.0.7"></a>
+## [1.0.7](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-hook@1.0.6...istanbul-lib-hook@1.0.7) (2017-05-27)
+
+
+
+
<a name="1.0.6"></a>
## [1.0.6](https://github.com/istanbuljs/istanbul-lib-hook/compare/istanbul-lib-hook@1.0.5...istanbul-lib-hook@1.0.6) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-lib-hook/package.json b/node_modules/nyc/node_modules/istanbul-lib-hook/package.json
index 36bfac345..673bfa0fd 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-hook/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-hook/package.json
@@ -2,55 +2,55 @@
"_args": [
[
{
- "raw": "istanbul-lib-hook@^1.0.6",
+ "raw": "istanbul-lib-hook@^1.0.7",
"scope": null,
"escapedName": "istanbul-lib-hook",
"name": "istanbul-lib-hook",
- "rawSpec": "^1.0.6",
- "spec": ">=1.0.6 <2.0.0",
+ "rawSpec": "^1.0.7",
+ "spec": ">=1.0.7 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-lib-hook@>=1.0.6 <2.0.0",
- "_id": "istanbul-lib-hook@1.0.6",
+ "_from": "istanbul-lib-hook@>=1.0.7 <2.0.0",
+ "_id": "istanbul-lib-hook@1.0.7",
"_inCache": true,
"_location": "/istanbul-lib-hook",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/istanbul-lib-hook-1.0.6.tgz_1493442004565_0.058193605626001954"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-lib-hook-1.0.7.tgz_1495919577844_0.6097107122186571"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
- "raw": "istanbul-lib-hook@^1.0.6",
+ "raw": "istanbul-lib-hook@^1.0.7",
"scope": null,
"escapedName": "istanbul-lib-hook",
"name": "istanbul-lib-hook",
- "rawSpec": "^1.0.6",
- "spec": ">=1.0.6 <2.0.0",
+ "rawSpec": "^1.0.7",
+ "spec": ">=1.0.7 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz",
- "_shasum": "c0866d1e81cf2d5319249510131fc16dee49231f",
+ "_resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz",
+ "_shasum": "dd6607f03076578fe7d6f2a630cf143b49bacddc",
"_shrinkwrap": null,
- "_spec": "istanbul-lib-hook@^1.0.6",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-lib-hook@^1.0.7",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-lib-hook/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
"append-transform": "^0.4.0"
@@ -63,14 +63,15 @@
},
"directories": {},
"dist": {
- "shasum": "c0866d1e81cf2d5319249510131fc16dee49231f",
- "tarball": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz"
+ "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==",
+ "shasum": "dd6607f03076578fe7d6f2a630cf143b49bacddc",
+ "tarball": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz"
},
"files": [
"lib",
"index.js"
],
- "homepage": "https://github.com/istanbuljs/istanbul-lib-hook#readme",
+ "homepage": "https://github.com/istanbuljs/istanbuljs#readme",
"keywords": [
"istanbul",
"hook"
@@ -93,11 +94,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-lib-hook.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "jshint index.js lib/ test/",
"test": "mocha"
},
- "version": "1.0.6"
+ "version": "1.0.7"
}
diff --git a/node_modules/nyc/node_modules/istanbul-lib-instrument/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-lib-instrument/CHANGELOG.md
index 925db8493..b41d8a0d3 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-instrument/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-lib-instrument/CHANGELOG.md
@@ -3,6 +3,34 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.7.4"></a>
+## [1.7.4](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.3...istanbul-lib-instrument@1.7.4) (2017-07-16)
+
+
+### Bug Fixes
+
+* update increment operator to appropriate expression type ([#74](https://github.com/istanbuljs/istanbuljs/issues/74)) ([dc69e66](https://github.com/istanbuljs/istanbuljs/commit/dc69e66))
+
+
+
+
+<a name="1.7.3"></a>
+## [1.7.3](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.2...istanbul-lib-instrument@1.7.3) (2017-06-25)
+
+
+
+
+<a name="1.7.2"></a>
+## [1.7.2](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument@1.7.1...istanbul-lib-instrument@1.7.2) (2017-05-27)
+
+
+### Bug Fixes
+
+* hoist statement counter for class variables, so that name is preserved ([#60](https://github.com/istanbuljs/istanbuljs/issues/60)) ([120d221](https://github.com/istanbuljs/istanbuljs/commit/120d221))
+
+
+
+
<a name="1.7.1"></a>
## [1.7.1](https://github.com/istanbuljs/istanbul-lib-instrument/compare/istanbul-lib-instrument@1.7.0...istanbul-lib-instrument@1.7.1) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-lib-instrument/dist/visitor.js b/node_modules/nyc/node_modules/istanbul-lib-instrument/dist/visitor.js
index beae5d91b..3462f9314 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-instrument/dist/visitor.js
+++ b/node_modules/nyc/node_modules/istanbul-lib-instrument/dist/visitor.js
@@ -101,6 +101,15 @@ var VisitState = function () {
extractURL(node.trailingComments);
}
+ // for these expressions the statement counter needs to be hoisted, so
+ // function name inference can be preserved
+
+ }, {
+ key: 'counterNeedsHoisting',
+ value: function counterNeedsHoisting(path) {
+ return path.isFunctionExpression() || path.isArrowFunctionExpression() || path.isClassExpression();
+ }
+
// all the generic stuff that needs to be done on enter for every node
}, {
@@ -174,7 +183,7 @@ var VisitState = function () {
} : function (x) {
return x;
};
- return T.unaryExpression('++', wrap(T.memberExpression(T.memberExpression(T.identifier(this.varName), T.identifier(type)), T.numericLiteral(id), true)));
+ return T.updateExpression('++', wrap(T.memberExpression(T.memberExpression(T.identifier(this.varName), T.identifier(type)), T.numericLiteral(id), true)));
}
}, {
key: 'insertCounter',
@@ -184,7 +193,7 @@ var VisitState = function () {
path.node.body.unshift(T.expressionStatement(increment));
} else if (path.isStatement()) {
path.insertBefore(T.expressionStatement(increment));
- } else if ((path.isFunctionExpression() || path.isArrowFunctionExpression()) && T.isVariableDeclarator(path.parentPath)) {
+ } else if (this.counterNeedsHoisting(path) && T.isVariableDeclarator(path.parentPath)) {
// make an attempt to hoist the statement counter, so that
// function names are maintained.
var parent = path.parentPath.parentPath;
diff --git a/node_modules/nyc/node_modules/istanbul-lib-instrument/package.json b/node_modules/nyc/node_modules/istanbul-lib-instrument/package.json
index c12be7a2a..f169af0fa 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-instrument/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-instrument/package.json
@@ -2,63 +2,63 @@
"_args": [
[
{
- "raw": "istanbul-lib-instrument@^1.7.1",
+ "raw": "istanbul-lib-instrument@^1.7.4",
"scope": null,
"escapedName": "istanbul-lib-instrument",
"name": "istanbul-lib-instrument",
- "rawSpec": "^1.7.1",
- "spec": ">=1.7.1 <2.0.0",
+ "rawSpec": "^1.7.4",
+ "spec": ">=1.7.4 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-lib-instrument@>=1.7.1 <2.0.0",
- "_id": "istanbul-lib-instrument@1.7.1",
+ "_from": "istanbul-lib-instrument@>=1.7.4 <2.0.0",
+ "_id": "istanbul-lib-instrument@1.7.4",
"_inCache": true,
"_location": "/istanbul-lib-instrument",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/istanbul-lib-instrument-1.7.1.tgz_1493442014505_0.4258935444522649"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-lib-instrument-1.7.4.tgz_1500231510457_0.49160993401892483"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
- "raw": "istanbul-lib-instrument@^1.7.1",
+ "raw": "istanbul-lib-instrument@^1.7.4",
"scope": null,
"escapedName": "istanbul-lib-instrument",
"name": "istanbul-lib-instrument",
- "rawSpec": "^1.7.1",
- "spec": ">=1.7.1 <2.0.0",
+ "rawSpec": "^1.7.4",
+ "spec": ">=1.7.4 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz",
- "_shasum": "169e31bc62c778851a99439dd99c3cc12184d360",
+ "_resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz",
+ "_shasum": "e9fd920e4767f3d19edc765e2d6b3f5ccbd0eea8",
"_shrinkwrap": null,
- "_spec": "istanbul-lib-instrument@^1.7.1",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-lib-instrument@^1.7.4",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-lib-instrument/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
"babel-generator": "^6.18.0",
"babel-template": "^6.16.0",
"babel-traverse": "^6.18.0",
"babel-types": "^6.18.0",
- "babylon": "^6.13.0",
- "istanbul-lib-coverage": "^1.1.0",
+ "babylon": "^6.17.4",
+ "istanbul-lib-coverage": "^1.1.1",
"semver": "^5.3.0"
},
"description": "Core istanbul API for JS code coverage",
@@ -79,13 +79,13 @@
},
"directories": {},
"dist": {
- "shasum": "169e31bc62c778851a99439dd99c3cc12184d360",
- "tarball": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz"
+ "shasum": "e9fd920e4767f3d19edc765e2d6b3f5ccbd0eea8",
+ "tarball": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.4.tgz"
},
"files": [
"dist"
],
- "homepage": "https://github.com/istanbuljs/istanbul-lib-instrument",
+ "homepage": "https://github.com/istanbuljs/istanbuljs",
"keywords": [
"coverage",
"istanbul",
@@ -110,7 +110,7 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-lib-instrument.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"prepublish": "npm run release",
@@ -118,5 +118,5 @@
"release": "babel src --out-dir dist && documentation build -f md -o api.md src",
"test": "mocha --require=babel-register"
},
- "version": "1.7.1"
+ "version": "1.7.4"
}
diff --git a/node_modules/nyc/node_modules/istanbul-lib-report/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-lib-report/CHANGELOG.md
index a7ce500ac..6ec96b143 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-report/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-lib-report/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-report@1.1.0...istanbul-lib-report@1.1.1) (2017-05-27)
+
+
+
+
<a name="1.1.0"></a>
# [1.1.0](https://github.com/istanbuljs/istanbul-lib-report/compare/istanbul-lib-report@1.0.0...istanbul-lib-report@1.1.0) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color/package.json b/node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
index 4b498b547..cb7d9c590 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-report/node_modules/supports-color/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.1.2 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report"
]
],
"_from": "supports-color@>=3.1.2 <4.0.0",
@@ -44,7 +44,7 @@
"_shasum": "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6",
"_shrinkwrap": null,
"_spec": "supports-color@^3.1.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/istanbul-lib-report/package.json b/node_modules/nyc/node_modules/istanbul-lib-report/package.json
index e8dd5720f..f5c3b96c7 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-report/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-report/package.json
@@ -2,60 +2,60 @@
"_args": [
[
{
- "raw": "istanbul-lib-report@^1.1.0",
+ "raw": "istanbul-lib-report@^1.1.1",
"scope": null,
"escapedName": "istanbul-lib-report",
"name": "istanbul-lib-report",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-lib-report@>=1.1.0 <2.0.0",
- "_id": "istanbul-lib-report@1.1.0",
+ "_from": "istanbul-lib-report@>=1.1.1 <2.0.0",
+ "_id": "istanbul-lib-report@1.1.1",
"_inCache": true,
"_location": "/istanbul-lib-report",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/istanbul-lib-report-1.1.0.tgz_1493442009637_0.3394668174441904"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-lib-report-1.1.1.tgz_1495919581346_0.9511885098181665"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {
"has-flag": "1.0.0"
},
"_requested": {
- "raw": "istanbul-lib-report@^1.1.0",
+ "raw": "istanbul-lib-report@^1.1.1",
"scope": null,
"escapedName": "istanbul-lib-report",
"name": "istanbul-lib-report",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz",
- "_shasum": "444c4ecca9afa93cf584f56b10f195bf768c0770",
+ "_resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz",
+ "_shasum": "f0e55f56655ffa34222080b7a0cd4760e1405fc9",
"_shrinkwrap": null,
- "_spec": "istanbul-lib-report@^1.1.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-lib-report@^1.1.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-lib-report/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
- "istanbul-lib-coverage": "^1.1.0",
+ "istanbul-lib-coverage": "^1.1.1",
"mkdirp": "^0.5.1",
"path-parse": "^1.0.5",
"supports-color": "^3.1.2"
@@ -70,14 +70,15 @@
},
"directories": {},
"dist": {
- "shasum": "444c4ecca9afa93cf584f56b10f195bf768c0770",
- "tarball": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz"
+ "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==",
+ "shasum": "f0e55f56655ffa34222080b7a0cd4760e1405fc9",
+ "tarball": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz"
},
"files": [
"lib",
"index.js"
],
- "homepage": "https://github.com/istanbuljs/istanbul-lib-report",
+ "homepage": "https://github.com/istanbuljs/istanbuljs",
"keywords": [
"istanbul",
"report",
@@ -102,11 +103,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-lib-report.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "jshint index.js lib/ test/",
"test": "mocha"
},
- "version": "1.1.0"
+ "version": "1.1.1"
}
diff --git a/node_modules/nyc/node_modules/istanbul-lib-source-maps/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-lib-source-maps/CHANGELOG.md
index dd847c7b4..b2a2ca5c2 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-source-maps/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-lib-source-maps/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.2.1"></a>
+## [1.2.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-source-maps@1.2.0...istanbul-lib-source-maps@1.2.1) (2017-05-27)
+
+
+
+
<a name="1.2.0"></a>
# [1.2.0](https://github.com/istanbuljs/istanbul-lib-source-maps/compare/istanbul-lib-source-maps@1.1.1...istanbul-lib-source-maps@1.2.0) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-lib-source-maps/package.json b/node_modules/nyc/node_modules/istanbul-lib-source-maps/package.json
index 44b5c4cf5..cd5f731aa 100644
--- a/node_modules/nyc/node_modules/istanbul-lib-source-maps/package.json
+++ b/node_modules/nyc/node_modules/istanbul-lib-source-maps/package.json
@@ -2,59 +2,59 @@
"_args": [
[
{
- "raw": "istanbul-lib-source-maps@^1.2.0",
+ "raw": "istanbul-lib-source-maps@^1.2.1",
"scope": null,
"escapedName": "istanbul-lib-source-maps",
"name": "istanbul-lib-source-maps",
- "rawSpec": "^1.2.0",
- "spec": ">=1.2.0 <2.0.0",
+ "rawSpec": "^1.2.1",
+ "spec": ">=1.2.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-lib-source-maps@>=1.2.0 <2.0.0",
- "_id": "istanbul-lib-source-maps@1.2.0",
+ "_from": "istanbul-lib-source-maps@>=1.2.1 <2.0.0",
+ "_id": "istanbul-lib-source-maps@1.2.1",
"_inCache": true,
"_location": "/istanbul-lib-source-maps",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/istanbul-lib-source-maps-1.2.0.tgz_1493442009706_0.9414261810015887"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-lib-source-maps-1.2.1.tgz_1495919581363_0.23226014152169228"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
- "raw": "istanbul-lib-source-maps@^1.2.0",
+ "raw": "istanbul-lib-source-maps@^1.2.1",
"scope": null,
"escapedName": "istanbul-lib-source-maps",
"name": "istanbul-lib-source-maps",
- "rawSpec": "^1.2.0",
- "spec": ">=1.2.0 <2.0.0",
+ "rawSpec": "^1.2.1",
+ "spec": ">=1.2.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz",
- "_shasum": "8c7706d497e26feeb6af3e0c28fd5b0669598d0e",
+ "_resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz",
+ "_shasum": "a6fe1acba8ce08eebc638e572e294d267008aa0c",
"_shrinkwrap": null,
- "_spec": "istanbul-lib-source-maps@^1.2.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-lib-source-maps@^1.2.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-lib-source-maps/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
"debug": "^2.6.3",
- "istanbul-lib-coverage": "^1.1.0",
+ "istanbul-lib-coverage": "^1.1.1",
"mkdirp": "^0.5.1",
"rimraf": "^2.6.1",
"source-map": "^0.5.3"
@@ -70,14 +70,15 @@
},
"directories": {},
"dist": {
- "shasum": "8c7706d497e26feeb6af3e0c28fd5b0669598d0e",
- "tarball": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz"
+ "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==",
+ "shasum": "a6fe1acba8ce08eebc638e572e294d267008aa0c",
+ "tarball": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz"
},
"files": [
"lib",
"index.js"
],
- "homepage": "https://github.com/istanbuljs/istanbul-lib-source-maps#readme",
+ "homepage": "https://github.com/istanbuljs/istanbuljs#readme",
"keywords": [
"istanbul",
"sourcemaps",
@@ -103,11 +104,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-lib-source-maps.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "jshint index.js lib/ test/",
"test": "mocha"
},
- "version": "1.2.0"
+ "version": "1.2.1"
}
diff --git a/node_modules/nyc/node_modules/istanbul-reports/CHANGELOG.md b/node_modules/nyc/node_modules/istanbul-reports/CHANGELOG.md
index 3d72259df..e27f4eb1a 100644
--- a/node_modules/nyc/node_modules/istanbul-reports/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/istanbul-reports/CHANGELOG.md
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/istanbuljs/istanbuljs/compare/istanbul-reports@1.1.0...istanbul-reports@1.1.1) (2017-05-27)
+
+
+
+
<a name="1.1.0"></a>
# [1.1.0](https://github.com/istanbuljs/istanbul-reports/compare/istanbul-reports@1.0.2...istanbul-reports@1.1.0) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/istanbul-reports/package.json b/node_modules/nyc/node_modules/istanbul-reports/package.json
index 765ff5bbc..fc1f0f019 100644
--- a/node_modules/nyc/node_modules/istanbul-reports/package.json
+++ b/node_modules/nyc/node_modules/istanbul-reports/package.json
@@ -2,55 +2,55 @@
"_args": [
[
{
- "raw": "istanbul-reports@^1.1.0",
+ "raw": "istanbul-reports@^1.1.1",
"scope": null,
"escapedName": "istanbul-reports",
"name": "istanbul-reports",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "istanbul-reports@>=1.1.0 <2.0.0",
- "_id": "istanbul-reports@1.1.0",
+ "_from": "istanbul-reports@>=1.1.1 <2.0.0",
+ "_id": "istanbul-reports@1.1.1",
"_inCache": true,
"_location": "/istanbul-reports",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/istanbul-reports-1.1.0.tgz_1493442004757_0.599740678910166"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/istanbul-reports-1.1.1.tgz_1495919578208_0.8774899295531213"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
- "raw": "istanbul-reports@^1.1.0",
+ "raw": "istanbul-reports@^1.1.1",
"scope": null,
"escapedName": "istanbul-reports",
"name": "istanbul-reports",
- "rawSpec": "^1.1.0",
- "spec": ">=1.1.0 <2.0.0",
+ "rawSpec": "^1.1.1",
+ "spec": ">=1.1.1 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.0.tgz",
- "_shasum": "1ef3b795889219cfb5fad16365f6ce108d5f8c66",
+ "_resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz",
+ "_shasum": "042be5c89e175bc3f86523caab29c014e77fee4e",
"_shrinkwrap": null,
- "_spec": "istanbul-reports@^1.1.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "istanbul-reports@^1.1.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Krishnan Anantheswaran",
"email": "kananthmail-github@yahoo.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/istanbul-reports/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
"handlebars": "^4.0.3"
@@ -59,21 +59,22 @@
"devDependencies": {
"chai": "^3.5.0",
"is-windows": "^1.0.1",
- "istanbul-lib-coverage": "^1.1.0",
- "istanbul-lib-report": "^1.1.0",
+ "istanbul-lib-coverage": "^1.1.1",
+ "istanbul-lib-report": "^1.1.1",
"jshint": "^2.8.0",
"mocha": "^3.1.2"
},
"directories": {},
"dist": {
- "shasum": "1ef3b795889219cfb5fad16365f6ce108d5f8c66",
- "tarball": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.0.tgz"
+ "integrity": "sha512-P8G873A0kW24XRlxHVGhMJBhQ8gWAec+dae7ZxOBzxT4w+a9ATSPvRVK3LB1RAJ9S8bg2tOyWHAGW40Zd2dKfw==",
+ "shasum": "042be5c89e175bc3f86523caab29c014e77fee4e",
+ "tarball": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.1.tgz"
},
"files": [
"index.js",
"lib"
],
- "homepage": "https://github.com/istanbuljs/istanbul-reports",
+ "homepage": "https://github.com/istanbuljs/istanbuljs",
"keywords": [
"istanbul",
"reports"
@@ -100,11 +101,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+ssh://git@github.com/istanbuljs/istanbul-reports.git"
+ "url": "git+ssh://git@github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "jshint --exclude=**/prettify.js index.js lib/ test/",
"test": "mocha --recursive"
},
- "version": "1.1.0"
+ "version": "1.1.1"
}
diff --git a/node_modules/nyc/node_modules/js-tokens/CHANGELOG.md b/node_modules/nyc/node_modules/js-tokens/CHANGELOG.md
index c3398e3fe..208304b3e 100644
--- a/node_modules/nyc/node_modules/js-tokens/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/js-tokens/CHANGELOG.md
@@ -1,3 +1,8 @@
+### Version 3.0.2 (2017-06-28) ###
+
+- No code changes. Just updates to the readme.
+
+
### Version 3.0.1 (2017-01-30) ###
- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched
diff --git a/node_modules/nyc/node_modules/js-tokens/README.md b/node_modules/nyc/node_modules/js-tokens/README.md
index 0c805c223..5c93a8885 100644
--- a/node_modules/nyc/node_modules/js-tokens/README.md
+++ b/node_modules/nyc/node_modules/js-tokens/README.md
@@ -78,9 +78,9 @@ The intention is to always support the latest stable ECMAScript version.
If adding support for a newer version requires changes, a new version with a
major verion bump will be released.
-Currently, [ECMAScript 2016] is supported.
+Currently, [ECMAScript 2017] is supported.
-[ECMAScript 2016]: http://www.ecma-international.org/ecma-262/7.0/index.html
+[ECMAScript 2017]: https://www.ecma-international.org/ecma-262/8.0/index.html
Invalid code handling
diff --git a/node_modules/nyc/node_modules/js-tokens/package.json b/node_modules/nyc/node_modules/js-tokens/package.json
index 0d6e8257e..cb4e926c2 100644
--- a/node_modules/nyc/node_modules/js-tokens/package.json
+++ b/node_modules/nyc/node_modules/js-tokens/package.json
@@ -10,23 +10,23 @@
"spec": ">=3.0.0 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-code-frame"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-code-frame"
]
],
"_from": "js-tokens@>=3.0.0 <4.0.0",
- "_id": "js-tokens@3.0.1",
+ "_id": "js-tokens@3.0.2",
"_inCache": true,
"_location": "/js-tokens",
- "_nodeVersion": "7.2.0",
+ "_nodeVersion": "7.10.0",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/js-tokens-3.0.1.tgz_1485800902865_0.11822547880001366"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/js-tokens-3.0.2.tgz_1498683256536_0.7391157897654921"
},
"_npmUser": {
"name": "lydell",
"email": "simon.lydell@gmail.com"
},
- "_npmVersion": "3.10.9",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
"raw": "js-tokens@^3.0.0",
@@ -41,11 +41,11 @@
"/babel-code-frame",
"/loose-envify"
],
- "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz",
- "_shasum": "08e9f132484a2c45a30907e9dc4d5567b7f114d7",
+ "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "_shasum": "9866df395102130e38f7f996bceb65443209c25b",
"_shrinkwrap": null,
"_spec": "js-tokens@^3.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-code-frame",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-code-frame",
"author": {
"name": "Simon Lydell"
},
@@ -55,20 +55,20 @@
"dependencies": {},
"description": "A regex that tokenizes JavaScript.",
"devDependencies": {
- "coffee-script": "~1.12.2",
- "esprima": "^3.1.3",
+ "coffee-script": "~1.12.6",
+ "esprima": "^4.0.0",
"everything.js": "^1.0.3",
- "mocha": "^3.2.0"
+ "mocha": "^3.4.2"
},
"directories": {},
"dist": {
- "shasum": "08e9f132484a2c45a30907e9dc4d5567b7f114d7",
- "tarball": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
+ "shasum": "9866df395102130e38f7f996bceb65443209c25b",
+ "tarball": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
},
"files": [
"index.js"
],
- "gitHead": "54549dd979142c78cf629b51f9f06e8133c529f9",
+ "gitHead": "8315904c840b14d28de1b0a4968194555f61bea3",
"homepage": "https://github.com/lydell/js-tokens#readme",
"keywords": [
"JavaScript",
@@ -86,7 +86,7 @@
],
"name": "js-tokens",
"optionalDependencies": {},
- "readme": "Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens)\n========\n\nA regex that tokenizes JavaScript.\n\n```js\nvar jsTokens = require(\"js-tokens\").default\n\nvar jsString = \"var foo=opts.foo;\\n...\"\n\njsString.match(jsTokens)\n// [\"var\", \" \", \"foo\", \"=\", \"opts\", \".\", \"foo\", \";\", \"\\n\", ...]\n```\n\n\nInstallation\n============\n\n`npm install js-tokens`\n\n```js\nimport jsTokens from \"js-tokens\"\n// or:\nvar jsTokens = require(\"js-tokens\").default\n```\n\n\nUsage\n=====\n\n### `jsTokens` ###\n\nA regex with the `g` flag that matches JavaScript tokens.\n\nThe regex _always_ matches, even invalid JavaScript and the empty string.\n\nThe next match is always directly after the previous.\n\n### `var token = matchToToken(match)` ###\n\n```js\nimport {matchToToken} from \"js-tokens\"\n// or:\nvar matchToToken = require(\"js-tokens\").matchToToken\n```\n\nTakes a `match` returned by `jsTokens.exec(string)`, and returns a `{type:\nString, value: String}` object. The following types are available:\n\n- string\n- comment\n- regex\n- number\n- name\n- punctuator\n- whitespace\n- invalid\n\nMulti-line comments and strings also have a `closed` property indicating if the\ntoken was closed or not (see below).\n\nComments and strings both come in several flavors. To distinguish them, check if\nthe token starts with `//`, `/*`, `'`, `\"` or `` ` ``.\n\nNames are ECMAScript IdentifierNames, that is, including both identifiers and\nkeywords. You may use [is-keyword-js] to tell them apart.\n\nWhitespace includes both line terminators and other whitespace.\n\n[is-keyword-js]: https://github.com/crissdev/is-keyword-js\n\n\nECMAScript support\n==================\n\nThe intention is to always support the latest stable ECMAScript version.\n\nIf adding support for a newer version requires changes, a new version with a\nmajor verion bump will be released.\n\nCurrently, [ECMAScript 2016] is supported.\n\n[ECMAScript 2016]: http://www.ecma-international.org/ecma-262/7.0/index.html\n\n\nInvalid code handling\n=====================\n\nUnterminated strings are still matched as strings. JavaScript strings cannot\ncontain (unescaped) newlines, so unterminated strings simply end at the end of\nthe line. Unterminated template strings can contain unescaped newlines, though,\nso they go on to the end of input.\n\nUnterminated multi-line comments are also still matched as comments. They\nsimply go on to the end of the input.\n\nUnterminated regex literals are likely matched as division and whatever is\ninside the regex.\n\nInvalid ASCII characters have their own capturing group.\n\nInvalid non-ASCII characters are treated as names, to simplify the matching of\nnames (except unicode spaces which are treated as whitespace).\n\nRegex literals may contain invalid regex syntax. They are still matched as\nregex literals. They may also contain repeated regex flags, to keep the regex\nsimple.\n\nStrings may contain invalid escape sequences.\n\n\nLimitations\n===========\n\nTokenizing JavaScript using regexes—in fact, _one single regex_—won’t be\nperfect. But that’s not the point either.\n\nYou may compare jsTokens with [esprima] by using `esprima-compare.js`.\nSee `npm run esprima-compare`!\n\n[esprima]: http://esprima.org/\n\n### Template string interpolation ###\n\nTemplate strings are matched as single tokens, from the starting `` ` `` to the\nending `` ` ``, including interpolations (whose tokens are not matched\nindividually).\n\nMatching template string interpolations requires recursive balancing of `{` and\n`}`—something that JavaScript regexes cannot do. Only one level of nesting is\nsupported.\n\n### Division and regex literals collision ###\n\nConsider this example:\n\n```js\nvar g = 9.82\nvar number = bar / 2/g\n\nvar regex = / 2/g\n```\n\nA human can easily understand that in the `number` line we’re dealing with\ndivision, and in the `regex` line we’re dealing with a regex literal. How come?\nBecause humans can look at the whole code to put the `/` characters in context.\nA JavaScript regex cannot. It only sees forwards.\n\nWhen the `jsTokens` regex scans throught the above, it will see the following\nat the end of both the `number` and `regex` rows:\n\n```js\n/ 2/g\n```\n\nIt is then impossible to know if that is a regex literal, or part of an\nexpression dealing with division.\n\nHere is a similar case:\n\n```js\nfoo /= 2/g\nfoo(/= 2/g)\n```\n\nThe first line divides the `foo` variable with `2/g`. The second line calls the\n`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only\nsees forwards, it cannot tell the two cases apart.\n\nThere are some cases where we _can_ tell division and regex literals apart,\nthough.\n\nFirst off, we have the simple cases where there’s only one slash in the line:\n\n```js\nvar foo = 2/g\nfoo /= 2\n```\n\nRegex literals cannot contain newlines, so the above cases are correctly\nidentified as division. Things are only problematic when there are more than\none non-comment slash in a single line.\n\nSecondly, not every character is a valid regex flag.\n\n```js\nvar number = bar / 2/e\n```\n\nThe above example is also correctly identified as division, because `e` is not a\nvalid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*`\n(any letter) as flags, but it is not worth it since it increases the amount of\nambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are\nallowed. This means that the above example will be identified as division as\nlong as you don’t rename the `e` variable to some permutation of `gmiyu` 1 to 5\ncharacters long.\n\nLastly, we can look _forward_ for information.\n\n- If the token following what looks like a regex literal is not valid after a\n regex literal, but is valid in a division expression, then the regex literal\n is treated as division instead. For example, a flagless regex cannot be\n followed by a string, number or name, but all of those three can be the\n denominator of a division.\n- Generally, if what looks like a regex literal is followed by an operator, the\n regex literal is treated as division instead. This is because regexes are\n seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division\n could likely be part of such an expression.\n\nPlease consult the regex source and the test cases for precise information on\nwhen regex or division is matched (should you need to know). In short, you\ncould sum it up as:\n\nIf the end of a statement looks like a regex literal (even if it isn’t), it\nwill be treated as one. Otherwise it should work as expected (if you write sane\ncode).\n\n\nLicense\n=======\n\n[MIT](LICENSE).\n",
+ "readme": "Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens)\n========\n\nA regex that tokenizes JavaScript.\n\n```js\nvar jsTokens = require(\"js-tokens\").default\n\nvar jsString = \"var foo=opts.foo;\\n...\"\n\njsString.match(jsTokens)\n// [\"var\", \" \", \"foo\", \"=\", \"opts\", \".\", \"foo\", \";\", \"\\n\", ...]\n```\n\n\nInstallation\n============\n\n`npm install js-tokens`\n\n```js\nimport jsTokens from \"js-tokens\"\n// or:\nvar jsTokens = require(\"js-tokens\").default\n```\n\n\nUsage\n=====\n\n### `jsTokens` ###\n\nA regex with the `g` flag that matches JavaScript tokens.\n\nThe regex _always_ matches, even invalid JavaScript and the empty string.\n\nThe next match is always directly after the previous.\n\n### `var token = matchToToken(match)` ###\n\n```js\nimport {matchToToken} from \"js-tokens\"\n// or:\nvar matchToToken = require(\"js-tokens\").matchToToken\n```\n\nTakes a `match` returned by `jsTokens.exec(string)`, and returns a `{type:\nString, value: String}` object. The following types are available:\n\n- string\n- comment\n- regex\n- number\n- name\n- punctuator\n- whitespace\n- invalid\n\nMulti-line comments and strings also have a `closed` property indicating if the\ntoken was closed or not (see below).\n\nComments and strings both come in several flavors. To distinguish them, check if\nthe token starts with `//`, `/*`, `'`, `\"` or `` ` ``.\n\nNames are ECMAScript IdentifierNames, that is, including both identifiers and\nkeywords. You may use [is-keyword-js] to tell them apart.\n\nWhitespace includes both line terminators and other whitespace.\n\n[is-keyword-js]: https://github.com/crissdev/is-keyword-js\n\n\nECMAScript support\n==================\n\nThe intention is to always support the latest stable ECMAScript version.\n\nIf adding support for a newer version requires changes, a new version with a\nmajor verion bump will be released.\n\nCurrently, [ECMAScript 2017] is supported.\n\n[ECMAScript 2017]: https://www.ecma-international.org/ecma-262/8.0/index.html\n\n\nInvalid code handling\n=====================\n\nUnterminated strings are still matched as strings. JavaScript strings cannot\ncontain (unescaped) newlines, so unterminated strings simply end at the end of\nthe line. Unterminated template strings can contain unescaped newlines, though,\nso they go on to the end of input.\n\nUnterminated multi-line comments are also still matched as comments. They\nsimply go on to the end of the input.\n\nUnterminated regex literals are likely matched as division and whatever is\ninside the regex.\n\nInvalid ASCII characters have their own capturing group.\n\nInvalid non-ASCII characters are treated as names, to simplify the matching of\nnames (except unicode spaces which are treated as whitespace).\n\nRegex literals may contain invalid regex syntax. They are still matched as\nregex literals. They may also contain repeated regex flags, to keep the regex\nsimple.\n\nStrings may contain invalid escape sequences.\n\n\nLimitations\n===========\n\nTokenizing JavaScript using regexes—in fact, _one single regex_—won’t be\nperfect. But that’s not the point either.\n\nYou may compare jsTokens with [esprima] by using `esprima-compare.js`.\nSee `npm run esprima-compare`!\n\n[esprima]: http://esprima.org/\n\n### Template string interpolation ###\n\nTemplate strings are matched as single tokens, from the starting `` ` `` to the\nending `` ` ``, including interpolations (whose tokens are not matched\nindividually).\n\nMatching template string interpolations requires recursive balancing of `{` and\n`}`—something that JavaScript regexes cannot do. Only one level of nesting is\nsupported.\n\n### Division and regex literals collision ###\n\nConsider this example:\n\n```js\nvar g = 9.82\nvar number = bar / 2/g\n\nvar regex = / 2/g\n```\n\nA human can easily understand that in the `number` line we’re dealing with\ndivision, and in the `regex` line we’re dealing with a regex literal. How come?\nBecause humans can look at the whole code to put the `/` characters in context.\nA JavaScript regex cannot. It only sees forwards.\n\nWhen the `jsTokens` regex scans throught the above, it will see the following\nat the end of both the `number` and `regex` rows:\n\n```js\n/ 2/g\n```\n\nIt is then impossible to know if that is a regex literal, or part of an\nexpression dealing with division.\n\nHere is a similar case:\n\n```js\nfoo /= 2/g\nfoo(/= 2/g)\n```\n\nThe first line divides the `foo` variable with `2/g`. The second line calls the\n`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only\nsees forwards, it cannot tell the two cases apart.\n\nThere are some cases where we _can_ tell division and regex literals apart,\nthough.\n\nFirst off, we have the simple cases where there’s only one slash in the line:\n\n```js\nvar foo = 2/g\nfoo /= 2\n```\n\nRegex literals cannot contain newlines, so the above cases are correctly\nidentified as division. Things are only problematic when there are more than\none non-comment slash in a single line.\n\nSecondly, not every character is a valid regex flag.\n\n```js\nvar number = bar / 2/e\n```\n\nThe above example is also correctly identified as division, because `e` is not a\nvalid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*`\n(any letter) as flags, but it is not worth it since it increases the amount of\nambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are\nallowed. This means that the above example will be identified as division as\nlong as you don’t rename the `e` variable to some permutation of `gmiyu` 1 to 5\ncharacters long.\n\nLastly, we can look _forward_ for information.\n\n- If the token following what looks like a regex literal is not valid after a\n regex literal, but is valid in a division expression, then the regex literal\n is treated as division instead. For example, a flagless regex cannot be\n followed by a string, number or name, but all of those three can be the\n denominator of a division.\n- Generally, if what looks like a regex literal is followed by an operator, the\n regex literal is treated as division instead. This is because regexes are\n seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division\n could likely be part of such an expression.\n\nPlease consult the regex source and the test cases for precise information on\nwhen regex or division is matched (should you need to know). In short, you\ncould sum it up as:\n\nIf the end of a statement looks like a regex literal (even if it isn’t), it\nwill be treated as one. Otherwise it should work as expected (if you write sane\ncode).\n\n\nLicense\n=======\n\n[MIT](LICENSE).\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -98,5 +98,5 @@
"esprima-compare": "node esprima-compare ./index.js everything.js/es5.js",
"test": "mocha --ui tdd"
},
- "version": "3.0.1"
+ "version": "3.0.2"
}
diff --git a/node_modules/nyc/node_modules/jsesc/package.json b/node_modules/nyc/node_modules/jsesc/package.json
index ed349c31b..96e0b786b 100644
--- a/node_modules/nyc/node_modules/jsesc/package.json
+++ b/node_modules/nyc/node_modules/jsesc/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.3.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "jsesc@>=1.3.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "46c3fec8c1892b12b0833db9bc7622176dbab34b",
"_shrinkwrap": null,
"_spec": "jsesc@^1.3.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Mathias Bynens",
"url": "https://mathiasbynens.be/"
diff --git a/node_modules/nyc/node_modules/kind-of/README.md b/node_modules/nyc/node_modules/kind-of/README.md
index 54fa74d06..6a9df36d3 100644
--- a/node_modules/nyc/node_modules/kind-of/README.md
+++ b/node_modules/nyc/node_modules/kind-of/README.md
@@ -1,4 +1,4 @@
-# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
+# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
> Get the native type of a value.
@@ -10,11 +10,7 @@ Install with [npm](https://www.npmjs.com/):
$ npm install --save kind-of
```
-Install with [yarn](https://yarnpkg.com):
-
-```sh
-$ yarn add kind-of
-```
+## Install
Install with [bower](https://bower.io/)
@@ -221,14 +217,14 @@ Pull requests and stars are always welcome. For bugs and feature requests, [plea
### Contributors
-| **Commits** | **Contributor** |
-| --- | --- |
-| 56 | [jonschlinkert](https://github.com/jonschlinkert) |
-| 2 | [miguelmota](https://github.com/miguelmota) |
-| 1 | [dtothefp](https://github.com/dtothefp) |
-| 1 | [ksheedlo](https://github.com/ksheedlo) |
-| 1 | [pdehaan](https://github.com/pdehaan) |
-| 1 | [laggingreflex](https://github.com/laggingreflex) |
+| **Commits** | **Contributor** |
+| --- | --- |
+| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 2 | [miguelmota](https://github.com/miguelmota) |
+| 1 | [dtothefp](https://github.com/dtothefp) |
+| 1 | [ksheedlo](https://github.com/ksheedlo) |
+| 1 | [pdehaan](https://github.com/pdehaan) |
+| 1 | [laggingreflex](https://github.com/laggingreflex) |
### Building docs
@@ -262,4 +258,4 @@ Released under the [MIT License](LICENSE).
***
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 25, 2017._ \ No newline at end of file
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/kind-of/package.json b/node_modules/nyc/node_modules/kind-of/package.json
index cfecf74fd..e0641eef5 100644
--- a/node_modules/nyc/node_modules/kind-of/package.json
+++ b/node_modules/nyc/node_modules/kind-of/package.json
@@ -10,23 +10,23 @@
"spec": ">=3.0.2 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/align-text"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/align-text"
]
],
"_from": "kind-of@>=3.0.2 <4.0.0",
- "_id": "kind-of@3.2.0",
+ "_id": "kind-of@3.2.2",
"_inCache": true,
"_location": "/kind-of",
"_nodeVersion": "7.7.3",
"_npmOperationalInternal": {
"host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/kind-of-3.2.0.tgz_1493120580182_0.32957054767757654"
+ "tmp": "tmp/kind-of-3.2.2.tgz_1494958899918_0.23780996026471257"
},
"_npmUser": {
"name": "jonschlinkert",
"email": "github@sellside.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "4.5.0",
"_phantomChildren": {},
"_requested": {
"raw": "kind-of@^3.0.2",
@@ -40,14 +40,13 @@
"_requiredBy": [
"/align-text",
"/is-number",
- "/micromatch",
- "/randomatic"
+ "/micromatch"
],
- "_resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz",
- "_shasum": "b58abe4d5c044ad33726a8c1525b48cf891bff07",
+ "_resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "_shasum": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
"_shrinkwrap": null,
"_spec": "kind-of@^3.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/align-text",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/align-text",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -58,12 +57,10 @@
"contributors": [
{
"name": "David Fox-Powell",
- "email": "dtothefp@gmail.com",
"url": "https://dtothefp.github.io/me"
},
{
"name": "Jon Schlinkert",
- "email": "jon.schlinkert@sellside.com",
"url": "http://twitter.com/jonschlinkert"
},
{
@@ -76,7 +73,6 @@
},
{
"name": "Miguel Mota",
- "email": "miguel@mota.email",
"url": "https://miguelmota.com"
},
{
@@ -91,6 +87,7 @@
"devDependencies": {
"ansi-bold": "^0.1.1",
"benchmarked": "^1.0.0",
+ "browserify": "^14.3.0",
"glob": "^7.1.1",
"gulp-format-md": "^0.1.12",
"mocha": "^3.3.0",
@@ -99,8 +96,8 @@
},
"directories": {},
"dist": {
- "shasum": "b58abe4d5c044ad33726a8c1525b48cf891bff07",
- "tarball": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz"
+ "shasum": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
+ "tarball": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -108,7 +105,7 @@
"files": [
"index.js"
],
- "gitHead": "9c9423745e2d7fa1a72ed7edf3c2113fe0fa2296",
+ "gitHead": "0ffe67cf12f5396047c1bacf04232b7deeb24063",
"homepage": "https://github.com/jonschlinkert/kind-of",
"keywords": [
"arguments",
@@ -147,7 +144,7 @@
],
"name": "kind-of",
"optionalDependencies": {},
- "readme": "# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)\n\n> Get the native type of a value.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save kind-of\n```\n\nInstall with [yarn](https://yarnpkg.com):\n\n```sh\n$ yarn add kind-of\n```\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install kind-of --save\n```\n\n## Usage\n\n> es5, browser and es6 ready\n\n```js\nvar kindOf = require('kind-of');\n\nkindOf(undefined);\n//=> 'undefined'\n\nkindOf(null);\n//=> 'null'\n\nkindOf(true);\n//=> 'boolean'\n\nkindOf(false);\n//=> 'boolean'\n\nkindOf(new Boolean(true));\n//=> 'boolean'\n\nkindOf(new Buffer(''));\n//=> 'buffer'\n\nkindOf(42);\n//=> 'number'\n\nkindOf(new Number(42));\n//=> 'number'\n\nkindOf('str');\n//=> 'string'\n\nkindOf(new String('str'));\n//=> 'string'\n\nkindOf(arguments);\n//=> 'arguments'\n\nkindOf({});\n//=> 'object'\n\nkindOf(Object.create(null));\n//=> 'object'\n\nkindOf(new Test());\n//=> 'object'\n\nkindOf(new Date());\n//=> 'date'\n\nkindOf([]);\n//=> 'array'\n\nkindOf([1, 2, 3]);\n//=> 'array'\n\nkindOf(new Array());\n//=> 'array'\n\nkindOf(/foo/);\n//=> 'regexp'\n\nkindOf(new RegExp('foo'));\n//=> 'regexp'\n\nkindOf(function () {});\n//=> 'function'\n\nkindOf(function * () {});\n//=> 'function'\n\nkindOf(new Function());\n//=> 'function'\n\nkindOf(new Map());\n//=> 'map'\n\nkindOf(new WeakMap());\n//=> 'weakmap'\n\nkindOf(new Set());\n//=> 'set'\n\nkindOf(new WeakSet());\n//=> 'weakset'\n\nkindOf(Symbol('str'));\n//=> 'symbol'\n\nkindOf(new Int8Array());\n//=> 'int8array'\n\nkindOf(new Uint8Array());\n//=> 'uint8array'\n\nkindOf(new Uint8ClampedArray());\n//=> 'uint8clampedarray'\n\nkindOf(new Int16Array());\n//=> 'int16array'\n\nkindOf(new Uint16Array());\n//=> 'uint16array'\n\nkindOf(new Int32Array());\n//=> 'int32array'\n\nkindOf(new Uint32Array());\n//=> 'uint32array'\n\nkindOf(new Float32Array());\n//=> 'float32array'\n\nkindOf(new Float64Array());\n//=> 'float64array'\n```\n\n## Benchmarks\n\nBenchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).\nNote that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.\n\n```bash\n#1: array\n current x 23,329,397 ops/sec ±0.82% (94 runs sampled)\n lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)\n lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)\n\n#2: boolean\n current x 27,197,115 ops/sec ±0.85% (94 runs sampled)\n lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)\n lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)\n\n#3: date\n current x 20,190,117 ops/sec ±0.86% (92 runs sampled)\n lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)\n lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)\n\n#4: function\n current x 23,855,460 ops/sec ±0.60% (97 runs sampled)\n lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)\n lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)\n\n#5: null\n current x 27,061,047 ops/sec ±0.97% (96 runs sampled)\n lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)\n lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)\n\n#6: number\n current x 25,075,682 ops/sec ±0.53% (99 runs sampled)\n lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)\n lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)\n\n#7: object\n current x 3,348,980 ops/sec ±0.49% (99 runs sampled)\n lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)\n lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)\n\n#8: regex\n current x 21,284,827 ops/sec ±0.72% (96 runs sampled)\n lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)\n lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)\n\n#9: string\n current x 25,379,234 ops/sec ±0.58% (96 runs sampled)\n lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)\n lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)\n\n#10: undef\n current x 27,459,221 ops/sec ±1.01% (93 runs sampled)\n lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)\n lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)\n\n```\n\n## Optimizations\n\nIn 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:\n\n1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.\n2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.\n3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`\n\n## About\n\n### Related projects\n\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number \"Returns true if the value is a number. comprehensive tests.\")\n* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive \"Returns `true` if the value is a primitive. \")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- | \n| 56 | [jonschlinkert](https://github.com/jonschlinkert) | \n| 2 | [miguelmota](https://github.com/miguelmota) | \n| 1 | [dtothefp](https://github.com/dtothefp) | \n| 1 | [ksheedlo](https://github.com/ksheedlo) | \n| 1 | [pdehaan](https://github.com/pdehaan) | \n| 1 | [laggingreflex](https://github.com/laggingreflex) | \n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 25, 2017._",
+ "readme": "# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)\n\n> Get the native type of a value.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save kind-of\n```\n\n## Install\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install kind-of --save\n```\n\n## Usage\n\n> es5, browser and es6 ready\n\n```js\nvar kindOf = require('kind-of');\n\nkindOf(undefined);\n//=> 'undefined'\n\nkindOf(null);\n//=> 'null'\n\nkindOf(true);\n//=> 'boolean'\n\nkindOf(false);\n//=> 'boolean'\n\nkindOf(new Boolean(true));\n//=> 'boolean'\n\nkindOf(new Buffer(''));\n//=> 'buffer'\n\nkindOf(42);\n//=> 'number'\n\nkindOf(new Number(42));\n//=> 'number'\n\nkindOf('str');\n//=> 'string'\n\nkindOf(new String('str'));\n//=> 'string'\n\nkindOf(arguments);\n//=> 'arguments'\n\nkindOf({});\n//=> 'object'\n\nkindOf(Object.create(null));\n//=> 'object'\n\nkindOf(new Test());\n//=> 'object'\n\nkindOf(new Date());\n//=> 'date'\n\nkindOf([]);\n//=> 'array'\n\nkindOf([1, 2, 3]);\n//=> 'array'\n\nkindOf(new Array());\n//=> 'array'\n\nkindOf(/foo/);\n//=> 'regexp'\n\nkindOf(new RegExp('foo'));\n//=> 'regexp'\n\nkindOf(function () {});\n//=> 'function'\n\nkindOf(function * () {});\n//=> 'function'\n\nkindOf(new Function());\n//=> 'function'\n\nkindOf(new Map());\n//=> 'map'\n\nkindOf(new WeakMap());\n//=> 'weakmap'\n\nkindOf(new Set());\n//=> 'set'\n\nkindOf(new WeakSet());\n//=> 'weakset'\n\nkindOf(Symbol('str'));\n//=> 'symbol'\n\nkindOf(new Int8Array());\n//=> 'int8array'\n\nkindOf(new Uint8Array());\n//=> 'uint8array'\n\nkindOf(new Uint8ClampedArray());\n//=> 'uint8clampedarray'\n\nkindOf(new Int16Array());\n//=> 'int16array'\n\nkindOf(new Uint16Array());\n//=> 'uint16array'\n\nkindOf(new Int32Array());\n//=> 'int32array'\n\nkindOf(new Uint32Array());\n//=> 'uint32array'\n\nkindOf(new Float32Array());\n//=> 'float32array'\n\nkindOf(new Float64Array());\n//=> 'float64array'\n```\n\n## Benchmarks\n\nBenchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).\nNote that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.\n\n```bash\n#1: array\n current x 23,329,397 ops/sec ±0.82% (94 runs sampled)\n lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)\n lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)\n\n#2: boolean\n current x 27,197,115 ops/sec ±0.85% (94 runs sampled)\n lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)\n lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)\n\n#3: date\n current x 20,190,117 ops/sec ±0.86% (92 runs sampled)\n lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)\n lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)\n\n#4: function\n current x 23,855,460 ops/sec ±0.60% (97 runs sampled)\n lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)\n lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)\n\n#5: null\n current x 27,061,047 ops/sec ±0.97% (96 runs sampled)\n lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)\n lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)\n\n#6: number\n current x 25,075,682 ops/sec ±0.53% (99 runs sampled)\n lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)\n lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)\n\n#7: object\n current x 3,348,980 ops/sec ±0.49% (99 runs sampled)\n lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)\n lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)\n\n#8: regex\n current x 21,284,827 ops/sec ±0.72% (96 runs sampled)\n lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)\n lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)\n\n#9: string\n current x 25,379,234 ops/sec ±0.58% (96 runs sampled)\n lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)\n lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)\n\n#10: undef\n current x 27,459,221 ops/sec ±1.01% (93 runs sampled)\n lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)\n lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)\n\n```\n\n## Optimizations\n\nIn 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:\n\n1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.\n2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.\n3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`\n\n## About\n\n### Related projects\n\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number \"Returns true if the value is a number. comprehensive tests.\")\n* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive \"Returns `true` if the value is a primitive. \")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 59 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [miguelmota](https://github.com/miguelmota) |\n| 1 | [dtothefp](https://github.com/dtothefp) |\n| 1 | [ksheedlo](https://github.com/ksheedlo) |\n| 1 | [pdehaan](https://github.com/pdehaan) |\n| 1 | [laggingreflex](https://github.com/laggingreflex) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -180,5 +177,5 @@
"verb"
]
},
- "version": "3.2.0"
+ "version": "3.2.2"
}
diff --git a/node_modules/nyc/node_modules/lazy-cache/package.json b/node_modules/nyc/node_modules/lazy-cache/package.json
index 3cce417a1..686bf36f9 100644
--- a/node_modules/nyc/node_modules/lazy-cache/package.json
+++ b/node_modules/nyc/node_modules/lazy-cache/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.3 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/center-align"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/center-align"
]
],
"_from": "lazy-cache@>=1.0.3 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e",
"_shrinkwrap": null,
"_spec": "lazy-cache@^1.0.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/center-align",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/center-align",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/lcid/package.json b/node_modules/nyc/node_modules/lcid/package.json
index ac036bd82..6ee5ff03b 100644
--- a/node_modules/nyc/node_modules/lcid/package.json
+++ b/node_modules/nyc/node_modules/lcid/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/os-locale"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale"
]
],
"_from": "lcid@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "308accafa0bc483a3867b4b6f2b9506251d1b835",
"_shrinkwrap": null,
"_spec": "lcid@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/os-locale",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/load-json-file/package.json b/node_modules/nyc/node_modules/load-json-file/package.json
index 7d0e5b535..752f1a741 100644
--- a/node_modules/nyc/node_modules/load-json-file/package.json
+++ b/node_modules/nyc/node_modules/load-json-file/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/read-pkg"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg"
]
],
"_from": "load-json-file@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "956905708d58b4bab4c2261b04f59f31c99374c0",
"_shrinkwrap": null,
"_spec": "load-json-file@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/read-pkg",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/locate-path/index.js b/node_modules/nyc/node_modules/locate-path/index.js
new file mode 100644
index 000000000..32b108d19
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/index.js
@@ -0,0 +1,24 @@
+'use strict';
+const path = require('path');
+const pathExists = require('path-exists');
+const pLocate = require('p-locate');
+
+module.exports = (iterable, opts) => {
+ opts = Object.assign({
+ cwd: process.cwd()
+ }, opts);
+
+ return pLocate(iterable, el => pathExists(path.resolve(opts.cwd, el)), opts);
+};
+
+module.exports.sync = (iterable, opts) => {
+ opts = Object.assign({
+ cwd: process.cwd()
+ }, opts);
+
+ for (const el of iterable) {
+ if (pathExists.sync(path.resolve(opts.cwd, el))) {
+ return el;
+ }
+ }
+};
diff --git a/node_modules/nyc/node_modules/locate-path/license b/node_modules/nyc/node_modules/locate-path/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/index.js b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/index.js
new file mode 100644
index 000000000..16ae60acb
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/index.js
@@ -0,0 +1,17 @@
+'use strict';
+const fs = require('fs');
+
+module.exports = fp => new Promise(resolve => {
+ fs.access(fp, err => {
+ resolve(!err);
+ });
+});
+
+module.exports.sync = fp => {
+ try {
+ fs.accessSync(fp);
+ return true;
+ } catch (err) {
+ return false;
+ }
+};
diff --git a/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/license b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/package.json b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/package.json
new file mode 100644
index 000000000..5dfebd692
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/package.json
@@ -0,0 +1,109 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "path-exists@^3.0.0",
+ "scope": null,
+ "escapedName": "path-exists",
+ "name": "path-exists",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/locate-path"
+ ]
+ ],
+ "_from": "path-exists@>=3.0.0 <4.0.0",
+ "_id": "path-exists@3.0.0",
+ "_inCache": true,
+ "_location": "/locate-path/path-exists",
+ "_nodeVersion": "4.4.2",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/path-exists-3.0.0.tgz_1462103091696_0.5805528531782329"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.8.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "path-exists@^3.0.0",
+ "scope": null,
+ "escapedName": "path-exists",
+ "name": "path-exists",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/locate-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "_shasum": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
+ "_shrinkwrap": null,
+ "_spec": "path-exists@^3.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/locate-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-exists/issues"
+ },
+ "dependencies": {},
+ "description": "Check if a path exists",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
+ "tarball": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "4696c60a8b2b9ac61902aa9eab7cb326ab6005c8",
+ "homepage": "https://github.com/sindresorhus/path-exists#readme",
+ "keywords": [
+ "path",
+ "exists",
+ "exist",
+ "file",
+ "filepath",
+ "fs",
+ "filesystem",
+ "file-system",
+ "access",
+ "stat"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "path-exists",
+ "optionalDependencies": {},
+ "readme": "# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists)\n\n> Check if a path exists\n\nBecause [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), but there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it.\n\nNever use this before handling a file though:\n\n> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there.\n\n\n## Install\n\n```\n$ npm install --save path-exists\n```\n\n\n## Usage\n\n```js\n// foo.js\nconst pathExists = require('path-exists');\n\npathExists('foo.js').then(exists => {\n\tconsole.log(exists);\n\t//=> true\n});\n```\n\n\n## API\n\n### pathExists(path)\n\nReturns a promise for a boolean of whether the path exists.\n\n### pathExists.sync(path)\n\nReturns a boolean of whether the path exists.\n\n\n## Related\n\n- [path-exists-cli](https://github.com/sindresorhus/path-exists-cli) - CLI for this module\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-exists.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/readme.md b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/readme.md
new file mode 100644
index 000000000..1b65fa705
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/node_modules/path-exists/readme.md
@@ -0,0 +1,50 @@
+# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists)
+
+> Check if a path exists
+
+Because [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), but there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it.
+
+Never use this before handling a file though:
+
+> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there.
+
+
+## Install
+
+```
+$ npm install --save path-exists
+```
+
+
+## Usage
+
+```js
+// foo.js
+const pathExists = require('path-exists');
+
+pathExists('foo.js').then(exists => {
+ console.log(exists);
+ //=> true
+});
+```
+
+
+## API
+
+### pathExists(path)
+
+Returns a promise for a boolean of whether the path exists.
+
+### pathExists.sync(path)
+
+Returns a boolean of whether the path exists.
+
+
+## Related
+
+- [path-exists-cli](https://github.com/sindresorhus/path-exists-cli) - CLI for this module
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/locate-path/package.json b/node_modules/nyc/node_modules/locate-path/package.json
new file mode 100644
index 000000000..b745e91ff
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/package.json
@@ -0,0 +1,115 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "locate-path@^2.0.0",
+ "scope": null,
+ "escapedName": "locate-path",
+ "name": "locate-path",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/find-up"
+ ]
+ ],
+ "_from": "locate-path@>=2.0.0 <3.0.0",
+ "_id": "locate-path@2.0.0",
+ "_inCache": true,
+ "_location": "/locate-path",
+ "_nodeVersion": "7.2.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/locate-path-2.0.0.tgz_1480310853492_0.9661909360438585"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.10.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "locate-path@^2.0.0",
+ "scope": null,
+ "escapedName": "locate-path",
+ "name": "locate-path",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/find-up"
+ ],
+ "_resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "_shasum": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
+ "_shrinkwrap": null,
+ "_spec": "locate-path@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/find-up",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/locate-path/issues"
+ },
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "description": "Get the first path that exists on disk of multiple paths",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
+ "tarball": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "a30b86df0934329c66ff6a2be395db03d65478b8",
+ "homepage": "https://github.com/sindresorhus/locate-path#readme",
+ "keywords": [
+ "locate",
+ "path",
+ "paths",
+ "file",
+ "files",
+ "exists",
+ "find",
+ "finder",
+ "search",
+ "searcher",
+ "array",
+ "iterable",
+ "iterator"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "locate-path",
+ "optionalDependencies": {},
+ "readme": "# locate-path [![Build Status](https://travis-ci.org/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.org/sindresorhus/locate-path)\n\n> Get the first path that exists on disk of multiple paths\n\n\n## Install\n\n```\n$ npm install --save locate-path\n```\n\n\n## Usage\n\nHere we find the first file that exists on disk, in array order.\n\n```js\nconst locatePath = require('locate-path');\n\nconst files = [\n\t'unicorn.png',\n\t'rainbow.png', // only this one actually exists on disk\n\t'pony.png'\n];\n\nlocatePath(files).then(foundPath => {\n\tconsole.log(foundPath);\n\t//=> 'rainbow'\n});\n```\n\n\n## API\n\n### locatePath(input, [options])\n\nReturns a `Promise` for the first path that exists or `undefined` if none exists.\n\n#### input\n\nType: `Iterable<string>`\n\nPaths to check.\n\n#### options\n\nType: `Object`\n\n##### concurrency\n\nType: `number`<br>\nDefault: `Infinity`<br>\nMinimum: `1`\n\nNumber of concurrently pending promises.\n\n##### preserveOrder\n\nType: `boolean`<br>\nDefault: `true`\n\nPreserve `input` order when searching.\n\nDisable this to improve performance if you don't care about the order.\n\n##### cwd\n\nType: `string`<br>\nDefault: `process.cwd()`\n\nCurrent working directory.\n\n### locatePath.sync(input, [options])\n\nReturns the first path that exists or `undefined` if none exists.\n\n#### input\n\nType: `Iterable<string>`\n\nPaths to check.\n\n#### options\n\nType: `Object`\n\n##### cwd\n\nSame as above.\n\n\n## Related\n\n- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/locate-path.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/locate-path/readme.md b/node_modules/nyc/node_modules/locate-path/readme.md
new file mode 100644
index 000000000..f7b337bb2
--- /dev/null
+++ b/node_modules/nyc/node_modules/locate-path/readme.md
@@ -0,0 +1,99 @@
+# locate-path [![Build Status](https://travis-ci.org/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.org/sindresorhus/locate-path)
+
+> Get the first path that exists on disk of multiple paths
+
+
+## Install
+
+```
+$ npm install --save locate-path
+```
+
+
+## Usage
+
+Here we find the first file that exists on disk, in array order.
+
+```js
+const locatePath = require('locate-path');
+
+const files = [
+ 'unicorn.png',
+ 'rainbow.png', // only this one actually exists on disk
+ 'pony.png'
+];
+
+locatePath(files).then(foundPath => {
+ console.log(foundPath);
+ //=> 'rainbow'
+});
+```
+
+
+## API
+
+### locatePath(input, [options])
+
+Returns a `Promise` for the first path that exists or `undefined` if none exists.
+
+#### input
+
+Type: `Iterable<string>`
+
+Paths to check.
+
+#### options
+
+Type: `Object`
+
+##### concurrency
+
+Type: `number`<br>
+Default: `Infinity`<br>
+Minimum: `1`
+
+Number of concurrently pending promises.
+
+##### preserveOrder
+
+Type: `boolean`<br>
+Default: `true`
+
+Preserve `input` order when searching.
+
+Disable this to improve performance if you don't care about the order.
+
+##### cwd
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Current working directory.
+
+### locatePath.sync(input, [options])
+
+Returns the first path that exists or `undefined` if none exists.
+
+#### input
+
+Type: `Iterable<string>`
+
+Paths to check.
+
+#### options
+
+Type: `Object`
+
+##### cwd
+
+Same as above.
+
+
+## Related
+
+- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/lodash/package.json b/node_modules/nyc/node_modules/lodash/package.json
index dd12a27f4..cfe9bf5d7 100644
--- a/node_modules/nyc/node_modules/lodash/package.json
+++ b/node_modules/nyc/node_modules/lodash/package.json
@@ -10,7 +10,7 @@
"spec": ">=4.2.0 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "lodash@>=4.2.0 <5.0.0",
@@ -48,7 +48,7 @@
"_shasum": "78203a4d1c328ae1d86dca6460e369b57f4055ae",
"_shrinkwrap": null,
"_spec": "lodash@^4.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
diff --git a/node_modules/nyc/node_modules/longest/package.json b/node_modules/nyc/node_modules/longest/package.json
index 40fc5c2f6..ae7e72d3c 100644
--- a/node_modules/nyc/node_modules/longest/package.json
+++ b/node_modules/nyc/node_modules/longest/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/align-text"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/align-text"
]
],
"_from": "longest@>=1.0.1 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "30a0b2da38f73770e8294a0d22e6625ed77d0097",
"_shrinkwrap": null,
"_spec": "longest@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/align-text",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/align-text",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/loose-envify/package.json b/node_modules/nyc/node_modules/loose-envify/package.json
index 952133aa1..4198680ad 100644
--- a/node_modules/nyc/node_modules/loose-envify/package.json
+++ b/node_modules/nyc/node_modules/loose-envify/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/invariant"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/invariant"
]
],
"_from": "loose-envify@>=1.0.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848",
"_shrinkwrap": null,
"_spec": "loose-envify@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/invariant",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/invariant",
"author": {
"name": "Andres Suarez",
"email": "zertosh@gmail.com"
diff --git a/node_modules/nyc/node_modules/lru-cache/README.md b/node_modules/nyc/node_modules/lru-cache/README.md
index 5bdf98c0f..f646c1cb8 100644
--- a/node_modules/nyc/node_modules/lru-cache/README.md
+++ b/node_modules/nyc/node_modules/lru-cache/README.md
@@ -66,6 +66,10 @@ away.
`stale:true`, it'll return the stale value before deleting it. If
you don't set this, then it'll return `undefined` when you try to
get a stale entry, as if it had already been deleted.
+* `noDisposeOnSet` By default, if you set a `dispose()` method, then
+ it'll be called whenever a `set()` operation overwrites an existing
+ key. If you set this option, `dispose()` will only be called when a
+ key falls out of the cache, not when it is overwritten.
## API
diff --git a/node_modules/nyc/node_modules/lru-cache/lib/lru-cache.js b/node_modules/nyc/node_modules/lru-cache/index.js
index e98ef78a5..460462aad 100644
--- a/node_modules/nyc/node_modules/lru-cache/lib/lru-cache.js
+++ b/node_modules/nyc/node_modules/lru-cache/index.js
@@ -1,3 +1,5 @@
+'use strict'
+
module.exports = LRUCache
// This will be a proper iterable 'Map' in engines that support it,
@@ -9,10 +11,8 @@ var util = require('util')
var Yallist = require('yallist')
// use symbols if possible, otherwise just _props
-var symbols = {}
var hasSymbol = typeof Symbol === 'function'
var makeSymbol
-/* istanbul ignore if */
if (hasSymbol) {
makeSymbol = function (key) {
return Symbol.for(key)
@@ -23,21 +23,15 @@ if (hasSymbol) {
}
}
-function priv (obj, key, val) {
- var sym
- if (symbols[key]) {
- sym = symbols[key]
- } else {
- sym = makeSymbol(key)
- symbols[key] = sym
- }
- if (arguments.length === 2) {
- return obj[sym]
- } else {
- obj[sym] = val
- return val
- }
-}
+var MAX = makeSymbol('max')
+var LENGTH = makeSymbol('length')
+var LENGTH_CALCULATOR = makeSymbol('lengthCalculator')
+var ALLOW_STALE = makeSymbol('allowStale')
+var MAX_AGE = makeSymbol('maxAge')
+var DISPOSE = makeSymbol('dispose')
+var NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet')
+var LRU_LIST = makeSymbol('lruList')
+var CACHE = makeSymbol('cache')
function naiveLength () { return 1 }
@@ -62,23 +56,24 @@ function LRUCache (options) {
options = {}
}
- var max = priv(this, 'max', options.max)
+ var max = this[MAX] = options.max
// Kind of weird to have a default max of Infinity, but oh well.
if (!max ||
!(typeof max === 'number') ||
max <= 0) {
- priv(this, 'max', Infinity)
+ this[MAX] = Infinity
}
var lc = options.length || naiveLength
if (typeof lc !== 'function') {
lc = naiveLength
}
- priv(this, 'lengthCalculator', lc)
+ this[LENGTH_CALCULATOR] = lc
- priv(this, 'allowStale', options.stale || false)
- priv(this, 'maxAge', options.maxAge || 0)
- priv(this, 'dispose', options.dispose)
+ this[ALLOW_STALE] = options.stale || false
+ this[MAX_AGE] = options.maxAge || 0
+ this[DISPOSE] = options.dispose
+ this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false
this.reset()
}
@@ -88,21 +83,21 @@ Object.defineProperty(LRUCache.prototype, 'max', {
if (!mL || !(typeof mL === 'number') || mL <= 0) {
mL = Infinity
}
- priv(this, 'max', mL)
+ this[MAX] = mL
trim(this)
},
get: function () {
- return priv(this, 'max')
+ return this[MAX]
},
enumerable: true
})
Object.defineProperty(LRUCache.prototype, 'allowStale', {
set: function (allowStale) {
- priv(this, 'allowStale', !!allowStale)
+ this[ALLOW_STALE] = !!allowStale
},
get: function () {
- return priv(this, 'allowStale')
+ return this[ALLOW_STALE]
},
enumerable: true
})
@@ -112,11 +107,11 @@ Object.defineProperty(LRUCache.prototype, 'maxAge', {
if (!mA || !(typeof mA === 'number') || mA < 0) {
mA = 0
}
- priv(this, 'maxAge', mA)
+ this[MAX_AGE] = mA
trim(this)
},
get: function () {
- return priv(this, 'maxAge')
+ return this[MAX_AGE]
},
enumerable: true
})
@@ -127,33 +122,33 @@ Object.defineProperty(LRUCache.prototype, 'lengthCalculator', {
if (typeof lC !== 'function') {
lC = naiveLength
}
- if (lC !== priv(this, 'lengthCalculator')) {
- priv(this, 'lengthCalculator', lC)
- priv(this, 'length', 0)
- priv(this, 'lruList').forEach(function (hit) {
- hit.length = priv(this, 'lengthCalculator').call(this, hit.value, hit.key)
- priv(this, 'length', priv(this, 'length') + hit.length)
+ if (lC !== this[LENGTH_CALCULATOR]) {
+ this[LENGTH_CALCULATOR] = lC
+ this[LENGTH] = 0
+ this[LRU_LIST].forEach(function (hit) {
+ hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)
+ this[LENGTH] += hit.length
}, this)
}
trim(this)
},
- get: function () { return priv(this, 'lengthCalculator') },
+ get: function () { return this[LENGTH_CALCULATOR] },
enumerable: true
})
Object.defineProperty(LRUCache.prototype, 'length', {
- get: function () { return priv(this, 'length') },
+ get: function () { return this[LENGTH] },
enumerable: true
})
Object.defineProperty(LRUCache.prototype, 'itemCount', {
- get: function () { return priv(this, 'lruList').length },
+ get: function () { return this[LRU_LIST].length },
enumerable: true
})
LRUCache.prototype.rforEach = function (fn, thisp) {
thisp = thisp || this
- for (var walker = priv(this, 'lruList').tail; walker !== null;) {
+ for (var walker = this[LRU_LIST].tail; walker !== null;) {
var prev = walker.prev
forEachStep(this, fn, walker, thisp)
walker = prev
@@ -164,7 +159,7 @@ function forEachStep (self, fn, node, thisp) {
var hit = node.value
if (isStale(self, hit)) {
del(self, node)
- if (!priv(self, 'allowStale')) {
+ if (!self[ALLOW_STALE]) {
hit = undefined
}
}
@@ -175,7 +170,7 @@ function forEachStep (self, fn, node, thisp) {
LRUCache.prototype.forEach = function (fn, thisp) {
thisp = thisp || this
- for (var walker = priv(this, 'lruList').head; walker !== null;) {
+ for (var walker = this[LRU_LIST].head; walker !== null;) {
var next = walker.next
forEachStep(this, fn, walker, thisp)
walker = next
@@ -183,33 +178,33 @@ LRUCache.prototype.forEach = function (fn, thisp) {
}
LRUCache.prototype.keys = function () {
- return priv(this, 'lruList').toArray().map(function (k) {
+ return this[LRU_LIST].toArray().map(function (k) {
return k.key
}, this)
}
LRUCache.prototype.values = function () {
- return priv(this, 'lruList').toArray().map(function (k) {
+ return this[LRU_LIST].toArray().map(function (k) {
return k.value
}, this)
}
LRUCache.prototype.reset = function () {
- if (priv(this, 'dispose') &&
- priv(this, 'lruList') &&
- priv(this, 'lruList').length) {
- priv(this, 'lruList').forEach(function (hit) {
- priv(this, 'dispose').call(this, hit.key, hit.value)
+ if (this[DISPOSE] &&
+ this[LRU_LIST] &&
+ this[LRU_LIST].length) {
+ this[LRU_LIST].forEach(function (hit) {
+ this[DISPOSE](hit.key, hit.value)
}, this)
}
- priv(this, 'cache', new Map()) // hash of items by key
- priv(this, 'lruList', new Yallist()) // list of items in order of use recency
- priv(this, 'length', 0) // length of items in the list
+ this[CACHE] = new Map() // hash of items by key
+ this[LRU_LIST] = new Yallist() // list of items in order of use recency
+ this[LENGTH] = 0 // length of items in the list
}
LRUCache.prototype.dump = function () {
- return priv(this, 'lruList').map(function (hit) {
+ return this[LRU_LIST].map(function (hit) {
if (!isStale(this, hit)) {
return {
k: hit.key,
@@ -223,20 +218,20 @@ LRUCache.prototype.dump = function () {
}
LRUCache.prototype.dumpLru = function () {
- return priv(this, 'lruList')
+ return this[LRU_LIST]
}
LRUCache.prototype.inspect = function (n, opts) {
var str = 'LRUCache {'
var extras = false
- var as = priv(this, 'allowStale')
+ var as = this[ALLOW_STALE]
if (as) {
str += '\n allowStale: true'
extras = true
}
- var max = priv(this, 'max')
+ var max = this[MAX]
if (max && max !== Infinity) {
if (extras) {
str += ','
@@ -245,7 +240,7 @@ LRUCache.prototype.inspect = function (n, opts) {
extras = true
}
- var maxAge = priv(this, 'maxAge')
+ var maxAge = this[MAX_AGE]
if (maxAge) {
if (extras) {
str += ','
@@ -254,17 +249,17 @@ LRUCache.prototype.inspect = function (n, opts) {
extras = true
}
- var lc = priv(this, 'lengthCalculator')
+ var lc = this[LENGTH_CALCULATOR]
if (lc && lc !== naiveLength) {
if (extras) {
str += ','
}
- str += '\n length: ' + util.inspect(priv(this, 'length'), opts)
+ str += '\n length: ' + util.inspect(this[LENGTH], opts)
extras = true
}
var didFirst = false
- priv(this, 'lruList').forEach(function (item) {
+ this[LRU_LIST].forEach(function (item) {
if (didFirst) {
str += ',\n '
} else {
@@ -299,29 +294,32 @@ LRUCache.prototype.inspect = function (n, opts) {
}
LRUCache.prototype.set = function (key, value, maxAge) {
- maxAge = maxAge || priv(this, 'maxAge')
+ maxAge = maxAge || this[MAX_AGE]
var now = maxAge ? Date.now() : 0
- var len = priv(this, 'lengthCalculator').call(this, value, key)
+ var len = this[LENGTH_CALCULATOR](value, key)
- if (priv(this, 'cache').has(key)) {
- if (len > priv(this, 'max')) {
- del(this, priv(this, 'cache').get(key))
+ if (this[CACHE].has(key)) {
+ if (len > this[MAX]) {
+ del(this, this[CACHE].get(key))
return false
}
- var node = priv(this, 'cache').get(key)
+ var node = this[CACHE].get(key)
var item = node.value
// dispose of the old one before overwriting
- if (priv(this, 'dispose')) {
- priv(this, 'dispose').call(this, key, item.value)
+ // split out into 2 ifs for better coverage tracking
+ if (this[DISPOSE]) {
+ if (!this[NO_DISPOSE_ON_SET]) {
+ this[DISPOSE](key, item.value)
+ }
}
item.now = now
item.maxAge = maxAge
item.value = value
- priv(this, 'length', priv(this, 'length') + (len - item.length))
+ this[LENGTH] += len - item.length
item.length = len
this.get(key)
trim(this)
@@ -331,23 +329,23 @@ LRUCache.prototype.set = function (key, value, maxAge) {
var hit = new Entry(key, value, len, now, maxAge)
// oversized objects fall out of cache automatically.
- if (hit.length > priv(this, 'max')) {
- if (priv(this, 'dispose')) {
- priv(this, 'dispose').call(this, key, value)
+ if (hit.length > this[MAX]) {
+ if (this[DISPOSE]) {
+ this[DISPOSE](key, value)
}
return false
}
- priv(this, 'length', priv(this, 'length') + hit.length)
- priv(this, 'lruList').unshift(hit)
- priv(this, 'cache').set(key, priv(this, 'lruList').head)
+ this[LENGTH] += hit.length
+ this[LRU_LIST].unshift(hit)
+ this[CACHE].set(key, this[LRU_LIST].head)
trim(this)
return true
}
LRUCache.prototype.has = function (key) {
- if (!priv(this, 'cache').has(key)) return false
- var hit = priv(this, 'cache').get(key).value
+ if (!this[CACHE].has(key)) return false
+ var hit = this[CACHE].get(key).value
if (isStale(this, hit)) {
return false
}
@@ -363,14 +361,14 @@ LRUCache.prototype.peek = function (key) {
}
LRUCache.prototype.pop = function () {
- var node = priv(this, 'lruList').tail
+ var node = this[LRU_LIST].tail
if (!node) return null
del(this, node)
return node.value
}
LRUCache.prototype.del = function (key) {
- del(this, priv(this, 'cache').get(key))
+ del(this, this[CACHE].get(key))
}
LRUCache.prototype.load = function (arr) {
@@ -397,21 +395,21 @@ LRUCache.prototype.load = function (arr) {
LRUCache.prototype.prune = function () {
var self = this
- priv(this, 'cache').forEach(function (value, key) {
+ this[CACHE].forEach(function (value, key) {
get(self, key, false)
})
}
function get (self, key, doUse) {
- var node = priv(self, 'cache').get(key)
+ var node = self[CACHE].get(key)
if (node) {
var hit = node.value
if (isStale(self, hit)) {
del(self, node)
- if (!priv(self, 'allowStale')) hit = undefined
+ if (!self[ALLOW_STALE]) hit = undefined
} else {
if (doUse) {
- priv(self, 'lruList').unshiftNode(node)
+ self[LRU_LIST].unshiftNode(node)
}
}
if (hit) hit = hit.value
@@ -420,7 +418,7 @@ function get (self, key, doUse) {
}
function isStale (self, hit) {
- if (!hit || (!hit.maxAge && !priv(self, 'maxAge'))) {
+ if (!hit || (!hit.maxAge && !self[MAX_AGE])) {
return false
}
var stale = false
@@ -428,15 +426,15 @@ function isStale (self, hit) {
if (hit.maxAge) {
stale = diff > hit.maxAge
} else {
- stale = priv(self, 'maxAge') && (diff > priv(self, 'maxAge'))
+ stale = self[MAX_AGE] && (diff > self[MAX_AGE])
}
return stale
}
function trim (self) {
- if (priv(self, 'length') > priv(self, 'max')) {
- for (var walker = priv(self, 'lruList').tail;
- priv(self, 'length') > priv(self, 'max') && walker !== null;) {
+ if (self[LENGTH] > self[MAX]) {
+ for (var walker = self[LRU_LIST].tail;
+ self[LENGTH] > self[MAX] && walker !== null;) {
// We know that we're about to delete this one, and also
// what the next least recently used key will be, so just
// go ahead and set it now.
@@ -450,12 +448,12 @@ function trim (self) {
function del (self, node) {
if (node) {
var hit = node.value
- if (priv(self, 'dispose')) {
- priv(self, 'dispose').call(this, hit.key, hit.value)
+ if (self[DISPOSE]) {
+ self[DISPOSE](hit.key, hit.value)
}
- priv(self, 'length', priv(self, 'length') - hit.length)
- priv(self, 'cache').delete(hit.key)
- priv(self, 'lruList').removeNode(node)
+ self[LENGTH] -= hit.length
+ self[CACHE].delete(hit.key)
+ self[LRU_LIST].removeNode(node)
}
}
diff --git a/node_modules/nyc/node_modules/lru-cache/package.json b/node_modules/nyc/node_modules/lru-cache/package.json
index beab4daec..03f823f1e 100644
--- a/node_modules/nyc/node_modules/lru-cache/package.json
+++ b/node_modules/nyc/node_modules/lru-cache/package.json
@@ -10,23 +10,23 @@
"spec": ">=4.0.1 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/cross-spawn"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/cross-spawn"
]
],
"_from": "lru-cache@>=4.0.1 <5.0.0",
- "_id": "lru-cache@4.0.2",
+ "_id": "lru-cache@4.1.1",
"_inCache": true,
"_location": "/lru-cache",
- "_nodeVersion": "6.5.0",
+ "_nodeVersion": "8.0.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/lru-cache-4.0.2.tgz_1480273800672_0.31606275402009487"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/lru-cache-4.1.1.tgz_1497150046014_0.012352559482678771"
},
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_npmVersion": "3.10.9",
+ "_npmVersion": "5.0.3",
"_phantomChildren": {},
"_requested": {
"raw": "lru-cache@^4.0.1",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/cross-spawn"
],
- "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
- "_shasum": "1d17679c069cda5d040991a09dbc2c0db377e55e",
+ "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
+ "_shasum": "622e32e82488b49279114a4f9ecf45e7cd6bba55",
"_shrinkwrap": null,
"_spec": "lru-cache@^4.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/cross-spawn",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/cross-spawn",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me"
@@ -53,23 +53,25 @@
"url": "https://github.com/isaacs/node-lru-cache/issues"
},
"dependencies": {
- "pseudomap": "^1.0.1",
- "yallist": "^2.0.0"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
},
"description": "A cache object that deletes the least-recently-used items.",
"devDependencies": {
+ "benchmark": "^2.1.4",
"standard": "^5.4.1",
- "tap": "^8.0.1"
+ "tap": "^10.3.3"
},
"directories": {},
"dist": {
- "shasum": "1d17679c069cda5d040991a09dbc2c0db377e55e",
- "tarball": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz"
+ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "shasum": "622e32e82488b49279114a4f9ecf45e7cd6bba55",
+ "tarball": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz"
},
"files": [
- "lib/lru-cache.js"
+ "index.js"
],
- "gitHead": "f25bdae0b4bb0166a75fa01d664a3e3cece1ce98",
+ "gitHead": "e992f26547a575299fc8d232580e53229393ea7a",
"homepage": "https://github.com/isaacs/node-lru-cache#readme",
"keywords": [
"mru",
@@ -77,7 +79,7 @@
"cache"
],
"license": "ISC",
- "main": "lib/lru-cache.js",
+ "main": "index.js",
"maintainers": [
{
"name": "isaacs",
@@ -90,15 +92,18 @@
],
"name": "lru-cache",
"optionalDependencies": {},
- "readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache)\n\n## Installation:\n\n```javascript\nnpm install lru-cache --save\n```\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n , options = { max: 500\n , length: function (n, key) { return n * 2 + key.length }\n , dispose: function (key, n) { n.close() }\n , maxAge: 1000 * 60 * 60 }\n , cache = LRU(options)\n , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\n// non-string keys ARE fully supported\nvar someObject = {}\ncache.set(someObject, 'a value')\ncache.set('[object Object]', 'a different value')\nassert.equal(cache.get(someObject), 'a value')\n\ncache.reset() // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n function to all values in the cache. Not setting this is kind of\n silly, since that's the whole purpose of this lib, but it defaults\n to `Infinity`.\n* `maxAge` Maximum age in ms. Items are not pro-actively pruned out\n as they age, but if you try to get an item that is too old, it'll\n drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n items. If you're storing strings or buffers, then you probably want\n to do something like `function(n, key){return n.length}`. The default is\n `function(){return 1}`, which is fine if you want to store `max`\n like-sized things. The item is passed as the first argument, and\n the key is passed as the second argumnet.\n* `dispose` Function that is called on items when they are dropped\n from the cache. This can be handy if you want to close file\n descriptors or do other cleanup tasks when items are no longer\n accessible. Called with `key, value`. It's called *before*\n actually removing the item from the internal cache, so if you want\n to immediately put it back in, you'll have to do that in a\n `nextTick` or `setTimeout` callback or it won't do anything.\n* `stale` By default, if you set a `maxAge`, it'll only actually pull\n stale items out of the cache when you `get(key)`. (That is, it's\n not pre-emptively doing a `setTimeout` or anything.) If you set\n `stale:true`, it'll return the stale value before deleting it. If\n you don't set this, then it'll return `undefined` when you try to\n get a stale entry, as if it had already been deleted.\n\n## API\n\n* `set(key, value, maxAge)`\n* `get(key) => value`\n\n Both of these will update the \"recently used\"-ness of the key.\n They do what you think. `maxAge` is optional and overrides the\n cache `maxAge` option if provided.\n\n If the key is not found, `get()` will return `undefined`.\n\n The key and val can be any value.\n\n* `peek(key)`\n\n Returns the key value (or `undefined` if not found) without\n updating the \"recently used\"-ness of the key.\n\n (If you find yourself using this a lot, you *might* be using the\n wrong sort of data structure, but there are some use cases where\n it's handy.)\n\n* `del(key)`\n\n Deletes a key out of the cache.\n\n* `reset()`\n\n Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n Check if a key is in the cache, without updating the recent-ness\n or deleting it for being stale.\n\n* `forEach(function(value,key,cache), [thisp])`\n\n Just like `Array.prototype.forEach`. Iterates over all the keys\n in the cache, in order of recent-ness. (Ie, more recently used\n items are iterated over first.)\n\n* `rforEach(function(value,key,cache), [thisp])`\n\n The same as `cache.forEach(...)` but items are iterated over in\n reverse order. (ie, less recently used items are iterated over\n first.)\n\n* `keys()`\n\n Return an array of the keys in the cache.\n\n* `values()`\n\n Return an array of the values in the cache.\n\n* `length`\n\n Return total length of objects in cache taking into account\n `length` options function.\n\n* `itemCount`\n\n Return total quantity of objects currently in cache. Note, that\n `stale` (see options) items are returned as part of this item\n count.\n\n* `dump()`\n\n Return an array of the cache entries ready for serialization and usage\n with 'destinationCache.load(arr)`.\n\n* `load(cacheEntriesArray)`\n\n Loads another cache entries array, obtained with `sourceCache.dump()`,\n into the cache. The destination cache is reset before loading new entries\n\n* `prune()`\n\n Manually iterates over the entire cache proactively pruning old entries\n",
+ "readme": "# lru cache\n\nA cache object that deletes the least-recently-used items.\n\n[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache)\n\n## Installation:\n\n```javascript\nnpm install lru-cache --save\n```\n\n## Usage:\n\n```javascript\nvar LRU = require(\"lru-cache\")\n , options = { max: 500\n , length: function (n, key) { return n * 2 + key.length }\n , dispose: function (key, n) { n.close() }\n , maxAge: 1000 * 60 * 60 }\n , cache = LRU(options)\n , otherCache = LRU(50) // sets just the max size\n\ncache.set(\"key\", \"value\")\ncache.get(\"key\") // \"value\"\n\n// non-string keys ARE fully supported\nvar someObject = {}\ncache.set(someObject, 'a value')\ncache.set('[object Object]', 'a different value')\nassert.equal(cache.get(someObject), 'a value')\n\ncache.reset() // empty the cache\n```\n\nIf you put more stuff in it, then items will fall out.\n\nIf you try to put an oversized thing in it, then it'll fall out right\naway.\n\n## Options\n\n* `max` The maximum size of the cache, checked by applying the length\n function to all values in the cache. Not setting this is kind of\n silly, since that's the whole purpose of this lib, but it defaults\n to `Infinity`.\n* `maxAge` Maximum age in ms. Items are not pro-actively pruned out\n as they age, but if you try to get an item that is too old, it'll\n drop it and return undefined instead of giving it to you.\n* `length` Function that is used to calculate the length of stored\n items. If you're storing strings or buffers, then you probably want\n to do something like `function(n, key){return n.length}`. The default is\n `function(){return 1}`, which is fine if you want to store `max`\n like-sized things. The item is passed as the first argument, and\n the key is passed as the second argumnet.\n* `dispose` Function that is called on items when they are dropped\n from the cache. This can be handy if you want to close file\n descriptors or do other cleanup tasks when items are no longer\n accessible. Called with `key, value`. It's called *before*\n actually removing the item from the internal cache, so if you want\n to immediately put it back in, you'll have to do that in a\n `nextTick` or `setTimeout` callback or it won't do anything.\n* `stale` By default, if you set a `maxAge`, it'll only actually pull\n stale items out of the cache when you `get(key)`. (That is, it's\n not pre-emptively doing a `setTimeout` or anything.) If you set\n `stale:true`, it'll return the stale value before deleting it. If\n you don't set this, then it'll return `undefined` when you try to\n get a stale entry, as if it had already been deleted.\n* `noDisposeOnSet` By default, if you set a `dispose()` method, then\n it'll be called whenever a `set()` operation overwrites an existing\n key. If you set this option, `dispose()` will only be called when a\n key falls out of the cache, not when it is overwritten.\n\n## API\n\n* `set(key, value, maxAge)`\n* `get(key) => value`\n\n Both of these will update the \"recently used\"-ness of the key.\n They do what you think. `maxAge` is optional and overrides the\n cache `maxAge` option if provided.\n\n If the key is not found, `get()` will return `undefined`.\n\n The key and val can be any value.\n\n* `peek(key)`\n\n Returns the key value (or `undefined` if not found) without\n updating the \"recently used\"-ness of the key.\n\n (If you find yourself using this a lot, you *might* be using the\n wrong sort of data structure, but there are some use cases where\n it's handy.)\n\n* `del(key)`\n\n Deletes a key out of the cache.\n\n* `reset()`\n\n Clear the cache entirely, throwing away all values.\n\n* `has(key)`\n\n Check if a key is in the cache, without updating the recent-ness\n or deleting it for being stale.\n\n* `forEach(function(value,key,cache), [thisp])`\n\n Just like `Array.prototype.forEach`. Iterates over all the keys\n in the cache, in order of recent-ness. (Ie, more recently used\n items are iterated over first.)\n\n* `rforEach(function(value,key,cache), [thisp])`\n\n The same as `cache.forEach(...)` but items are iterated over in\n reverse order. (ie, less recently used items are iterated over\n first.)\n\n* `keys()`\n\n Return an array of the keys in the cache.\n\n* `values()`\n\n Return an array of the values in the cache.\n\n* `length`\n\n Return total length of objects in cache taking into account\n `length` options function.\n\n* `itemCount`\n\n Return total quantity of objects currently in cache. Note, that\n `stale` (see options) items are returned as part of this item\n count.\n\n* `dump()`\n\n Return an array of the cache entries ready for serialization and usage\n with 'destinationCache.load(arr)`.\n\n* `load(cacheEntriesArray)`\n\n Loads another cache entries array, obtained with `sourceCache.dump()`,\n into the cache. The destination cache is reset before loading new entries\n\n* `prune()`\n\n Manually iterates over the entire cache proactively pruning old entries\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/node-lru-cache.git"
},
"scripts": {
- "posttest": "standard test/*.js lib/*.js",
- "test": "tap test --100"
+ "postpublish": "git push origin --all; git push origin --tags",
+ "posttest": "standard test/*.js index.js",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100 -J"
},
- "version": "4.0.2"
+ "version": "4.1.1"
}
diff --git a/node_modules/nyc/node_modules/md5-hex/package.json b/node_modules/nyc/node_modules/md5-hex/package.json
index d63c1aa9e..02d54328a 100644
--- a/node_modules/nyc/node_modules/md5-hex/package.json
+++ b/node_modules/nyc/node_modules/md5-hex/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.2.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "md5-hex@>=1.2.0 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "d2c4afe983c4370662179b8cad145219135046c4",
"_shrinkwrap": null,
"_spec": "md5-hex@^1.2.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/md5-o-matic/package.json b/node_modules/nyc/node_modules/md5-o-matic/package.json
index 34e05465b..09f9e84b2 100644
--- a/node_modules/nyc/node_modules/md5-o-matic/package.json
+++ b/node_modules/nyc/node_modules/md5-o-matic/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/md5-hex"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/md5-hex"
]
],
"_from": "md5-o-matic@>=0.1.1 <0.2.0",
@@ -39,7 +39,7 @@
"_shasum": "822bccd65e117c514fab176b25945d54100a03c3",
"_shrinkwrap": null,
"_spec": "md5-o-matic@^0.1.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/md5-hex",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/md5-hex",
"author": {
"name": "Trent Millar"
},
diff --git a/node_modules/nyc/node_modules/mem/index.js b/node_modules/nyc/node_modules/mem/index.js
new file mode 100644
index 000000000..aa5a07398
--- /dev/null
+++ b/node_modules/nyc/node_modules/mem/index.js
@@ -0,0 +1,55 @@
+'use strict';
+const mimicFn = require('mimic-fn');
+
+const cacheStore = new WeakMap();
+
+const defaultCacheKey = function (x) {
+ if (arguments.length === 1 && (x === null || x === undefined || (typeof x !== 'function' && typeof x !== 'object'))) {
+ return x;
+ }
+
+ return JSON.stringify(arguments);
+};
+
+module.exports = (fn, opts) => {
+ opts = Object.assign({
+ cacheKey: defaultCacheKey,
+ cache: new Map()
+ }, opts);
+
+ const memoized = function () {
+ const cache = cacheStore.get(memoized);
+ const key = opts.cacheKey.apply(null, arguments);
+
+ if (cache.has(key)) {
+ const c = cache.get(key);
+
+ if (typeof opts.maxAge !== 'number' || Date.now() < c.maxAge) {
+ return c.data;
+ }
+ }
+
+ const ret = fn.apply(null, arguments);
+
+ cache.set(key, {
+ data: ret,
+ maxAge: Date.now() + (opts.maxAge || 0)
+ });
+
+ return ret;
+ };
+
+ mimicFn(memoized, fn);
+
+ cacheStore.set(memoized, opts.cache);
+
+ return memoized;
+};
+
+module.exports.clear = fn => {
+ const cache = cacheStore.get(fn);
+
+ if (cache && typeof cache.clear === 'function') {
+ cache.clear();
+ }
+};
diff --git a/node_modules/nyc/node_modules/mem/license b/node_modules/nyc/node_modules/mem/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/mem/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/mem/package.json b/node_modules/nyc/node_modules/mem/package.json
new file mode 100644
index 000000000..99924d64a
--- /dev/null
+++ b/node_modules/nyc/node_modules/mem/package.json
@@ -0,0 +1,113 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "mem@^1.1.0",
+ "scope": null,
+ "escapedName": "mem",
+ "name": "mem",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale"
+ ]
+ ],
+ "_from": "mem@>=1.1.0 <2.0.0",
+ "_id": "mem@1.1.0",
+ "_inCache": true,
+ "_location": "/mem",
+ "_nodeVersion": "4.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/mem-1.1.0.tgz_1476900325889_0.8028518599458039"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "mem@^1.1.0",
+ "scope": null,
+ "escapedName": "mem",
+ "name": "mem",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/os-locale"
+ ],
+ "_resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "_shasum": "5edd52b485ca1d900fe64895505399a0dfa45f76",
+ "_shrinkwrap": null,
+ "_spec": "mem@^1.1.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/os-locale",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/mem/issues"
+ },
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^1.1.0",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "5edd52b485ca1d900fe64895505399a0dfa45f76",
+ "tarball": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "c12270441fab7f42fe53cf97edd53c60c4a8268f",
+ "homepage": "https://github.com/sindresorhus/mem#readme",
+ "keywords": [
+ "memoize",
+ "function",
+ "mem",
+ "memoization",
+ "cache",
+ "caching",
+ "optimize",
+ "performance",
+ "ttl",
+ "expire",
+ "promise"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "mem",
+ "optionalDependencies": {},
+ "readme": "# mem [![Build Status](https://travis-ci.org/sindresorhus/mem.svg?branch=master)](https://travis-ci.org/sindresorhus/mem)\n\n> [Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input\n\n\n## Install\n\n```\n$ npm install --save mem\n```\n\n\n## Usage\n\n```js\nconst mem = require('mem');\n\nlet i = 0;\nconst counter = () => ++i;\nconst memoized = mem(counter);\n\nmemoized('foo');\n//=> 1\n\n// cached as it's the same arguments\nmemoized('foo');\n//=> 1\n\n// not cached anymore as the arguments changed\nmemoized('bar');\n//=> 2\n\nmemoized('bar');\n//=> 2\n```\n\n##### Works fine with promise returning functions\n\n```js\nconst mem = require('mem');\n\nlet i = 0;\nconst counter = () => Promise.resolve(++i);\nconst memoized = mem(counter);\n\nmemoized().then(a => {\n\tconsole.log(a);\n\t//=> 1\n\n\tmemoized().then(b => {\n\t\t// the return value didn't increase as it's cached\n\t\tconsole.log(b);\n\t\t//=> 1\n\t});\n});\n```\n\n```js\nconst mem = require('mem');\nconst got = require('got');\nconst memGot = mem(got, {maxAge: 1000});\n\nmemGot('sindresorhus.com').then(() => {\n\t// this call is cached\n\tmemGot('sindresorhus.com').then(() => {\n\t\tsetTimeout(() => {\n\t\t\t// this call is not cached as the cache has expired\n\t\t\tmemGot('sindresorhus.com').then(() => {});\n\t\t}, 2000);\n\t});\n});\n```\n\n\n## API\n\n### mem(fn, [options])\n\n#### fn\n\nType: `Function`\n\nFunction to be memoized.\n\n#### options\n\n##### maxAge\n\nType: `number`<br>\nDefault: `Infinity`\n\nMilliseconds until the cache expires.\n\n##### cacheKey\n\nType: `Function`\n\nDetermines the cache key for storing the result based on the function arguments. By default, if there's only one argument and it's a [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive), it's used directly as a key, otherwise it's all the function arguments JSON stringified as an array.\n\nYou could for example change it to only cache on the first argument `x => JSON.stringify(x)`.\n\n##### cache\n\nType: `Object`<br>\nDefault: `new Map()`\n\nUse a different cache storage. Must implement the following methods: `.has(key)`, `.get(key)`, `.set(key, value)`, and optionally `.clear()`. You could for example use a `WeakMap` instead.\n\n### mem.clear(fn)\n\nClear all cached data of a memoized function.\n\n#### fn\n\nType: `Function`\n\nMemoized function.\n\n\n## Tips\n\n### Cache statistics\n\nIf you want to know how many times your cache had a hit or a miss, you can make use of [stats-map](https://github.com/SamVerschueren/stats-map) as a replacement for the default cache.\n\n#### Example\n\n```js\nconst mem = require('mem');\nconst StatsMap = require('stats-map');\nconst got = require('got');\n\nconst cache = new StatsMap();\nconst memGot = mem(got, {cache});\n\nmemGot('sindresorhus.com')\n\t.then(() => memGot('sindresorhus.com'))\n\t.then(() => memGot('sindresorhus.com'));\n\nconsole.log(cache.stats);\n//=> {hits: 2, misses: 1}\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/mem.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/mem/readme.md b/node_modules/nyc/node_modules/mem/readme.md
new file mode 100644
index 000000000..7ebab84f0
--- /dev/null
+++ b/node_modules/nyc/node_modules/mem/readme.md
@@ -0,0 +1,147 @@
+# mem [![Build Status](https://travis-ci.org/sindresorhus/mem.svg?branch=master)](https://travis-ci.org/sindresorhus/mem)
+
+> [Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input
+
+
+## Install
+
+```
+$ npm install --save mem
+```
+
+
+## Usage
+
+```js
+const mem = require('mem');
+
+let i = 0;
+const counter = () => ++i;
+const memoized = mem(counter);
+
+memoized('foo');
+//=> 1
+
+// cached as it's the same arguments
+memoized('foo');
+//=> 1
+
+// not cached anymore as the arguments changed
+memoized('bar');
+//=> 2
+
+memoized('bar');
+//=> 2
+```
+
+##### Works fine with promise returning functions
+
+```js
+const mem = require('mem');
+
+let i = 0;
+const counter = () => Promise.resolve(++i);
+const memoized = mem(counter);
+
+memoized().then(a => {
+ console.log(a);
+ //=> 1
+
+ memoized().then(b => {
+ // the return value didn't increase as it's cached
+ console.log(b);
+ //=> 1
+ });
+});
+```
+
+```js
+const mem = require('mem');
+const got = require('got');
+const memGot = mem(got, {maxAge: 1000});
+
+memGot('sindresorhus.com').then(() => {
+ // this call is cached
+ memGot('sindresorhus.com').then(() => {
+ setTimeout(() => {
+ // this call is not cached as the cache has expired
+ memGot('sindresorhus.com').then(() => {});
+ }, 2000);
+ });
+});
+```
+
+
+## API
+
+### mem(fn, [options])
+
+#### fn
+
+Type: `Function`
+
+Function to be memoized.
+
+#### options
+
+##### maxAge
+
+Type: `number`<br>
+Default: `Infinity`
+
+Milliseconds until the cache expires.
+
+##### cacheKey
+
+Type: `Function`
+
+Determines the cache key for storing the result based on the function arguments. By default, if there's only one argument and it's a [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive), it's used directly as a key, otherwise it's all the function arguments JSON stringified as an array.
+
+You could for example change it to only cache on the first argument `x => JSON.stringify(x)`.
+
+##### cache
+
+Type: `Object`<br>
+Default: `new Map()`
+
+Use a different cache storage. Must implement the following methods: `.has(key)`, `.get(key)`, `.set(key, value)`, and optionally `.clear()`. You could for example use a `WeakMap` instead.
+
+### mem.clear(fn)
+
+Clear all cached data of a memoized function.
+
+#### fn
+
+Type: `Function`
+
+Memoized function.
+
+
+## Tips
+
+### Cache statistics
+
+If you want to know how many times your cache had a hit or a miss, you can make use of [stats-map](https://github.com/SamVerschueren/stats-map) as a replacement for the default cache.
+
+#### Example
+
+```js
+const mem = require('mem');
+const StatsMap = require('stats-map');
+const got = require('got');
+
+const cache = new StatsMap();
+const memGot = mem(got, {cache});
+
+memGot('sindresorhus.com')
+ .then(() => memGot('sindresorhus.com'))
+ .then(() => memGot('sindresorhus.com'));
+
+console.log(cache.stats);
+//=> {hits: 2, misses: 1}
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/merge-source-map/index.js b/node_modules/nyc/node_modules/merge-source-map/index.js
index d15871c1d..ef208d99c 100644
--- a/node_modules/nyc/node_modules/merge-source-map/index.js
+++ b/node_modules/nyc/node_modules/merge-source-map/index.js
@@ -1,6 +1,6 @@
-var sourceMap = require('source-map'),
- SourceMapConsumer = sourceMap.SourceMapConsumer,
- SourceMapGenerator = sourceMap.SourceMapGenerator
+var sourceMap = require('source-map')
+var SourceMapConsumer = sourceMap.SourceMapConsumer
+var SourceMapGenerator = sourceMap.SourceMapGenerator
module.exports = merge
@@ -8,8 +8,8 @@ module.exports = merge
* Merge old source map and new source map and return merged.
* If old or new source map value is falsy, return another one as it is.
*
- * @param {object|undefined} oldMap old source map object
- * @param {object|undefined} newmap new source map object
+ * @param {object|string} [oldMap] old source map object
+ * @param {object|string} [newmap] new source map object
* @return {object|undefined} merged source map object, or undefined when both old and new source map are undefined
*/
function merge(oldMap, newMap) {
@@ -19,9 +19,9 @@ function merge(oldMap, newMap) {
if (!newMap)
return oldMap
- var oldMapConsumer = new SourceMapConsumer(oldMap),
- newMapConsumer = new SourceMapConsumer(newMap),
- mergedMapGenerator = new SourceMapGenerator()
+ var oldMapConsumer = new SourceMapConsumer(oldMap)
+ var newMapConsumer = new SourceMapConsumer(newMap)
+ var mergedMapGenerator = new SourceMapGenerator()
// iterate on new map and overwrite original position of new map with one of old map
newMapConsumer.eachMapping(function(m) {
@@ -44,14 +44,17 @@ function merge(oldMap, newMap) {
line: m.generatedLine,
column: m.generatedColumn
},
- source: m.source,
- name: m.name
+ source: origPosInOldMap.source,
+ name: origPosInOldMap.name
})
})
var mergedMap = JSON.parse(mergedMapGenerator.toString())
- mergedMap.sources = oldMap.sources
- mergedMap.sourcesContent = oldMap.sourcesContent
+
+ mergedMap.sourcesContent = mergedMap.sources.map(function (source) {
+ return oldMapConsumer.sourceContentFor(source)
+ })
+
mergedMap.sourceRoot = oldMap.sourceRoot
return mergedMap
diff --git a/node_modules/nyc/node_modules/merge-source-map/package.json b/node_modules/nyc/node_modules/merge-source-map/package.json
index 053fd3ce8..03aea8912 100644
--- a/node_modules/nyc/node_modules/merge-source-map/package.json
+++ b/node_modules/nyc/node_modules/merge-source-map/package.json
@@ -10,23 +10,23 @@
"spec": ">=1.0.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "merge-source-map@>=1.0.2 <2.0.0",
- "_id": "merge-source-map@1.0.3",
+ "_id": "merge-source-map@1.0.4",
"_inCache": true,
"_location": "/merge-source-map",
- "_nodeVersion": "6.6.0",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/merge-source-map-1.0.3.tgz_1474597085545_0.4231353357899934"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/merge-source-map-1.0.4.tgz_1497882010380_0.6228170243557543"
},
"_npmUser": {
"name": "keik",
"email": "k4t0.kei@gmail.com"
},
- "_npmVersion": "3.10.3",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "merge-source-map@^1.0.2",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz",
- "_shasum": "da1415f2722a5119db07b14c4f973410863a2abf",
+ "_resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
+ "_shasum": "a5de46538dae84d4114cc5ea02b4772a6346701f",
"_shrinkwrap": null,
"_spec": "merge-source-map@^1.0.2",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "keik",
"email": "k4t0.kei@gmail.com"
@@ -53,28 +53,30 @@
"url": "https://github.com/keik/merge-source-map/issues"
},
"dependencies": {
- "source-map": "^0.5.3"
+ "source-map": "^0.5.6"
},
"description": "Merge old source map and new source map in multi-transform flow",
"devDependencies": {
- "babel-core": "^6.14.0",
- "babel-preset-es2015": "^6.14.0",
- "coffee-script": "^1.10.0",
- "convert-source-map": "^1.3.0",
+ "babel-core": "^6.25.0",
+ "babel-plugin-syntax-object-rest-spread": "^6.13.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "coffee-script": "^1.12.6",
+ "convert-source-map": "^1.5.0",
"escodegen": "^1.8.1",
- "eslint": "^3.5.0",
- "esprima": "^3.0.0",
- "estraverse": "^4.1.1",
- "nyc": "^8.3.0",
- "tape": "^4.5.1"
+ "eslint": "^3.19.0",
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "nyc": "^8.4.0",
+ "tape": "^4.6.3"
},
"directories": {},
"dist": {
- "shasum": "da1415f2722a5119db07b14c4f973410863a2abf",
- "tarball": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.3.tgz"
+ "shasum": "a5de46538dae84d4114cc5ea02b4772a6346701f",
+ "tarball": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz"
},
"files": [],
- "gitHead": "2afecac1b701165ff7c5383a2aca08fcdc397ed6",
+ "gitHead": "81a1d2a4c2ecc6b0c34a54159df7070c51c2e154",
"homepage": "https://github.com/keik/merge-source-map#readme",
"keywords": [
"sourcemap",
@@ -101,5 +103,5 @@
"test": "nyc tape test/*.js",
"version": "npm run lint && npm run test"
},
- "version": "1.0.3"
+ "version": "1.0.4"
}
diff --git a/node_modules/nyc/node_modules/micromatch/package.json b/node_modules/nyc/node_modules/micromatch/package.json
index fe6a7127c..f77d71cbc 100644
--- a/node_modules/nyc/node_modules/micromatch/package.json
+++ b/node_modules/nyc/node_modules/micromatch/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.3.11 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "micromatch@>=2.3.11 <3.0.0",
@@ -45,7 +45,7 @@
"_shasum": "86677c97d1720b363431d04d0d15293bd38c1565",
"_shrinkwrap": null,
"_spec": "micromatch@^2.3.11",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/mimic-fn/index.js b/node_modules/nyc/node_modules/mimic-fn/index.js
new file mode 100644
index 000000000..9bf176367
--- /dev/null
+++ b/node_modules/nyc/node_modules/mimic-fn/index.js
@@ -0,0 +1,7 @@
+'use strict';
+module.exports = (to, from) => {
+ // TODO: use `Reflect.ownKeys()` when targeting Node.js 6
+ for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) {
+ Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
+ }
+};
diff --git a/node_modules/nyc/node_modules/mimic-fn/license b/node_modules/nyc/node_modules/mimic-fn/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/mimic-fn/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/mimic-fn/package.json b/node_modules/nyc/node_modules/mimic-fn/package.json
new file mode 100644
index 000000000..0b235f7c4
--- /dev/null
+++ b/node_modules/nyc/node_modules/mimic-fn/package.json
@@ -0,0 +1,112 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "mimic-fn@^1.0.0",
+ "scope": null,
+ "escapedName": "mimic-fn",
+ "name": "mimic-fn",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/mem"
+ ]
+ ],
+ "_from": "mimic-fn@>=1.0.0 <2.0.0",
+ "_id": "mimic-fn@1.1.0",
+ "_inCache": true,
+ "_location": "/mimic-fn",
+ "_nodeVersion": "4.6.1",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/mimic-fn-1.1.0.tgz_1477992909009_0.6083487698342651"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "mimic-fn@^1.0.0",
+ "scope": null,
+ "escapedName": "mimic-fn",
+ "name": "mimic-fn",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/mem"
+ ],
+ "_resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
+ "_shasum": "e667783d92e89dbd342818b5230b9d62a672ad18",
+ "_shrinkwrap": null,
+ "_spec": "mimic-fn@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/mem",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/mimic-fn/issues"
+ },
+ "dependencies": {},
+ "description": "Make a function mimic another one",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "e667783d92e89dbd342818b5230b9d62a672ad18",
+ "tarball": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "3703ef8142ce6b7170297e58fee1a14799b79975",
+ "homepage": "https://github.com/sindresorhus/mimic-fn#readme",
+ "keywords": [
+ "function",
+ "mimic",
+ "imitate",
+ "rename",
+ "copy",
+ "inherit",
+ "properties",
+ "name",
+ "func",
+ "fn",
+ "set",
+ "infer",
+ "change"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "mimic-fn",
+ "optionalDependencies": {},
+ "readme": "# mimic-fn [![Build Status](https://travis-ci.org/sindresorhus/mimic-fn.svg?branch=master)](https://travis-ci.org/sindresorhus/mimic-fn)\n\n> Make a function mimic another one\n\nUseful when you wrap a function in another function and like to preserve the original name and other properties.\n\n\n## Install\n\n```\n$ npm install --save mimic-fn\n```\n\n\n## Usage\n\n```js\nconst mimicFn = require('mimic-fn');\n\nfunction foo() {}\nfoo.unicorn = '🦄';\n\nfunction wrapper() {\n\treturn foo() {};\n}\n\nconsole.log(wrapper.name);\n//=> 'wrapper'\n\nmimicFn(wrapper, foo);\n\nconsole.log(wrapper.name);\n//=> 'foo'\n\nconsole.log(wrapper.unicorn);\n//=> '🦄'\n```\n\n\n## API\n\nIt will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.\n\n### mimicFn(to, from)\n\n#### to\n\nType: `Function`\n\nMimicking function.\n\n#### from\n\nType: `Function`\n\nFunction to mimic.\n\n\n## Related\n\n- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/mimic-fn.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/mimic-fn/readme.md b/node_modules/nyc/node_modules/mimic-fn/readme.md
new file mode 100644
index 000000000..672c79eb3
--- /dev/null
+++ b/node_modules/nyc/node_modules/mimic-fn/readme.md
@@ -0,0 +1,66 @@
+# mimic-fn [![Build Status](https://travis-ci.org/sindresorhus/mimic-fn.svg?branch=master)](https://travis-ci.org/sindresorhus/mimic-fn)
+
+> Make a function mimic another one
+
+Useful when you wrap a function in another function and like to preserve the original name and other properties.
+
+
+## Install
+
+```
+$ npm install --save mimic-fn
+```
+
+
+## Usage
+
+```js
+const mimicFn = require('mimic-fn');
+
+function foo() {}
+foo.unicorn = '🦄';
+
+function wrapper() {
+ return foo() {};
+}
+
+console.log(wrapper.name);
+//=> 'wrapper'
+
+mimicFn(wrapper, foo);
+
+console.log(wrapper.name);
+//=> 'foo'
+
+console.log(wrapper.unicorn);
+//=> '🦄'
+```
+
+
+## API
+
+It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
+
+### mimicFn(to, from)
+
+#### to
+
+Type: `Function`
+
+Mimicking function.
+
+#### from
+
+Type: `Function`
+
+Function to mimic.
+
+
+## Related
+
+- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/minimatch/package.json b/node_modules/nyc/node_modules/minimatch/package.json
index 7df797ef0..c7202e204 100644
--- a/node_modules/nyc/node_modules/minimatch/package.json
+++ b/node_modules/nyc/node_modules/minimatch/package.json
@@ -2,49 +2,49 @@
"_args": [
[
{
- "raw": "minimatch@^3.0.2",
+ "raw": "minimatch@^3.0.4",
"scope": null,
"escapedName": "minimatch",
"name": "minimatch",
- "rawSpec": "^3.0.2",
- "spec": ">=3.0.2 <4.0.0",
+ "rawSpec": "^3.0.4",
+ "spec": ">=3.0.4 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
- "_from": "minimatch@>=3.0.2 <4.0.0",
- "_id": "minimatch@3.0.3",
+ "_from": "minimatch@>=3.0.4 <4.0.0",
+ "_id": "minimatch@3.0.4",
"_inCache": true,
"_location": "/minimatch",
- "_nodeVersion": "4.4.4",
+ "_nodeVersion": "8.0.0-pre",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/minimatch-3.0.3.tgz_1470678322731_0.1892083385027945"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/minimatch-3.0.4.tgz_1494180669024_0.22628829116001725"
},
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_npmVersion": "3.10.6",
+ "_npmVersion": "5.0.0-beta.43",
"_phantomChildren": {},
"_requested": {
- "raw": "minimatch@^3.0.2",
+ "raw": "minimatch@^3.0.4",
"scope": null,
"escapedName": "minimatch",
"name": "minimatch",
- "rawSpec": "^3.0.2",
- "spec": ">=3.0.2 <4.0.0",
+ "rawSpec": "^3.0.4",
+ "spec": ">=3.0.4 <4.0.0",
"type": "range"
},
"_requiredBy": [
"/glob"
],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "_shasum": "2a4e4090b96b2db06a9d7df01055a62a77c9b774",
+ "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
"_shrinkwrap": null,
- "_spec": "minimatch@^3.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_spec": "minimatch@^3.0.4",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -54,17 +54,17 @@
"url": "https://github.com/isaacs/minimatch/issues"
},
"dependencies": {
- "brace-expansion": "^1.0.0"
+ "brace-expansion": "^1.1.7"
},
"description": "a glob matcher in javascript",
"devDependencies": {
- "standard": "^3.7.2",
- "tap": "^5.6.0"
+ "tap": "^10.3.2"
},
"directories": {},
"dist": {
- "shasum": "2a4e4090b96b2db06a9d7df01055a62a77c9b774",
- "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
+ "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
},
"engines": {
"node": "*"
@@ -72,7 +72,7 @@
"files": [
"minimatch.js"
],
- "gitHead": "eed89491bd4a4e6bc463aac0dfb5c29ef0d1dc13",
+ "gitHead": "e46989a323d5f0aa4781eff5e2e6e7aafa223321",
"homepage": "https://github.com/isaacs/minimatch#readme",
"license": "ISC",
"main": "minimatch.js",
@@ -91,8 +91,10 @@
"url": "git://github.com/isaacs/minimatch.git"
},
"scripts": {
- "posttest": "standard minimatch.js test/*.js",
- "test": "tap test/*.js"
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --cov"
},
- "version": "3.0.3"
+ "version": "3.0.4"
}
diff --git a/node_modules/nyc/node_modules/minimist/package.json b/node_modules/nyc/node_modules/minimist/package.json
index 1d4a3aa80..6c006def3 100644
--- a/node_modules/nyc/node_modules/minimist/package.json
+++ b/node_modules/nyc/node_modules/minimist/package.json
@@ -10,7 +10,7 @@
"spec": "0.0.8",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/mkdirp"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/mkdirp"
]
],
"_from": "minimist@0.0.8",
@@ -40,7 +40,7 @@
"_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d",
"_shrinkwrap": null,
"_spec": "minimist@0.0.8",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/mkdirp",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/mkdirp",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/mkdirp/package.json b/node_modules/nyc/node_modules/mkdirp/package.json
index 5ec5ccc2f..1ebb30895 100644
--- a/node_modules/nyc/node_modules/mkdirp/package.json
+++ b/node_modules/nyc/node_modules/mkdirp/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.5.0 <0.6.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "mkdirp@>=0.5.0 <0.6.0",
@@ -45,7 +45,7 @@
"_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903",
"_shrinkwrap": null,
"_spec": "mkdirp@^0.5.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/ms/index.js b/node_modules/nyc/node_modules/ms/index.js
index e904c7054..6a522b16b 100644
--- a/node_modules/nyc/node_modules/ms/index.js
+++ b/node_modules/nyc/node_modules/ms/index.js
@@ -2,11 +2,11 @@
* Helpers.
*/
-var s = 1000
-var m = s * 60
-var h = m * 60
-var d = h * 24
-var y = d * 365.25
+var s = 1000;
+var m = s * 60;
+var h = m * 60;
+var d = h * 24;
+var y = d * 365.25;
/**
* Parse or format the given `val`.
@@ -22,18 +22,19 @@ var y = d * 365.25
* @api public
*/
-module.exports = function (val, options) {
- options = options || {}
- var type = typeof val
+module.exports = function(val, options) {
+ options = options || {};
+ var type = typeof val;
if (type === 'string' && val.length > 0) {
- return parse(val)
+ return parse(val);
} else if (type === 'number' && isNaN(val) === false) {
- return options.long ?
- fmtLong(val) :
- fmtShort(val)
+ return options.long ? fmtLong(val) : fmtShort(val);
}
- throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val))
-}
+ throw new Error(
+ 'val is not a non-empty string or a valid number. val=' +
+ JSON.stringify(val)
+ );
+};
/**
* Parse the given `str` and return milliseconds.
@@ -44,53 +45,55 @@ module.exports = function (val, options) {
*/
function parse(str) {
- str = String(str)
- if (str.length > 10000) {
- return
+ str = String(str);
+ if (str.length > 100) {
+ return;
}
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str)
+ var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
+ str
+ );
if (!match) {
- return
+ return;
}
- var n = parseFloat(match[1])
- var type = (match[2] || 'ms').toLowerCase()
+ var n = parseFloat(match[1]);
+ var type = (match[2] || 'ms').toLowerCase();
switch (type) {
case 'years':
case 'year':
case 'yrs':
case 'yr':
case 'y':
- return n * y
+ return n * y;
case 'days':
case 'day':
case 'd':
- return n * d
+ return n * d;
case 'hours':
case 'hour':
case 'hrs':
case 'hr':
case 'h':
- return n * h
+ return n * h;
case 'minutes':
case 'minute':
case 'mins':
case 'min':
case 'm':
- return n * m
+ return n * m;
case 'seconds':
case 'second':
case 'secs':
case 'sec':
case 's':
- return n * s
+ return n * s;
case 'milliseconds':
case 'millisecond':
case 'msecs':
case 'msec':
case 'ms':
- return n
+ return n;
default:
- return undefined
+ return undefined;
}
}
@@ -104,18 +107,18 @@ function parse(str) {
function fmtShort(ms) {
if (ms >= d) {
- return Math.round(ms / d) + 'd'
+ return Math.round(ms / d) + 'd';
}
if (ms >= h) {
- return Math.round(ms / h) + 'h'
+ return Math.round(ms / h) + 'h';
}
if (ms >= m) {
- return Math.round(ms / m) + 'm'
+ return Math.round(ms / m) + 'm';
}
if (ms >= s) {
- return Math.round(ms / s) + 's'
+ return Math.round(ms / s) + 's';
}
- return ms + 'ms'
+ return ms + 'ms';
}
/**
@@ -131,7 +134,7 @@ function fmtLong(ms) {
plural(ms, h, 'hour') ||
plural(ms, m, 'minute') ||
plural(ms, s, 'second') ||
- ms + ' ms'
+ ms + ' ms';
}
/**
@@ -140,10 +143,10 @@ function fmtLong(ms) {
function plural(ms, n, name) {
if (ms < n) {
- return
+ return;
}
if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name
+ return Math.floor(ms / n) + ' ' + name;
}
- return Math.ceil(ms / n) + ' ' + name + 's'
+ return Math.ceil(ms / n) + ' ' + name + 's';
}
diff --git a/node_modules/nyc/node_modules/ms/package.json b/node_modules/nyc/node_modules/ms/package.json
index 3dbbdbdd9..d86cd1d6c 100644
--- a/node_modules/nyc/node_modules/ms/package.json
+++ b/node_modules/nyc/node_modules/ms/package.json
@@ -2,76 +2,86 @@
"_args": [
[
{
- "raw": "ms@0.7.3",
+ "raw": "ms@2.0.0",
"scope": null,
"escapedName": "ms",
"name": "ms",
- "rawSpec": "0.7.3",
- "spec": "0.7.3",
+ "rawSpec": "2.0.0",
+ "spec": "2.0.0",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/debug"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/debug"
]
],
- "_from": "ms@0.7.3",
- "_id": "ms@0.7.3",
+ "_from": "ms@2.0.0",
+ "_id": "ms@2.0.0",
"_inCache": true,
"_location": "/ms",
- "_nodeVersion": "7.6.0",
+ "_nodeVersion": "7.8.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/ms-0.7.3.tgz_1489010366101_0.14404030703008175"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/ms-2.0.0.tgz_1494937565215_0.34005374647676945"
},
"_npmUser": {
"name": "leo",
"email": "leo@zeit.co"
},
- "_npmVersion": "4.1.2",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "raw": "ms@0.7.3",
+ "raw": "ms@2.0.0",
"scope": null,
"escapedName": "ms",
"name": "ms",
- "rawSpec": "0.7.3",
- "spec": "0.7.3",
+ "rawSpec": "2.0.0",
+ "spec": "2.0.0",
"type": "version"
},
"_requiredBy": [
"/debug"
],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "_shasum": "708155a5e44e33f5fd0fc53e81d0d40a91be1fff",
+ "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
"_shrinkwrap": null,
- "_spec": "ms@0.7.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/debug",
+ "_spec": "ms@2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/debug",
"bugs": {
"url": "https://github.com/zeit/ms/issues"
},
- "component": {
- "scripts": {
- "ms/index.js": "index.js"
- }
- },
"dependencies": {},
"description": "Tiny milisecond conversion utility",
"devDependencies": {
+ "eslint": "3.19.0",
"expect.js": "0.3.1",
- "mocha": "3.0.2",
- "serve": "5.0.1",
- "xo": "0.17.0"
+ "husky": "0.13.3",
+ "lint-staged": "3.4.1",
+ "mocha": "3.4.1"
},
"directories": {},
"dist": {
- "shasum": "708155a5e44e33f5fd0fc53e81d0d40a91be1fff",
- "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz"
+ "shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
+ "tarball": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ },
+ "eslintConfig": {
+ "extends": "eslint:recommended",
+ "env": {
+ "node": true,
+ "es6": true
+ }
},
"files": [
"index.js"
],
- "gitHead": "2006a7706041443fcf1f899b5752677bd7ae01a8",
+ "gitHead": "9b88d1568a52ec9bb67ecc8d2aa224fa38fd41f4",
"homepage": "https://github.com/zeit/ms#readme",
"license": "MIT",
+ "lint-staged": {
+ "*.js": [
+ "npm run lint",
+ "prettier --single-quote --write",
+ "git add"
+ ]
+ },
"main": "./index",
"maintainers": [
{
@@ -85,25 +95,16 @@
],
"name": "ms",
"optionalDependencies": {},
- "readme": "# ms\n\n[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)\n[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\n[![Slack Channel](https://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)\n\nUse this package to easily convert various time formats to milliseconds.\n\n## Examples\n\n```js\nms('2 days') // 172800000\nms('1d') // 86400000\nms('10h') // 36000000\nms('2.5 hrs') // 9000000\nms('2h') // 7200000\nms('1m') // 60000\nms('5s') // 5000\nms('1y') // 31557600000\nms('100') // 100\n```\n\n### Convert from milliseconds\n\n```js\nms(60000) // \"1m\"\nms(2 * 60000) // \"2m\"\nms(ms('10 hours')) // \"10h\"\n```\n\n### Time format written-out\n\n```js\nms(60000, { long: true }) // \"1 minute\"\nms(2 * 60000, { long: true }) // \"2 minutes\"\nms(ms('10 hours'), { long: true }) // \"10 hours\"\n```\n\n## Features\n\n- Works both in [node](https://nodejs.org) and in the browser.\n- If a number is supplied to `ms`, a string with a unit is returned.\n- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).\n- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.\n\n## Caught a bug?\n\n1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device\n2. Link the package to the global module directory: `npm link`\n3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!\n\nAs always, you can run the tests using: `npm test`\n",
+ "readme": "# ms\n\n[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)\n[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)\n\nUse this package to easily convert various time formats to milliseconds.\n\n## Examples\n\n```js\nms('2 days') // 172800000\nms('1d') // 86400000\nms('10h') // 36000000\nms('2.5 hrs') // 9000000\nms('2h') // 7200000\nms('1m') // 60000\nms('5s') // 5000\nms('1y') // 31557600000\nms('100') // 100\n```\n\n### Convert from milliseconds\n\n```js\nms(60000) // \"1m\"\nms(2 * 60000) // \"2m\"\nms(ms('10 hours')) // \"10h\"\n```\n\n### Time format written-out\n\n```js\nms(60000, { long: true }) // \"1 minute\"\nms(2 * 60000, { long: true }) // \"2 minutes\"\nms(ms('10 hours'), { long: true }) // \"10 hours\"\n```\n\n## Features\n\n- Works both in [node](https://nodejs.org) and in the browser.\n- If a number is supplied to `ms`, a string with a unit is returned.\n- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).\n- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.\n\n## Caught a bug?\n\n1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device\n2. Link the package to the global module directory: `npm link`\n3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!\n\nAs always, you can run the tests using: `npm test`\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
"url": "git+https://github.com/zeit/ms.git"
},
"scripts": {
- "test": "xo && mocha test/index.js",
- "test-browser": "serve ./test"
+ "lint": "eslint lib/* bin/*",
+ "precommit": "lint-staged",
+ "test": "mocha tests.js"
},
- "version": "0.7.3",
- "xo": {
- "space": true,
- "semicolon": false,
- "envs": [
- "mocha"
- ],
- "rules": {
- "complexity": 0
- }
- }
+ "version": "2.0.0"
}
diff --git a/node_modules/nyc/node_modules/ms/readme.md b/node_modules/nyc/node_modules/ms/readme.md
index 5b475707d..84a9974cc 100644
--- a/node_modules/nyc/node_modules/ms/readme.md
+++ b/node_modules/nyc/node_modules/ms/readme.md
@@ -1,8 +1,7 @@
# ms
[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
-[![Slack Channel](https://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
+[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
Use this package to easily convert various time formats to milliseconds.
diff --git a/node_modules/nyc/node_modules/normalize-package-data/lib/fixer.js b/node_modules/nyc/node_modules/normalize-package-data/lib/fixer.js
index 1409c69c9..f07011967 100644
--- a/node_modules/nyc/node_modules/normalize-package-data/lib/fixer.js
+++ b/node_modules/nyc/node_modules/normalize-package-data/lib/fixer.js
@@ -5,7 +5,7 @@ var isBuiltinModule = require("is-builtin-module")
var depTypes = ["dependencies","devDependencies","optionalDependencies"]
var extractDescription = require("./extract_description")
var url = require("url")
-var typos = require("./typos")
+var typos = require("./typos.json")
var fixer = module.exports = {
// default warning function
@@ -289,7 +289,6 @@ var fixer = module.exports = {
return delete data.homepage
}
if(!url.parse(data.homepage).protocol) {
- this.warn("missingProtocolHomepage")
data.homepage = "http://" + data.homepage
}
}
diff --git a/node_modules/nyc/node_modules/normalize-package-data/lib/warning_messages.json b/node_modules/nyc/node_modules/normalize-package-data/lib/warning_messages.json
index 5fd19f322..4890f506e 100644
--- a/node_modules/nyc/node_modules/normalize-package-data/lib/warning_messages.json
+++ b/node_modules/nyc/node_modules/normalize-package-data/lib/warning_messages.json
@@ -26,6 +26,5 @@
,"emptyNormalizedBugs": "Normalized value of bugs field is an empty object. Deleted."
,"nonUrlHomepage": "homepage field must be a string url. Deleted."
,"invalidLicense": "license should be a valid SPDX license expression"
- ,"missingProtocolHomepage": "homepage field must start with a protocol."
,"typo": "%s should probably be %s."
}
diff --git a/node_modules/nyc/node_modules/normalize-package-data/package.json b/node_modules/nyc/node_modules/normalize-package-data/package.json
index d3e68d914..7b43daed6 100644
--- a/node_modules/nyc/node_modules/normalize-package-data/package.json
+++ b/node_modules/nyc/node_modules/normalize-package-data/package.json
@@ -10,23 +10,23 @@
"spec": ">=2.3.2 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/read-pkg"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg"
]
],
"_from": "normalize-package-data@>=2.3.2 <3.0.0",
- "_id": "normalize-package-data@2.3.8",
+ "_id": "normalize-package-data@2.4.0",
"_inCache": true,
"_location": "/normalize-package-data",
- "_nodeVersion": "4.6.1",
+ "_nodeVersion": "8.1.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/normalize-package-data-2.3.8.tgz_1492736191668_0.44064528262242675"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/normalize-package-data-2.4.0.tgz_1498509665767_0.48049415182322264"
},
"_npmUser": {
"name": "iarna",
"email": "me@re-becca.org"
},
- "_npmVersion": "4.5.0",
+ "_npmVersion": "5.0.4",
"_phantomChildren": {},
"_requested": {
"raw": "normalize-package-data@^2.3.2",
@@ -38,13 +38,14 @@
"type": "range"
},
"_requiredBy": [
- "/read-pkg"
+ "/read-pkg",
+ "/yargs/read-pkg"
],
- "_resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz",
- "_shasum": "d819eda2a9dedbd1ffa563ea4071d936782295bb",
+ "_resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "_shasum": "12f95a307d58352075a04907b84ac8be98ac012f",
"_shrinkwrap": null,
"_spec": "normalize-package-data@^2.3.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/read-pkg",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg",
"author": {
"name": "Meryn Stol",
"email": "merynstol@gmail.com"
@@ -80,15 +81,16 @@
},
"directories": {},
"dist": {
- "shasum": "d819eda2a9dedbd1ffa563ea4071d936782295bb",
- "tarball": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz"
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "shasum": "12f95a307d58352075a04907b84ac8be98ac012f",
+ "tarball": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz"
},
"files": [
"lib/*.js",
"lib/*.json",
"AUTHORS"
],
- "gitHead": "6ba494919aa5f8aa7bb2881a136eefbd04b9d141",
+ "gitHead": "9948ecf3d97cffcaab8f914522a0f3953edac6e4",
"homepage": "https://github.com/npm/normalize-package-data#readme",
"license": "BSD-2-Clause",
"main": "lib/normalize.js",
@@ -125,5 +127,5 @@
"scripts": {
"test": "tap test/*.js"
},
- "version": "2.3.8"
+ "version": "2.4.0"
}
diff --git a/node_modules/nyc/node_modules/normalize-path/package.json b/node_modules/nyc/node_modules/normalize-path/package.json
index c07f88711..4395cfcce 100644
--- a/node_modules/nyc/node_modules/normalize-path/package.json
+++ b/node_modules/nyc/node_modules/normalize-path/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.1 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "normalize-path@>=2.0.1 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9",
"_shrinkwrap": null,
"_spec": "normalize-path@^2.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/npm-run-path/index.js b/node_modules/nyc/node_modules/npm-run-path/index.js
new file mode 100644
index 000000000..56f31e471
--- /dev/null
+++ b/node_modules/nyc/node_modules/npm-run-path/index.js
@@ -0,0 +1,39 @@
+'use strict';
+const path = require('path');
+const pathKey = require('path-key');
+
+module.exports = opts => {
+ opts = Object.assign({
+ cwd: process.cwd(),
+ path: process.env[pathKey()]
+ }, opts);
+
+ let prev;
+ let pth = path.resolve(opts.cwd);
+ const ret = [];
+
+ while (prev !== pth) {
+ ret.push(path.join(pth, 'node_modules/.bin'));
+ prev = pth;
+ pth = path.resolve(pth, '..');
+ }
+
+ // ensure the running `node` binary is used
+ ret.push(path.dirname(process.execPath));
+
+ return ret.concat(opts.path).join(path.delimiter);
+};
+
+module.exports.env = opts => {
+ opts = Object.assign({
+ env: process.env
+ }, opts);
+
+ const env = Object.assign({}, opts.env);
+ const path = pathKey({env});
+
+ opts.path = env[path];
+ env[path] = module.exports(opts);
+
+ return env;
+};
diff --git a/node_modules/nyc/node_modules/npm-run-path/license b/node_modules/nyc/node_modules/npm-run-path/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/npm-run-path/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/npm-run-path/package.json b/node_modules/nyc/node_modules/npm-run-path/package.json
new file mode 100644
index 000000000..01aa12589
--- /dev/null
+++ b/node_modules/nyc/node_modules/npm-run-path/package.json
@@ -0,0 +1,113 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "npm-run-path@^2.0.0",
+ "scope": null,
+ "escapedName": "npm-run-path",
+ "name": "npm-run-path",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/execa"
+ ]
+ ],
+ "_from": "npm-run-path@>=2.0.0 <3.0.0",
+ "_id": "npm-run-path@2.0.2",
+ "_inCache": true,
+ "_location": "/npm-run-path",
+ "_nodeVersion": "6.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/npm-run-path-2.0.2.tgz_1475136638037_0.6285470693837851"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.10.3",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "npm-run-path@^2.0.0",
+ "scope": null,
+ "escapedName": "npm-run-path",
+ "name": "npm-run-path",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
+ "_shrinkwrap": null,
+ "_spec": "npm-run-path@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/npm-run-path/issues"
+ },
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "description": "Get your PATH prepended with locally installed binaries",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
+ "tarball": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "4d956312d5da324c4eff435af7d80797f04f09e1",
+ "homepage": "https://github.com/sindresorhus/npm-run-path#readme",
+ "keywords": [
+ "npm",
+ "run",
+ "path",
+ "package",
+ "bin",
+ "binary",
+ "binaries",
+ "script",
+ "cli",
+ "command-line",
+ "execute",
+ "executable"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "npm-run-path",
+ "optionalDependencies": {},
+ "readme": "# npm-run-path [![Build Status](https://travis-ci.org/sindresorhus/npm-run-path.svg?branch=master)](https://travis-ci.org/sindresorhus/npm-run-path)\n\n> Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries\n\nIn [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm.\n\n\n## Install\n\n```\n$ npm install --save npm-run-path\n```\n\n\n## Usage\n\n```js\nconst childProcess = require('child_process');\nconst npmRunPath = require('npm-run-path');\n\nconsole.log(process.env.PATH);\n//=> '/usr/local/bin'\n\nconsole.log(npmRunPath());\n//=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin'\n\n// `foo` is a locally installed binary\nchildProcess.execFileSync('foo', {\n\tenv: npmRunPath.env()\n});\n```\n\n\n## API\n\n### npmRunPath([options])\n\n#### options\n\n##### cwd\n\nType: `string`<br>\nDefault: `process.cwd()`\n\nWorking directory.\n\n##### path\n\nType: `string`<br>\nDefault: [`PATH`](https://github.com/sindresorhus/path-key)\n\nPATH to be appended.<br>\nSet it to an empty string to exclude the default PATH.\n\n### npmRunPath.env([options])\n\n#### options\n\n##### cwd\n\nType: `string`<br>\nDefault: `process.cwd()`\n\nWorking directory.\n\n##### env\n\nType: `Object`\n\nAccepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options.\n\n\n## Related\n\n- [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module\n- [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/npm-run-path.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.2",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/npm-run-path/readme.md b/node_modules/nyc/node_modules/npm-run-path/readme.md
new file mode 100644
index 000000000..4ff4722a6
--- /dev/null
+++ b/node_modules/nyc/node_modules/npm-run-path/readme.md
@@ -0,0 +1,81 @@
+# npm-run-path [![Build Status](https://travis-ci.org/sindresorhus/npm-run-path.svg?branch=master)](https://travis-ci.org/sindresorhus/npm-run-path)
+
+> Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries
+
+In [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm.
+
+
+## Install
+
+```
+$ npm install --save npm-run-path
+```
+
+
+## Usage
+
+```js
+const childProcess = require('child_process');
+const npmRunPath = require('npm-run-path');
+
+console.log(process.env.PATH);
+//=> '/usr/local/bin'
+
+console.log(npmRunPath());
+//=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin'
+
+// `foo` is a locally installed binary
+childProcess.execFileSync('foo', {
+ env: npmRunPath.env()
+});
+```
+
+
+## API
+
+### npmRunPath([options])
+
+#### options
+
+##### cwd
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Working directory.
+
+##### path
+
+Type: `string`<br>
+Default: [`PATH`](https://github.com/sindresorhus/path-key)
+
+PATH to be appended.<br>
+Set it to an empty string to exclude the default PATH.
+
+### npmRunPath.env([options])
+
+#### options
+
+##### cwd
+
+Type: `string`<br>
+Default: `process.cwd()`
+
+Working directory.
+
+##### env
+
+Type: `Object`
+
+Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options.
+
+
+## Related
+
+- [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module
+- [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/number-is-nan/package.json b/node_modules/nyc/node_modules/number-is-nan/package.json
index f302a38bf..2f99347f4 100644
--- a/node_modules/nyc/node_modules/number-is-nan/package.json
+++ b/node_modules/nyc/node_modules/number-is-nan/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/is-finite"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/is-finite"
]
],
"_from": "number-is-nan@>=1.0.0 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "097b602b53422a522c1afb8790318336941a011d",
"_shrinkwrap": null,
"_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/is-finite",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/is-finite",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/object-assign/package.json b/node_modules/nyc/node_modules/object-assign/package.json
index 83ccfef63..61b9c16df 100644
--- a/node_modules/nyc/node_modules/object-assign/package.json
+++ b/node_modules/nyc/node_modules/object-assign/package.json
@@ -10,7 +10,7 @@
"spec": ">=4.1.0 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/test-exclude"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude"
]
],
"_from": "object-assign@>=4.1.0 <5.0.0",
@@ -38,13 +38,14 @@
"type": "range"
},
"_requiredBy": [
+ "/get-stream",
"/test-exclude"
],
"_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863",
"_shrinkwrap": null,
"_spec": "object-assign@^4.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/test-exclude",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/object.omit/package.json b/node_modules/nyc/node_modules/object.omit/package.json
index 2932b3c22..3709a70ad 100644
--- a/node_modules/nyc/node_modules/object.omit/package.json
+++ b/node_modules/nyc/node_modules/object.omit/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "object.omit@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa",
"_shrinkwrap": null,
"_spec": "object.omit@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/once/package.json b/node_modules/nyc/node_modules/once/package.json
index 58bd6f73f..801cb2bf9 100644
--- a/node_modules/nyc/node_modules/once/package.json
+++ b/node_modules/nyc/node_modules/once/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.3.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
"_from": "once@>=1.3.0 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1",
"_shrinkwrap": null,
"_spec": "once@^1.3.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/optimist/package.json b/node_modules/nyc/node_modules/optimist/package.json
index a431a171b..6c0a20e68 100644
--- a/node_modules/nyc/node_modules/optimist/package.json
+++ b/node_modules/nyc/node_modules/optimist/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.6.1 <0.7.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/handlebars"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars"
]
],
"_from": "optimist@>=0.6.1 <0.7.0",
@@ -39,7 +39,7 @@
"_shasum": "da3ea74686fa21a19a111c326e90eb15a0196686",
"_shrinkwrap": null,
"_spec": "optimist@^0.6.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/handlebars",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/os-homedir/package.json b/node_modules/nyc/node_modules/os-homedir/package.json
index d574667a9..ede4958aa 100644
--- a/node_modules/nyc/node_modules/os-homedir/package.json
+++ b/node_modules/nyc/node_modules/os-homedir/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/spawn-wrap"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/spawn-wrap"
]
],
"_from": "os-homedir@>=1.0.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "ffbc4988336e0e833de0c168c7ef152121aa7fb3",
"_shrinkwrap": null,
"_spec": "os-homedir@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/spawn-wrap",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/spawn-wrap",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/os-locale/index.js b/node_modules/nyc/node_modules/os-locale/index.js
index 2c8a0065d..1ada7a494 100644
--- a/node_modules/nyc/node_modules/os-locale/index.js
+++ b/node_modules/nyc/node_modules/os-locale/index.js
@@ -1,127 +1,101 @@
'use strict';
-var childProcess = require('child_process');
-var execFileSync = childProcess.execFileSync;
-var lcid = require('lcid');
-var defaultOpts = {spawn: true};
-var cache;
-
-function fallback() {
- cache = 'en_US';
- return cache;
-}
+const execa = require('execa');
+const lcid = require('lcid');
+const mem = require('mem');
+
+const defaultOpts = {spawn: true};
+const defaultLocale = 'en_US';
function getEnvLocale(env) {
env = env || process.env;
- var ret = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;
- cache = getLocale(ret);
- return ret;
+ return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;
}
function parseLocale(x) {
- var env = x.split('\n').reduce(function (env, def) {
+ const env = x.split('\n').reduce((env, def) => {
def = def.split('=');
- env[def[0]] = def[1];
+ env[def[0]] = def[1].replace(/^"|"$/g, '');
return env;
}, {});
return getEnvLocale(env);
}
function getLocale(str) {
- return (str && str.replace(/[.:].*/, '')) || fallback();
+ return (str && str.replace(/[.:].*/, ''));
}
-module.exports = function (opts, cb) {
- if (typeof opts === 'function') {
- cb = opts;
- opts = defaultOpts;
- } else {
- opts = opts || defaultOpts;
- }
+function getAppleLocale() {
+ return execa.stdout('defaults', ['read', '-g', 'AppleLocale']);
+}
+
+function getAppleLocaleSync() {
+ return execa.sync('defaults', ['read', '-g', 'AppleLocale']).stdout;
+}
- if (cache || getEnvLocale() || opts.spawn === false) {
- setImmediate(cb, null, cache);
- return;
+function getUnixLocale() {
+ if (process.platform === 'darwin') {
+ return getAppleLocale();
}
- var getAppleLocale = function () {
- childProcess.execFile('defaults', ['read', '-g', 'AppleLocale'], function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
+ return execa.stdout('locale')
+ .then(stdout => getLocale(parseLocale(stdout)));
+}
- cache = stdout.trim() || fallback();
- cb(null, cache);
- });
- };
+function getUnixLocaleSync() {
+ if (process.platform === 'darwin') {
+ return getAppleLocaleSync();
+ }
- if (process.platform === 'win32') {
- childProcess.execFile('wmic', ['os', 'get', 'locale'], function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
+ return getLocale(parseLocale(execa.sync('locale').stdout));
+}
- var lcidCode = parseInt(stdout.replace('Locale', ''), 16);
- cache = lcid.from(lcidCode) || fallback();
- cb(null, cache);
+function getWinLocale() {
+ return execa.stdout('wmic', ['os', 'get', 'locale'])
+ .then(stdout => {
+ const lcidCode = parseInt(stdout.replace('Locale', ''), 16);
+ return lcid.from(lcidCode);
});
- } else {
- childProcess.execFile('locale', function (err, stdout) {
- if (err) {
- fallback();
- return;
- }
-
- var res = parseLocale(stdout);
-
- if (!res && process.platform === 'darwin') {
- getAppleLocale();
- return;
- }
+}
- cache = getLocale(res);
- cb(null, cache);
- });
- }
-};
+function getWinLocaleSync() {
+ const stdout = execa.sync('wmic', ['os', 'get', 'locale']).stdout;
+ const lcidCode = parseInt(stdout.replace('Locale', ''), 16);
+ return lcid.from(lcidCode);
+}
-module.exports.sync = function (opts) {
+module.exports = mem(opts => {
opts = opts || defaultOpts;
+ const envLocale = getEnvLocale();
+ let thenable;
- if (cache || getEnvLocale() || !execFileSync || opts.spawn === false) {
- return cache;
- }
-
- if (process.platform === 'win32') {
- var stdout;
-
- try {
- stdout = execFileSync('wmic', ['os', 'get', 'locale'], {encoding: 'utf8'});
- } catch (err) {
- return fallback();
- }
-
- var lcidCode = parseInt(stdout.replace('Locale', ''), 16);
- cache = lcid.from(lcidCode) || fallback();
- return cache;
+ if (envLocale || opts.spawn === false) {
+ thenable = Promise.resolve(getLocale(envLocale));
+ } else if (process.platform === 'win32') {
+ thenable = getWinLocale();
+ } else {
+ thenable = getUnixLocale();
}
- var res;
+ return thenable.then(locale => locale || defaultLocale)
+ .catch(() => defaultLocale);
+});
- try {
- res = parseLocale(execFileSync('locale', {encoding: 'utf8'}));
- } catch (err) {}
+module.exports.sync = mem(opts => {
+ opts = opts || defaultOpts;
+ const envLocale = getEnvLocale();
+ let res;
- if (!res && process.platform === 'darwin') {
+ if (envLocale || opts.spawn === false) {
+ res = getLocale(envLocale);
+ } else {
try {
- cache = execFileSync('defaults', ['read', '-g', 'AppleLocale'], {encoding: 'utf8'}).trim() || fallback();
- return cache;
- } catch (err) {
- return fallback();
- }
+ if (process.platform === 'win32') {
+ res = getWinLocaleSync();
+ } else {
+ res = getUnixLocaleSync();
+ }
+ } catch (err) {}
}
- cache = getLocale(res);
- return cache;
-};
+ return res || defaultLocale;
+});
diff --git a/node_modules/nyc/node_modules/os-locale/package.json b/node_modules/nyc/node_modules/os-locale/package.json
index 13fe1d740..a783f5f73 100644
--- a/node_modules/nyc/node_modules/os-locale/package.json
+++ b/node_modules/nyc/node_modules/os-locale/package.json
@@ -2,45 +2,49 @@
"_args": [
[
{
- "raw": "os-locale@^1.4.0",
+ "raw": "os-locale@^2.0.0",
"scope": null,
"escapedName": "os-locale",
"name": "os-locale",
- "rawSpec": "^1.4.0",
- "spec": ">=1.4.0 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
- "_from": "os-locale@>=1.4.0 <2.0.0",
- "_id": "os-locale@1.4.0",
+ "_from": "os-locale@>=2.0.0 <3.0.0",
+ "_id": "os-locale@2.0.0",
"_inCache": true,
"_location": "/os-locale",
- "_nodeVersion": "3.0.0",
+ "_nodeVersion": "7.1.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/os-locale-2.0.0.tgz_1479304194299_0.17578575410880148"
+ },
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.13.3",
+ "_npmVersion": "3.10.9",
"_phantomChildren": {},
"_requested": {
- "raw": "os-locale@^1.4.0",
+ "raw": "os-locale@^2.0.0",
"scope": null,
"escapedName": "os-locale",
"name": "os-locale",
- "rawSpec": "^1.4.0",
- "spec": ">=1.4.0 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/yargs"
],
- "_resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "_shasum": "20f9f17ae29ed345e8bde583b13d2009803c14d9",
+ "_resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz",
+ "_shasum": "15918ded510522b81ee7ae5a309d54f639fc39a4",
"_shrinkwrap": null,
- "_spec": "os-locale@^1.4.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_spec": "os-locale@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -50,7 +54,9 @@
"url": "https://github.com/sindresorhus/os-locale/issues"
},
"dependencies": {
- "lcid": "^1.0.0"
+ "execa": "^0.5.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
},
"description": "Get the system locale",
"devDependencies": {
@@ -60,16 +66,16 @@
},
"directories": {},
"dist": {
- "shasum": "20f9f17ae29ed345e8bde583b13d2009803c14d9",
- "tarball": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz"
+ "shasum": "15918ded510522b81ee7ae5a309d54f639fc39a4",
+ "tarball": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
],
- "gitHead": "b5c88233910b2e959fe84d841addb7a15e1cc813",
+ "gitHead": "b978314bf27271cd600c4dd550aa61563cf7a52e",
"homepage": "https://github.com/sindresorhus/os-locale#readme",
"keywords": [
"locale",
@@ -88,21 +94,21 @@
"license": "MIT",
"maintainers": [
{
- "name": "abg",
- "email": "andrewbgoode@gmail.com"
- },
- {
"name": "bcoe",
"email": "ben@npmjs.com"
},
{
+ "name": "nexdrew",
+ "email": "andrew@npmjs.com"
+ },
+ {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
}
],
"name": "os-locale",
"optionalDependencies": {},
- "readme": "# os-locale [![Build Status](https://travis-ci.org/sindresorhus/os-locale.svg?branch=master)](https://travis-ci.org/sindresorhus/os-locale)\n\n> Get the system [locale](http://en.wikipedia.org/wiki/Locale)\n\nUseful for localizing your module or app.\n\nPOSIX systems: The returned locale refers to the [`LC_MESSAGE`](http://www.gnu.org/software/libc/manual/html_node/Locale-Categories.html#Locale-Categories) category, suitable for selecting the language used in the user interface for message translation.\n\n\n## Install\n\n```\n$ npm install --save os-locale\n```\n\n\n## Usage\n\n```js\nvar osLocale = require('os-locale');\n\nosLocale(function (err, locale) {\n\tconsole.log(locale);\n\t//=> 'en_US'\n});\n```\n\n\n## API\n\n### osLocale([options], callback(error, locale))\n\n### osLocale.sync([options])\n\nReturns the locale.\n\n#### options.spawn\n\nType: `boolean` \nDefault: `true`\n\nSet to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables.\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readme": "# os-locale [![Build Status](https://travis-ci.org/sindresorhus/os-locale.svg?branch=master)](https://travis-ci.org/sindresorhus/os-locale)\n\n> Get the system [locale](https://en.wikipedia.org/wiki/Locale_(computer_software))\n\nUseful for localizing your module or app.\n\nPOSIX systems: The returned locale refers to the [`LC_MESSAGE`](http://www.gnu.org/software/libc/manual/html_node/Locale-Categories.html#Locale-Categories) category, suitable for selecting the language used in the user interface for message translation.\n\n\n## Install\n\n```\n$ npm install --save os-locale\n```\n\n\n## Usage\n\n```js\nconst osLocale = require('os-locale');\n\nosLocale.then(locale => {\n\tconsole.log(locale);\n\t//=> 'en_US'\n});\n```\n\n\n## API\n\n### osLocale([options])\n\nReturns a `Promise` for the locale.\n\n### osLocale.sync([options])\n\nReturns the locale.\n\n#### options\n\nType: `Object`\n\n##### spawn\n\nType: `boolean`<br>\nDefault: `true`\n\nSet to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
@@ -111,5 +117,8 @@
"scripts": {
"test": "xo && ava"
},
- "version": "1.4.0"
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
}
diff --git a/node_modules/nyc/node_modules/os-locale/readme.md b/node_modules/nyc/node_modules/os-locale/readme.md
index b80a0bd0b..b867c55ee 100644
--- a/node_modules/nyc/node_modules/os-locale/readme.md
+++ b/node_modules/nyc/node_modules/os-locale/readme.md
@@ -1,6 +1,6 @@
# os-locale [![Build Status](https://travis-ci.org/sindresorhus/os-locale.svg?branch=master)](https://travis-ci.org/sindresorhus/os-locale)
-> Get the system [locale](http://en.wikipedia.org/wiki/Locale)
+> Get the system [locale](https://en.wikipedia.org/wiki/Locale_(computer_software))
Useful for localizing your module or app.
@@ -17,9 +17,9 @@ $ npm install --save os-locale
## Usage
```js
-var osLocale = require('os-locale');
+const osLocale = require('os-locale');
-osLocale(function (err, locale) {
+osLocale.then(locale => {
console.log(locale);
//=> 'en_US'
});
@@ -28,15 +28,21 @@ osLocale(function (err, locale) {
## API
-### osLocale([options], callback(error, locale))
+### osLocale([options])
+
+Returns a `Promise` for the locale.
### osLocale.sync([options])
Returns the locale.
-#### options.spawn
+#### options
+
+Type: `Object`
+
+##### spawn
-Type: `boolean`
+Type: `boolean`<br>
Default: `true`
Set to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables.
@@ -44,4 +50,4 @@ Set to `false` to avoid spawning subprocesses and instead only resolve the local
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/p-finally/index.js b/node_modules/nyc/node_modules/p-finally/index.js
new file mode 100644
index 000000000..52b7b49c5
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-finally/index.js
@@ -0,0 +1,15 @@
+'use strict';
+module.exports = (promise, onFinally) => {
+ onFinally = onFinally || (() => {});
+
+ return promise.then(
+ val => new Promise(resolve => {
+ resolve(onFinally());
+ }).then(() => val),
+ err => new Promise(resolve => {
+ resolve(onFinally());
+ }).then(() => {
+ throw err;
+ })
+ );
+};
diff --git a/node_modules/nyc/node_modules/p-finally/license b/node_modules/nyc/node_modules/p-finally/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-finally/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/p-finally/package.json b/node_modules/nyc/node_modules/p-finally/package.json
new file mode 100644
index 000000000..ca4b497b9
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-finally/package.json
@@ -0,0 +1,111 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "p-finally@^1.0.0",
+ "scope": null,
+ "escapedName": "p-finally",
+ "name": "p-finally",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/execa"
+ ]
+ ],
+ "_from": "p-finally@>=1.0.0 <2.0.0",
+ "_id": "p-finally@1.0.0",
+ "_inCache": true,
+ "_location": "/p-finally",
+ "_nodeVersion": "4.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/p-finally-1.0.0.tgz_1477029729610_0.2481102051679045"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "p-finally@^1.0.0",
+ "scope": null,
+ "escapedName": "p-finally",
+ "name": "p-finally",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "_shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
+ "_shrinkwrap": null,
+ "_spec": "p-finally@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-finally/issues"
+ },
+ "dependencies": {},
+ "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
+ "tarball": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "9cfdd5dccb41995300916c17ab0fab784800f4d3",
+ "homepage": "https://github.com/sindresorhus/p-finally#readme",
+ "keywords": [
+ "promise",
+ "finally",
+ "handler",
+ "function",
+ "async",
+ "await",
+ "promises",
+ "settled",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "p-finally",
+ "optionalDependencies": {},
+ "readme": "# p-finally [![Build Status](https://travis-ci.org/sindresorhus/p-finally.svg?branch=master)](https://travis-ci.org/sindresorhus/p-finally)\n\n> [`Promise#finally()`](https://github.com/tc39/proposal-promise-finally) [ponyfill](https://ponyfill.com) - Invoked when the promise is settled regardless of outcome\n\nUseful for cleanup.\n\n\n## Install\n\n```\n$ npm install --save p-finally\n```\n\n\n## Usage\n\n```js\nconst pFinally = require('p-finally');\n\nconst dir = createTempDir();\n\npFinally(write(dir), () => cleanup(dir));\n```\n\n\n## API\n\n### pFinally(promise, [onFinally])\n\nReturns a `Promise`.\n\n#### onFinally\n\nType: `Function`\n\nNote: Throwing or returning a rejected promise will reject `promise` with the rejection reason.\n\n\n## Related\n\n- [p-try](https://github.com/sindresorhus/p-try) - `Promise#try()` ponyfill - Starts a promise chain\n- [More…](https://github.com/sindresorhus/promise-fun)\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-finally.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/p-finally/readme.md b/node_modules/nyc/node_modules/p-finally/readme.md
new file mode 100644
index 000000000..09ef36416
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-finally/readme.md
@@ -0,0 +1,47 @@
+# p-finally [![Build Status](https://travis-ci.org/sindresorhus/p-finally.svg?branch=master)](https://travis-ci.org/sindresorhus/p-finally)
+
+> [`Promise#finally()`](https://github.com/tc39/proposal-promise-finally) [ponyfill](https://ponyfill.com) - Invoked when the promise is settled regardless of outcome
+
+Useful for cleanup.
+
+
+## Install
+
+```
+$ npm install --save p-finally
+```
+
+
+## Usage
+
+```js
+const pFinally = require('p-finally');
+
+const dir = createTempDir();
+
+pFinally(write(dir), () => cleanup(dir));
+```
+
+
+## API
+
+### pFinally(promise, [onFinally])
+
+Returns a `Promise`.
+
+#### onFinally
+
+Type: `Function`
+
+Note: Throwing or returning a rejected promise will reject `promise` with the rejection reason.
+
+
+## Related
+
+- [p-try](https://github.com/sindresorhus/p-try) - `Promise#try()` ponyfill - Starts a promise chain
+- [More…](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/p-limit/index.js b/node_modules/nyc/node_modules/p-limit/index.js
new file mode 100644
index 000000000..bfafd2688
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-limit/index.js
@@ -0,0 +1,40 @@
+'use strict';
+module.exports = concurrency => {
+ if (concurrency < 1) {
+ throw new TypeError('Expected `concurrency` to be a number from 1 and up');
+ }
+
+ const queue = [];
+ let activeCount = 0;
+
+ const next = () => {
+ activeCount--;
+
+ if (queue.length > 0) {
+ queue.shift()();
+ }
+ };
+
+ return fn => new Promise((resolve, reject) => {
+ const run = () => {
+ activeCount++;
+
+ fn().then(
+ val => {
+ resolve(val);
+ next();
+ },
+ err => {
+ reject(err);
+ next();
+ }
+ );
+ };
+
+ if (activeCount < concurrency) {
+ run();
+ } else {
+ queue.push(run);
+ }
+ });
+};
diff --git a/node_modules/nyc/node_modules/p-limit/license b/node_modules/nyc/node_modules/p-limit/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-limit/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/p-limit/package.json b/node_modules/nyc/node_modules/p-limit/package.json
new file mode 100644
index 000000000..3104450be
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-limit/package.json
@@ -0,0 +1,118 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "p-limit@^1.1.0",
+ "scope": null,
+ "escapedName": "p-limit",
+ "name": "p-limit",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/p-locate"
+ ]
+ ],
+ "_from": "p-limit@>=1.1.0 <2.0.0",
+ "_id": "p-limit@1.1.0",
+ "_inCache": true,
+ "_location": "/p-limit",
+ "_nodeVersion": "4.6.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/p-limit-1.1.0.tgz_1479711587647_0.4504568234551698"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.11",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "p-limit@^1.1.0",
+ "scope": null,
+ "escapedName": "p-limit",
+ "name": "p-limit",
+ "rawSpec": "^1.1.0",
+ "spec": ">=1.1.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/p-locate"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
+ "_shasum": "b07ff2d9a5d88bec806035895a2bab66a27988bc",
+ "_shrinkwrap": null,
+ "_spec": "p-limit@^1.1.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/p-locate",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-limit/issues"
+ },
+ "dependencies": {},
+ "description": "Run multiple promise-returning & async functions with limited concurrency",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^1.3.1",
+ "in-range": "^1.0.0",
+ "random-int": "^1.0.0",
+ "time-span": "^1.0.0",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "b07ff2d9a5d88bec806035895a2bab66a27988bc",
+ "tarball": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "276b0aeef73ac9fe0b80622d8261a2bbe4f9f74c",
+ "homepage": "https://github.com/sindresorhus/p-limit#readme",
+ "keywords": [
+ "promise",
+ "limit",
+ "limited",
+ "concurrency",
+ "throttle",
+ "throat",
+ "rate",
+ "batch",
+ "ratelimit",
+ "task",
+ "queue",
+ "async",
+ "await",
+ "promises",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "p-limit",
+ "optionalDependencies": {},
+ "readme": "# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit)\n\n> Run multiple promise-returning & async functions with limited concurrency\n\n\n## Install\n\n```\n$ npm install --save p-limit\n```\n\n\n## Usage\n\n```js\nconst pLimit = require('p-limit');\n\nconst limit = pLimit(1);\n\nconst input = [\n\tlimit(() => fetchSomething('foo')),\n\tlimit(() => fetchSomething('bar')),\n\tlimit(() => doSomething())\n];\n\n// only one promise is run at once\nPromise.all(input).then(result => {\n\tconsole.log(result);\n});\n```\n\n\n## API\n\n### pLimit(concurrency)\n\nReturns a `limit` function.\n\n#### concurrency\n\nType: `number`<br>\nMinimum: `1`\n\nConcurrency limit.\n\n### limit(fn)\n\nReturns the promise returned by calling `fn`.\n\n#### fn\n\nType: `Function`\n\nPromise-returning/async function.\n\n\n## Related\n\n- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control\n- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions\n- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions\n- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency\n- [More…](https://github.com/sindresorhus/promise-fun)\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-limit.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/p-limit/readme.md b/node_modules/nyc/node_modules/p-limit/readme.md
new file mode 100644
index 000000000..c7a10deb6
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-limit/readme.md
@@ -0,0 +1,68 @@
+# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit)
+
+> Run multiple promise-returning & async functions with limited concurrency
+
+
+## Install
+
+```
+$ npm install --save p-limit
+```
+
+
+## Usage
+
+```js
+const pLimit = require('p-limit');
+
+const limit = pLimit(1);
+
+const input = [
+ limit(() => fetchSomething('foo')),
+ limit(() => fetchSomething('bar')),
+ limit(() => doSomething())
+];
+
+// only one promise is run at once
+Promise.all(input).then(result => {
+ console.log(result);
+});
+```
+
+
+## API
+
+### pLimit(concurrency)
+
+Returns a `limit` function.
+
+#### concurrency
+
+Type: `number`<br>
+Minimum: `1`
+
+Concurrency limit.
+
+### limit(fn)
+
+Returns the promise returned by calling `fn`.
+
+#### fn
+
+Type: `Function`
+
+Promise-returning/async function.
+
+
+## Related
+
+- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control
+- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions
+- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
+- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency
+- [More…](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/p-locate/index.js b/node_modules/nyc/node_modules/p-locate/index.js
new file mode 100644
index 000000000..7461d665b
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-locate/index.js
@@ -0,0 +1,31 @@
+'use strict';
+const pLimit = require('p-limit');
+
+class EndError extends Error {
+ constructor(value) {
+ super();
+ this.value = value;
+ }
+}
+
+// the input can also be a promise, so we `Promise.all()` them both
+const finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0])));
+
+module.exports = (iterable, tester, opts) => {
+ opts = Object.assign({
+ concurrency: Infinity,
+ preserveOrder: true
+ }, opts);
+
+ const limit = pLimit(opts.concurrency);
+
+ // start all the promises concurrently with optional limit
+ const items = Array.from(iterable).map(el => [el, limit(() => Promise.resolve(el).then(tester))]);
+
+ // check the promises either serially or concurrently
+ const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity);
+
+ return Promise.all(items.map(el => checkLimit(() => finder(el))))
+ .then(() => {})
+ .catch(err => err instanceof EndError ? err.value : Promise.reject(err));
+};
diff --git a/node_modules/nyc/node_modules/p-locate/license b/node_modules/nyc/node_modules/p-locate/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-locate/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/p-locate/package.json b/node_modules/nyc/node_modules/p-locate/package.json
new file mode 100644
index 000000000..f5d41ffad
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-locate/package.json
@@ -0,0 +1,122 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "p-locate@^2.0.0",
+ "scope": null,
+ "escapedName": "p-locate",
+ "name": "p-locate",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/locate-path"
+ ]
+ ],
+ "_from": "p-locate@>=2.0.0 <3.0.0",
+ "_id": "p-locate@2.0.0",
+ "_inCache": true,
+ "_location": "/p-locate",
+ "_nodeVersion": "7.2.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/p-locate-2.0.0.tgz_1480310721089_0.044998719124123454"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.10.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "p-locate@^2.0.0",
+ "scope": null,
+ "escapedName": "p-locate",
+ "name": "p-locate",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/locate-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "_shasum": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
+ "_shrinkwrap": null,
+ "_spec": "p-locate@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/locate-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-locate/issues"
+ },
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "description": "Get the first fulfilled promise that satisfies the provided testing function",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^1.3.1",
+ "in-range": "^1.0.0",
+ "time-span": "^1.0.0",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
+ "tarball": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "6300abb6451f04bbaa760f42844ec1c501d79120",
+ "homepage": "https://github.com/sindresorhus/p-locate#readme",
+ "keywords": [
+ "promise",
+ "locate",
+ "find",
+ "finder",
+ "search",
+ "searcher",
+ "test",
+ "array",
+ "collection",
+ "iterable",
+ "iterator",
+ "race",
+ "fulfilled",
+ "fastest",
+ "async",
+ "await",
+ "promises",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "p-locate",
+ "optionalDependencies": {},
+ "readme": "# p-locate [![Build Status](https://travis-ci.org/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.org/sindresorhus/p-locate)\n\n> Get the first fulfilled promise that satisfies the provided testing function\n\nThink of it like an async version of [`Array#find`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find).\n\n\n## Install\n\n```\n$ npm install --save p-locate\n```\n\n\n## Usage\n\nHere we find the first file that exists on disk, in array order.\n\n```js\nconst pathExists = require('path-exists');\nconst pLocate = require('p-locate');\n\nconst files = [\n\t'unicorn.png',\n\t'rainbow.png', // only this one actually exists on disk\n\t'pony.png'\n];\n\npLocate(files, file => pathExists(file)).then(foundPath => {\n\tconsole.log(foundPath);\n\t//=> 'rainbow'\n});\n```\n\n*The above is just an example. Use [`locate-path`](https://github.com/sindresorhus/locate-path) if you need this.*\n\n\n## API\n\n### pLocate(input, tester, [options])\n\nReturns a `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`.\n\n#### input\n\nType: `Iterable<Promise|any>`\n\n#### tester(element)\n\nType: `Function`\n\nExpected to return a `Promise<boolean>` or boolean.\n\n#### options\n\nType: `Object`\n\n##### concurrency\n\nType: `number`<br>\nDefault: `Infinity`<br>\nMinimum: `1`\n\nNumber of concurrently pending promises returned by `tester`.\n\n##### preserveOrder\n\nType: `boolean`<br>\nDefault: `true`\n\nPreserve `input` order when searching.\n\nDisable this to improve performance if you don't care about the order.\n\n\n## Related\n\n- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently\n- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently\n- [p-any](https://github.com/sindresorhus/p-any) - Wait for any promise to be fulfilled\n- [More…](https://github.com/sindresorhus/promise-fun)\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-locate.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/p-locate/readme.md b/node_modules/nyc/node_modules/p-locate/readme.md
new file mode 100644
index 000000000..68b96a47e
--- /dev/null
+++ b/node_modules/nyc/node_modules/p-locate/readme.md
@@ -0,0 +1,86 @@
+# p-locate [![Build Status](https://travis-ci.org/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.org/sindresorhus/p-locate)
+
+> Get the first fulfilled promise that satisfies the provided testing function
+
+Think of it like an async version of [`Array#find`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find).
+
+
+## Install
+
+```
+$ npm install --save p-locate
+```
+
+
+## Usage
+
+Here we find the first file that exists on disk, in array order.
+
+```js
+const pathExists = require('path-exists');
+const pLocate = require('p-locate');
+
+const files = [
+ 'unicorn.png',
+ 'rainbow.png', // only this one actually exists on disk
+ 'pony.png'
+];
+
+pLocate(files, file => pathExists(file)).then(foundPath => {
+ console.log(foundPath);
+ //=> 'rainbow'
+});
+```
+
+*The above is just an example. Use [`locate-path`](https://github.com/sindresorhus/locate-path) if you need this.*
+
+
+## API
+
+### pLocate(input, tester, [options])
+
+Returns a `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`.
+
+#### input
+
+Type: `Iterable<Promise|any>`
+
+#### tester(element)
+
+Type: `Function`
+
+Expected to return a `Promise<boolean>` or boolean.
+
+#### options
+
+Type: `Object`
+
+##### concurrency
+
+Type: `number`<br>
+Default: `Infinity`<br>
+Minimum: `1`
+
+Number of concurrently pending promises returned by `tester`.
+
+##### preserveOrder
+
+Type: `boolean`<br>
+Default: `true`
+
+Preserve `input` order when searching.
+
+Disable this to improve performance if you don't care about the order.
+
+
+## Related
+
+- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently
+- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently
+- [p-any](https://github.com/sindresorhus/p-any) - Wait for any promise to be fulfilled
+- [More…](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/parse-glob/package.json b/node_modules/nyc/node_modules/parse-glob/package.json
index 68f9e1af2..6b22a7200 100644
--- a/node_modules/nyc/node_modules/parse-glob/package.json
+++ b/node_modules/nyc/node_modules/parse-glob/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.0.4 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "parse-glob@>=3.0.4 <4.0.0",
@@ -40,7 +40,7 @@
"_shasum": "b2c376cfb11f35513badd173ef0bb6e3a388391c",
"_shrinkwrap": null,
"_spec": "parse-glob@^3.0.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/parse-json/package.json b/node_modules/nyc/node_modules/parse-json/package.json
index cde1f4f4b..3fd9fc078 100644
--- a/node_modules/nyc/node_modules/parse-json/package.json
+++ b/node_modules/nyc/node_modules/parse-json/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.2.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/load-json-file"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/load-json-file"
]
],
"_from": "parse-json@>=2.2.0 <3.0.0",
@@ -34,13 +34,14 @@
"type": "range"
},
"_requiredBy": [
- "/load-json-file"
+ "/load-json-file",
+ "/yargs/load-json-file"
],
"_resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"_shasum": "f480f40434ef80741f8469099f8dea18f55a4dc9",
"_shrinkwrap": null,
"_spec": "parse-json@^2.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/load-json-file",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/load-json-file",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/path-exists/package.json b/node_modules/nyc/node_modules/path-exists/package.json
index 2a489dad7..9b32224e1 100644
--- a/node_modules/nyc/node_modules/path-exists/package.json
+++ b/node_modules/nyc/node_modules/path-exists/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/find-up"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir/node_modules/find-up"
]
],
"_from": "path-exists@>=2.0.0 <3.0.0",
@@ -34,13 +34,14 @@
"type": "range"
},
"_requiredBy": [
- "/find-up"
+ "/pkg-dir/find-up",
+ "/read-pkg-up/find-up"
],
"_resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"_shasum": "0feb6c64f0fc518d9a754dd5efb62c7022761f4b",
"_shrinkwrap": null,
"_spec": "path-exists@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/find-up",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir/node_modules/find-up",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/path-is-absolute/package.json b/node_modules/nyc/node_modules/path-is-absolute/package.json
index 1745a693f..0809b66da 100644
--- a/node_modules/nyc/node_modules/path-is-absolute/package.json
+++ b/node_modules/nyc/node_modules/path-is-absolute/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/glob"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/glob"
]
],
"_from": "path-is-absolute@>=1.0.0 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
"_shrinkwrap": null,
"_spec": "path-is-absolute@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/glob",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/glob",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/path-key/index.js b/node_modules/nyc/node_modules/path-key/index.js
new file mode 100644
index 000000000..62c8250ab
--- /dev/null
+++ b/node_modules/nyc/node_modules/path-key/index.js
@@ -0,0 +1,13 @@
+'use strict';
+module.exports = opts => {
+ opts = opts || {};
+
+ const env = opts.env || process.env;
+ const platform = opts.platform || process.platform;
+
+ if (platform !== 'win32') {
+ return 'PATH';
+ }
+
+ return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path';
+};
diff --git a/node_modules/nyc/node_modules/path-key/license b/node_modules/nyc/node_modules/path-key/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/path-key/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/path-key/package.json b/node_modules/nyc/node_modules/path-key/package.json
new file mode 100644
index 000000000..90581bb3b
--- /dev/null
+++ b/node_modules/nyc/node_modules/path-key/package.json
@@ -0,0 +1,108 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "path-key@^2.0.0",
+ "scope": null,
+ "escapedName": "path-key",
+ "name": "path-key",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/npm-run-path"
+ ]
+ ],
+ "_from": "path-key@>=2.0.0 <3.0.0",
+ "_id": "path-key@2.0.1",
+ "_inCache": true,
+ "_location": "/path-key",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/path-key-2.0.1.tgz_1474887352898_0.8162120468914509"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "path-key@^2.0.0",
+ "scope": null,
+ "escapedName": "path-key",
+ "name": "path-key",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/npm-run-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
+ "_shrinkwrap": null,
+ "_spec": "path-key@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/npm-run-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-key/issues"
+ },
+ "dependencies": {},
+ "description": "Get the PATH environment variable key cross-platform",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
+ "tarball": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "d60207f9ab9dc9e60d49c87faacf415a4946287c",
+ "homepage": "https://github.com/sindresorhus/path-key#readme",
+ "keywords": [
+ "path",
+ "key",
+ "environment",
+ "env",
+ "variable",
+ "var",
+ "get",
+ "cross-platform",
+ "windows"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "path-key",
+ "optionalDependencies": {},
+ "readme": "# path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key)\n\n> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform\n\nIt's usually `PATH`, but on Windows it can be any casing like `Path`...\n\n\n## Install\n\n```\n$ npm install --save path-key\n```\n\n\n## Usage\n\n```js\nconst pathKey = require('path-key');\n\nconst key = pathKey();\n//=> 'PATH'\n\nconst PATH = process.env[key];\n//=> '/usr/local/bin:/usr/bin:/bin'\n```\n\n\n## API\n\n### pathKey([options])\n\n#### options\n\n##### env\n\nType: `Object`<br>\nDefault: [`process.env`](https://nodejs.org/api/process.html#process_process_env)\n\nUse a custom environment variables object.\n\n#### platform\n\nType: `string`<br>\nDefault: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform)\n\nGet the PATH key for a specific platform.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-key.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.1",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/path-key/readme.md b/node_modules/nyc/node_modules/path-key/readme.md
new file mode 100644
index 000000000..cb5710aac
--- /dev/null
+++ b/node_modules/nyc/node_modules/path-key/readme.md
@@ -0,0 +1,51 @@
+# path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key)
+
+> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform
+
+It's usually `PATH`, but on Windows it can be any casing like `Path`...
+
+
+## Install
+
+```
+$ npm install --save path-key
+```
+
+
+## Usage
+
+```js
+const pathKey = require('path-key');
+
+const key = pathKey();
+//=> 'PATH'
+
+const PATH = process.env[key];
+//=> '/usr/local/bin:/usr/bin:/bin'
+```
+
+
+## API
+
+### pathKey([options])
+
+#### options
+
+##### env
+
+Type: `Object`<br>
+Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env)
+
+Use a custom environment variables object.
+
+#### platform
+
+Type: `string`<br>
+Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform)
+
+Get the PATH key for a specific platform.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/path-parse/package.json b/node_modules/nyc/node_modules/path-parse/package.json
index a6d4b3178..371b902d2 100644
--- a/node_modules/nyc/node_modules/path-parse/package.json
+++ b/node_modules/nyc/node_modules/path-parse/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.5 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report"
]
],
"_from": "path-parse@>=1.0.5 <2.0.0",
@@ -39,7 +39,7 @@
"_shasum": "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1",
"_shrinkwrap": null,
"_spec": "path-parse@^1.0.5",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-report",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-report",
"author": {
"name": "Javier Blanco",
"email": "http://jbgutierrez.info"
diff --git a/node_modules/nyc/node_modules/path-type/package.json b/node_modules/nyc/node_modules/path-type/package.json
index 840d1447a..6ded968e5 100644
--- a/node_modules/nyc/node_modules/path-type/package.json
+++ b/node_modules/nyc/node_modules/path-type/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/read-pkg"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg"
]
],
"_from": "path-type@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "59c44f7ee491da704da415da5a4070ba4f8fe441",
"_shrinkwrap": null,
"_spec": "path-type@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/read-pkg",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/pify/package.json b/node_modules/nyc/node_modules/pify/package.json
index e310eba7d..7610b7261 100644
--- a/node_modules/nyc/node_modules/pify/package.json
+++ b/node_modules/nyc/node_modules/pify/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/load-json-file"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/load-json-file"
]
],
"_from": "pify@>=2.0.0 <3.0.0",
@@ -35,13 +35,15 @@
},
"_requiredBy": [
"/load-json-file",
- "/path-type"
+ "/path-type",
+ "/yargs/load-json-file",
+ "/yargs/path-type"
],
"_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c",
"_shrinkwrap": null,
"_spec": "pify@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/load-json-file",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/load-json-file",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/pinkie-promise/package.json b/node_modules/nyc/node_modules/pinkie-promise/package.json
index a3adc5e3a..7d785e133 100644
--- a/node_modules/nyc/node_modules/pinkie-promise/package.json
+++ b/node_modules/nyc/node_modules/pinkie-promise/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/find-up"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir/node_modules/find-up"
]
],
"_from": "pinkie-promise@>=2.0.0 <3.0.0",
@@ -38,16 +38,18 @@
"type": "range"
},
"_requiredBy": [
- "/find-up",
+ "/get-stream",
"/load-json-file",
"/path-exists",
- "/path-type"
+ "/path-type",
+ "/pkg-dir/find-up",
+ "/read-pkg-up/find-up"
],
"_resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"_shasum": "2135d6dfa7a358c069ac9b178776288228450ffa",
"_shrinkwrap": null,
"_spec": "pinkie-promise@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/find-up",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir/node_modules/find-up",
"author": {
"name": "Vsevolod Strukchinsky",
"email": "floatdrop@gmail.com",
diff --git a/node_modules/nyc/node_modules/pinkie/package.json b/node_modules/nyc/node_modules/pinkie/package.json
index ae28c0da9..fca4e19ff 100644
--- a/node_modules/nyc/node_modules/pinkie/package.json
+++ b/node_modules/nyc/node_modules/pinkie/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/pinkie-promise"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/pinkie-promise"
]
],
"_from": "pinkie@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "72556b80cfa0d48a974e80e77248e80ed4f7f870",
"_shrinkwrap": null,
"_spec": "pinkie@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/pinkie-promise",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/pinkie-promise",
"author": {
"name": "Vsevolod Strukchinsky",
"email": "floatdrop@gmail.com",
diff --git a/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/index.js b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/index.js
new file mode 100644
index 000000000..7ff0e2b78
--- /dev/null
+++ b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/index.js
@@ -0,0 +1,53 @@
+'use strict';
+var path = require('path');
+var pathExists = require('path-exists');
+var Promise = require('pinkie-promise');
+
+function splitPath(x) {
+ return path.resolve(x || '').split(path.sep);
+}
+
+function join(parts, filename) {
+ return path.resolve(parts.join(path.sep) + path.sep, filename);
+}
+
+module.exports = function (filename, opts) {
+ opts = opts || {};
+
+ var parts = splitPath(opts.cwd);
+
+ return new Promise(function (resolve) {
+ (function find() {
+ var fp = join(parts, filename);
+
+ pathExists(fp).then(function (exists) {
+ if (exists) {
+ resolve(fp);
+ } else if (parts.pop()) {
+ find();
+ } else {
+ resolve(null);
+ }
+ });
+ })();
+ });
+};
+
+module.exports.sync = function (filename, opts) {
+ opts = opts || {};
+
+ var parts = splitPath(opts.cwd);
+ var len = parts.length;
+
+ while (len--) {
+ var fp = join(parts, filename);
+
+ if (pathExists.sync(fp)) {
+ return fp;
+ }
+
+ parts.pop();
+ }
+
+ return null;
+};
diff --git a/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/license b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/package.json b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/package.json
new file mode 100644
index 000000000..d72b1c4e3
--- /dev/null
+++ b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/package.json
@@ -0,0 +1,119 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "find-up@^1.0.0",
+ "scope": null,
+ "escapedName": "find-up",
+ "name": "find-up",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir"
+ ]
+ ],
+ "_from": "find-up@>=1.0.0 <2.0.0",
+ "_id": "find-up@1.1.2",
+ "_inCache": true,
+ "_location": "/pkg-dir/find-up",
+ "_nodeVersion": "4.3.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/find-up-1.1.2.tgz_1457199955637_0.3445317060686648"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.14.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "find-up@^1.0.0",
+ "scope": null,
+ "escapedName": "find-up",
+ "name": "find-up",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/pkg-dir"
+ ],
+ "_resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "_shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
+ "_shrinkwrap": null,
+ "_spec": "find-up@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/pkg-dir",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/find-up/issues"
+ },
+ "dependencies": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "description": "Find a file by walking up parent directories",
+ "devDependencies": {
+ "ava": "*",
+ "tempfile": "^1.1.1",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
+ "tarball": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "f2d7c1ff74fbac82b2cff038e311ef4b075d9184",
+ "homepage": "https://github.com/sindresorhus/find-up#readme",
+ "keywords": [
+ "find",
+ "up",
+ "find-up",
+ "findup",
+ "look-up",
+ "look",
+ "file",
+ "search",
+ "match",
+ "package",
+ "resolve",
+ "parent",
+ "parents",
+ "folder",
+ "directory",
+ "dir",
+ "walk",
+ "walking",
+ "path"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "find-up",
+ "optionalDependencies": {},
+ "readme": "# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)\n\n> Find a file by walking up parent directories\n\n\n## Install\n\n```\n$ npm install --save find-up\n```\n\n\n## Usage\n\n```\n/\n└── Users\n └── sindresorhus\n ├── unicorn.png\n └── foo\n └── bar\n ├── baz\n └── example.js\n```\n\n```js\n// example.js\nconst findUp = require('find-up');\n\nfindUp('unicorn.png').then(filepath => {\n\tconsole.log(filepath);\n\t//=> '/Users/sindresorhus/unicorn.png'\n});\n```\n\n\n## API\n\n### findUp(filename, [options])\n\nReturns a promise for the filepath or `null`.\n\n### findUp.sync(filename, [options])\n\nReturns a filepath or `null`.\n\n#### filename\n\nType: `string`\n\nFilename of the file to find.\n\n#### options\n\n##### cwd\n\nType: `string` \nDefault: `process.cwd()`\n\nDirectory to start from.\n\n\n## Related\n\n- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module\n- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file\n- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/find-up.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.2"
+}
diff --git a/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/readme.md b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/readme.md
new file mode 100644
index 000000000..9ea0611c3
--- /dev/null
+++ b/node_modules/nyc/node_modules/pkg-dir/node_modules/find-up/readme.md
@@ -0,0 +1,72 @@
+# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)
+
+> Find a file by walking up parent directories
+
+
+## Install
+
+```
+$ npm install --save find-up
+```
+
+
+## Usage
+
+```
+/
+└── Users
+ └── sindresorhus
+ ├── unicorn.png
+ └── foo
+ └── bar
+ ├── baz
+ └── example.js
+```
+
+```js
+// example.js
+const findUp = require('find-up');
+
+findUp('unicorn.png').then(filepath => {
+ console.log(filepath);
+ //=> '/Users/sindresorhus/unicorn.png'
+});
+```
+
+
+## API
+
+### findUp(filename, [options])
+
+Returns a promise for the filepath or `null`.
+
+### findUp.sync(filename, [options])
+
+Returns a filepath or `null`.
+
+#### filename
+
+Type: `string`
+
+Filename of the file to find.
+
+#### options
+
+##### cwd
+
+Type: `string`
+Default: `process.cwd()`
+
+Directory to start from.
+
+
+## Related
+
+- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module
+- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file
+- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/pkg-dir/package.json b/node_modules/nyc/node_modules/pkg-dir/package.json
index 39894b842..a67289382 100644
--- a/node_modules/nyc/node_modules/pkg-dir/package.json
+++ b/node_modules/nyc/node_modules/pkg-dir/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/find-cache-dir"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/find-cache-dir"
]
],
"_from": "pkg-dir@>=1.0.0 <2.0.0",
@@ -23,7 +23,10 @@
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.11.3",
- "_phantomChildren": {},
+ "_phantomChildren": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ },
"_requested": {
"raw": "pkg-dir@^1.0.0",
"scope": null,
@@ -40,7 +43,7 @@
"_shasum": "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4",
"_shrinkwrap": null,
"_spec": "pkg-dir@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/find-cache-dir",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/find-cache-dir",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/preserve/package.json b/node_modules/nyc/node_modules/preserve/package.json
index 48d0091af..bb301bd2b 100644
--- a/node_modules/nyc/node_modules/preserve/package.json
+++ b/node_modules/nyc/node_modules/preserve/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.2.0 <0.3.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/braces"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/braces"
]
],
"_from": "preserve@>=0.2.0 <0.3.0",
@@ -39,7 +39,7 @@
"_shasum": "815ed1f6ebc65926f865b310c0713bcb3315ce4b",
"_shrinkwrap": null,
"_spec": "preserve@^0.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/braces",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/braces",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/pseudomap/package.json b/node_modules/nyc/node_modules/pseudomap/package.json
index 808fbd2ba..2e3bf0439 100644
--- a/node_modules/nyc/node_modules/pseudomap/package.json
+++ b/node_modules/nyc/node_modules/pseudomap/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "pseudomap@^1.0.1",
+ "raw": "pseudomap@^1.0.2",
"scope": null,
"escapedName": "pseudomap",
"name": "pseudomap",
- "rawSpec": "^1.0.1",
- "spec": ">=1.0.1 <2.0.0",
+ "rawSpec": "^1.0.2",
+ "spec": ">=1.0.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/lru-cache"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/lru-cache"
]
],
- "_from": "pseudomap@>=1.0.1 <2.0.0",
+ "_from": "pseudomap@>=1.0.2 <2.0.0",
"_id": "pseudomap@1.0.2",
"_inCache": true,
"_location": "/pseudomap",
@@ -25,12 +25,12 @@
"_npmVersion": "3.3.2",
"_phantomChildren": {},
"_requested": {
- "raw": "pseudomap@^1.0.1",
+ "raw": "pseudomap@^1.0.2",
"scope": null,
"escapedName": "pseudomap",
"name": "pseudomap",
- "rawSpec": "^1.0.1",
- "spec": ">=1.0.1 <2.0.0",
+ "rawSpec": "^1.0.2",
+ "spec": ">=1.0.2 <2.0.0",
"type": "range"
},
"_requiredBy": [
@@ -39,8 +39,8 @@
"_resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"_shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3",
"_shrinkwrap": null,
- "_spec": "pseudomap@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/lru-cache",
+ "_spec": "pseudomap@^1.0.2",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/lru-cache",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/randomatic/LICENSE b/node_modules/nyc/node_modules/randomatic/LICENSE
index 4a3d2da41..3ea726752 100755
--- a/node_modules/nyc/node_modules/randomatic/LICENSE
+++ b/node_modules/nyc/node_modules/randomatic/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2013-2016, Jon Schlinkert
+Copyright (c) 2013-2017, Jon Schlinkert
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/node_modules/nyc/node_modules/randomatic/README.md b/node_modules/nyc/node_modules/randomatic/README.md
index 1c5202a29..14485ffa2 100644
--- a/node_modules/nyc/node_modules/randomatic/README.md
+++ b/node_modules/nyc/node_modules/randomatic/README.md
@@ -1,4 +1,4 @@
-# randomatic [![NPM version](https://img.shields.io/npm/v/randomatic.svg?style=flat)](https://www.npmjs.com/package/randomatic) [![NPM monthly downloads](https://img.shields.io/npm/dm/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![NPM total downloads](https://img.shields.io/npm/dt/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/randomatic.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/randomatic)
+# randomatic [![NPM version](https://img.shields.io/npm/v/randomatic.svg?style=flat)](https://www.npmjs.com/package/randomatic) [![NPM monthly downloads](https://img.shields.io/npm/dm/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![NPM total downloads](https://img.shields.io/npm/dt/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/randomatic.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/randomatic)
> Generate randomized strings of a specified length, fast. Only the length is necessary, but you can optionally generate patterns using any combination of numeric, alpha-numeric, alphabetical, special or custom characters.
@@ -91,8 +91,8 @@ Define a custom string to be randomized.
* `randomize('AAA0')` and `randomize('AA00')` and `randomize('A0A0')` are equivelant to `randomize('A0', 4)`
* `randomize('aa')`: results in double-digit, randomized, lower-case letters (`abcdefghijklmnopqrstuvwxyz`)
* `randomize('AAA')`: results in triple-digit, randomized, upper-case letters (`ABCDEFGHIJKLMNOPQRSTUVWXYZ`)
-* `randomize('0', 6)`: results in six-digit, randomized nubmers (`0123456789`)
-* `randomize('!', 5)`: results in single-digit randomized, _valid_ non-letter characters (`~!@#$%^&()_+-={}[];\',.`)
+* `randomize('0', 6)`: results in six-digit, randomized numbers (`0123456789`)
+* `randomize('!', 5)`: results in single-digit randomized, _valid_ non-letter characters (`~!@#$%^&()_+-={}[]
* `randomize('A!a0', 9)`: results in nine-digit, randomized characters (any of the above)
_The order in which the characters are defined is insignificant._
@@ -111,28 +111,30 @@ Pull requests and stars are always welcome. For bugs and feature requests, [plea
### Contributors
-| **Commits** | **Contributor**<br/> |
+| **Commits** | **Contributor** |
| --- | --- |
-| 36 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 41 | [jonschlinkert](https://github.com/jonschlinkert) |
| 1 | [TrySound](https://github.com/TrySound) |
+| 1 | [Drag0s](https://github.com/Drag0s) |
| 1 | [paulmillr](https://github.com/paulmillr) |
+| 1 | [sunknudsen](https://github.com/sunknudsen) |
### Building docs
-_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
-To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
+To generate the readme, run the following command:
```sh
-$ npm install -g verb verb-generate-readme && verb
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
```
### Running tests
-Install dev dependencies:
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
```sh
-$ npm install -d && npm test
+$ npm install && npm test
```
### Author
@@ -140,13 +142,13 @@ $ npm install -d && npm test
**Jon Schlinkert**
* [github/jonschlinkert](https://github.com/jonschlinkert)
-* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
### License
-Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
-Released under the [MIT license](https://github.com/jonschlinkert/randomatic/blob/master/LICENSE).
+Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
***
-_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on November 24, 2016._ \ No newline at end of file
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 09, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/randomatic/index.js b/node_modules/nyc/node_modules/randomatic/index.js
index 85dbe21ca..4681b03e7 100644
--- a/node_modules/nyc/node_modules/randomatic/index.js
+++ b/node_modules/nyc/node_modules/randomatic/index.js
@@ -1,9 +1,8 @@
/*!
* randomatic <https://github.com/jonschlinkert/randomatic>
*
- * This was originally inspired by <http://stackoverflow.com/a/10727155/1267639>
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License (MIT)
+ * Copyright (c) 2014-2017, Jon Schlinkert.
+ * Released under the MIT License.
*/
'use strict';
@@ -28,7 +27,7 @@ var type = {
special: '~!@#$%^&()_+-={}[];\',.'
};
-type.all = type.lower + type.upper + type.number;
+type.all = type.lower + type.upper + type.number + type.special;
/**
* Generate random character sequences of a specified `length`,
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/LICENSE b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/LICENSE
new file mode 100644
index 000000000..842218cf0
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2016, Jon Schlinkert
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/README.md b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/README.md
new file mode 100644
index 000000000..281165dce
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/README.md
@@ -0,0 +1,115 @@
+# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-number)
+
+> Returns true if the value is a number. comprehensive tests.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save is-number
+```
+
+## Usage
+
+To understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81).
+
+```js
+var isNumber = require('is-number');
+```
+
+### true
+
+See the [tests](./test.js) for more examples.
+
+```js
+isNumber(5e3) //=> 'true'
+isNumber(0xff) //=> 'true'
+isNumber(-1.1) //=> 'true'
+isNumber(0) //=> 'true'
+isNumber(1) //=> 'true'
+isNumber(1.1) //=> 'true'
+isNumber(10) //=> 'true'
+isNumber(10.10) //=> 'true'
+isNumber(100) //=> 'true'
+isNumber('-1.1') //=> 'true'
+isNumber('0') //=> 'true'
+isNumber('012') //=> 'true'
+isNumber('0xff') //=> 'true'
+isNumber('1') //=> 'true'
+isNumber('1.1') //=> 'true'
+isNumber('10') //=> 'true'
+isNumber('10.10') //=> 'true'
+isNumber('100') //=> 'true'
+isNumber('5e3') //=> 'true'
+isNumber(parseInt('012')) //=> 'true'
+isNumber(parseFloat('012')) //=> 'true'
+```
+
+### False
+
+See the [tests](./test.js) for more examples.
+
+```js
+isNumber('foo') //=> 'false'
+isNumber([1]) //=> 'false'
+isNumber([]) //=> 'false'
+isNumber(function () {}) //=> 'false'
+isNumber(Infinity) //=> 'false'
+isNumber(NaN) //=> 'false'
+isNumber(new Array('abc')) //=> 'false'
+isNumber(new Array(2)) //=> 'false'
+isNumber(new Buffer('abc')) //=> 'false'
+isNumber(null) //=> 'false'
+isNumber(undefined) //=> 'false'
+isNumber({abc: 'abc'}) //=> 'false'
+```
+
+## About
+
+### Related projects
+
+* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even "Get the even numbered items from an array.")
+* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even "Return true if the given number is even.")
+* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd "Returns true if the given number is odd.")
+* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
+* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.")
+* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd "Get the odd numbered items from an array.")
+
+### Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+### Building docs
+
+_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_
+
+To generate the readme and API documentation with [verb](https://github.com/verbose/verb):
+
+```sh
+$ npm install -g verb verb-generate-readme && verb
+```
+
+### Running tests
+
+Install dev dependencies:
+
+```sh
+$ npm install -d && npm test
+```
+
+### Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+
+### License
+
+Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT license](https://github.com/jonschlinkert/is-number/blob/master/LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 10, 2016._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/index.js b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/index.js
new file mode 100644
index 000000000..7a2a45bed
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/index.js
@@ -0,0 +1,22 @@
+/*!
+ * is-number <https://github.com/jonschlinkert/is-number>
+ *
+ * Copyright (c) 2014-2015, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+'use strict';
+
+var typeOf = require('kind-of');
+
+module.exports = function isNumber(num) {
+ var type = typeOf(num);
+
+ if (type === 'string') {
+ if (!num.trim()) return false;
+ } else if (type !== 'number') {
+ return false;
+ }
+
+ return (num - num + 1) >= 0;
+};
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/LICENSE b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/LICENSE
new file mode 100644
index 000000000..d734237bd
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2017, Jon Schlinkert
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/README.md b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/README.md
new file mode 100644
index 000000000..6a9df36d3
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/README.md
@@ -0,0 +1,261 @@
+# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
+
+> Get the native type of a value.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save kind-of
+```
+
+## Install
+
+Install with [bower](https://bower.io/)
+
+```sh
+$ bower install kind-of --save
+```
+
+## Usage
+
+> es5, browser and es6 ready
+
+```js
+var kindOf = require('kind-of');
+
+kindOf(undefined);
+//=> 'undefined'
+
+kindOf(null);
+//=> 'null'
+
+kindOf(true);
+//=> 'boolean'
+
+kindOf(false);
+//=> 'boolean'
+
+kindOf(new Boolean(true));
+//=> 'boolean'
+
+kindOf(new Buffer(''));
+//=> 'buffer'
+
+kindOf(42);
+//=> 'number'
+
+kindOf(new Number(42));
+//=> 'number'
+
+kindOf('str');
+//=> 'string'
+
+kindOf(new String('str'));
+//=> 'string'
+
+kindOf(arguments);
+//=> 'arguments'
+
+kindOf({});
+//=> 'object'
+
+kindOf(Object.create(null));
+//=> 'object'
+
+kindOf(new Test());
+//=> 'object'
+
+kindOf(new Date());
+//=> 'date'
+
+kindOf([]);
+//=> 'array'
+
+kindOf([1, 2, 3]);
+//=> 'array'
+
+kindOf(new Array());
+//=> 'array'
+
+kindOf(/foo/);
+//=> 'regexp'
+
+kindOf(new RegExp('foo'));
+//=> 'regexp'
+
+kindOf(function () {});
+//=> 'function'
+
+kindOf(function * () {});
+//=> 'function'
+
+kindOf(new Function());
+//=> 'function'
+
+kindOf(new Map());
+//=> 'map'
+
+kindOf(new WeakMap());
+//=> 'weakmap'
+
+kindOf(new Set());
+//=> 'set'
+
+kindOf(new WeakSet());
+//=> 'weakset'
+
+kindOf(Symbol('str'));
+//=> 'symbol'
+
+kindOf(new Int8Array());
+//=> 'int8array'
+
+kindOf(new Uint8Array());
+//=> 'uint8array'
+
+kindOf(new Uint8ClampedArray());
+//=> 'uint8clampedarray'
+
+kindOf(new Int16Array());
+//=> 'int16array'
+
+kindOf(new Uint16Array());
+//=> 'uint16array'
+
+kindOf(new Int32Array());
+//=> 'int32array'
+
+kindOf(new Uint32Array());
+//=> 'uint32array'
+
+kindOf(new Float32Array());
+//=> 'float32array'
+
+kindOf(new Float64Array());
+//=> 'float64array'
+```
+
+## Benchmarks
+
+Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
+Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
+
+```bash
+#1: array
+ current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
+ lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
+ lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
+
+#2: boolean
+ current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
+ lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
+ lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
+
+#3: date
+ current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
+ lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
+ lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
+
+#4: function
+ current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
+ lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
+ lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
+
+#5: null
+ current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
+ lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
+ lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
+
+#6: number
+ current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
+ lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
+ lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
+
+#7: object
+ current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
+ lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
+ lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
+
+#8: regex
+ current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
+ lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
+ lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
+
+#9: string
+ current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
+ lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
+ lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
+
+#10: undef
+ current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
+ lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
+ lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
+
+```
+
+## Optimizations
+
+In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
+
+1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
+2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
+3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
+
+## About
+
+### Related projects
+
+* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
+* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
+* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
+
+### Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 59 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 2 | [miguelmota](https://github.com/miguelmota) |
+| 1 | [dtothefp](https://github.com/dtothefp) |
+| 1 | [ksheedlo](https://github.com/ksheedlo) |
+| 1 | [pdehaan](https://github.com/pdehaan) |
+| 1 | [laggingreflex](https://github.com/laggingreflex) |
+
+### Building docs
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
+
+```sh
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
+```
+
+### Running tests
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
+
+```sh
+$ npm install && npm test
+```
+
+### Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
+
+### License
+
+Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js
new file mode 100644
index 000000000..b52c2917f
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js
@@ -0,0 +1,116 @@
+var isBuffer = require('is-buffer');
+var toString = Object.prototype.toString;
+
+/**
+ * Get the native `typeof` a value.
+ *
+ * @param {*} `val`
+ * @return {*} Native javascript type
+ */
+
+module.exports = function kindOf(val) {
+ // primitivies
+ if (typeof val === 'undefined') {
+ return 'undefined';
+ }
+ if (val === null) {
+ return 'null';
+ }
+ if (val === true || val === false || val instanceof Boolean) {
+ return 'boolean';
+ }
+ if (typeof val === 'string' || val instanceof String) {
+ return 'string';
+ }
+ if (typeof val === 'number' || val instanceof Number) {
+ return 'number';
+ }
+
+ // functions
+ if (typeof val === 'function' || val instanceof Function) {
+ return 'function';
+ }
+
+ // array
+ if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
+ return 'array';
+ }
+
+ // check for instances of RegExp and Date before calling `toString`
+ if (val instanceof RegExp) {
+ return 'regexp';
+ }
+ if (val instanceof Date) {
+ return 'date';
+ }
+
+ // other objects
+ var type = toString.call(val);
+
+ if (type === '[object RegExp]') {
+ return 'regexp';
+ }
+ if (type === '[object Date]') {
+ return 'date';
+ }
+ if (type === '[object Arguments]') {
+ return 'arguments';
+ }
+ if (type === '[object Error]') {
+ return 'error';
+ }
+
+ // buffer
+ if (isBuffer(val)) {
+ return 'buffer';
+ }
+
+ // es6: Map, WeakMap, Set, WeakSet
+ if (type === '[object Set]') {
+ return 'set';
+ }
+ if (type === '[object WeakSet]') {
+ return 'weakset';
+ }
+ if (type === '[object Map]') {
+ return 'map';
+ }
+ if (type === '[object WeakMap]') {
+ return 'weakmap';
+ }
+ if (type === '[object Symbol]') {
+ return 'symbol';
+ }
+
+ // typed arrays
+ if (type === '[object Int8Array]') {
+ return 'int8array';
+ }
+ if (type === '[object Uint8Array]') {
+ return 'uint8array';
+ }
+ if (type === '[object Uint8ClampedArray]') {
+ return 'uint8clampedarray';
+ }
+ if (type === '[object Int16Array]') {
+ return 'int16array';
+ }
+ if (type === '[object Uint16Array]') {
+ return 'uint16array';
+ }
+ if (type === '[object Int32Array]') {
+ return 'int32array';
+ }
+ if (type === '[object Uint32Array]') {
+ return 'uint32array';
+ }
+ if (type === '[object Float32Array]') {
+ return 'float32array';
+ }
+ if (type === '[object Float64Array]') {
+ return 'float64array';
+ }
+
+ // must be a plain object
+ return 'object';
+};
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json
new file mode 100644
index 000000000..7ac1ba9f2
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json
@@ -0,0 +1,191 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "kind-of@^3.0.2",
+ "scope": null,
+ "escapedName": "kind-of",
+ "name": "kind-of",
+ "rawSpec": "^3.0.2",
+ "spec": ">=3.0.2 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/align-text"
+ ],
+ [
+ {
+ "raw": "kind-of@^3.0.2",
+ "scope": null,
+ "escapedName": "kind-of",
+ "name": "kind-of",
+ "rawSpec": "^3.0.2",
+ "spec": ">=3.0.2 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic/node_modules/is-number"
+ ]
+ ],
+ "_from": "kind-of@^3.0.2",
+ "_id": "kind-of@3.2.2",
+ "_inCache": true,
+ "_location": "/randomatic/is-number/kind-of",
+ "_nodeVersion": "7.7.3",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/kind-of-3.2.2.tgz_1494958899918_0.23780996026471257"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "4.5.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "kind-of@^3.0.2",
+ "scope": null,
+ "escapedName": "kind-of",
+ "name": "kind-of",
+ "rawSpec": "^3.0.2",
+ "spec": ">=3.0.2 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/randomatic/is-number"
+ ],
+ "_resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "_shasum": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
+ "_shrinkwrap": null,
+ "_spec": "kind-of@^3.0.2",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic/node_modules/is-number",
+ "author": {
+ "name": "Jon Schlinkert",
+ "url": "https://github.com/jonschlinkert"
+ },
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/kind-of/issues"
+ },
+ "contributors": [
+ {
+ "name": "David Fox-Powell",
+ "url": "https://dtothefp.github.io/me"
+ },
+ {
+ "name": "Jon Schlinkert",
+ "url": "http://twitter.com/jonschlinkert"
+ },
+ {
+ "name": "Ken Sheedlo",
+ "url": "kensheedlo.com"
+ },
+ {
+ "name": "laggingreflex",
+ "url": "https://github.com/laggingreflex"
+ },
+ {
+ "name": "Miguel Mota",
+ "url": "https://miguelmota.com"
+ },
+ {
+ "name": "Peter deHaan",
+ "url": "http://about.me/peterdehaan"
+ }
+ ],
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "description": "Get the native type of a value.",
+ "devDependencies": {
+ "ansi-bold": "^0.1.1",
+ "benchmarked": "^1.0.0",
+ "browserify": "^14.3.0",
+ "glob": "^7.1.1",
+ "gulp-format-md": "^0.1.12",
+ "mocha": "^3.3.0",
+ "type-of": "^2.0.1",
+ "typeof": "^1.0.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "31ea21a734bab9bbb0f32466d893aea51e4a3c64",
+ "tarball": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "0ffe67cf12f5396047c1bacf04232b7deeb24063",
+ "homepage": "https://github.com/jonschlinkert/kind-of",
+ "keywords": [
+ "arguments",
+ "array",
+ "boolean",
+ "check",
+ "date",
+ "function",
+ "is",
+ "is-type",
+ "is-type-of",
+ "kind",
+ "kind-of",
+ "number",
+ "object",
+ "of",
+ "regexp",
+ "string",
+ "test",
+ "type",
+ "type-of",
+ "typeof",
+ "types"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ }
+ ],
+ "name": "kind-of",
+ "optionalDependencies": {},
+ "readme": "# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)\n\n> Get the native type of a value.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save kind-of\n```\n\n## Install\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install kind-of --save\n```\n\n## Usage\n\n> es5, browser and es6 ready\n\n```js\nvar kindOf = require('kind-of');\n\nkindOf(undefined);\n//=> 'undefined'\n\nkindOf(null);\n//=> 'null'\n\nkindOf(true);\n//=> 'boolean'\n\nkindOf(false);\n//=> 'boolean'\n\nkindOf(new Boolean(true));\n//=> 'boolean'\n\nkindOf(new Buffer(''));\n//=> 'buffer'\n\nkindOf(42);\n//=> 'number'\n\nkindOf(new Number(42));\n//=> 'number'\n\nkindOf('str');\n//=> 'string'\n\nkindOf(new String('str'));\n//=> 'string'\n\nkindOf(arguments);\n//=> 'arguments'\n\nkindOf({});\n//=> 'object'\n\nkindOf(Object.create(null));\n//=> 'object'\n\nkindOf(new Test());\n//=> 'object'\n\nkindOf(new Date());\n//=> 'date'\n\nkindOf([]);\n//=> 'array'\n\nkindOf([1, 2, 3]);\n//=> 'array'\n\nkindOf(new Array());\n//=> 'array'\n\nkindOf(/foo/);\n//=> 'regexp'\n\nkindOf(new RegExp('foo'));\n//=> 'regexp'\n\nkindOf(function () {});\n//=> 'function'\n\nkindOf(function * () {});\n//=> 'function'\n\nkindOf(new Function());\n//=> 'function'\n\nkindOf(new Map());\n//=> 'map'\n\nkindOf(new WeakMap());\n//=> 'weakmap'\n\nkindOf(new Set());\n//=> 'set'\n\nkindOf(new WeakSet());\n//=> 'weakset'\n\nkindOf(Symbol('str'));\n//=> 'symbol'\n\nkindOf(new Int8Array());\n//=> 'int8array'\n\nkindOf(new Uint8Array());\n//=> 'uint8array'\n\nkindOf(new Uint8ClampedArray());\n//=> 'uint8clampedarray'\n\nkindOf(new Int16Array());\n//=> 'int16array'\n\nkindOf(new Uint16Array());\n//=> 'uint16array'\n\nkindOf(new Int32Array());\n//=> 'int32array'\n\nkindOf(new Uint32Array());\n//=> 'uint32array'\n\nkindOf(new Float32Array());\n//=> 'float32array'\n\nkindOf(new Float64Array());\n//=> 'float64array'\n```\n\n## Benchmarks\n\nBenchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).\nNote that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.\n\n```bash\n#1: array\n current x 23,329,397 ops/sec ±0.82% (94 runs sampled)\n lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)\n lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)\n\n#2: boolean\n current x 27,197,115 ops/sec ±0.85% (94 runs sampled)\n lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)\n lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)\n\n#3: date\n current x 20,190,117 ops/sec ±0.86% (92 runs sampled)\n lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)\n lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)\n\n#4: function\n current x 23,855,460 ops/sec ±0.60% (97 runs sampled)\n lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)\n lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)\n\n#5: null\n current x 27,061,047 ops/sec ±0.97% (96 runs sampled)\n lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)\n lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)\n\n#6: number\n current x 25,075,682 ops/sec ±0.53% (99 runs sampled)\n lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)\n lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)\n\n#7: object\n current x 3,348,980 ops/sec ±0.49% (99 runs sampled)\n lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)\n lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)\n\n#8: regex\n current x 21,284,827 ops/sec ±0.72% (96 runs sampled)\n lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)\n lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)\n\n#9: string\n current x 25,379,234 ops/sec ±0.58% (96 runs sampled)\n lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)\n lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)\n\n#10: undef\n current x 27,459,221 ops/sec ±1.01% (93 runs sampled)\n lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)\n lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)\n\n```\n\n## Optimizations\n\nIn 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:\n\n1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.\n2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.\n3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`\n\n## About\n\n### Related projects\n\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number \"Returns true if the value is a number. comprehensive tests.\")\n* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive \"Returns `true` if the value is a primitive. \")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 59 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [miguelmota](https://github.com/miguelmota) |\n| 1 | [dtothefp](https://github.com/dtothefp) |\n| 1 | [ksheedlo](https://github.com/ksheedlo) |\n| 1 | [pdehaan](https://github.com/pdehaan) |\n| 1 | [laggingreflex](https://github.com/laggingreflex) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 16, 2017._",
+ "readmeFilename": "README.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jonschlinkert/kind-of.git"
+ },
+ "scripts": {
+ "prepublish": "browserify -o browser.js -e index.js -s index --bare",
+ "test": "mocha"
+ },
+ "verb": {
+ "related": {
+ "list": [
+ "is-glob",
+ "is-number",
+ "is-primitive"
+ ]
+ },
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
+ },
+ "reflinks": [
+ "verb"
+ ]
+ },
+ "version": "3.2.2"
+}
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/is-number/package.json b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/package.json
new file mode 100644
index 000000000..b3b043d41
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/is-number/package.json
@@ -0,0 +1,163 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "is-number@^3.0.0",
+ "scope": null,
+ "escapedName": "is-number",
+ "name": "is-number",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic"
+ ]
+ ],
+ "_from": "is-number@>=3.0.0 <4.0.0",
+ "_id": "is-number@3.0.0",
+ "_inCache": true,
+ "_location": "/randomatic/is-number",
+ "_nodeVersion": "6.3.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/is-number-3.0.0.tgz_1473555089490_0.21388969756662846"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "3.10.3",
+ "_phantomChildren": {
+ "is-buffer": "1.1.5"
+ },
+ "_requested": {
+ "raw": "is-number@^3.0.0",
+ "scope": null,
+ "escapedName": "is-number",
+ "name": "is-number",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/randomatic"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "_shasum": "24fd6201a4782cf50561c810276afc7d12d71195",
+ "_shrinkwrap": null,
+ "_spec": "is-number@^3.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic",
+ "author": {
+ "name": "Jon Schlinkert",
+ "url": "https://github.com/jonschlinkert"
+ },
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/is-number/issues"
+ },
+ "contributors": [
+ {
+ "name": "Charlike Mike Reagent",
+ "url": "http://www.tunnckocore.tk"
+ },
+ {
+ "name": "Jon Schlinkert",
+ "email": "jon.schlinkert@sellside.com",
+ "url": "http://twitter.com/jonschlinkert"
+ }
+ ],
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "description": "Returns true if the value is a number. comprehensive tests.",
+ "devDependencies": {
+ "benchmarked": "^0.2.5",
+ "chalk": "^1.1.3",
+ "gulp-format-md": "^0.1.10",
+ "mocha": "^3.0.2"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "24fd6201a4782cf50561c810276afc7d12d71195",
+ "tarball": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "af885e2e890b9ef0875edd2b117305119ee5bdc5",
+ "homepage": "https://github.com/jonschlinkert/is-number",
+ "keywords": [
+ "check",
+ "coerce",
+ "coercion",
+ "integer",
+ "is",
+ "is-nan",
+ "is-num",
+ "is-number",
+ "istype",
+ "kind",
+ "math",
+ "nan",
+ "num",
+ "number",
+ "numeric",
+ "test",
+ "type",
+ "typeof",
+ "value"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ }
+ ],
+ "name": "is-number",
+ "optionalDependencies": {},
+ "readme": "# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-number)\n\n> Returns true if the value is a number. comprehensive tests.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save is-number\n```\n\n## Usage\n\nTo understand some of the rationale behind the decisions made in this library (and to learn about some oddities of number evaluation in JavaScript), [see this gist](https://gist.github.com/jonschlinkert/e30c70c713da325d0e81).\n\n```js\nvar isNumber = require('is-number');\n```\n\n### true\n\nSee the [tests](./test.js) for more examples.\n\n```js\nisNumber(5e3) //=> 'true'\nisNumber(0xff) //=> 'true'\nisNumber(-1.1) //=> 'true'\nisNumber(0) //=> 'true'\nisNumber(1) //=> 'true'\nisNumber(1.1) //=> 'true'\nisNumber(10) //=> 'true'\nisNumber(10.10) //=> 'true'\nisNumber(100) //=> 'true'\nisNumber('-1.1') //=> 'true'\nisNumber('0') //=> 'true'\nisNumber('012') //=> 'true'\nisNumber('0xff') //=> 'true'\nisNumber('1') //=> 'true'\nisNumber('1.1') //=> 'true'\nisNumber('10') //=> 'true'\nisNumber('10.10') //=> 'true'\nisNumber('100') //=> 'true'\nisNumber('5e3') //=> 'true'\nisNumber(parseInt('012')) //=> 'true'\nisNumber(parseFloat('012')) //=> 'true'\n```\n\n### False\n\nSee the [tests](./test.js) for more examples.\n\n```js\nisNumber('foo') //=> 'false'\nisNumber([1]) //=> 'false'\nisNumber([]) //=> 'false'\nisNumber(function () {}) //=> 'false'\nisNumber(Infinity) //=> 'false'\nisNumber(NaN) //=> 'false'\nisNumber(new Array('abc')) //=> 'false'\nisNumber(new Array(2)) //=> 'false'\nisNumber(new Buffer('abc')) //=> 'false'\nisNumber(null) //=> 'false'\nisNumber(undefined) //=> 'false'\nisNumber({abc: 'abc'}) //=> 'false'\n```\n\n## About\n\n### Related projects\n\n* [even](https://www.npmjs.com/package/even): Get the even numbered items from an array. | [homepage](https://github.com/jonschlinkert/even \"Get the even numbered items from an array.\")\n* [is-even](https://www.npmjs.com/package/is-even): Return true if the given number is even. | [homepage](https://github.com/jonschlinkert/is-even \"Return true if the given number is even.\")\n* [is-odd](https://www.npmjs.com/package/is-odd): Returns true if the given number is odd. | [homepage](https://github.com/jonschlinkert/is-odd \"Returns true if the given number is odd.\")\n* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive \"Returns `true` if the value is a primitive. \")\n* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of \"Get the native type of a value.\")\n* [odd](https://www.npmjs.com/package/odd): Get the odd numbered items from an array. | [homepage](https://github.com/jonschlinkert/odd \"Get the odd numbered items from an array.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Building docs\n\n_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_\n\nTo generate the readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install -g verb verb-generate-readme && verb\n```\n\n### Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT license](https://github.com/jonschlinkert/is-number/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 10, 2016._",
+ "readmeFilename": "README.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jonschlinkert/is-number.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "verb": {
+ "related": {
+ "list": [
+ "even",
+ "is-even",
+ "is-odd",
+ "is-primitive",
+ "kind-of",
+ "odd"
+ ]
+ },
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
+ },
+ "reflinks": [
+ "verb",
+ "verb-generate-readme"
+ ]
+ },
+ "version": "3.0.0"
+}
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/LICENSE b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/LICENSE
new file mode 100644
index 000000000..d734237bd
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2017, Jon Schlinkert
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/README.md b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/README.md
new file mode 100644
index 000000000..83469b0b6
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/README.md
@@ -0,0 +1,267 @@
+# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)
+
+> Get the native type of a value.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install --save kind-of
+```
+
+Install with [bower](https://bower.io/)
+
+```sh
+$ bower install kind-of --save
+```
+
+## Usage
+
+> es5, browser and es6 ready
+
+```js
+var kindOf = require('kind-of');
+
+kindOf(undefined);
+//=> 'undefined'
+
+kindOf(null);
+//=> 'null'
+
+kindOf(true);
+//=> 'boolean'
+
+kindOf(false);
+//=> 'boolean'
+
+kindOf(new Boolean(true));
+//=> 'boolean'
+
+kindOf(new Buffer(''));
+//=> 'buffer'
+
+kindOf(42);
+//=> 'number'
+
+kindOf(new Number(42));
+//=> 'number'
+
+kindOf('str');
+//=> 'string'
+
+kindOf(new String('str'));
+//=> 'string'
+
+kindOf(arguments);
+//=> 'arguments'
+
+kindOf({});
+//=> 'object'
+
+kindOf(Object.create(null));
+//=> 'object'
+
+kindOf(new Test());
+//=> 'object'
+
+kindOf(new Date());
+//=> 'date'
+
+kindOf([]);
+//=> 'array'
+
+kindOf([1, 2, 3]);
+//=> 'array'
+
+kindOf(new Array());
+//=> 'array'
+
+kindOf(/foo/);
+//=> 'regexp'
+
+kindOf(new RegExp('foo'));
+//=> 'regexp'
+
+kindOf(function () {});
+//=> 'function'
+
+kindOf(function * () {});
+//=> 'function'
+
+kindOf(new Function());
+//=> 'function'
+
+kindOf(new Map());
+//=> 'map'
+
+kindOf(new WeakMap());
+//=> 'weakmap'
+
+kindOf(new Set());
+//=> 'set'
+
+kindOf(new WeakSet());
+//=> 'weakset'
+
+kindOf(Symbol('str'));
+//=> 'symbol'
+
+kindOf(new Int8Array());
+//=> 'int8array'
+
+kindOf(new Uint8Array());
+//=> 'uint8array'
+
+kindOf(new Uint8ClampedArray());
+//=> 'uint8clampedarray'
+
+kindOf(new Int16Array());
+//=> 'int16array'
+
+kindOf(new Uint16Array());
+//=> 'uint16array'
+
+kindOf(new Int32Array());
+//=> 'int32array'
+
+kindOf(new Uint32Array());
+//=> 'uint32array'
+
+kindOf(new Float32Array());
+//=> 'float32array'
+
+kindOf(new Float64Array());
+//=> 'float64array'
+```
+
+## Benchmarks
+
+Benchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).
+Note that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.
+
+```bash
+#1: array
+ current x 23,329,397 ops/sec ±0.82% (94 runs sampled)
+ lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)
+ lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)
+
+#2: boolean
+ current x 27,197,115 ops/sec ±0.85% (94 runs sampled)
+ lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)
+ lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)
+
+#3: date
+ current x 20,190,117 ops/sec ±0.86% (92 runs sampled)
+ lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)
+ lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)
+
+#4: function
+ current x 23,855,460 ops/sec ±0.60% (97 runs sampled)
+ lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)
+ lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)
+
+#5: null
+ current x 27,061,047 ops/sec ±0.97% (96 runs sampled)
+ lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)
+ lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)
+
+#6: number
+ current x 25,075,682 ops/sec ±0.53% (99 runs sampled)
+ lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)
+ lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)
+
+#7: object
+ current x 3,348,980 ops/sec ±0.49% (99 runs sampled)
+ lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)
+ lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)
+
+#8: regex
+ current x 21,284,827 ops/sec ±0.72% (96 runs sampled)
+ lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)
+ lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)
+
+#9: string
+ current x 25,379,234 ops/sec ±0.58% (96 runs sampled)
+ lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)
+ lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)
+
+#10: undef
+ current x 27,459,221 ops/sec ±1.01% (93 runs sampled)
+ lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)
+ lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)
+
+```
+
+## Release history
+
+### v4.0.0
+
+**Added**
+
+* `promise` support
+
+## Optimizations
+
+In 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:
+
+1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.
+2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.
+3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`
+
+## About
+
+### Related projects
+
+* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet")
+* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number "Returns true if the value is a number. comprehensive tests.")
+* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ")
+
+### Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
+
+### Contributors
+
+| **Commits** | **Contributor** |
+| --- | --- |
+| 64 | [jonschlinkert](https://github.com/jonschlinkert) |
+| 2 | [miguelmota](https://github.com/miguelmota) |
+| 1 | [dtothefp](https://github.com/dtothefp) |
+| 1 | [ksheedlo](https://github.com/ksheedlo) |
+| 1 | [pdehaan](https://github.com/pdehaan) |
+| 1 | [laggingreflex](https://github.com/laggingreflex) |
+
+### Building docs
+
+_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_
+
+To generate the readme, run the following command:
+
+```sh
+$ npm install -g verbose/verb#dev verb-generate-readme && verb
+```
+
+### Running tests
+
+Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
+
+```sh
+$ npm install && npm test
+```
+
+### Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)
+
+### License
+
+Copyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT License](LICENSE).
+
+***
+
+_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._ \ No newline at end of file
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/index.js b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/index.js
new file mode 100644
index 000000000..4c0233bc7
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/index.js
@@ -0,0 +1,119 @@
+var isBuffer = require('is-buffer');
+var toString = Object.prototype.toString;
+
+/**
+ * Get the native `typeof` a value.
+ *
+ * @param {*} `val`
+ * @return {*} Native javascript type
+ */
+
+module.exports = function kindOf(val) {
+ // primitivies
+ if (typeof val === 'undefined') {
+ return 'undefined';
+ }
+ if (val === null) {
+ return 'null';
+ }
+ if (val === true || val === false || val instanceof Boolean) {
+ return 'boolean';
+ }
+ if (typeof val === 'string' || val instanceof String) {
+ return 'string';
+ }
+ if (typeof val === 'number' || val instanceof Number) {
+ return 'number';
+ }
+
+ // functions
+ if (typeof val === 'function' || val instanceof Function) {
+ return 'function';
+ }
+
+ // array
+ if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
+ return 'array';
+ }
+
+ // check for instances of RegExp and Date before calling `toString`
+ if (val instanceof RegExp) {
+ return 'regexp';
+ }
+ if (val instanceof Date) {
+ return 'date';
+ }
+
+ // other objects
+ var type = toString.call(val);
+
+ if (type === '[object RegExp]') {
+ return 'regexp';
+ }
+ if (type === '[object Date]') {
+ return 'date';
+ }
+ if (type === '[object Arguments]') {
+ return 'arguments';
+ }
+ if (type === '[object Error]') {
+ return 'error';
+ }
+ if (type === '[object Promise]') {
+ return 'promise';
+ }
+
+ // buffer
+ if (isBuffer(val)) {
+ return 'buffer';
+ }
+
+ // es6: Map, WeakMap, Set, WeakSet
+ if (type === '[object Set]') {
+ return 'set';
+ }
+ if (type === '[object WeakSet]') {
+ return 'weakset';
+ }
+ if (type === '[object Map]') {
+ return 'map';
+ }
+ if (type === '[object WeakMap]') {
+ return 'weakmap';
+ }
+ if (type === '[object Symbol]') {
+ return 'symbol';
+ }
+
+ // typed arrays
+ if (type === '[object Int8Array]') {
+ return 'int8array';
+ }
+ if (type === '[object Uint8Array]') {
+ return 'uint8array';
+ }
+ if (type === '[object Uint8ClampedArray]') {
+ return 'uint8clampedarray';
+ }
+ if (type === '[object Int16Array]') {
+ return 'int16array';
+ }
+ if (type === '[object Uint16Array]') {
+ return 'uint16array';
+ }
+ if (type === '[object Int32Array]') {
+ return 'int32array';
+ }
+ if (type === '[object Uint32Array]') {
+ return 'uint32array';
+ }
+ if (type === '[object Float32Array]') {
+ return 'float32array';
+ }
+ if (type === '[object Float64Array]') {
+ return 'float64array';
+ }
+
+ // must be a plain object
+ return 'object';
+};
diff --git a/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/package.json b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/package.json
new file mode 100644
index 000000000..34cbf1de7
--- /dev/null
+++ b/node_modules/nyc/node_modules/randomatic/node_modules/kind-of/package.json
@@ -0,0 +1,179 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "kind-of@^4.0.0",
+ "scope": null,
+ "escapedName": "kind-of",
+ "name": "kind-of",
+ "rawSpec": "^4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic"
+ ]
+ ],
+ "_from": "kind-of@>=4.0.0 <5.0.0",
+ "_id": "kind-of@4.0.0",
+ "_inCache": true,
+ "_location": "/randomatic/kind-of",
+ "_nodeVersion": "7.7.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/kind-of-4.0.0.tgz_1495218191000_0.2416100692935288"
+ },
+ "_npmUser": {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ "_npmVersion": "4.6.1",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "kind-of@^4.0.0",
+ "scope": null,
+ "escapedName": "kind-of",
+ "name": "kind-of",
+ "rawSpec": "^4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/randomatic"
+ ],
+ "_resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "_shasum": "20813df3d712928b207378691a45066fae72dd57",
+ "_shrinkwrap": null,
+ "_spec": "kind-of@^4.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/randomatic",
+ "author": {
+ "name": "Jon Schlinkert",
+ "url": "https://github.com/jonschlinkert"
+ },
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/kind-of/issues"
+ },
+ "contributors": [
+ {
+ "name": "David Fox-Powell",
+ "url": "https://dtothefp.github.io/me"
+ },
+ {
+ "name": "Jon Schlinkert",
+ "url": "http://twitter.com/jonschlinkert"
+ },
+ {
+ "name": "Ken Sheedlo",
+ "url": "kensheedlo.com"
+ },
+ {
+ "name": "laggingreflex",
+ "url": "https://github.com/laggingreflex"
+ },
+ {
+ "name": "Miguel Mota",
+ "url": "https://miguelmota.com"
+ },
+ {
+ "name": "Peter deHaan",
+ "url": "http://about.me/peterdehaan"
+ }
+ ],
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "description": "Get the native type of a value.",
+ "devDependencies": {
+ "ansi-bold": "^0.1.1",
+ "benchmarked": "^1.1.1",
+ "browserify": "^14.3.0",
+ "glob": "^7.1.1",
+ "gulp-format-md": "^0.1.12",
+ "mocha": "^3.4.1",
+ "type-of": "^2.0.1",
+ "typeof": "^1.0.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "20813df3d712928b207378691a45066fae72dd57",
+ "tarball": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "30bee16e8dffa67417ba35d31bd9bc31517a2d83",
+ "homepage": "https://github.com/jonschlinkert/kind-of",
+ "keywords": [
+ "arguments",
+ "array",
+ "boolean",
+ "check",
+ "date",
+ "function",
+ "is",
+ "is-type",
+ "is-type-of",
+ "kind",
+ "kind-of",
+ "number",
+ "object",
+ "of",
+ "regexp",
+ "string",
+ "test",
+ "type",
+ "type-of",
+ "typeof",
+ "types"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "jonschlinkert",
+ "email": "github@sellside.com"
+ },
+ {
+ "name": "doowb",
+ "email": "brian.woodward@gmail.com"
+ }
+ ],
+ "name": "kind-of",
+ "optionalDependencies": {},
+ "readme": "# kind-of [![NPM version](https://img.shields.io/npm/v/kind-of.svg?style=flat)](https://www.npmjs.com/package/kind-of) [![NPM monthly downloads](https://img.shields.io/npm/dm/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![NPM total downloads](https://img.shields.io/npm/dt/kind-of.svg?style=flat)](https://npmjs.org/package/kind-of) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/kind-of.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/kind-of)\n\n> Get the native type of a value.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save kind-of\n```\n\nInstall with [bower](https://bower.io/)\n\n```sh\n$ bower install kind-of --save\n```\n\n## Usage\n\n> es5, browser and es6 ready\n\n```js\nvar kindOf = require('kind-of');\n\nkindOf(undefined);\n//=> 'undefined'\n\nkindOf(null);\n//=> 'null'\n\nkindOf(true);\n//=> 'boolean'\n\nkindOf(false);\n//=> 'boolean'\n\nkindOf(new Boolean(true));\n//=> 'boolean'\n\nkindOf(new Buffer(''));\n//=> 'buffer'\n\nkindOf(42);\n//=> 'number'\n\nkindOf(new Number(42));\n//=> 'number'\n\nkindOf('str');\n//=> 'string'\n\nkindOf(new String('str'));\n//=> 'string'\n\nkindOf(arguments);\n//=> 'arguments'\n\nkindOf({});\n//=> 'object'\n\nkindOf(Object.create(null));\n//=> 'object'\n\nkindOf(new Test());\n//=> 'object'\n\nkindOf(new Date());\n//=> 'date'\n\nkindOf([]);\n//=> 'array'\n\nkindOf([1, 2, 3]);\n//=> 'array'\n\nkindOf(new Array());\n//=> 'array'\n\nkindOf(/foo/);\n//=> 'regexp'\n\nkindOf(new RegExp('foo'));\n//=> 'regexp'\n\nkindOf(function () {});\n//=> 'function'\n\nkindOf(function * () {});\n//=> 'function'\n\nkindOf(new Function());\n//=> 'function'\n\nkindOf(new Map());\n//=> 'map'\n\nkindOf(new WeakMap());\n//=> 'weakmap'\n\nkindOf(new Set());\n//=> 'set'\n\nkindOf(new WeakSet());\n//=> 'weakset'\n\nkindOf(Symbol('str'));\n//=> 'symbol'\n\nkindOf(new Int8Array());\n//=> 'int8array'\n\nkindOf(new Uint8Array());\n//=> 'uint8array'\n\nkindOf(new Uint8ClampedArray());\n//=> 'uint8clampedarray'\n\nkindOf(new Int16Array());\n//=> 'int16array'\n\nkindOf(new Uint16Array());\n//=> 'uint16array'\n\nkindOf(new Int32Array());\n//=> 'int32array'\n\nkindOf(new Uint32Array());\n//=> 'uint32array'\n\nkindOf(new Float32Array());\n//=> 'float32array'\n\nkindOf(new Float64Array());\n//=> 'float64array'\n```\n\n## Benchmarks\n\nBenchmarked against [typeof](http://github.com/CodingFu/typeof) and [type-of](https://github.com/ForbesLindesay/type-of).\nNote that performaces is slower for es6 features `Map`, `WeakMap`, `Set` and `WeakSet`.\n\n```bash\n#1: array\n current x 23,329,397 ops/sec ±0.82% (94 runs sampled)\n lib-type-of x 4,170,273 ops/sec ±0.55% (94 runs sampled)\n lib-typeof x 9,686,935 ops/sec ±0.59% (98 runs sampled)\n\n#2: boolean\n current x 27,197,115 ops/sec ±0.85% (94 runs sampled)\n lib-type-of x 3,145,791 ops/sec ±0.73% (97 runs sampled)\n lib-typeof x 9,199,562 ops/sec ±0.44% (99 runs sampled)\n\n#3: date\n current x 20,190,117 ops/sec ±0.86% (92 runs sampled)\n lib-type-of x 5,166,970 ops/sec ±0.74% (94 runs sampled)\n lib-typeof x 9,610,821 ops/sec ±0.50% (96 runs sampled)\n\n#4: function\n current x 23,855,460 ops/sec ±0.60% (97 runs sampled)\n lib-type-of x 5,667,740 ops/sec ±0.54% (100 runs sampled)\n lib-typeof x 10,010,644 ops/sec ±0.44% (100 runs sampled)\n\n#5: null\n current x 27,061,047 ops/sec ±0.97% (96 runs sampled)\n lib-type-of x 13,965,573 ops/sec ±0.62% (97 runs sampled)\n lib-typeof x 8,460,194 ops/sec ±0.61% (97 runs sampled)\n\n#6: number\n current x 25,075,682 ops/sec ±0.53% (99 runs sampled)\n lib-type-of x 2,266,405 ops/sec ±0.41% (98 runs sampled)\n lib-typeof x 9,821,481 ops/sec ±0.45% (99 runs sampled)\n\n#7: object\n current x 3,348,980 ops/sec ±0.49% (99 runs sampled)\n lib-type-of x 3,245,138 ops/sec ±0.60% (94 runs sampled)\n lib-typeof x 9,262,952 ops/sec ±0.59% (99 runs sampled)\n\n#8: regex\n current x 21,284,827 ops/sec ±0.72% (96 runs sampled)\n lib-type-of x 4,689,241 ops/sec ±0.43% (100 runs sampled)\n lib-typeof x 8,957,593 ops/sec ±0.62% (98 runs sampled)\n\n#9: string\n current x 25,379,234 ops/sec ±0.58% (96 runs sampled)\n lib-type-of x 3,635,148 ops/sec ±0.76% (93 runs sampled)\n lib-typeof x 9,494,134 ops/sec ±0.49% (98 runs sampled)\n\n#10: undef\n current x 27,459,221 ops/sec ±1.01% (93 runs sampled)\n lib-type-of x 14,360,433 ops/sec ±0.52% (99 runs sampled)\n lib-typeof x 23,202,868 ops/sec ±0.59% (94 runs sampled)\n\n```\n\n## Release history\n\n### v4.0.0\n\n**Added**\n\n* `promise` support\n\n## Optimizations\n\nIn 7 out of 8 cases, this library is 2x-10x faster than other top libraries included in the benchmarks. There are a few things that lead to this performance advantage, none of them hard and fast rules, but all of them simple and repeatable in almost any code library:\n\n1. Optimize around the fastest and most common use cases first. Of course, this will change from project-to-project, but I took some time to understand how and why `typeof` checks were being used in my own libraries and other libraries I use a lot.\n2. Optimize around bottlenecks - In other words, the order in which conditionals are implemented is significant, because each check is only as fast as the failing checks that came before it. Here, the biggest bottleneck by far is checking for plain objects (an object that was created by the `Object` constructor). I opted to make this check happen by process of elimination rather than brute force up front (e.g. by using something like `val.constructor.name`), so that every other type check would not be penalized it.\n3. Don't do uneccessary processing - why do `.slice(8, -1).toLowerCase();` just to get the word `regex`? It's much faster to do `if (type === '[object RegExp]') return 'regex'`\n\n## About\n\n### Related projects\n\n* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob \"Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet\")\n* [is-number](https://www.npmjs.com/package/is-number): Returns true if the value is a number. comprehensive tests. | [homepage](https://github.com/jonschlinkert/is-number \"Returns true if the value is a number. comprehensive tests.\")\n* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive \"Returns `true` if the value is a primitive. \")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 64 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 2 | [miguelmota](https://github.com/miguelmota) |\n| 1 | [dtothefp](https://github.com/dtothefp) |\n| 1 | [ksheedlo](https://github.com/ksheedlo) |\n| 1 | [pdehaan](https://github.com/pdehaan) |\n| 1 | [laggingreflex](https://github.com/laggingreflex) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on May 19, 2017._",
+ "readmeFilename": "README.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jonschlinkert/kind-of.git"
+ },
+ "scripts": {
+ "prepublish": "browserify -o browser.js -e index.js -s index --bare",
+ "test": "mocha"
+ },
+ "verb": {
+ "related": {
+ "list": [
+ "is-glob",
+ "is-number",
+ "is-primitive"
+ ]
+ },
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "lint": {
+ "reflinks": true
+ },
+ "reflinks": [
+ "verb"
+ ]
+ },
+ "version": "4.0.0"
+}
diff --git a/node_modules/nyc/node_modules/randomatic/package.json b/node_modules/nyc/node_modules/randomatic/package.json
index 735fb1a83..3ee393547 100644
--- a/node_modules/nyc/node_modules/randomatic/package.json
+++ b/node_modules/nyc/node_modules/randomatic/package.json
@@ -10,24 +10,26 @@
"spec": ">=1.1.3 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/fill-range"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range"
]
],
"_from": "randomatic@>=1.1.3 <2.0.0",
- "_id": "randomatic@1.1.6",
+ "_id": "randomatic@1.1.7",
"_inCache": true,
"_location": "/randomatic",
- "_nodeVersion": "6.7.0",
+ "_nodeVersion": "7.7.3",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/randomatic-1.1.6.tgz_1480022662943_0.08446102566085756"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/randomatic-1.1.7.tgz_1497052370312_0.7579707570839673"
},
"_npmUser": {
"name": "jonschlinkert",
"email": "github@sellside.com"
},
- "_npmVersion": "3.10.3",
- "_phantomChildren": {},
+ "_npmVersion": "5.0.3",
+ "_phantomChildren": {
+ "is-buffer": "1.1.5"
+ },
"_requested": {
"raw": "randomatic@^1.1.3",
"scope": null,
@@ -40,11 +42,11 @@
"_requiredBy": [
"/fill-range"
],
- "_resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
- "_shasum": "110dcabff397e9dcff7c0789ccc0a49adf1ec5bb",
+ "_resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
+ "_shasum": "c7abe9cc8b87c0baa876b19fde83fd464797e38c",
"_shrinkwrap": null,
"_spec": "randomatic@^1.1.3",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/fill-range",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/fill-range",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
@@ -52,23 +54,46 @@
"bugs": {
"url": "https://github.com/jonschlinkert/randomatic/issues"
},
+ "contributors": [
+ {
+ "name": "Bogdan Chadkin",
+ "url": "https://github.com/TrySound"
+ },
+ {
+ "name": "Dragos Fotescu",
+ "url": "http://dragosfotescu.com"
+ },
+ {
+ "name": "Jon Schlinkert",
+ "url": "http://twitter.com/jonschlinkert"
+ },
+ {
+ "name": "Paul Miller",
+ "url": "paulmillr.com"
+ },
+ {
+ "name": "Sun Knudsen",
+ "url": "http://sunknudsen.com"
+ }
+ ],
"dependencies": {
- "is-number": "^2.0.2",
- "kind-of": "^3.0.2"
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
},
"description": "Generate randomized strings of a specified length, fast. Only the length is necessary, but you can optionally generate patterns using any combination of numeric, alpha-numeric, alphabetical, special or custom characters.",
"devDependencies": {
"ansi-bold": "^0.1.1",
- "benchmarked": "^0.1.4",
- "glob": "^5.0.15",
- "gulp-format-md": "^0.1.11",
- "mocha": "*",
- "should": "*"
+ "benchmarked": "^1.1.1",
+ "glob": "^7.1.2",
+ "gulp-format-md": "^0.1.12",
+ "mocha": "^3.4.2",
+ "should": "^11.2.1"
},
"directories": {},
"dist": {
- "shasum": "110dcabff397e9dcff7c0789ccc0a49adf1ec5bb",
- "tarball": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz"
+ "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "shasum": "c7abe9cc8b87c0baa876b19fde83fd464797e38c",
+ "tarball": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz"
},
"engines": {
"node": ">= 0.10.0"
@@ -76,7 +101,7 @@
"files": [
"index.js"
],
- "gitHead": "80065df04deaa8f7a405d2689aaaef57117c6a94",
+ "gitHead": "d91c5f90e785db08a9b9e518926b444671092f26",
"homepage": "https://github.com/jonschlinkert/randomatic",
"keywords": [
"alpha",
@@ -105,7 +130,7 @@
],
"name": "randomatic",
"optionalDependencies": {},
- "readme": "# randomatic [![NPM version](https://img.shields.io/npm/v/randomatic.svg?style=flat)](https://www.npmjs.com/package/randomatic) [![NPM monthly downloads](https://img.shields.io/npm/dm/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![NPM total downloads](https://img.shields.io/npm/dt/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/randomatic.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/randomatic)\n\n> Generate randomized strings of a specified length, fast. Only the length is necessary, but you can optionally generate patterns using any combination of numeric, alpha-numeric, alphabetical, special or custom characters.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save randomatic\n```\n\n## Usage\n\n```js\nvar randomize = require('randomatic');\n```\n\n## API\n\n```js\nrandomize(pattern, length, options);\n```\n\n* `pattern` **{String}**: The pattern to use for randomizing\n* `length` **{Object}**: The length of the string to generate\n\n### pattern\n\n> The pattern to use for randomizing\n\nPatterns can contain any combination of the below characters, specified in any order.\n\n**Example:**\n\nTo generate a 10-character randomized string using all available characters:\n\n```js\nrandomize('*', 10);\n//=>\n\nrandomize('Aa0!', 10);\n//=>\n```\n\n* `a`: Lowercase alpha characters (`abcdefghijklmnopqrstuvwxyz'`)\n* `A`: Uppercase alpha characters (`ABCDEFGHIJKLMNOPQRSTUVWXYZ'`)\n* `0`: Numeric characters (`0123456789'`)\n* `!`: Special characters (`~!@#$%^&()_+-={}[];\\',.`)\n* `*`: All characters (all of the above combined)\n* `?`: Custom characters (pass a string of custom characters to the options)\n\n### length\n\n> the length of the string to generate\n\n**Examples:**\n\n* `randomize('A', 5)` will generate a 5-character, uppercase, alphabetical, randomized string, e.g. `KDJWJ`.\n* `randomize('0', 2)` will generate a 2-digit random number\n* `randomize('0', 3)` will generate a 3-digit random number\n* `randomize('0', 12)` will generate a 12-digit random number\n* `randomize('A0', 16)` will generate a 16-character, alpha-numeric randomized string\n\nIf `length` is left undefined, the length of the pattern in the first parameter will be used. For example:\n\n* `randomize('00')` will generate a 2-digit random number\n* `randomize('000')` will generate a 3-digit random number\n* `randomize('0000')` will generate a 4-digit random number...\n* `randomize('AAAAA')` will generate a 5-character, uppercase alphabetical random string...\n\nThese are just examples, [see the tests](./test.js) for more use cases and examples.\n\n#### chars\n\nType: `String`\n\nDefault: `undefined`\n\nDefine a custom string to be randomized.\n\n**Example:**\n\n* `randomize('?', 20, {chars: 'jonschlinkert'})` will generate a 20-character randomized string from the letters contained in `jonschlinkert`.\n* `randomize('?', {chars: 'jonschlinkert'})` will generate a 13-character randomized string from the letters contained in `jonschlinkert`.\n\n## Usage Examples\n\n* `randomize('A', 4)` (_whitespace insenstive_) would result in randomized 4-digit uppercase letters, like, `ZAKH`, `UJSL`... etc.\n* `randomize('AAAA')` is equivelant to `randomize('A', 4)`\n* `randomize('AAA0')` and `randomize('AA00')` and `randomize('A0A0')` are equivelant to `randomize('A0', 4)`\n* `randomize('aa')`: results in double-digit, randomized, lower-case letters (`abcdefghijklmnopqrstuvwxyz`)\n* `randomize('AAA')`: results in triple-digit, randomized, upper-case letters (`ABCDEFGHIJKLMNOPQRSTUVWXYZ`)\n* `randomize('0', 6)`: results in six-digit, randomized nubmers (`0123456789`)\n* `randomize('!', 5)`: results in single-digit randomized, _valid_ non-letter characters (`~!@#$%^&()_+-={}[];\\',.`)\n* `randomize('A!a0', 9)`: results in nine-digit, randomized characters (any of the above)\n\n_The order in which the characters are defined is insignificant._\n\n## About\n\n### Related projects\n\n* [pad-left](https://www.npmjs.com/package/pad-left): Left pad a string with zeros or a specified string. Fastest implementation. | [homepage](https://github.com/jonschlinkert/pad-left \"Left pad a string with zeros or a specified string. Fastest implementation.\")\n* [pad-right](https://www.npmjs.com/package/pad-right): Right pad a string with zeros or a specified string. Fastest implementation. | [homepage](https://github.com/jonschlinkert/pad-right \"Right pad a string with zeros or a specified string. Fastest implementation.\")\n* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string \"Repeat the given string n times. Fastest implementation for repeating a string.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor**<br/> | \n| --- | --- |\n| 36 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 1 | [TrySound](https://github.com/TrySound) |\n| 1 | [paulmillr](https://github.com/paulmillr) |\n\n### Building docs\n\n_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_\n\nTo generate the readme and API documentation with [verb](https://github.com/verbose/verb):\n\n```sh\n$ npm install -g verb verb-generate-readme && verb\n```\n\n### Running tests\n\nInstall dev dependencies:\n\n```sh\n$ npm install -d && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT license](https://github.com/jonschlinkert/randomatic/blob/master/LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.2.0, on November 24, 2016._",
+ "readme": "# randomatic [![NPM version](https://img.shields.io/npm/v/randomatic.svg?style=flat)](https://www.npmjs.com/package/randomatic) [![NPM monthly downloads](https://img.shields.io/npm/dm/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![NPM total downloads](https://img.shields.io/npm/dt/randomatic.svg?style=flat)](https://npmjs.org/package/randomatic) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/randomatic.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/randomatic)\n\n> Generate randomized strings of a specified length, fast. Only the length is necessary, but you can optionally generate patterns using any combination of numeric, alpha-numeric, alphabetical, special or custom characters.\n\n## Install\n\nInstall with [npm](https://www.npmjs.com/):\n\n```sh\n$ npm install --save randomatic\n```\n\n## Usage\n\n```js\nvar randomize = require('randomatic');\n```\n\n## API\n\n```js\nrandomize(pattern, length, options);\n```\n\n* `pattern` **{String}**: The pattern to use for randomizing\n* `length` **{Object}**: The length of the string to generate\n\n### pattern\n\n> The pattern to use for randomizing\n\nPatterns can contain any combination of the below characters, specified in any order.\n\n**Example:**\n\nTo generate a 10-character randomized string using all available characters:\n\n```js\nrandomize('*', 10);\n//=>\n\nrandomize('Aa0!', 10);\n//=>\n```\n\n* `a`: Lowercase alpha characters (`abcdefghijklmnopqrstuvwxyz'`)\n* `A`: Uppercase alpha characters (`ABCDEFGHIJKLMNOPQRSTUVWXYZ'`)\n* `0`: Numeric characters (`0123456789'`)\n* `!`: Special characters (`~!@#$%^&()_+-={}[];\\',.`)\n* `*`: All characters (all of the above combined)\n* `?`: Custom characters (pass a string of custom characters to the options)\n\n### length\n\n> the length of the string to generate\n\n**Examples:**\n\n* `randomize('A', 5)` will generate a 5-character, uppercase, alphabetical, randomized string, e.g. `KDJWJ`.\n* `randomize('0', 2)` will generate a 2-digit random number\n* `randomize('0', 3)` will generate a 3-digit random number\n* `randomize('0', 12)` will generate a 12-digit random number\n* `randomize('A0', 16)` will generate a 16-character, alpha-numeric randomized string\n\nIf `length` is left undefined, the length of the pattern in the first parameter will be used. For example:\n\n* `randomize('00')` will generate a 2-digit random number\n* `randomize('000')` will generate a 3-digit random number\n* `randomize('0000')` will generate a 4-digit random number...\n* `randomize('AAAAA')` will generate a 5-character, uppercase alphabetical random string...\n\nThese are just examples, [see the tests](./test.js) for more use cases and examples.\n\n#### chars\n\nType: `String`\n\nDefault: `undefined`\n\nDefine a custom string to be randomized.\n\n**Example:**\n\n* `randomize('?', 20, {chars: 'jonschlinkert'})` will generate a 20-character randomized string from the letters contained in `jonschlinkert`.\n* `randomize('?', {chars: 'jonschlinkert'})` will generate a 13-character randomized string from the letters contained in `jonschlinkert`.\n\n## Usage Examples\n\n* `randomize('A', 4)` (_whitespace insenstive_) would result in randomized 4-digit uppercase letters, like, `ZAKH`, `UJSL`... etc.\n* `randomize('AAAA')` is equivelant to `randomize('A', 4)`\n* `randomize('AAA0')` and `randomize('AA00')` and `randomize('A0A0')` are equivelant to `randomize('A0', 4)`\n* `randomize('aa')`: results in double-digit, randomized, lower-case letters (`abcdefghijklmnopqrstuvwxyz`)\n* `randomize('AAA')`: results in triple-digit, randomized, upper-case letters (`ABCDEFGHIJKLMNOPQRSTUVWXYZ`)\n* `randomize('0', 6)`: results in six-digit, randomized numbers (`0123456789`)\n* `randomize('!', 5)`: results in single-digit randomized, _valid_ non-letter characters (`~!@#$%^&()_+-={}[]\n* `randomize('A!a0', 9)`: results in nine-digit, randomized characters (any of the above)\n\n_The order in which the characters are defined is insignificant._\n\n## About\n\n### Related projects\n\n* [pad-left](https://www.npmjs.com/package/pad-left): Left pad a string with zeros or a specified string. Fastest implementation. | [homepage](https://github.com/jonschlinkert/pad-left \"Left pad a string with zeros or a specified string. Fastest implementation.\")\n* [pad-right](https://www.npmjs.com/package/pad-right): Right pad a string with zeros or a specified string. Fastest implementation. | [homepage](https://github.com/jonschlinkert/pad-right \"Right pad a string with zeros or a specified string. Fastest implementation.\")\n* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string \"Repeat the given string n times. Fastest implementation for repeating a string.\")\n\n### Contributing\n\nPull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).\n\n### Contributors\n\n| **Commits** | **Contributor** | \n| --- | --- |\n| 41 | [jonschlinkert](https://github.com/jonschlinkert) |\n| 1 | [TrySound](https://github.com/TrySound) |\n| 1 | [Drag0s](https://github.com/Drag0s) |\n| 1 | [paulmillr](https://github.com/paulmillr) |\n| 1 | [sunknudsen](https://github.com/sunknudsen) |\n\n### Building docs\n\n_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_\n\nTo generate the readme, run the following command:\n\n```sh\n$ npm install -g verbose/verb#dev verb-generate-readme && verb\n```\n\n### Running tests\n\nRunning and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:\n\n```sh\n$ npm install && npm test\n```\n\n### Author\n\n**Jon Schlinkert**\n\n* [github/jonschlinkert](https://github.com/jonschlinkert)\n* [twitter/jonschlinkert](https://twitter.com/jonschlinkert)\n\n### License\n\nCopyright © 2017, [Jon Schlinkert](https://github.com/jonschlinkert).\nReleased under the [MIT License](LICENSE).\n\n***\n\n_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 09, 2017._",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -138,5 +163,5 @@
"verb-generate-readme"
]
},
- "version": "1.1.6"
+ "version": "1.1.7"
}
diff --git a/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/index.js b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/index.js
new file mode 100644
index 000000000..7ff0e2b78
--- /dev/null
+++ b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/index.js
@@ -0,0 +1,53 @@
+'use strict';
+var path = require('path');
+var pathExists = require('path-exists');
+var Promise = require('pinkie-promise');
+
+function splitPath(x) {
+ return path.resolve(x || '').split(path.sep);
+}
+
+function join(parts, filename) {
+ return path.resolve(parts.join(path.sep) + path.sep, filename);
+}
+
+module.exports = function (filename, opts) {
+ opts = opts || {};
+
+ var parts = splitPath(opts.cwd);
+
+ return new Promise(function (resolve) {
+ (function find() {
+ var fp = join(parts, filename);
+
+ pathExists(fp).then(function (exists) {
+ if (exists) {
+ resolve(fp);
+ } else if (parts.pop()) {
+ find();
+ } else {
+ resolve(null);
+ }
+ });
+ })();
+ });
+};
+
+module.exports.sync = function (filename, opts) {
+ opts = opts || {};
+
+ var parts = splitPath(opts.cwd);
+ var len = parts.length;
+
+ while (len--) {
+ var fp = join(parts, filename);
+
+ if (pathExists.sync(fp)) {
+ return fp;
+ }
+
+ parts.pop();
+ }
+
+ return null;
+};
diff --git a/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/license b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/package.json b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/package.json
new file mode 100644
index 000000000..67a3d5db1
--- /dev/null
+++ b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/package.json
@@ -0,0 +1,119 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "find-up@^1.0.0",
+ "scope": null,
+ "escapedName": "find-up",
+ "name": "find-up",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg-up"
+ ]
+ ],
+ "_from": "find-up@>=1.0.0 <2.0.0",
+ "_id": "find-up@1.1.2",
+ "_inCache": true,
+ "_location": "/read-pkg-up/find-up",
+ "_nodeVersion": "4.3.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/find-up-1.1.2.tgz_1457199955637_0.3445317060686648"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.14.12",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "find-up@^1.0.0",
+ "scope": null,
+ "escapedName": "find-up",
+ "name": "find-up",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/read-pkg-up"
+ ],
+ "_resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "_shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
+ "_shrinkwrap": null,
+ "_spec": "find-up@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg-up",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/find-up/issues"
+ },
+ "dependencies": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "description": "Find a file by walking up parent directories",
+ "devDependencies": {
+ "ava": "*",
+ "tempfile": "^1.1.1",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f",
+ "tarball": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "f2d7c1ff74fbac82b2cff038e311ef4b075d9184",
+ "homepage": "https://github.com/sindresorhus/find-up#readme",
+ "keywords": [
+ "find",
+ "up",
+ "find-up",
+ "findup",
+ "look-up",
+ "look",
+ "file",
+ "search",
+ "match",
+ "package",
+ "resolve",
+ "parent",
+ "parents",
+ "folder",
+ "directory",
+ "dir",
+ "walk",
+ "walking",
+ "path"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "find-up",
+ "optionalDependencies": {},
+ "readme": "# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)\n\n> Find a file by walking up parent directories\n\n\n## Install\n\n```\n$ npm install --save find-up\n```\n\n\n## Usage\n\n```\n/\n└── Users\n └── sindresorhus\n ├── unicorn.png\n └── foo\n └── bar\n ├── baz\n └── example.js\n```\n\n```js\n// example.js\nconst findUp = require('find-up');\n\nfindUp('unicorn.png').then(filepath => {\n\tconsole.log(filepath);\n\t//=> '/Users/sindresorhus/unicorn.png'\n});\n```\n\n\n## API\n\n### findUp(filename, [options])\n\nReturns a promise for the filepath or `null`.\n\n### findUp.sync(filename, [options])\n\nReturns a filepath or `null`.\n\n#### filename\n\nType: `string`\n\nFilename of the file to find.\n\n#### options\n\n##### cwd\n\nType: `string` \nDefault: `process.cwd()`\n\nDirectory to start from.\n\n\n## Related\n\n- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module\n- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file\n- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/find-up.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.2"
+}
diff --git a/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/readme.md b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/readme.md
new file mode 100644
index 000000000..9ea0611c3
--- /dev/null
+++ b/node_modules/nyc/node_modules/read-pkg-up/node_modules/find-up/readme.md
@@ -0,0 +1,72 @@
+# find-up [![Build Status](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up)
+
+> Find a file by walking up parent directories
+
+
+## Install
+
+```
+$ npm install --save find-up
+```
+
+
+## Usage
+
+```
+/
+└── Users
+ └── sindresorhus
+ ├── unicorn.png
+ └── foo
+ └── bar
+ ├── baz
+ └── example.js
+```
+
+```js
+// example.js
+const findUp = require('find-up');
+
+findUp('unicorn.png').then(filepath => {
+ console.log(filepath);
+ //=> '/Users/sindresorhus/unicorn.png'
+});
+```
+
+
+## API
+
+### findUp(filename, [options])
+
+Returns a promise for the filepath or `null`.
+
+### findUp.sync(filename, [options])
+
+Returns a filepath or `null`.
+
+#### filename
+
+Type: `string`
+
+Filename of the file to find.
+
+#### options
+
+##### cwd
+
+Type: `string`
+Default: `process.cwd()`
+
+Directory to start from.
+
+
+## Related
+
+- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module
+- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file
+- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/read-pkg-up/package.json b/node_modules/nyc/node_modules/read-pkg-up/package.json
index 043dbdbeb..87289949b 100644
--- a/node_modules/nyc/node_modules/read-pkg-up/package.json
+++ b/node_modules/nyc/node_modules/read-pkg-up/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/test-exclude"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude"
]
],
"_from": "read-pkg-up@>=1.0.1 <2.0.0",
@@ -23,7 +23,10 @@
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.11.3",
- "_phantomChildren": {},
+ "_phantomChildren": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ },
"_requested": {
"raw": "read-pkg-up@^1.0.1",
"scope": null,
@@ -34,14 +37,13 @@
"type": "range"
},
"_requiredBy": [
- "/test-exclude",
- "/yargs"
+ "/test-exclude"
],
"_resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"_shasum": "9d63c13276c065918d57f002a57f40a1b643fb02",
"_shrinkwrap": null,
"_spec": "read-pkg-up@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/test-exclude",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/read-pkg/package.json b/node_modules/nyc/node_modules/read-pkg/package.json
index 1ea8646fd..9818eda47 100644
--- a/node_modules/nyc/node_modules/read-pkg/package.json
+++ b/node_modules/nyc/node_modules/read-pkg/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/read-pkg-up"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg-up"
]
],
"_from": "read-pkg@>=1.0.0 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28",
"_shrinkwrap": null,
"_spec": "read-pkg@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/read-pkg-up",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/read-pkg-up",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/regenerator-runtime/package.json b/node_modules/nyc/node_modules/regenerator-runtime/package.json
index 976fcab7a..a8ef65f2a 100644
--- a/node_modules/nyc/node_modules/regenerator-runtime/package.json
+++ b/node_modules/nyc/node_modules/regenerator-runtime/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.10.0 <0.11.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-runtime"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-runtime"
]
],
"_from": "regenerator-runtime@>=0.10.0 <0.11.0",
@@ -44,7 +44,7 @@
"_shasum": "336c3efc1220adcedda2c9fab67b5a7955a33658",
"_shrinkwrap": null,
"_spec": "regenerator-runtime@^0.10.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-runtime",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-runtime",
"author": {
"name": "Ben Newman",
"email": "bn@cs.stanford.edu"
diff --git a/node_modules/nyc/node_modules/regex-cache/package.json b/node_modules/nyc/node_modules/regex-cache/package.json
index 03e12dab3..f1d3f9ea3 100644
--- a/node_modules/nyc/node_modules/regex-cache/package.json
+++ b/node_modules/nyc/node_modules/regex-cache/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.4.2 <0.5.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/micromatch"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch"
]
],
"_from": "regex-cache@>=0.4.2 <0.5.0",
@@ -44,7 +44,7 @@
"_shasum": "9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145",
"_shrinkwrap": null,
"_spec": "regex-cache@^0.4.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/micromatch",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/micromatch",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/remove-trailing-separator/history.md b/node_modules/nyc/node_modules/remove-trailing-separator/history.md
index a9ca22235..d379cccc2 100644
--- a/node_modules/nyc/node_modules/remove-trailing-separator/history.md
+++ b/node_modules/nyc/node_modules/remove-trailing-separator/history.md
@@ -1,9 +1,13 @@
## History
+### 1.0.2 - 07th Jun 2017
+
+- [8e13ecb](https://github.com/darsain/remove-trailing-separator/commit/8e13ecbfd7b9f5fdf97c5d5ff923e4718b874e31) ES5 compatibility
+
### 1.0.1 - 25th Sep 2016
- [b78606d](https://github.com/darsain/remove-trailing-separator/commit/af90b4e153a4527894741af6c7005acaeb78606d) Remove backslash only on win32 systems
### 1.0.0 - 24th Sep 2016
-Initial release. \ No newline at end of file
+Initial release.
diff --git a/node_modules/nyc/node_modules/remove-trailing-separator/index.js b/node_modules/nyc/node_modules/remove-trailing-separator/index.js
index 1ed8e932d..9f0de5334 100644
--- a/node_modules/nyc/node_modules/remove-trailing-separator/index.js
+++ b/node_modules/nyc/node_modules/remove-trailing-separator/index.js
@@ -1,4 +1,4 @@
-const isWin = process.platform === 'win32';
+var isWin = process.platform === 'win32';
module.exports = function (str) {
while (endsInSeparator(str)) {
diff --git a/node_modules/nyc/node_modules/remove-trailing-separator/package.json b/node_modules/nyc/node_modules/remove-trailing-separator/package.json
index 235f2d18f..296f92f38 100644
--- a/node_modules/nyc/node_modules/remove-trailing-separator/package.json
+++ b/node_modules/nyc/node_modules/remove-trailing-separator/package.json
@@ -10,23 +10,23 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/normalize-path"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-path"
]
],
"_from": "remove-trailing-separator@>=1.0.1 <2.0.0",
- "_id": "remove-trailing-separator@1.0.1",
+ "_id": "remove-trailing-separator@1.0.2",
"_inCache": true,
"_location": "/remove-trailing-separator",
- "_nodeVersion": "6.4.0",
+ "_nodeVersion": "7.6.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/remove-trailing-separator-1.0.1.tgz_1474797962066_0.45308714639395475"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/remove-trailing-separator-1.0.2.tgz_1496857602409_0.28459417447447777"
},
"_npmUser": {
"name": "darsain",
"email": "darsain@gmail.com"
},
- "_npmVersion": "3.10.5",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
"raw": "remove-trailing-separator@^1.0.1",
@@ -40,11 +40,11 @@
"_requiredBy": [
"/normalize-path"
],
- "_resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz",
- "_shasum": "615ebb96af559552d4bf4057c8436d486ab63cc4",
+ "_resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz",
+ "_shasum": "69b062d978727ad14dc6b56ba4ab772fd8d70511",
"_shrinkwrap": null,
"_spec": "remove-trailing-separator@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/normalize-path",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-path",
"author": {
"name": "darsain"
},
@@ -61,13 +61,13 @@
},
"directories": {},
"dist": {
- "shasum": "615ebb96af559552d4bf4057c8436d486ab63cc4",
- "tarball": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz"
+ "shasum": "69b062d978727ad14dc6b56ba4ab772fd8d70511",
+ "tarball": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz"
},
"files": [
"index.js"
],
- "gitHead": "8a5da3ac1efb1314d55e50a2a923b068d500d77a",
+ "gitHead": "6dd7a71b3228fb48a400e3a8ec26e45e8ca50bc3",
"homepage": "https://github.com/darsain/remove-trailing-separator#readme",
"keywords": [
"remove",
@@ -85,7 +85,7 @@
],
"name": "remove-trailing-separator",
"optionalDependencies": {},
- "readme": "# remove-trailing-separator\n\n[![NPM version][npm-img]][npm-url] [![Build Status: Linux][travis-img]][travis-url] [![Build Status: Windows][appveyor-img]][appveyor-url] [![Coverage Status][coveralls-img]][coveralls-url]\n\nRemoves all separators from the end of a string.\n\n## Install\n\n```\nnpm install remove-trailing-separator\n```\n\n## Examples\n\n```js\nconst removeTrailingSeparator = require('remove-trailing-separator');\n\nremoveTrailingSeparator('/foo/bar/') // '/foo/bar'\nremoveTrailingSeparator('/foo/bar///') // '/foo/bar'\n\n// leaves only/last separator\nremoveTrailingSeparator('/') // '/'\nremoveTrailingSeparator('///') // '/'\n\n// returns empty string\nremoveTrailingSeparator('') // ''\n```\n\n## Backslash, or win32 separator\n\n`\\` is considered a separator only on WIN32 systems. All UNIX compliant systems\nsee backslash as a valid file name character, so it would break UNIX compliance\nto remove it there.\n\nIn practice, this means that this code will return different things depending on\nwhat system it runs on:\n\n```\nremoveTrailingSeparator('\\\\foo\\\\')\n// UNIX => '\\\\foo\\\\'\n// WIN32 => '\\\\foo'\n```\n\n[npm-url]: https://npmjs.org/package/remove-trailing-separator\n[npm-img]: https://badge.fury.io/js/remove-trailing-separator.svg\n[travis-url]: https://travis-ci.org/darsain/remove-trailing-separator\n[travis-img]: https://travis-ci.org/darsain/remove-trailing-separator.svg?branch=master\n[appveyor-url]: https://ci.appveyor.com/project/darsain/remove-trailing-separator/branch/master\n[appveyor-img]: https://ci.appveyor.com/api/projects/status/wvg9a93rrq95n2xl/branch/master?svg=true\n[coveralls-url]: https://coveralls.io/github/darsain/remove-trailing-separator?branch=master\n[coveralls-img]: https://coveralls.io/repos/github/darsain/remove-trailing-separator/badge.svg?branch=master",
+ "readme": "# remove-trailing-separator\n\n[![NPM version][npm-img]][npm-url] [![Build Status: Linux][travis-img]][travis-url] [![Build Status: Windows][appveyor-img]][appveyor-url] [![Coverage Status][coveralls-img]][coveralls-url]\n\nRemoves all separators from the end of a string.\n\n## Install\n\n```\nnpm install remove-trailing-separator\n```\n\n## Examples\n\n```js\nconst removeTrailingSeparator = require('remove-trailing-separator');\n\nremoveTrailingSeparator('/foo/bar/') // '/foo/bar'\nremoveTrailingSeparator('/foo/bar///') // '/foo/bar'\n\n// leaves only/last separator\nremoveTrailingSeparator('/') // '/'\nremoveTrailingSeparator('///') // '/'\n\n// returns empty string\nremoveTrailingSeparator('') // ''\n```\n\n## Backslash, or win32 separator\n\n`\\` is considered a separator only on WIN32 systems. All POSIX compliant systems\nsee backslash as a valid file name character, so it would break POSIX compliance\nto remove it there.\n\nIn practice, this means that this code will return different things depending on\nwhat system it runs on:\n\n```\nremoveTrailingSeparator('\\\\foo\\\\')\n// UNIX => '\\\\foo\\\\'\n// WIN32 => '\\\\foo'\n```\n\n[npm-url]: https://npmjs.org/package/remove-trailing-separator\n[npm-img]: https://badge.fury.io/js/remove-trailing-separator.svg\n[travis-url]: https://travis-ci.org/darsain/remove-trailing-separator\n[travis-img]: https://travis-ci.org/darsain/remove-trailing-separator.svg?branch=master\n[appveyor-url]: https://ci.appveyor.com/project/darsain/remove-trailing-separator/branch/master\n[appveyor-img]: https://ci.appveyor.com/api/projects/status/wvg9a93rrq95n2xl/branch/master?svg=true\n[coveralls-url]: https://coveralls.io/github/darsain/remove-trailing-separator?branch=master\n[coveralls-img]: https://coveralls.io/repos/github/darsain/remove-trailing-separator/badge.svg?branch=master\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
@@ -97,5 +97,5 @@
"report": "nyc report --reporter=html",
"test": "nyc ava"
},
- "version": "1.0.1"
+ "version": "1.0.2"
}
diff --git a/node_modules/nyc/node_modules/remove-trailing-separator/readme.md b/node_modules/nyc/node_modules/remove-trailing-separator/readme.md
index 8c643d49f..612fe3de4 100644
--- a/node_modules/nyc/node_modules/remove-trailing-separator/readme.md
+++ b/node_modules/nyc/node_modules/remove-trailing-separator/readme.md
@@ -28,8 +28,8 @@ removeTrailingSeparator('') // ''
## Backslash, or win32 separator
-`\` is considered a separator only on WIN32 systems. All UNIX compliant systems
-see backslash as a valid file name character, so it would break UNIX compliance
+`\` is considered a separator only on WIN32 systems. All POSIX compliant systems
+see backslash as a valid file name character, so it would break POSIX compliance
to remove it there.
In practice, this means that this code will return different things depending on
@@ -48,4 +48,4 @@ removeTrailingSeparator('\\foo\\')
[appveyor-url]: https://ci.appveyor.com/project/darsain/remove-trailing-separator/branch/master
[appveyor-img]: https://ci.appveyor.com/api/projects/status/wvg9a93rrq95n2xl/branch/master?svg=true
[coveralls-url]: https://coveralls.io/github/darsain/remove-trailing-separator?branch=master
-[coveralls-img]: https://coveralls.io/repos/github/darsain/remove-trailing-separator/badge.svg?branch=master \ No newline at end of file
+[coveralls-img]: https://coveralls.io/repos/github/darsain/remove-trailing-separator/badge.svg?branch=master
diff --git a/node_modules/nyc/node_modules/repeat-element/package.json b/node_modules/nyc/node_modules/repeat-element/package.json
index a590565bb..da5a911e0 100644
--- a/node_modules/nyc/node_modules/repeat-element/package.json
+++ b/node_modules/nyc/node_modules/repeat-element/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.1.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/braces"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/braces"
]
],
"_from": "repeat-element@>=1.1.2 <2.0.0",
@@ -41,7 +41,7 @@
"_shasum": "ef089a178d1483baae4d93eb98b4f9e4e11d990a",
"_shrinkwrap": null,
"_spec": "repeat-element@^1.1.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/braces",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/braces",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/repeat-string/package.json b/node_modules/nyc/node_modules/repeat-string/package.json
index 662acfb02..80b1cd416 100644
--- a/node_modules/nyc/node_modules/repeat-string/package.json
+++ b/node_modules/nyc/node_modules/repeat-string/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.5.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/align-text"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/align-text"
]
],
"_from": "repeat-string@>=1.5.2 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "8dcae470e1c88abc2d600fff4a776286da75e637",
"_shrinkwrap": null,
"_spec": "repeat-string@^1.5.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/align-text",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/align-text",
"author": {
"name": "Jon Schlinkert",
"url": "http://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/repeating/package.json b/node_modules/nyc/node_modules/repeating/package.json
index 2d3eba23a..2c19ccae8 100644
--- a/node_modules/nyc/node_modules/repeating/package.json
+++ b/node_modules/nyc/node_modules/repeating/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/detect-indent"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/detect-indent"
]
],
"_from": "repeating@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "5214c53a926d3552707527fbab415dbc08d06dda",
"_shrinkwrap": null,
"_spec": "repeating@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/detect-indent",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/detect-indent",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/require-directory/package.json b/node_modules/nyc/node_modules/require-directory/package.json
index 3c6c52e09..cf5d8310b 100644
--- a/node_modules/nyc/node_modules/require-directory/package.json
+++ b/node_modules/nyc/node_modules/require-directory/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.1.1 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
"_from": "require-directory@>=2.1.1 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
"_shrinkwrap": null,
"_spec": "require-directory@^2.1.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Troy Goode",
"email": "troygoode@gmail.com",
diff --git a/node_modules/nyc/node_modules/require-main-filename/package.json b/node_modules/nyc/node_modules/require-main-filename/package.json
index f96df5527..cd4f519c5 100644
--- a/node_modules/nyc/node_modules/require-main-filename/package.json
+++ b/node_modules/nyc/node_modules/require-main-filename/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/test-exclude"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude"
]
],
"_from": "require-main-filename@>=1.0.1 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "97f717b69d48784f5f526a6c5aa8ffdda055a4d1",
"_shrinkwrap": null,
"_spec": "require-main-filename@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/test-exclude",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/test-exclude",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/resolve-from/package.json b/node_modules/nyc/node_modules/resolve-from/package.json
index 5033f1b81..edf933ac5 100644
--- a/node_modules/nyc/node_modules/resolve-from/package.json
+++ b/node_modules/nyc/node_modules/resolve-from/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "resolve-from@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "9480ab20e94ffa1d9e80a804c7ea147611966b57",
"_shrinkwrap": null,
"_spec": "resolve-from@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/right-align/package.json b/node_modules/nyc/node_modules/right-align/package.json
index fa32c407b..14ebd527c 100644
--- a/node_modules/nyc/node_modules/right-align/package.json
+++ b/node_modules/nyc/node_modules/right-align/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.1.1 <0.2.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/cliui"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/cliui"
]
],
"_from": "right-align@>=0.1.1 <0.2.0",
@@ -40,7 +40,7 @@
"_shasum": "61339b722fe6a3515689210d24e14c96148613ef",
"_shrinkwrap": null,
"_spec": "right-align@^0.1.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/cliui",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/cliui",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/rimraf/package.json b/node_modules/nyc/node_modules/rimraf/package.json
index 7395d3fb4..0d735cf22 100644
--- a/node_modules/nyc/node_modules/rimraf/package.json
+++ b/node_modules/nyc/node_modules/rimraf/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.5.4 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "rimraf@>=2.5.4 <3.0.0",
@@ -46,7 +46,7 @@
"_shasum": "c2338ec643df7a1b7fe5c54fa86f57428a55f33d",
"_shrinkwrap": null,
"_spec": "rimraf@^2.5.4",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/semver/package.json b/node_modules/nyc/node_modules/semver/package.json
index 6048e11b8..25f10dcca 100644
--- a/node_modules/nyc/node_modules/semver/package.json
+++ b/node_modules/nyc/node_modules/semver/package.json
@@ -10,7 +10,7 @@
"spec": ">=5.3.0 <6.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument"
]
],
"_from": "semver@>=5.3.0 <6.0.0",
@@ -45,7 +45,7 @@
"_shasum": "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f",
"_shrinkwrap": null,
"_spec": "semver@^5.3.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/istanbul-lib-instrument",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/istanbul-lib-instrument",
"bin": {
"semver": "./bin/semver"
},
diff --git a/node_modules/nyc/node_modules/set-blocking/package.json b/node_modules/nyc/node_modules/set-blocking/package.json
index 44a03c9a4..08c3ff168 100644
--- a/node_modules/nyc/node_modules/set-blocking/package.json
+++ b/node_modules/nyc/node_modules/set-blocking/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
"_from": "set-blocking@>=2.0.0 <3.0.0",
@@ -44,7 +44,7 @@
"_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7",
"_shrinkwrap": null,
"_spec": "set-blocking@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/signal-exit/package.json b/node_modules/nyc/node_modules/signal-exit/package.json
index f7fbe2ca2..e27a0f3d8 100644
--- a/node_modules/nyc/node_modules/signal-exit/package.json
+++ b/node_modules/nyc/node_modules/signal-exit/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.0.1 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "signal-exit@>=3.0.1 <4.0.0",
@@ -39,13 +39,15 @@
},
"_requiredBy": [
"/",
- "/foreground-child"
+ "/execa",
+ "/foreground-child",
+ "/spawn-wrap"
],
"_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
"_shrinkwrap": null,
"_spec": "signal-exit@^3.0.1",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/slide/package.json b/node_modules/nyc/node_modules/slide/package.json
index 773597001..f8dd07f00 100644
--- a/node_modules/nyc/node_modules/slide/package.json
+++ b/node_modules/nyc/node_modules/slide/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.1.5 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic"
]
],
"_from": "slide@>=1.1.5 <2.0.0",
@@ -39,7 +39,7 @@
"_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707",
"_shrinkwrap": null,
"_spec": "slide@^1.1.5",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/write-file-atomic",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/write-file-atomic",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/source-map/package.json b/node_modules/nyc/node_modules/source-map/package.json
index de708699d..6dc88b9f4 100644
--- a/node_modules/nyc/node_modules/source-map/package.json
+++ b/node_modules/nyc/node_modules/source-map/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.5.0 <0.6.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "source-map@>=0.5.0 <0.6.0",
@@ -47,7 +47,7 @@
"_shasum": "75ce38f52bf0733c5a7f0c118d81334a2bb5f412",
"_shrinkwrap": null,
"_spec": "source-map@^0.5.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Nick Fitzgerald",
"email": "nfitzgerald@mozilla.com"
diff --git a/node_modules/nyc/node_modules/spawn-wrap/.npmignore b/node_modules/nyc/node_modules/spawn-wrap/.npmignore
deleted file mode 100644
index 07e6e472c..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules
diff --git a/node_modules/nyc/node_modules/spawn-wrap/.travis.yml b/node_modules/nyc/node_modules/spawn-wrap/.travis.yml
deleted file mode 100644
index 280a6462f..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - '0.12'
- - '4'
- - '5'
- - '6'
diff --git a/node_modules/nyc/node_modules/spawn-wrap/appveyor.yml b/node_modules/nyc/node_modules/spawn-wrap/appveyor.yml
deleted file mode 100644
index 9c2a3bc82..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/appveyor.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-environment:
- matrix:
- - nodejs_version: '6'
- - nodejs_version: '5'
- - nodejs_version: '4'
- - nodejs_version: '0.12'
-install:
- - ps: Install-Product node $env:nodejs_version
- - set CI=true
- - npm -g install npm@latest
- - set PATH=%APPDATA%\npm;%PATH%
- - npm install
-matrix:
- fast_finish: true
-build: off
-version: '{build}'
-shallow_clone: true
-clone_depth: 1
-test_script:
- - npm test
diff --git a/node_modules/nyc/node_modules/spawn-wrap/index.js b/node_modules/nyc/node_modules/spawn-wrap/index.js
index a25cedb10..a64995bbf 100644
--- a/node_modules/nyc/node_modules/spawn-wrap/index.js
+++ b/node_modules/nyc/node_modules/spawn-wrap/index.js
@@ -12,10 +12,16 @@ var rimraf = require('rimraf')
var path = require('path')
var signalExit = require('signal-exit')
var homedir = require('os-homedir')() + '/.node-spawn-wrap-'
-var winRebase = require('./lib/win-rebase')
var which = require('which')
+var util = require('util')
-var cmdname = path.basename(process.execPath, '.exe')
+var doDebug = process.env.SPAWN_WRAP_DEBUG === '1'
+var debug = doDebug ? function () {
+ var message = util.format.apply(util, arguments).trim()
+ var pref = 'SW ' + process.pid + ': '
+ message = pref + message.split('\n').join('\n' + pref)
+ process.stderr.write(message + '\n')
+} : function () {}
var shim = '#!' + process.execPath + '\n' +
fs.readFileSync(__dirname + '/shim.js')
@@ -52,12 +58,12 @@ function wrap (argv, env, workingDir) {
}
function unwrap () {
- if (doSetup) {
+ if (doSetup && !doDebug) {
rimraf.sync(workingDir)
}
ChildProcess.prototype.spawn = spawn
if (spawnSyncBinding) {
- spawnSync = spawnSyncBinding.spawn
+ spawnSyncBinding.spawn = spawnSync
}
}
@@ -73,141 +79,252 @@ function wrappedSpawnFunction (fn, workingDir) {
return wrappedSpawn
function wrappedSpawn (options) {
- var pathEnv
- var cmdi, c, re, match, exe
-
- // handle case where node/iojs is exec'd
- // this doesn't handle EVERYTHING, but just the most common
- // case of doing `exec(process.execPath + ' file.js')
- var file = path.basename(options.file, '.exe')
- if (file === 'dash' ||
- file === 'sh' ||
- file === 'bash' ||
- file === 'zsh') {
- cmdi = options.args.indexOf('-c')
- if (cmdi !== -1) {
- c = options.args[cmdi + 1]
- re = /^\s*((?:[^\= ]*\=[^\=\s]*\s*)*)([^\s]+|"[^"]+"|'[^']+')/
- match = c.match(re)
- if (match) {
- exe = path.basename(match[2])
- // Strip a trailing quote from the basename if it matches a
- // leading quote.
- var quote = match[2].charAt(0)
- if ((quote === '"' || quote === '\'') && quote === exe.slice(-1)) {
- exe = exe.slice(0, -1)
- }
-
- if (exe === 'iojs' ||
- exe === 'node' ||
- exe === cmdname) {
- c = c.replace(re, '$1 ' + workingDir + '/node')
- options.args[cmdi + 1] = c
- } else if (exe === 'npm' && !isWindows) {
- var npmPath = whichOrUndefined('npm')
-
- if (npmPath) {
- c = c.replace(re, '$1 ' + workingDir + '/node ' + npmPath)
- options.args[cmdi + 1] = c
- }
- }
- }
- }
- } else if (isWindows && (
- file === path.basename(process.env.comspec || '') ||
- file === 'cmd'
- )) {
- cmdi = options.args.indexOf('/c')
- if (cmdi !== -1) {
- options.args[cmdi + 1] = winRebase(options.args[cmdi + 1],
- workingDir + '/node.cmd',
- whichOrUndefined)
- }
- } else if (file === 'node' || file === 'iojs' || cmdname === file) {
- // make sure it has a main script.
- // otherwise, just let it through.
- var a = 0
- var hasMain = false
- for (var a = 1; !hasMain && a < options.args.length; a++) {
- switch (options.args[a]) {
- case '-i':
- case '--interactive':
- case '--eval':
- case '-e':
- case '-pe':
- hasMain = false
- a = options.args.length
- continue
-
- case '-r':
- case '--require':
- a += 1
- continue
-
- default:
- if (options.args[a].match(/^-/)) {
- continue
- } else {
- hasMain = true
- a = options.args.length
- break
- }
- }
- }
+ munge(workingDir, options)
+ debug('WRAPPED', options)
+ return fn.call(this, options)
+ }
+}
- if (hasMain) {
- options.file = workingDir + '/' + file
- options.args[0] = workingDir + '/' + file
- }
+function isSh (file) {
+ return file === 'dash' ||
+ file === 'sh' ||
+ file === 'bash' ||
+ file === 'zsh'
+}
- } else {
- try {
- var resolved = which.sync(options.file)
- } catch (er) {}
- if (resolved) {
- var shebang = fs.readFileSync(resolved, 'utf8')
- var match = shebang.match(/^#!([^\r\n]+)/)
- if (match) {
- var shebangbin = match[1].split(' ')[0]
- var maybeNode = path.basename(shebangbin)
- if (maybeNode === 'node' || maybeNode === 'iojs' || cmdname === maybeNode) {
- file = options.file = shebangbin
- options.args = [shebangbin, workingDir + '/' + maybeNode]
- .concat(resolved)
- .concat(match[1].split(' ').slice(1))
- .concat(options.args.slice(1))
- }
- }
- }
+function mungeSh (workingDir, options) {
+ var cmdi = options.args.indexOf('-c')
+ if (cmdi === -1)
+ return // no -c argument
+
+ var c = options.args[cmdi + 1]
+ var re = /^\s*((?:[^\= ]*\=[^\=\s]*)*[\s]*)([^\s]+|"[^"]+"|'[^']+')( .*)?$/
+ var match = c.match(re)
+ if (!match)
+ return // not a command invocation. weird but possible
+
+ var command = match[2]
+ // strip quotes off the command
+ var quote = command.charAt(0)
+ if ((quote === '"' || quote === '\'') && quote === command.slice(-1)) {
+ command = command.slice(1, -1)
+ }
+ var exe = path.basename(command)
+
+ if (isNode(exe)) {
+ options.originalNode = command
+ c = match[1] + match[2] + ' "' + workingDir + '/node" ' + match[3]
+ options.args[cmdi + 1] = c
+ } else if (exe === 'npm' && !isWindows) {
+ // XXX this will exhibit weird behavior when using /path/to/npm,
+ // if some other npm is first in the path.
+ var npmPath = whichOrUndefined('npm')
+
+ if (npmPath) {
+ c = c.replace(re, '$1 "' + workingDir + '/node" "' + npmPath + '" $3')
+ options.args[cmdi + 1] = c
+ debug('npm munge!', c)
}
+ }
+}
- for (var i = 0; i < options.envPairs.length; i++) {
- var ep = options.envPairs[i]
- if (ep.match(pathRe)) {
- pathEnv = ep.substr(5)
- var k = ep.substr(0, 5)
- options.envPairs[i] = k + workingDir + colon + pathEnv
- }
- }
- if (!pathEnv) {
- options.envPairs.push((isWindows ? 'Path=' : 'PATH=') + workingDir)
+function isCmd (file) {
+ var comspec = path.basename(process.env.comspec || '').replace(/\.exe$/i, '')
+ return isWindows && (file === comspec || /^cmd(\.exe|\.EXE)?$/.test(file))
+}
+
+function mungeCmd (workingDir, options) {
+ var cmdi = options.args.indexOf('/c')
+ if (cmdi === -1)
+ return
+
+ var re = /^\s*("*)([^"]*?\b(?:node|iojs)(?:\.exe|\.EXE)?)("*)( .*)?$/
+ var npmre = /^\s*("*)([^"]*?\b(?:npm))("*)( |$)/
+ var path_ = require('path')
+ if (path_.win32)
+ path_ = path_.win32
+
+ var command = options.args[cmdi + 1]
+ if (!command)
+ return
+
+ var m = command.match(re)
+ var replace
+ if (m) {
+ options.originalNode = m[2]
+ replace = m[1] + workingDir + '/node.cmd' + m[3] + m[4]
+ options.args[cmdi + 1] = m[1] + m[2] + m[3] +
+ ' "' + workingDir + '\\node"' + m[4]
+ } else {
+ // XXX probably not a good idea to rewrite to the first npm in the
+ // path if it's a full path to npm. And if it's not a full path to
+ // npm, then the dirname will not work properly!
+ m = command.match(npmre)
+ if (!m)
+ return
+
+ var npmPath = whichOrUndefined('npm') || 'npm'
+ npmPath = path_.dirname(npmPath) + '\\node_modules\\npm\\bin\\npm-cli.js'
+ replace = m[1] + workingDir + '/node.cmd' +
+ ' "' + npmPath + '"' +
+ m[3] + m[4]
+ options.args[cmdi + 1] = command.replace(npmre, replace)
+ }
+}
+
+function isNode (file) {
+ var cmdname = path.basename(process.execPath).replace(/\.exe$/i, '')
+ return file === 'node' || file === 'iojs' || cmdname === file
+}
+
+function mungeNode (workingDir, options) {
+ options.originalNode = options.file
+ var command = path.basename(options.file).replace(/\.exe$/i, '')
+ // make sure it has a main script.
+ // otherwise, just let it through.
+ var a = 0
+ var hasMain = false
+ var mainIndex = 1
+ for (var a = 1; !hasMain && a < options.args.length; a++) {
+ switch (options.args[a]) {
+ case '-p':
+ case '-i':
+ case '--interactive':
+ case '--eval':
+ case '-e':
+ case '-pe':
+ hasMain = false
+ a = options.args.length
+ continue
+
+ case '-r':
+ case '--require':
+ a += 1
+ continue
+
+ default:
+ if (options.args[a].match(/^-/)) {
+ continue
+ } else {
+ hasMain = true
+ mainIndex = a
+ a = options.args.length
+ break
+ }
}
+ }
+
+ if (hasMain) {
+ var replace = workingDir + '/' + command
+ options.args.splice(mainIndex, 0, replace)
+ }
- if (file === 'npm' && !isWindows) {
- var npmPath = whichOrUndefined('npm')
+ // If the file is just something like 'node' then that'll
+ // resolve to our shim, and so to prevent double-shimming, we need
+ // to resolve that here first.
+ // This also handles the case where there's not a main file, like
+ // `node -e 'program'`, where we want to avoid the shim entirely.
+ if (options.file === options.basename) {
+ var realNode = whichOrUndefined(options.file) || process.execPath
+ options.file = options.args[0] = realNode
+ }
- if (npmPath) {
- options.args[0] = npmPath
+ debug('mungeNode after', options.file, options.args)
+}
- options.file = workingDir + '/node'
- options.args.unshift(workingDir + '/node')
- }
+function mungeShebang (workingDir, options) {
+ try {
+ var resolved = which.sync(options.file)
+ } catch (er) {
+ // nothing to do if we can't resolve
+ // Most likely: file doesn't exist or is not executable.
+ // Let exec pass through, probably will fail, oh well.
+ return
+ }
+
+ var shebang = fs.readFileSync(resolved, 'utf8')
+ var match = shebang.match(/^#!([^\r\n]+)/)
+ if (!match)
+ return // not a shebang script, probably a binary
+
+ var shebangbin = match[1].split(' ')[0]
+ var maybeNode = path.basename(shebangbin)
+ if (!isNode(maybeNode))
+ return // not a node shebang, leave untouched
+
+ options.originalNode = shebangbin
+ options.basename = maybeNode
+ options.file = shebangbin
+ options.args = [shebangbin, workingDir + '/' + maybeNode]
+ .concat(resolved)
+ .concat(match[1].split(' ').slice(1))
+ .concat(options.args.slice(1))
+}
+
+function mungeEnv (workingDir, options) {
+ var pathEnv
+ for (var i = 0; i < options.envPairs.length; i++) {
+ var ep = options.envPairs[i]
+ if (ep.match(pathRe)) {
+ pathEnv = ep.substr(5)
+ var k = ep.substr(0, 5)
+ options.envPairs[i] = k + workingDir + colon + pathEnv
}
+ }
+ if (!pathEnv) {
+ options.envPairs.push((isWindows ? 'Path=' : 'PATH=') + workingDir)
+ }
+ if (options.originalNode) {
+ var key = path.basename(workingDir).substr('.node-spawn-wrap-'.length)
+ options.envPairs.push('SW_ORIG_' + key + '=' + options.originalNode)
+ }
- if (isWindows) fixWindowsBins(workingDir, options)
+ if (process.env.SPAWN_WRAP_DEBUG === '1')
+ options.envPairs.push('SPAWN_WRAP_DEBUG=1')
+}
- return fn.call(this, options)
+function isnpm (file) {
+ // XXX is this even possible/necessary?
+ // wouldn't npm just be detected as a node shebang?
+ return file === 'npm' && !isWindows
+}
+
+function mungenpm (workingDir, options) {
+ debug('munge npm')
+ // XXX weird effects of replacing a specific npm with a global one
+ var npmPath = whichOrUndefined('npm')
+
+ if (npmPath) {
+ options.args[0] = npmPath
+
+ options.file = workingDir + '/node'
+ options.args.unshift(workingDir + '/node')
+ }
+}
+
+function munge (workingDir, options) {
+ options.basename = path.basename(options.file).replace(/\.exe$/i, '')
+
+ // XXX: dry this
+ if (isSh(options.basename)) {
+ mungeSh(workingDir, options)
+ } else if (isCmd(options.basename)) {
+ mungeCmd(workingDir, options)
+ } else if (isNode(options.basename)) {
+ mungeNode(workingDir, options)
+ } else if (isnpm(options.basename)) {
+ // XXX unnecessary? on non-windows, npm is just another shebang
+ mungenpm(workingDir, options)
+ } else {
+ mungeShebang(workingDir, options)
}
+
+ // now the options are munged into shape.
+ // whether we changed something or not, we still update the PATH
+ // so that if a script somewhere calls `node foo`, it gets our
+ // wrapper instead.
+
+ mungeEnv(workingDir, options)
}
function whichOrUndefined (executable) {
@@ -218,18 +335,6 @@ function whichOrUndefined (executable) {
return path
}
-// by default Windows will reference the full
-// path to the node.exe or iojs.exe as the bin,
-// we should instead point spawn() at our .cmd shim.
-function fixWindowsBins (workingDir, options) {
- var re = /.*\b(node|iojs)(\.exe)?$/
- if (options.file.match(re)) {
- options.file = process.execPath
- var shim = workingDir + '/node'
- options.args.splice(0, 1, options.file, workingDir + '/node')
- }
-}
-
function setup (argv, env) {
if (argv && typeof argv === 'object' && !env && !Array.isArray(argv)) {
env = argv
@@ -252,6 +357,8 @@ function setup (argv, env) {
env = {}
}
+ debug('setup argv=%j env=%j', argv, env)
+
// For stuff like --use_strict or --harmony, we need to inject
// the argument *before* the wrap-main.
var execArgv = []
@@ -273,23 +380,26 @@ function setup (argv, env) {
}
}
+ var key = process.pid + '-' + crypto.randomBytes(6).toString('hex')
+ var workingDir = homedir + key
+
var settings = JSON.stringify({
module: __filename,
deps: {
foregroundChild: require.resolve('foreground-child'),
signalExit: require.resolve('signal-exit'),
},
+ key: key,
+ workingDir: workingDir,
argv: argv,
execArgv: execArgv,
env: env,
root: process.pid
}, null, 2) + '\n'
- var workingDir = homedir + process.pid + '-' +
- crypto.randomBytes(6).toString('hex')
-
signalExit(function () {
- rimraf.sync(workingDir)
+ if (!doDebug)
+ rimraf.sync(workingDir)
})
mkdirp.sync(workingDir)
@@ -310,6 +420,7 @@ function setup (argv, env) {
fs.chmodSync(workingDir + '/node', '0755')
fs.writeFileSync(workingDir + '/iojs', shim)
fs.chmodSync(workingDir + '/iojs', '0755')
+ var cmdname = path.basename(process.execPath).replace(/\.exe$/i, '')
if (cmdname !== 'iojs' && cmdname !== 'node') {
fs.writeFileSync(workingDir + '/' + cmdname, shim)
fs.chmodSync(workingDir + '/' + cmdname, '0755')
@@ -322,5 +433,6 @@ function setup (argv, env) {
function runMain () {
process.argv.splice(1, 1)
process.argv[1] = path.resolve(process.argv[1])
+ delete require.cache[process.argv[1]]
Module.runMain()
}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/lib/win-rebase.js b/node_modules/nyc/node_modules/spawn-wrap/lib/win-rebase.js
deleted file mode 100644
index d4af5fed4..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/lib/win-rebase.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var re = /^\s*("*)([^"]*?\b(?:node|iojs)(?:\.exe)?)("*)( |$)/
-var npmre = /^\s*("*)([^"]*?\b(?:npm))("*)( |$)/
-var path_ = require('path')
-if (path_.win32) path_ = path_.win32
-
-module.exports = function (path, rebase, whichOrUndefined) {
- var m = path.match(re)
- if (!m) {
- m = path.match(npmre)
- if (!m) return path
- var npmPath = whichOrUndefined('npm') || 'npm'
- npmPath = path_.dirname(npmPath) + '\\node_modules\\npm\\bin\\npm-cli.js'
- return path.replace(npmre, m[1] + rebase + ' "' + npmPath + '"' + m[3] + m[4])
- }
- // preserve the quotes
- var replace = m[1] + rebase + m[3] + m[4]
- return path.replace(re, replace)
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.npmignore b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.npmignore
deleted file mode 100644
index 28ffc9de2..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules
-.DS_Store
-nyc_output
-coverage
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.travis.yml b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.travis.yml
deleted file mode 100644
index 9c9695baf..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-sudo: false
-language: node_js
-node_js:
-- '0.12'
-- '0.10'
-- iojs
-after_success: npm run coverage
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/README.md b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/README.md
deleted file mode 100644
index 5c6dc3fb9..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# signal-exit
-
-[![Build Status](https://travis-ci.org/bcoe/signal-exit.png)](https://travis-ci.org/bcoe/signal-exit)
-[![Coverage Status](https://coveralls.io/repos/bcoe/signal-exit/badge.svg?branch=)](https://coveralls.io/r/bcoe/signal-exit?branch=)
-[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit)
-
-When you want to fire an event no matter how a process exits:
-
-* reaching the end of execution.
-* explicitly having `process.exit(code)` called.
-* having `process.kill(pid, sig)` called.
-* receiving a fatal signal from outside the process
-
-Use `signal-exit`.
-
-```js
-var onExit = require('signal-exit')
-
-onExit(function (code, signal) {
- console.log('process exited!')
-})
-```
-
-## API
-
-`var remove = onExit(function (code, signal) {}, options)`
-
-The return value of the function is a function that will remove the
-handler.
-
-Note that the function *only* fires for signals if the signal would
-cause the proces to exit. That is, there are no other listeners, and
-it is a fatal signal.
-
-## Options
-
-* `alwaysLast`: Run this handler after any other signal or exit
- handlers. This causes `process.emit` to be monkeypatched.
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/index.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/index.js
deleted file mode 100644
index 7dd8d917d..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/index.js
+++ /dev/null
@@ -1,148 +0,0 @@
-// Note: since nyc uses this module to output coverage, any lines
-// that are in the direct sync flow of nyc's outputCoverage are
-// ignored, since we can never get coverage for them.
-var assert = require('assert')
-var signals = require('./signals.js')
-
-var EE = require('events')
-/* istanbul ignore if */
-if (typeof EE !== 'function') {
- EE = EE.EventEmitter
-}
-
-var emitter
-if (process.__signal_exit_emitter__) {
- emitter = process.__signal_exit_emitter__
-} else {
- emitter = process.__signal_exit_emitter__ = new EE()
- emitter.count = 0
- emitter.emitted = {}
-}
-
-module.exports = function (cb, opts) {
- assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
-
- if (loaded === false) {
- load()
- }
-
- var ev = 'exit'
- if (opts && opts.alwaysLast) {
- ev = 'afterexit'
- }
-
- var remove = function () {
- emitter.removeListener(ev, cb)
- if (emitter.listeners('exit').length === 0 &&
- emitter.listeners('afterexit').length === 0) {
- unload()
- }
- }
- emitter.on(ev, cb)
-
- return remove
-}
-
-module.exports.unload = unload
-function unload () {
- if (!loaded) {
- return
- }
- loaded = false
-
- signals.forEach(function (sig) {
- try {
- process.removeListener(sig, sigListeners[sig])
- } catch (er) {}
- })
- process.emit = originalProcessEmit
- process.reallyExit = originalProcessReallyExit
- emitter.count -= 1
-}
-
-function emit (event, code, signal) {
- if (emitter.emitted[event]) {
- return
- }
- emitter.emitted[event] = true
- emitter.emit(event, code, signal)
-}
-
-// { <signal>: <listener fn>, ... }
-var sigListeners = {}
-signals.forEach(function (sig) {
- sigListeners[sig] = function listener () {
- // If there are no other listeners, an exit is coming!
- // Simplest way: remove us and then re-send the signal.
- // We know that this will kill the process, so we can
- // safely emit now.
- var listeners = process.listeners(sig)
- if (listeners.length === emitter.count) {
- unload()
- emit('exit', null, sig)
- /* istanbul ignore next */
- emit('afterexit', null, sig)
- /* istanbul ignore next */
- process.kill(process.pid, sig)
- }
- }
-})
-
-module.exports.signals = function () {
- return signals
-}
-
-module.exports.load = load
-
-var loaded = false
-
-function load () {
- if (loaded) {
- return
- }
- loaded = true
-
- // This is the number of onSignalExit's that are in play.
- // It's important so that we can count the correct number of
- // listeners on signals, and don't wait for the other one to
- // handle it instead of us.
- emitter.count += 1
-
- signals = signals.filter(function (sig) {
- try {
- process.on(sig, sigListeners[sig])
- return true
- } catch (er) {
- return false
- }
- })
-
- process.emit = processEmit
- process.reallyExit = processReallyExit
-}
-
-var originalProcessReallyExit = process.reallyExit
-function processReallyExit (code) {
- process.exitCode = code || 0
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- /* istanbul ignore next */
- originalProcessReallyExit.call(process, process.exitCode)
-}
-
-var originalProcessEmit = process.emit
-function processEmit (ev, arg) {
- if (ev === 'exit') {
- if (arg !== undefined) {
- process.exitCode = arg
- }
- var ret = originalProcessEmit.apply(this, arguments)
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- return ret
- } else {
- return originalProcessEmit.apply(this, arguments)
- }
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/package.json b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/package.json
deleted file mode 100644
index 2ff6ae2aa..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_args": [
- [
- {
- "raw": "signal-exit@^2.0.0",
- "scope": null,
- "escapedName": "signal-exit",
- "name": "signal-exit",
- "rawSpec": "^2.0.0",
- "spec": ">=2.0.0 <3.0.0",
- "type": "range"
- },
- "/Users/benjamincoe/oss/nyc/node_modules/spawn-wrap"
- ]
- ],
- "_from": "signal-exit@>=2.0.0 <3.0.0",
- "_id": "signal-exit@2.1.2",
- "_inCache": true,
- "_location": "/spawn-wrap/signal-exit",
- "_nodeVersion": "2.0.2",
- "_npmUser": {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- "_npmVersion": "2.9.0",
- "_phantomChildren": {},
- "_requested": {
- "raw": "signal-exit@^2.0.0",
- "scope": null,
- "escapedName": "signal-exit",
- "name": "signal-exit",
- "rawSpec": "^2.0.0",
- "spec": ">=2.0.0 <3.0.0",
- "type": "range"
- },
- "_requiredBy": [
- "/spawn-wrap"
- ],
- "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz",
- "_shasum": "375879b1f92ebc3b334480d038dc546a6d558564",
- "_shrinkwrap": null,
- "_spec": "signal-exit@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/spawn-wrap",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/bcoe/signal-exit/issues"
- },
- "dependencies": {},
- "description": "when you want to fire an event no matter how a process exits.",
- "devDependencies": {
- "chai": "^2.3.0",
- "coveralls": "^2.11.2",
- "nyc": "^2.1.2",
- "standard": "^3.9.0",
- "tap": "1.0.4"
- },
- "directories": {},
- "dist": {
- "shasum": "375879b1f92ebc3b334480d038dc546a6d558564",
- "tarball": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz"
- },
- "gitHead": "8d50231bda6d0d1c4d39de20fc09d11487eb9951",
- "homepage": "https://github.com/bcoe/signal-exit",
- "keywords": [
- "signal",
- "exit"
- ],
- "license": "ISC",
- "main": "index.js",
- "maintainers": [
- {
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- {
- "name": "isaacs",
- "email": "isaacs@npmjs.com"
- }
- ],
- "name": "signal-exit",
- "optionalDependencies": {},
- "readme": "# signal-exit\n\n[![Build Status](https://travis-ci.org/bcoe/signal-exit.png)](https://travis-ci.org/bcoe/signal-exit)\n[![Coverage Status](https://coveralls.io/repos/bcoe/signal-exit/badge.svg?branch=)](https://coveralls.io/r/bcoe/signal-exit?branch=)\n[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit)\n\nWhen you want to fire an event no matter how a process exits:\n\n* reaching the end of execution.\n* explicitly having `process.exit(code)` called.\n* having `process.kill(pid, sig)` called.\n* receiving a fatal signal from outside the process\n\nUse `signal-exit`.\n\n```js\nvar onExit = require('signal-exit')\n\nonExit(function (code, signal) {\n console.log('process exited!')\n})\n```\n\n## API\n\n`var remove = onExit(function (code, signal) {}, options)`\n\nThe return value of the function is a function that will remove the\nhandler.\n\nNote that the function *only* fires for signals if the signal would\ncause the proces to exit. That is, there are no other listeners, and\nit is a fatal signal.\n\n## Options\n\n* `alwaysLast`: Run this handler after any other signal or exit\n handlers. This causes `process.emit` to be monkeypatched.\n",
- "readmeFilename": "README.md",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/bcoe/signal-exit.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "test": "standard && nyc tap --timeout=240 ./test/*.js"
- },
- "version": "2.1.2"
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/signals.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/signals.js
deleted file mode 100644
index 453fb0e86..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/signals.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// This is not the set of all possible signals.
-//
-// It IS, however, the set of all signals that trigger
-// an exit on either Linux or BSD systems. Linux is a
-// superset of the signal names supported on BSD, and
-// the unknown signals just fail to register, so we can
-// catch that easily enough.
-//
-// Don't bother with SIGKILL. It's uncatchable, which
-// means that we can't fire any callbacks anyway.
-//
-// If a user does happen to register a handler on a non-
-// fatal signal like SIGWINCH or something, and then
-// exit, it'll end up firing `process.emit('exit')`, so
-// the handler will be fired anyway.
-
-module.exports = [
- 'SIGABRT',
- 'SIGALRM',
- 'SIGBUS',
- 'SIGFPE',
- 'SIGHUP',
- 'SIGILL',
- 'SIGINT',
- 'SIGIOT',
- 'SIGPIPE',
- 'SIGPROF',
- 'SIGQUIT',
- 'SIGSEGV',
- 'SIGSYS',
- 'SIGTERM',
- 'SIGTRAP',
- 'SIGUSR2',
- 'SIGVTALRM',
- 'SIGXCPU',
- 'SIGXFSZ'
-]
-
-if (process.platform === 'linux') {
- module.exports.push(
- 'SIGIO',
- 'SIGPOLL',
- 'SIGPWR',
- 'SIGSTKFLT',
- 'SIGUNUSED'
- )
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/all-integration-test.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/all-integration-test.js
deleted file mode 100644
index db76adf7c..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/all-integration-test.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* global describe, it */
-
-var exec = require('child_process').exec,
- assert = require('assert')
-
-require('chai').should()
-require('tap').mochaGlobals()
-
-var onSignalExit = require('../')
-
-describe('all-signals-integration-test', function () {
-
- // These are signals that are aliases for other signals, so
- // the result will sometimes be one of the others. For these,
- // we just verify that we GOT a signal, not what it is.
- function weirdSignal (sig) {
- return sig === 'SIGIOT' ||
- sig === 'SIGIO' ||
- sig === 'SIGSYS' ||
- sig === 'SIGIOT' ||
- sig === 'SIGABRT' ||
- sig === 'SIGPOLL' ||
- sig === 'SIGUNUSED'
- }
-
- // Exhaustively test every signal, and a few numbers.
- var signals = onSignalExit.signals()
- signals.concat('', 0, 1, 2, 3, 54).forEach(function (sig) {
- var node = process.execPath
- var js = require.resolve('./fixtures/exiter.js')
- it('exits properly: ' + sig, function (done) {
- // travis has issues with SIGUSR1 on Node 0.x.10.
- if (process.env.TRAVIS && sig === 'SIGUSR1') return done()
-
- exec(node + ' ' + js + ' ' + sig, function (err, stdout, stderr) {
- if (sig) {
- assert(err)
- if (!isNaN(sig)) {
- assert.equal(err.code, sig)
- } else if (!weirdSignal(sig)) {
- if (!process.env.TRAVIS) err.signal.should.equal(sig)
- } else if (sig) {
- if (!process.env.TRAVIS) assert(err.signal)
- }
- } else {
- assert.ifError(err)
- }
-
- try {
- var data = JSON.parse(stdout)
- } catch (er) {
- console.error('invalid json: %j', stdout, stderr)
- throw er
- }
-
- if (weirdSignal(sig)) {
- data.wanted[1] = true
- data.found[1] = !!data.found[1]
- }
- assert.deepEqual(data.found, data.wanted)
- done()
- })
- })
- })
-
- signals.forEach(function (sig) {
- var node = process.execPath
- var js = require.resolve('./fixtures/parent.js')
- it('exits properly: (external sig) ' + sig, function (done) {
- // travis has issues with SIGUSR1 on Node 0.x.10.
- if (process.env.TRAVIS && sig === 'SIGUSR1') return done()
-
- var cmd = node + ' ' + js + ' ' + sig
- exec(cmd, function (err, stdout, stderr) {
- assert.ifError(err)
- try {
- var data = JSON.parse(stdout)
- } catch (er) {
- console.error('invalid json: %j', stdout, stderr)
- throw er
- }
-
- if (weirdSignal(sig)) {
- data.wanted[1] = true
- data.found[1] = !!data.found[1]
- data.external[1] = !!data.external[1]
- }
- assert.deepEqual(data.found, data.wanted)
- assert.deepEqual(data.external, data.wanted)
- done()
- })
- })
- })
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/awaiter.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/awaiter.js
deleted file mode 100644
index 5bc3f6823..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/awaiter.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var expectSignal = process.argv[2]
-
-if (!expectSignal || !isNaN(expectSignal)) {
- throw new Error('signal not provided')
-}
-
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- // some signals don't always get recognized properly, because
- // they have the same numeric code.
- if (wanted[1] === true) {
- signal = !!signal
- }
- console.log('%j', {
- found: [ code, signal ],
- wanted: wanted
- })
-})
-
-var wanted
-switch (expectSignal) {
- case 'SIGIOT':
- case 'SIGUNUSED':
- case 'SIGPOLL':
- wanted = [ null, true ]
- break
- default:
- wanted = [ null, expectSignal ]
- break
-}
-
-console.error('want', wanted)
-
-setTimeout(function () {}, 1000)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code-expect.json b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code-expect.json
deleted file mode 100644
index 7eeeb4cbb..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code-expect.json
+++ /dev/null
@@ -1,800 +0,0 @@
-{
- "explicit 0 nochange sigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "explicit 0 nochange nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "explicit 0 change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit 0 change nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit 0 code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "explicit 0 code nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "explicit 0 twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit 0 twice nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit 0 twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "explicit 0 twicecode nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "explicit 2 nochange sigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 2,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "second code=2"
- ]
- },
- "explicit 2 nochange nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 2,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "second code=2"
- ]
- },
- "explicit 2 change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "explicit 2 change nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "explicit 2 code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "second code=2"
- ]
- },
- "explicit 2 code nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "second code=2"
- ]
- },
- "explicit 2 twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "explicit 2 twice nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "explicit 2 twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "set code from 5 to 6"
- ]
- },
- "explicit 2 twicecode nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "set code from 5 to 6"
- ]
- },
- "explicit null nochange sigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "explicit null nochange nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "explicit null change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit null change nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit null code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "explicit null code nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "explicit null twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit null twice nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "explicit null twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "explicit null twicecode nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "code 0 nochange sigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "code 0 nochange nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "code 0 change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code 0 change nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code 0 code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "code 0 code nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "code 0 twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code 0 twice nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code 0 twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "code 0 twicecode nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "code 2 nochange sigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 2,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "second code=2"
- ]
- },
- "code 2 nochange nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 2,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "second code=2"
- ]
- },
- "code 2 change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "code 2 change nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "code 2 code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "second code=2"
- ]
- },
- "code 2 code nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "second code=2"
- ]
- },
- "code 2 twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "code 2 twice nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5"
- ]
- },
- "code 2 twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "set code from 5 to 6"
- ]
- },
- "code 2 twicecode nosigexit": {
- "code": 2,
- "signal": null,
- "exitCode": 2,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=2",
- "set code from 2 to 5",
- "set code from 5 to 6"
- ]
- },
- "code null nochange sigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "code null nochange nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "code null change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code null change nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code null code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "code null code nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "code null twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code null twice nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "code null twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "code null twicecode nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "normal 0 nochange sigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "normal 0 nochange nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 0,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "second code=0"
- ]
- },
- "normal 0 change sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "normal 0 change nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "normal 0 code sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "normal 0 code nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "second code=0"
- ]
- },
- "normal 0 twice sigexit": {
- "code": 5,
- "signal": null,
- "exitCode": 5,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "normal 0 twice nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 5,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5"
- ]
- },
- "normal 0 twicecode sigexit": {
- "code": 6,
- "signal": null,
- "exitCode": 6,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- },
- "normal 0 twicecode nosigexit": {
- "code": 0,
- "signal": null,
- "exitCode": 0,
- "actualCode": 6,
- "actualSignal": null,
- "stderr": [
- "first code=0",
- "set code from 0 to 5",
- "set code from 5 to 6"
- ]
- }
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code.js
deleted file mode 100644
index daa6ae88b..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/change-code.js
+++ /dev/null
@@ -1,96 +0,0 @@
-if (process.argv.length === 2) {
- var types = [ 'explicit', 'code', 'normal' ]
- var codes = [ 0, 2, 'null' ]
- var changes = [ 'nochange', 'change', 'code', 'twice', 'twicecode']
- var handlers = [ 'sigexit', 'nosigexit' ]
- var opts = []
- types.forEach(function (type) {
- var testCodes = type === 'normal' ? [ 0 ] : codes
- testCodes.forEach(function (code) {
- changes.forEach(function (change) {
- handlers.forEach(function (handler) {
- opts.push([type, code, change, handler].join(' '))
- })
- })
- })
- })
-
- var results = {}
-
- var exec = require('child_process').exec
- run(opts.shift())
-} else {
- var type = process.argv[2]
- var code = +process.argv[3]
- var change = process.argv[4]
- var sigexit = process.argv[5] !== 'nosigexit'
-
- if (sigexit) {
- var onSignalExit = require('../../')
- onSignalExit(listener)
- } else {
- process.on('exit', listener)
- }
-
- process.on('exit', function (code) {
- console.error('first code=%j', code)
- })
-
- if (change !== 'nochange') {
- process.once('exit', function (code) {
- console.error('set code from %j to %j', code, 5)
- if (change === 'code' || change === 'twicecode') {
- process.exitCode = 5
- } else {
- process.exit(5)
- }
- })
- if (change === 'twicecode' || change === 'twice') {
- process.once('exit', function (code) {
- code = process.exitCode || code
- console.error('set code from %j to %j', code, code + 1)
- process.exit(code + 1)
- })
- }
- }
-
- process.on('exit', function (code) {
- console.error('second code=%j', code)
- })
-
- if (type === 'explicit') {
- if (code || code === 0) {
- process.exit(code)
- } else {
- process.exit()
- }
- } else if (type === 'code') {
- process.exitCode = +code || 0
- }
-}
-
-function listener (code, signal) {
- signal = signal || null
- console.log('%j', { code: code, signal: signal, exitCode: process.exitCode || 0 })
-}
-
-function run (opt) {
- console.error(opt)
- exec(process.execPath + ' ' + __filename + ' ' + opt, function (err, stdout, stderr) {
- var res = JSON.parse(stdout)
- if (err) {
- res.actualCode = err.code
- res.actualSignal = err.signal
- } else {
- res.actualCode = 0
- res.actualSignal = null
- }
- res.stderr = stderr.trim().split('\n')
- results[opt] = res
- if (opts.length) {
- run(opts.shift())
- } else {
- console.log(JSON.stringify(results, null, 2))
- }
- })
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/end-of-execution.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/end-of-execution.js
deleted file mode 100644
index 8b8f245ab..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/end-of-execution.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- console.log('reached end of execution, ' + code + ', ' + signal)
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit-last.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit-last.js
deleted file mode 100644
index 899f475f7..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit-last.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var onSignalExit = require('../../')
-var counter = 0
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit.js
deleted file mode 100644
index c1aab3e40..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exit.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- console.log('exited with process.exit(), ' + code + ', ' + signal)
-})
-
-process.exit(32)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exiter.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exiter.js
deleted file mode 100644
index 906ec490a..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/exiter.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var exit = process.argv[2] || 0
-
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- // some signals don't always get recognized properly, because
- // they have the same numeric code.
- if (wanted[1] === true) {
- signal = !!signal
- }
- console.log('%j', {
- found: [ code, signal ],
- wanted: wanted
- })
-})
-
-var wanted
-if (isNaN(exit)) {
- switch (exit) {
- case 'SIGIOT':
- case 'SIGUNUSED':
- case 'SIGPOLL':
- wanted = [ null, true ]
- break
- default:
- wanted = [ null, exit ]
- break
- }
-
- try {
- process.kill(process.pid, exit)
- setTimeout(function () {}, 1000)
- } catch (er) {
- wanted = [ 0, null ]
- }
-
-} else {
- exit = +exit
- wanted = [ exit, null ]
- // If it's explicitly requested 0, then explicitly call it.
- // "no arg" = "exit naturally"
- if (exit || process.argv[2]) {
- process.exit(exit)
- }
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/load-unload.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/load-unload.js
deleted file mode 100644
index 5509e2ef0..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/load-unload.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// just be silly with calling these functions a bunch
-// mostly just to get coverage of the guard branches
-var onSignalExit = require('../../')
-onSignalExit.load()
-onSignalExit.load()
-onSignalExit.unload()
-onSignalExit.unload()
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/multiple-load.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/multiple-load.js
deleted file mode 100644
index 623c4f144..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/multiple-load.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// simulate cases where the module could be loaded from multiple places
-var onSignalExit = require('../../')
-var counter = 0
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
-
-delete require('module')._cache[require.resolve('../../')]
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
-
-// Lastly, some that should NOT be shown
-delete require('module')._cache[require.resolve('../../')]
-var onSignalExit = require('../../')
-
-var unwrap = onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-unwrap()
-
-unwrap = onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
-
-unwrap()
-
-process.kill(process.pid, 'SIGHUP')
-setTimeout(function () {}, 1000)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/parent.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/parent.js
deleted file mode 100644
index 5dcc382df..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/parent.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var signal = process.argv[2]
-var gens = +process.argv[3] || 0
-
-if (!signal || !isNaN(signal)) {
- throw new Error('signal not provided')
-}
-
-var spawn = require('child_process').spawn
-var file = require.resolve('./awaiter.js')
-console.error(process.pid, signal, gens)
-
-if (gens > 0) {
- file = __filename
-}
-
-var child = spawn(process.execPath, [file, signal, gens - 1], {
- stdio: [ 0, 'pipe', 'pipe' ]
-})
-
-if (!gens) {
- child.stderr.on('data', function () {
- child.kill(signal)
- })
-}
-
-var result = ''
-child.stdout.on('data', function (c) {
- result += c
-})
-
-child.on('close', function (code, sig) {
- try {
- result = JSON.parse(result)
- } catch (er) {
- console.log('%j', {
- error: 'failed to parse json\n' + er.message,
- result: result,
- pid: process.pid,
- child: child.pid,
- gens: gens,
- expect: [ null, signal ],
- actual: [ code, sig ]
- })
- return
- }
- if (result.wanted[1] === true) {
- sig = !!sig
- }
- result.external = result.external || [ code, sig ]
- console.log('%j', result)
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigint.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigint.js
deleted file mode 100644
index 769a07641..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigint.js
+++ /dev/null
@@ -1,11 +0,0 @@
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- console.log('exited with sigint, ' + code + ', ' + signal)
-})
-
-// For some reason, signals appear to not always be fast enough
-// to come in before the process exits. Just a few ticks needed.
-setTimeout(function () {}, 1000)
-
-process.kill(process.pid, 'SIGINT')
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigkill.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigkill.js
deleted file mode 100644
index 88492d2d3..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigkill.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// SIGKILL can't be caught, and in fact, even trying to add the
-// listener will throw an error.
-// We handle that nicely.
-//
-// This is just here to get another few more lines of test
-// coverage. That's also why it lies about being on a linux
-// platform so that we pull in those other event types.
-
-Object.defineProperty(process, 'platform', {
- value: 'linux',
- writable: false,
- enumerable: true,
- configurable: true
-})
-
-var signals = require('../../signals.js')
-signals.push('SIGKILL')
-var onSignalExit = require('../../')
-onSignalExit.load()
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-default.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-default.js
deleted file mode 100644
index 2598f803c..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-default.js
+++ /dev/null
@@ -1,99 +0,0 @@
-// This fixture is not used in any tests. It is here merely as a way to
-// do research into the various signal behaviors on Linux and Darwin.
-// Run with no args to cycle through every signal type. Run with a signal
-// arg to learn about how that signal behaves.
-
-if (process.argv[2]) {
- child(process.argv[2])
-} else {
- var signals = [
- 'SIGABRT',
- 'SIGALRM',
- 'SIGBUS',
- 'SIGCHLD',
- 'SIGCLD',
- 'SIGCONT',
- 'SIGEMT',
- 'SIGFPE',
- 'SIGHUP',
- 'SIGILL',
- 'SIGINFO',
- 'SIGINT',
- 'SIGIO',
- 'SIGIOT',
- 'SIGKILL',
- 'SIGLOST',
- 'SIGPIPE',
- 'SIGPOLL',
- 'SIGPROF',
- 'SIGPWR',
- 'SIGQUIT',
- 'SIGSEGV',
- 'SIGSTKFLT',
- 'SIGSTOP',
- 'SIGSYS',
- 'SIGTERM',
- 'SIGTRAP',
- 'SIGTSTP',
- 'SIGTTIN',
- 'SIGTTOU',
- 'SIGUNUSED',
- 'SIGURG',
- 'SIGUSR1',
- 'SIGUSR2',
- 'SIGVTALRM',
- 'SIGWINCH',
- 'SIGXCPU',
- 'SIGXFSZ'
- ]
-
- var spawn = require('child_process').spawn
- ;(function test (signal) {
- if (!signal) {
- return
- }
- var child = spawn(process.execPath, [__filename, signal], { stdio: 'inherit' })
- var timer = setTimeout(function () {
- console.log('requires SIGCONT')
- process.kill(child.pid, 'SIGCONT')
- }, 750)
-
- child.on('close', function (code, signal) {
- console.log('code=%j signal=%j\n', code, signal)
- clearTimeout(timer)
- test(signals.pop())
- })
- })(signals.pop())
-}
-
-function child (signal) {
- console.log('signal=%s', signal)
-
- // set a timeout so we know whether or not the process terminated.
- setTimeout(function () {
- console.log('not terminated')
- }, 200)
-
- process.on('exit', function (code) {
- console.log('emit exit code=%j', code)
- })
-
- try {
- process.on(signal, function fn () {
- console.log('signal is catchable', signal)
- process.removeListener(signal, fn)
- setTimeout(function () {
- console.error('signal again')
- process.kill(process.pid, signal)
- })
- })
- } catch (er) {
- console.log('not listenable')
- }
-
- try {
- process.kill(process.pid, signal)
- } catch (er) {
- console.log('not issuable')
- }
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-last.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-last.js
deleted file mode 100644
index 9e7dec83d..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-last.js
+++ /dev/null
@@ -1,17 +0,0 @@
-var onSignalExit = require('../../')
-var counter = 0
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-
-onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
-
-process.kill(process.pid, 'SIGHUP')
-setTimeout(function () {}, 1000)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-listener.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-listener.js
deleted file mode 100644
index 5a84d1267..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/signal-listener.js
+++ /dev/null
@@ -1,23 +0,0 @@
-var onSignalExit = require('../../')
-
-setTimeout(function () {})
-
-var calledListener = 0
-onSignalExit(function (code, signal) {
- console.log('exited calledListener=%j, code=%j, signal=%j',
- calledListener, code, signal)
-})
-
-process.on('SIGHUP', listener)
-process.kill(process.pid, 'SIGHUP')
-
-function listener () {
- calledListener++
- if (calledListener > 3) {
- process.removeListener('SIGHUP', listener)
- }
-
- setTimeout(function () {
- process.kill(process.pid, 'SIGHUP')
- })
-}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigpipe.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigpipe.js
deleted file mode 100644
index 169faed29..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigpipe.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var onSignalExit = require('../..')
-onSignalExit(function (code, signal) {
- console.error('onSignalExit(%j,%j)', code, signal)
-})
-setTimeout(function () {
- console.log('hello')
-})
-process.kill(process.pid, 'SIGPIPE')
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigterm.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigterm.js
deleted file mode 100644
index 85b598a7e..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/sigterm.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var onSignalExit = require('../../')
-
-onSignalExit(function (code, signal) {
- console.log('exited with sigterm, ' + code + ', ' + signal)
-})
-
-setTimeout(function () {}, 1000)
-
-process.kill(process.pid, 'SIGTERM')
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/unwrap.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/unwrap.js
deleted file mode 100644
index 8d8b1ad23..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/fixtures/unwrap.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// simulate cases where the module could be loaded from multiple places
-
-// Need to lie about this a little bit, since nyc uses this module
-// for its coverage wrap-up handling
-if (process.env.NYC_CWD) {
- var emitter = process.__signal_exit_emitter__
- var listeners = emitter.listeners('afterexit')
- process.removeAllListeners('SIGHUP')
- delete process.__signal_exit_emitter__
- delete require('module')._cache[require.resolve('../../')]
-}
-
-var onSignalExit = require('../../')
-var counter = 0
-
-var unwrap = onSignalExit(function (code, signal) {
- counter++
- console.log('last counter=%j, code=%j, signal=%j',
- counter, code, signal)
-}, {alwaysLast: true})
-unwrap()
-
-unwrap = onSignalExit(function (code, signal) {
- counter++
- console.log('first counter=%j, code=%j, signal=%j',
- counter, code, signal)
-})
-unwrap()
-
-if (global.__coverage__ && listeners && listeners.length) {
- listeners.forEach(function (fn) {
- onSignalExit(fn, { alwaysLast: true })
- })
-}
-
-process.kill(process.pid, 'SIGHUP')
-setTimeout(function () {}, 1000)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/multi-exit.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/multi-exit.js
deleted file mode 100644
index 271edd46a..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/multi-exit.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var exec = require('child_process').exec,
- t = require('tap')
-
-var fixture = require.resolve('./fixtures/change-code.js')
-var expect = require('./fixtures/change-code-expect.json')
-
-// process.exitCode has problems prior to:
-// https://github.com/joyent/node/commit/c0d81f90996667a658aa4403123e02161262506a
-function isZero10 () {
- return /^v0\.10\..+$/.test(process.version)
-}
-
-// process.exit(code), process.exitCode = code, normal exit
-var types = [ 'explicit', 'normal' ]
-if (!isZero10()) types.push('code')
-
-// initial code that is set. Note, for 'normal' exit, there's no
-// point doing these, because we just exit without modifying code
-var codes = [ 0, 2, 'null' ]
-
-// do not change, change to 5 with exit(), change to 5 with exitCode,
-// change to 5 and then to 2 with exit(), change twice with exitcode
-var changes = [ 'nochange', 'change', 'twice']
-if (!isZero10()) changes.push('code', 'twicecode')
-
-// use signal-exit, use process.on('exit')
-var handlers = [ 'sigexit', 'nosigexit' ]
-
-var opts = []
-types.forEach(function (type) {
- var testCodes = type === 'normal' ? [0] : codes
- testCodes.forEach(function (code) {
- changes.forEach(function (change) {
- handlers.forEach(function (handler) {
- opts.push([type, code, change, handler].join(' '))
- })
- })
- })
-})
-
-opts.forEach(function (opt) {
- t.test(opt, function (t) {
- var cmd = process.execPath + ' ' + fixture + ' ' + opt
- exec(cmd, function (err, stdout, stderr) {
- var res = JSON.parse(stdout)
- if (err) {
- res.actualCode = err.code
- res.actualSignal = err.signal
- } else {
- res.actualCode = 0
- res.actualSignal = null
- }
- res.stderr = stderr.trim().split('\n')
- t.same(res, expect[opt])
- t.end()
- })
- })
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/signal-exit-test.js b/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/signal-exit-test.js
deleted file mode 100644
index 4929f85f9..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/test/signal-exit-test.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/* global describe, it */
-
-var exec = require('child_process').exec,
- expect = require('chai').expect,
- assert = require('assert')
-
-require('chai').should()
-require('tap').mochaGlobals()
-
-describe('signal-exit', function () {
-
- it('receives an exit event when a process exits normally', function (done) {
- exec(process.execPath + ' ./test/fixtures/end-of-execution.js', function (err, stdout, stderr) {
- expect(err).to.equal(null)
- stdout.should.match(/reached end of execution, 0, null/)
- done()
- })
- })
-
- it('receives an exit event when a process is terminated with sigint', function (done) {
- exec(process.execPath + ' ./test/fixtures/sigint.js', function (err, stdout, stderr) {
- assert(err)
- stdout.should.match(/exited with sigint, null, SIGINT/)
- done()
- })
- })
-
- it('receives an exit event when a process is terminated with sigterm', function (done) {
- exec(process.execPath + ' ./test/fixtures/sigterm.js', function (err, stdout, stderr) {
- assert(err)
- stdout.should.match(/exited with sigterm, null, SIGTERM/)
- done()
- })
- })
-
- it('receives an exit event when process.exit() is called', function (done) {
- exec(process.execPath + ' ./test/fixtures/exit.js', function (err, stdout, stderr) {
- err.code.should.equal(32)
- stdout.should.match(/exited with process\.exit\(\), 32, null/)
- done()
- })
- })
-
- it('does not exit if user handles signal', function (done) {
- exec(process.execPath + ' ./test/fixtures/signal-listener.js', function (err, stdout, stderr) {
- assert(err)
- assert.equal(stdout, 'exited calledListener=4, code=null, signal="SIGHUP"\n')
- done()
- })
- })
-
- it('ensures that if alwaysLast=true, the handler is run last (signal)', function (done) {
- exec(process.execPath + ' ./test/fixtures/signal-last.js', function (err, stdout, stderr) {
- assert(err)
- stdout.should.match(/first counter=1/)
- stdout.should.match(/last counter=2/)
- done()
- })
- })
-
- it('ensures that if alwaysLast=true, the handler is run last (normal exit)', function (done) {
- exec(process.execPath + ' ./test/fixtures/exit-last.js', function (err, stdout, stderr) {
- assert.ifError(err)
- stdout.should.match(/first counter=1/)
- stdout.should.match(/last counter=2/)
- done()
- })
- })
-
- it('works when loaded multiple times', function (done) {
- exec(process.execPath + ' ./test/fixtures/multiple-load.js', function (err, stdout, stderr) {
- assert(err)
- stdout.should.match(/first counter=1, code=null, signal="SIGHUP"/)
- stdout.should.match(/first counter=2, code=null, signal="SIGHUP"/)
- stdout.should.match(/last counter=3, code=null, signal="SIGHUP"/)
- stdout.should.match(/last counter=4, code=null, signal="SIGHUP"/)
- done()
- })
- })
-
- // TODO: test on a few non-OSX machines.
- it('removes handlers when fully unwrapped', function (done) {
- exec(process.execPath + ' ./test/fixtures/unwrap.js', function (err, stdout, stderr) {
- // on Travis CI no err.signal is populated but
- // err.code is 129 (which I think tends to be SIGHUP).
- var expectedCode = process.env.TRAVIS ? 129 : null
-
- assert(err)
- if (!process.env.TRAVIS) err.signal.should.equal('SIGHUP')
- expect(err.code).to.equal(expectedCode)
- done()
- })
- })
-
- it('does not load() or unload() more than once', function (done) {
- exec(process.execPath + ' ./test/fixtures/load-unload.js', function (err, stdout, stderr) {
- assert.ifError(err)
- done()
- })
- })
-
- it('handles uncatchable signals with grace and poise', function (done) {
- exec(process.execPath + ' ./test/fixtures/sigkill.js', function (err, stdout, stderr) {
- assert.ifError(err)
- done()
- })
- })
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/package.json b/node_modules/nyc/node_modules/spawn-wrap/package.json
index e0f12b562..99134e0a0 100644
--- a/node_modules/nyc/node_modules/spawn-wrap/package.json
+++ b/node_modules/nyc/node_modules/spawn-wrap/package.json
@@ -2,49 +2,49 @@
"_args": [
[
{
- "raw": "spawn-wrap@1.2.4",
+ "raw": "spawn-wrap@^1.3.8",
"scope": null,
"escapedName": "spawn-wrap",
"name": "spawn-wrap",
- "rawSpec": "1.2.4",
- "spec": "1.2.4",
- "type": "version"
+ "rawSpec": "^1.3.8",
+ "spec": ">=1.3.8 <2.0.0",
+ "type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "spawn-wrap@1.2.4",
- "_id": "spawn-wrap@1.2.4",
+ "_from": "spawn-wrap@>=1.3.8 <2.0.0",
+ "_id": "spawn-wrap@1.3.8",
"_inCache": true,
"_location": "/spawn-wrap",
- "_nodeVersion": "4.4.4",
+ "_nodeVersion": "8.0.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/spawn-wrap-1.2.4.tgz_1468215828135_0.47862559952773154"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/spawn-wrap-1.3.8.tgz_1499381746040_0.7410448391456157"
},
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_npmVersion": "3.10.2",
+ "_npmVersion": "5.1.0",
"_phantomChildren": {},
"_requested": {
- "raw": "spawn-wrap@1.2.4",
+ "raw": "spawn-wrap@^1.3.8",
"scope": null,
"escapedName": "spawn-wrap",
"name": "spawn-wrap",
- "rawSpec": "1.2.4",
- "spec": "1.2.4",
- "type": "version"
+ "rawSpec": "^1.3.8",
+ "spec": ">=1.3.8 <2.0.0",
+ "type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.2.4.tgz",
- "_shasum": "920eb211a769c093eebfbd5b0e7a5d2e68ab2e40",
+ "_resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.8.tgz",
+ "_shasum": "fa2a79b990cbb0bb0018dca6748d88367b19ec31",
"_shrinkwrap": null,
- "_spec": "spawn-wrap@1.2.4",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "spawn-wrap@^1.3.8",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -54,30 +54,36 @@
"url": "https://github.com/isaacs/spawn-wrap/issues"
},
"dependencies": {
- "foreground-child": "^1.3.3",
+ "foreground-child": "^1.5.6",
"mkdirp": "^0.5.0",
"os-homedir": "^1.0.1",
"rimraf": "^2.3.3",
- "signal-exit": "^2.0.0",
+ "signal-exit": "^3.0.2",
"which": "^1.2.4"
},
"description": "Wrap all spawned Node.js child processes by adding environs and arguments ahead of the main JavaScript file argument.",
"devDependencies": {
- "tap": "^2.3.0"
+ "tap": "^10.1.0"
},
"directories": {},
"dist": {
- "shasum": "920eb211a769c093eebfbd5b0e7a5d2e68ab2e40",
- "tarball": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.2.4.tgz"
+ "integrity": "sha512-Yfkd7Yiwz4RcBPrDWzvhnTzQINBHNqOEhUzOdWZ67Y9b4wzs3Gz6ymuptQmRBpzlpOzroM7jwzmBdRec7JJ0UA==",
+ "shasum": "fa2a79b990cbb0bb0018dca6748d88367b19ec31",
+ "tarball": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.3.8.tgz"
},
- "gitHead": "9e68d01d34b8d9bf6db182feae8472971b9723e3",
+ "files": [
+ "index.js",
+ "shim.js",
+ "lib/is-windows.js"
+ ],
+ "gitHead": "4b269f316e8da220fab8449f0fe60d34813db027",
"homepage": "https://github.com/isaacs/spawn-wrap#readme",
"license": "ISC",
"main": "index.js",
"maintainers": [
{
"name": "isaacs",
- "email": "isaacs@npmjs.com"
+ "email": "i@izs.me"
}
],
"name": "spawn-wrap",
@@ -89,7 +95,11 @@
"url": "git+https://github.com/isaacs/spawn-wrap.git"
},
"scripts": {
+ "clean": "rm -rf ~/.node-spawn-wrap-*",
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
"test": "tap test/*.js"
},
- "version": "1.2.4"
+ "version": "1.3.8"
}
diff --git a/node_modules/nyc/node_modules/spawn-wrap/shim.js b/node_modules/nyc/node_modules/spawn-wrap/shim.js
index 96437215c..dda6b2ae2 100644
--- a/node_modules/nyc/node_modules/spawn-wrap/shim.js
+++ b/node_modules/nyc/node_modules/spawn-wrap/shim.js
@@ -1,3 +1,5 @@
+'use strict'
+
// This module should *only* be loaded as a main script
// by child processes wrapped by spawn-wrap. It sets up
// argv to include the injected argv (including the user's
@@ -9,24 +11,47 @@
// a require('spawn-wrap').runMain() function that will strip
// off the injected arguments and run the main file.
+// wrap in iife for babylon to handle module-level return
+;(function () {
+
if (module !== require.main) {
throw new Error('spawn-wrap: cli wrapper invoked as non-main script')
}
-// require('fs').createWriteStream('/dev/tty').write('WRAP ' + process.argv.slice(2).join(' ') + '\n')
+var util
+var doDebug = process.env.SPAWN_WRAP_DEBUG === '1'
+var fs
+function debug () {
+ if (!doDebug)
+ return
+
+ if (!fs) {
+ fs = require('fs')
+ util = require('util')
+ }
+
+ var message = util.format.apply(util, arguments).trim()
+ var pref = 'SW ' + process.pid + ': '
+ message = pref + message.split('\n').join('\n' + pref)
+ fs.writeSync(2, message + '\n')
+}
+
+debug('shim', [process.argv[0]].concat(process.execArgv, process.argv.slice(1)))
+
var Module = require('module')
var assert = require('assert')
var path = require('path')
-var node = process.execPath
var settings = require('./settings.json')
var foregroundChild = require(settings.deps.foregroundChild)
var argv = settings.argv
var nargs = argv.length
var env = settings.env
+var key = settings.key
+var node = process.env['SW_ORIG_' + key] || process.execPath
-for (var key in env) {
- process.env[key] = env[key]
+for (var k in env) {
+ process.env[k] = env[k]
}
var needExecArgv = settings.execArgv || []
@@ -34,9 +59,13 @@ var needExecArgv = settings.execArgv || []
// If the user added their OWN wrapper pre-load script, then
// this will pop that off of the argv, and load the "real" main
function runMain () {
+ debug('runMain pre', process.argv)
process.argv.splice(1, nargs)
process.argv[1] = path.resolve(process.argv[1])
+ delete require.cache[process.argv[1]]
+ debug('runMain post', process.argv)
Module.runMain()
+ debug('runMain after')
}
// Argv coming in looks like:
@@ -54,6 +83,7 @@ for (var a = 2; !hasMain && a < process.argv.length; a++) {
case '--interactive':
case '--eval':
case '-e':
+ case '-p':
case '-pe':
hasMain = false
a = process.argv.length
@@ -74,6 +104,7 @@ for (var a = 2; !hasMain && a < process.argv.length; a++) {
}
}
}
+debug('after argv parse hasMain=%j', hasMain)
if (hasMain > 2) {
// if the main file is above #2, then it means that there
@@ -88,6 +119,7 @@ if (hasMain > 2) {
if (!hasMain) {
// we got loaded by mistake for a `node -pe script` or something.
var args = process.execArgv.concat(needExecArgv, process.argv.slice(2))
+ debug('no main file!', args)
foregroundChild(node, args)
return
}
@@ -99,6 +131,7 @@ if (!hasMain) {
if (needExecArgv.length) {
var pexec = process.execArgv
if (JSON.stringify(pexec) !== JSON.stringify(needExecArgv)) {
+ debug('need execArgv for this', pexec, '=>', needExecArgv)
var spawn = require('child_process').spawn
var sargs = pexec.concat(needExecArgv).concat(process.argv.slice(1))
foregroundChild(node, sargs)
@@ -132,8 +165,16 @@ if (isWindows) {
var spawnWrap = require(settings.module)
if (nargs) {
- spawnWrap.runMain = runMain
+ spawnWrap.runMain = function (original) { return function () {
+ spawnWrap.runMain = original
+ runMain()
+ }}(spawnWrap.runMain)
}
spawnWrap(argv, env, __dirname)
+debug('shim runMain', process.argv)
+delete require.cache[process.argv[1]]
Module.runMain()
+
+// end iife wrapper for babylon
+})()
diff --git a/node_modules/nyc/node_modules/spawn-wrap/t.js b/node_modules/nyc/node_modules/spawn-wrap/t.js
deleted file mode 100755
index fa0ce2b7a..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/t.js
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env node
-if (process.env.xyz) {
- console.log('in t.js, xyz=%j', process.env.xyz)
- console.log('gc is a', typeof gc)
- console.log('%j', process.argv)
- console.log('about to run the main file\u001b[32m')
- require('./index.js').runMain()
- console.log('\u001b[31mran wrapped main')
- return
-}
-
-var wrap = require('./index.js')
-
-var unwrap = wrap(['--expose_gc', __filename, ' a $ b '], { xyz: 'ABC' })
-
-console.log('about to run child process')
-console.log('gc is a', typeof gc)
-var cp = require('child_process')
-var child = cp.exec(process.execPath + ' $(which tap ) -h', { env: { foo: 'asdf', PATH:process.env.PATH } }, function (er, out, err) {
- console.error('returned')
- console.error('error = ', er)
- console.error('outlen=', out.length)
- console.error('\u001b[31m' + out + '\u001b[m')
- console.error('errlen=', err.length)
- process.stderr.write(err)
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/abs-shebang.js b/node_modules/nyc/node_modules/spawn-wrap/test/abs-shebang.js
deleted file mode 100644
index f254683df..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/abs-shebang.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var path = require('path')
-var fs = require('fs')
-var spawn = require('child_process').spawn
-var t = require('tap')
-var node = process.execPath
-var wrap = require.resolve('./fixtures/wrap.js')
-var rimraf = require('rimraf')
-var mkdirp = require('mkdirp')
-var fs = require('fs')
-
-if (process.platform === 'win32') {
- t.plan(0, 'No proper shebang support on windows, so skip this')
- process.exit(0)
-}
-
-var expect =
- 'before in shim\n' +
- 'shebang main foo,bar\n' +
- 'after in shim\n' +
- 'before in shim\n' +
- 'shebang main foo,bar\n' +
- 'after in shim\n'
-
-var fixdir = path.resolve(__dirname, 'fixtures', 'shebangs')
-
-t.test('setup', function (t) {
- rimraf.sync(fixdir)
- mkdirp.sync(fixdir)
- t.end()
-})
-
-t.test('absolute', function (t) {
- var file = path.resolve(fixdir, 'absolute.js')
- runTest(file, process.execPath, t)
-})
-
-t.test('env', function (t) {
- var file = path.resolve(fixdir, 'env.js')
- runTest(file, '/usr/bin/env node', t)
-})
-
-function runTest (file, shebang, t) {
- var content = '#!' + shebang + '\n' +
- 'console.log("shebang main " + process.argv.slice(2))\n'
- fs.writeFileSync(file, content, 'utf8')
- fs.chmodSync(file, '0755')
- var child = spawn(node, [wrap, file, 'foo', 'bar'])
- var out = ''
- var err = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.stderr.on('data', function (c) {
- err += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- // console.error(err)
- t.end()
- })
-}
-
-t.test('cleanup', function (t) {
- rimraf.sync(fixdir)
- t.end()
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/basic.js b/node_modules/nyc/node_modules/spawn-wrap/test/basic.js
deleted file mode 100644
index 969310088..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/basic.js
+++ /dev/null
@@ -1,419 +0,0 @@
-var sw = require('../')
-var isWindows = require('../lib/is-windows.js')()
-var winNoShebang = isWindows && 'no shebang execution on windows'
-var winNoSig = isWindows && 'no signals get through cmd'
-
-var onExit = require('signal-exit')
-var cp = require('child_process')
-var fixture = require.resolve('./fixtures/script.js')
-var npmFixture = require.resolve('./fixtures/npm')
-var fs = require('fs')
-var path = require('path')
-
-if (process.argv[2] === 'parent') {
- // hang up once
- process.once('SIGHUP', function onHup () {
- console.log('SIGHUP')
- })
- // handle sigints forever
- process.on('SIGINT', function onInt () {
- console.log('SIGINT')
- })
- onExit(function (code, signal) {
- console.log('EXIT %j', [code, signal])
- })
- var argv = process.argv.slice(3).map(function (arg) {
- if (arg === fixture) {
- return '{{FIXTURE}}'
- }
- return arg
- })
- console.log('WRAP %j', process.execArgv.concat(argv))
- sw.runMain()
- return
-}
-
-var t = require('tap')
-var unwrap = sw([__filename, 'parent'])
-
-var expect = 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'EXIT [0,null]\n'
-
-// dummy for node v0.10
-if (!cp.spawnSync) {
- cp.spawnSync = function () {
- return {
- status: 0,
- signal: null,
- stdout: expect
- }
- }
-}
-
-t.test('spawn execPath', function (t) {
- t.plan(4)
-
- t.test('basic', function (t) {
- var child = cp.spawn(process.execPath, [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- t.end()
- })
- })
-
- t.test('basic sync', function (t) {
- var child = cp.spawnSync(process.execPath, [fixture, 'xyz'])
-
- t.equal(child.status, 0)
- t.equal(child.signal, null)
- t.equal(child.stdout.toString(), expect)
- t.end()
- })
-
- t.test('SIGINT', { skip: winNoSig }, function (t) {
- var child = cp.spawn(process.execPath, [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.stdout.once('data', function () {
- child.kill('SIGINT')
- })
- child.stderr.on('data', function (t) {
- console.error(t)
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGINT\n' +
- 'EXIT [0,null]\n')
- t.end()
- })
- })
-
- t.test('SIGHUP', { skip: winNoSig }, function (t) {
- var child = cp.spawn(process.execPath, [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- child.kill('SIGHUP')
- })
- child.on('close', function (code, signal) {
- t.equal(signal, 'SIGHUP')
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGHUP\n' +
- 'EXIT [null,"SIGHUP"]\n')
- t.end()
- })
- })
-})
-
-t.test('spawn node', function (t) {
- t.plan(4)
-
- t.test('basic', function (t) {
- var child = cp.spawn('node', [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- t.end()
- })
- })
-
- t.test('basic sync', function (t) {
- var child = cp.spawnSync('node', [fixture, 'xyz'])
-
- t.equal(child.status, 0)
- t.equal(child.signal, null)
- t.equal(child.stdout.toString(), expect)
- t.end()
- })
-
- t.test('SIGINT', { skip: winNoSig }, function (t) {
- var child = cp.spawn('node', [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.stdout.once('data', function () {
- child.kill('SIGINT')
- })
- child.stderr.on('data', function (t) {
- console.error(t)
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGINT\n' +
- 'EXIT [0,null]\n')
- t.end()
- })
- })
-
- t.test('SIGHUP', { skip: winNoSig }, function (t) {
- var child = cp.spawn('node', [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- child.kill('SIGHUP')
- })
- child.on('close', function (code, signal) {
- t.equal(signal, 'SIGHUP')
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGHUP\n' +
- 'EXIT [null,"SIGHUP"]\n')
- t.end()
- })
- })
-})
-
-t.test('exec execPath', function (t) {
- t.plan(4)
-
- t.test('basic', function (t) {
- var opt = isWindows ? null : { shell: '/bin/bash' }
- var child = cp.exec(process.execPath + ' ' + fixture + ' xyz', opt)
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- t.end()
- })
- })
-
- t.test('execPath wrapped with quotes', function (t) {
- var opt = isWindows ? null : { shell: '/bin/bash' }
- var child = cp.exec(JSON.stringify(process.execPath) + ' ' + fixture +
- ' xyz', opt)
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- t.end()
- })
- })
-
- t.test('SIGINT', { skip: winNoSig }, function (t) {
- var child = cp.exec(process.execPath + ' ' + fixture + ' xyz', { shell: '/bin/bash' })
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.stdout.once('data', function () {
- child.kill('SIGINT')
- })
- child.stderr.on('data', function (t) {
- console.error(t)
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGINT\n' +
- 'EXIT [0,null]\n')
- t.end()
- })
- })
-
- t.test('SIGHUP', { skip: winNoSig }, function (t) {
- var child = cp.exec(process.execPath + ' ' + fixture + ' xyz', { shell: '/bin/bash' })
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- child.kill('SIGHUP')
- })
- child.on('close', function (code, signal) {
- t.equal(signal, 'SIGHUP')
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGHUP\n' +
- 'EXIT [null,"SIGHUP"]\n')
- t.end()
- })
- })
-})
-
-t.test('exec shebang', { skip: winNoShebang }, function (t) {
- t.plan(3)
-
- t.test('basic', function (t) {
- var child = cp.exec(fixture + ' xyz', { shell: '/bin/bash' })
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- t.end()
- })
- })
-
- t.test('SIGHUP', function (t) {
- var child = cp.exec(fixture + ' xyz', { shell: '/bin/bash' })
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- child.kill('SIGHUP')
- })
- child.on('close', function (code, signal) {
- t.equal(signal, 'SIGHUP')
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGHUP\n' +
- 'EXIT [null,"SIGHUP"]\n')
- t.end()
- })
- })
-
- t.test('SIGINT', function (t) {
- var child = cp.exec(fixture + ' xyz', { shell: '/bin/bash' })
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.stdout.once('data', function () {
- child.kill('SIGINT')
- })
- child.stderr.on('data', function (t) {
- console.error(t)
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, 'WRAP ["{{FIXTURE}}","xyz"]\n' +
- '[]\n' +
- '["xyz"]\n' +
- 'SIGINT\n' +
- 'EXIT [0,null]\n')
- t.end()
- })
- })
-})
-
-// see: https://github.com/bcoe/nyc/issues/190
-t.test('Node 5.8.x + npm 3.7.x - spawn', { skip: winNoShebang }, function (t) {
- var npmdir = path.dirname(npmFixture)
- process.env.PATH = npmdir + ':' + (process.env.PATH || '')
- var child = cp.spawn('npm', ['xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.true(~out.indexOf('xyz'))
- t.end()
- })
-})
-
-t.test('Node 5.8.x + npm 3.7.x - shell', { skip: winNoShebang }, function (t) {
- var npmdir = path.dirname(npmFixture)
- process.env.PATH = npmdir + ':' + (process.env.PATH || '')
- var child = cp.exec('npm xyz')
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.true(~out.indexOf('xyz'))
- t.end()
- })
-})
-
-t.test('--harmony', function (t) {
- var node = process.execPath
- var child = cp.spawn(node, ['--harmony', fixture, 'xyz'])
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, 'WRAP ["--harmony","{{FIXTURE}}","xyz"]\n' +
- '["--harmony"]\n' +
- '["xyz"]\n' +
- 'EXIT [0,null]\n')
- t.end()
- })
-})
-
-t.test('node exe with different name', function(t) {
- var fp = path.join(__dirname, 'fixtures', 'exething.exe')
- var data = fs.readFileSync(process.execPath)
- fs.writeFileSync(fp, data)
- fs.chmodSync(fp, '0775')
- var child = cp.spawn(process.execPath, [fixture, 'xyz'])
-
- var out = ''
- child.stdout.on('data', function (c) {
- out += c
- })
- child.on('close', function (code, signal) {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(out, expect)
- fs.unlinkSync(fp)
- t.end()
- })
-})
-
-t.test('unwrap', function (t) {
- unwrap()
- t.end()
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/node_modules/npm/bin/npm-cli.js b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/node_modules/npm/bin/npm-cli.js
deleted file mode 100644
index b3c400768..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/node_modules/npm/bin/npm-cli.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-console.log('%j', process.execArgv)
-console.log('%j', process.argv.slice(2))
-setTimeout(function () {}, 100)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm
deleted file mode 100755
index 4e026deb9..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-// 2>/dev/null; exec "`dirname "$0"`/node" "$0" "$@"
-console.log('%j', process.execArgv)
-console.log('%j', process.argv.slice(2))
-setTimeout(function () {}, 100)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm.cmd b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm.cmd
deleted file mode 100644
index 521ec9e4d..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/npm.cmd
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo This code should never be executed.
-exit /B 1
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/script.js b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/script.js
deleted file mode 100755
index 3ccd0c9ea..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/script.js
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env node
-console.log('%j', process.execArgv)
-console.log('%j', process.argv.slice(2))
-
-// Keep the event loop alive long enough to receive signals.
-setTimeout(function() {}, 100)
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/test-shim.js b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/test-shim.js
deleted file mode 100644
index b6baf69ee..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/test-shim.js
+++ /dev/null
@@ -1,3 +0,0 @@
-console.log('before in shim')
-require('../..').runMain()
-console.log('after in shim')
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/wrap.js b/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/wrap.js
deleted file mode 100644
index a8af6e471..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/fixtures/wrap.js
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env node
-var sw = require('../..')
-
-sw([require.resolve('./test-shim.js')])
-
-var path = require('path')
-var spawn = require('child_process').spawn
-
-spawn(path.resolve(process.argv[2]), process.argv.slice(3), {
- stdio: 'inherit'
-}).on('close', function (code, signal) {
- if (code || signal) {
- throw new Error('failed with ' + (code || signal))
- }
-
- // now run using PATH
- process.env.PATH = path.resolve(path.dirname(process.argv[2])) +
- ':' + process.env.PATH
-
- spawn(path.basename(process.argv[2]), process.argv.slice(3), {
- stdio: 'inherit',
- }, function (code, signal) {
- if (code || signal) {
- throw new Error('failed with ' + (code || signal))
- }
- })
-})
diff --git a/node_modules/nyc/node_modules/spawn-wrap/test/win-rebase.js b/node_modules/nyc/node_modules/spawn-wrap/test/win-rebase.js
deleted file mode 100644
index b9d09fe0b..000000000
--- a/node_modules/nyc/node_modules/spawn-wrap/test/win-rebase.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var t = require('tap')
-var winRebase = require('../lib/win-rebase')
-
-t.test('it replaces path to node bin', function (t) {
- var result = winRebase('C:\\Program Files\\nodejs\\node.exe', 'C:\\foo')
- t.equal(result, 'C:\\foo')
- t.done()
-})
-
-t.test('it does not replace path if it references an unknown bin', function (t) {
- var result = winRebase('C:\\Program Files\\nodejs\\banana', 'C:\\foo')
- t.equal(result, 'C:\\Program Files\\nodejs\\banana')
- t.done()
-})
-
-t.test('replaces node bin and leaves the script being executed', function (t) {
- var result = winRebase('C:\\Program Files\\nodejs\\node.exe foo.js', 'C:\\foo')
- t.equal(result, 'C:\\foo foo.js')
- t.done()
-})
-
-t.test('handles a quote', function (t) {
- var result = winRebase('"C:\\Program Files\\nodejs\\node.exe" "foo.js"', 'C:\\foo')
- t.equal(result, '"C:\\foo" "foo.js"')
- t.end()
-})
-
-t.test('handles many quotes', function (t) {
- var result = winRebase('""C:\\Program Files\\nodejs\\node.exe" "foo.js""', 'C:\\foo')
- t.equal(result, '""C:\\foo" "foo.js""')
- t.end()
-})
-
-t.test('handles npm invocations', function (t) {
- var result = winRebase('""npm" "install""',
- 'C:\\foo',
- function() { return 'C:\\path-to-npm\\npm' })
- t.equal(result, '""C:\\foo "C:\\path-to-npm\\node_modules\\npm\\bin\\npm-cli.js"" "install""')
- t.end()
-})
diff --git a/node_modules/nyc/node_modules/spdx-correct/package.json b/node_modules/nyc/node_modules/spdx-correct/package.json
index f7aa30661..b3d4fef22 100644
--- a/node_modules/nyc/node_modules/spdx-correct/package.json
+++ b/node_modules/nyc/node_modules/spdx-correct/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <1.1.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/validate-npm-package-license"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/validate-npm-package-license"
]
],
"_from": "spdx-correct@>=1.0.0 <1.1.0",
@@ -40,7 +40,7 @@
"_shasum": "4b3073d933ff51f3912f03ac5519498a4150db40",
"_shrinkwrap": null,
"_spec": "spdx-correct@~1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/validate-npm-package-license",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/validate-npm-package-license",
"author": {
"name": "Kyle E. Mitchell",
"email": "kyle@kemitchell.com",
diff --git a/node_modules/nyc/node_modules/spdx-expression-parse/package.json b/node_modules/nyc/node_modules/spdx-expression-parse/package.json
index fb21ffacb..b2bffd25e 100644
--- a/node_modules/nyc/node_modules/spdx-expression-parse/package.json
+++ b/node_modules/nyc/node_modules/spdx-expression-parse/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <1.1.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/validate-npm-package-license"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/validate-npm-package-license"
]
],
"_from": "spdx-expression-parse@>=1.0.0 <1.1.0",
@@ -44,7 +44,7 @@
"_shasum": "9bdf2f20e1f40ed447fbe273266191fced51626c",
"_shrinkwrap": null,
"_spec": "spdx-expression-parse@~1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/validate-npm-package-license",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/validate-npm-package-license",
"author": {
"name": "Kyle E. Mitchell",
"email": "kyle@kemitchell.com",
diff --git a/node_modules/nyc/node_modules/spdx-license-ids/package.json b/node_modules/nyc/node_modules/spdx-license-ids/package.json
index c504ddbbb..1756932ed 100644
--- a/node_modules/nyc/node_modules/spdx-license-ids/package.json
+++ b/node_modules/nyc/node_modules/spdx-license-ids/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.2 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/spdx-correct"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/spdx-correct"
]
],
"_from": "spdx-license-ids@>=1.0.2 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "c9df7a3424594ade6bd11900d596696dc06bac57",
"_shrinkwrap": null,
"_spec": "spdx-license-ids@^1.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/spdx-correct",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/spdx-correct",
"author": {
"name": "Shinnosuke Watanabe",
"url": "https://github.com/shinnn"
diff --git a/node_modules/nyc/node_modules/string-width/index.js b/node_modules/nyc/node_modules/string-width/index.js
index b9bec6244..1f8a1f113 100644
--- a/node_modules/nyc/node_modules/string-width/index.js
+++ b/node_modules/nyc/node_modules/string-width/index.js
@@ -1,27 +1,25 @@
'use strict';
-var stripAnsi = require('strip-ansi');
-var codePointAt = require('code-point-at');
-var isFullwidthCodePoint = require('is-fullwidth-code-point');
+const stripAnsi = require('strip-ansi');
+const isFullwidthCodePoint = require('is-fullwidth-code-point');
-// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345
-module.exports = function (str) {
+module.exports = str => {
if (typeof str !== 'string' || str.length === 0) {
return 0;
}
- var width = 0;
+ let width = 0;
str = stripAnsi(str);
- for (var i = 0; i < str.length; i++) {
- var code = codePointAt(str, i);
+ for (let i = 0; i < str.length; i++) {
+ const code = str.codePointAt(i);
- // ignore control characters
- if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {
+ // Ignore control characters
+ if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {
continue;
}
- // surrogates
+ // Surrogates
if (code >= 0x10000) {
i++;
}
diff --git a/node_modules/nyc/node_modules/string-width/license b/node_modules/nyc/node_modules/string-width/license
index 654d0bfe9..e7af2f771 100644
--- a/node_modules/nyc/node_modules/string-width/license
+++ b/node_modules/nyc/node_modules/string-width/license
@@ -1,21 +1,9 @@
-The MIT License (MIT)
+MIT License
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/index.js b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/index.js
new file mode 100644
index 000000000..c4aaecf50
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+module.exports = () => {
+ const pattern = [
+ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
+ ].join('|');
+
+ return new RegExp(pattern, 'g');
+};
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/license b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/license
new file mode 100644
index 000000000..e7af2f771
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/package.json b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/package.json
new file mode 100644
index 000000000..aeae26631
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/package.json
@@ -0,0 +1,130 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "ansi-regex@^3.0.0",
+ "scope": null,
+ "escapedName": "ansi-regex",
+ "name": "ansi-regex",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/string-width/node_modules/strip-ansi"
+ ]
+ ],
+ "_from": "ansi-regex@>=3.0.0 <4.0.0",
+ "_id": "ansi-regex@3.0.0",
+ "_inCache": true,
+ "_location": "/string-width/ansi-regex",
+ "_nodeVersion": "4.8.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/ansi-regex-3.0.0.tgz_1497985412590_0.5700640194118023"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.11",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "ansi-regex@^3.0.0",
+ "scope": null,
+ "escapedName": "ansi-regex",
+ "name": "ansi-regex",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/string-width/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "_shasum": "ed0317c322064f79466c02966bddb605ab37d998",
+ "_shrinkwrap": null,
+ "_spec": "ansi-regex@^3.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/string-width/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "dependencies": {},
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "ed0317c322064f79466c02966bddb605ab37d998",
+ "tarball": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "0a8cc19946c03c38520fe8c086b8adb66f9cce0b",
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "dthree",
+ "email": "threedeecee@gmail.com"
+ },
+ {
+ "name": "qix",
+ "email": "i.am.qix@gmail.com"
+ },
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "ansi-regex",
+ "optionalDependencies": {},
+ "readme": "# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)\n\n> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install ansi-regex\n```\n\n\n## Usage\n\n```js\nconst ansiRegex = require('ansi-regex');\n\nansiRegex().test('\\u001B[4mcake\\u001B[0m');\n//=> true\n\nansiRegex().test('cake');\n//=> false\n\n'\\u001B[4mcake\\u001B[0m'.match(ansiRegex());\n//=> ['\\u001B[4m', '\\u001B[0m']\n```\n\n\n## FAQ\n\n### Why do you test for codes not in the ECMA 48 standard?\n\nSome of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.\n\nOn the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of \"interrupts\" that can mean different things on certain brands of processors, most of which have been phased out.\n\n\n## Maintainers\n\n- [Sindre Sorhus](https://github.com/sindresorhus)\n- [Josh Junon](https://github.com/qix-)\n\n\n## License\n\nMIT\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/readme.md b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/readme.md
new file mode 100644
index 000000000..22db1c340
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/ansi-regex/readme.md
@@ -0,0 +1,46 @@
+# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
+
+> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
+
+
+## Install
+
+```
+$ npm install ansi-regex
+```
+
+
+## Usage
+
+```js
+const ansiRegex = require('ansi-regex');
+
+ansiRegex().test('\u001B[4mcake\u001B[0m');
+//=> true
+
+ansiRegex().test('cake');
+//=> false
+
+'\u001B[4mcake\u001B[0m'.match(ansiRegex());
+//=> ['\u001B[4m', '\u001B[0m']
+```
+
+
+## FAQ
+
+### Why do you test for codes not in the ECMA 48 standard?
+
+Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
+
+On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
+## License
+
+MIT
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
new file mode 100644
index 000000000..d506327c3
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
@@ -0,0 +1,46 @@
+'use strict';
+/* eslint-disable yoda */
+module.exports = x => {
+ if (Number.isNaN(x)) {
+ return false;
+ }
+
+ // code points are derived from:
+ // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
+ if (
+ x >= 0x1100 && (
+ x <= 0x115f || // Hangul Jamo
+ x === 0x2329 || // LEFT-POINTING ANGLE BRACKET
+ x === 0x232a || // RIGHT-POINTING ANGLE BRACKET
+ // CJK Radicals Supplement .. Enclosed CJK Letters and Months
+ (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||
+ // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
+ (0x3250 <= x && x <= 0x4dbf) ||
+ // CJK Unified Ideographs .. Yi Radicals
+ (0x4e00 <= x && x <= 0xa4c6) ||
+ // Hangul Jamo Extended-A
+ (0xa960 <= x && x <= 0xa97c) ||
+ // Hangul Syllables
+ (0xac00 <= x && x <= 0xd7a3) ||
+ // CJK Compatibility Ideographs
+ (0xf900 <= x && x <= 0xfaff) ||
+ // Vertical Forms
+ (0xfe10 <= x && x <= 0xfe19) ||
+ // CJK Compatibility Forms .. Small Form Variants
+ (0xfe30 <= x && x <= 0xfe6b) ||
+ // Halfwidth and Fullwidth Forms
+ (0xff01 <= x && x <= 0xff60) ||
+ (0xffe0 <= x && x <= 0xffe6) ||
+ // Kana Supplement
+ (0x1b000 <= x && x <= 0x1b001) ||
+ // Enclosed Ideographic Supplement
+ (0x1f200 <= x && x <= 0x1f251) ||
+ // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
+ (0x20000 <= x && x <= 0x3fffd)
+ )
+ ) {
+ return true;
+ }
+
+ return false;
+};
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 000000000..5a0bc1d48
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,114 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "is-fullwidth-code-point@^2.0.0",
+ "scope": null,
+ "escapedName": "is-fullwidth-code-point",
+ "name": "is-fullwidth-code-point",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/string-width"
+ ]
+ ],
+ "_from": "is-fullwidth-code-point@>=2.0.0 <3.0.0",
+ "_id": "is-fullwidth-code-point@2.0.0",
+ "_inCache": true,
+ "_location": "/string-width/is-fullwidth-code-point",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/is-fullwidth-code-point-2.0.0.tgz_1474526567505_0.299921662081033"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.10.7",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "is-fullwidth-code-point@^2.0.0",
+ "scope": null,
+ "escapedName": "is-fullwidth-code-point",
+ "name": "is-fullwidth-code-point",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
+ "_shrinkwrap": null,
+ "_spec": "is-fullwidth-code-point@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "dependencies": {},
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
+ "tarball": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "e94a78056056c5546f2bf4c4cf812a2163a46dae",
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "is-fullwidth-code-point",
+ "optionalDependencies": {},
+ "readme": "# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point)\n\n> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)\n\n\n## Install\n\n```\n$ npm install --save is-fullwidth-code-point\n```\n\n\n## Usage\n\n```js\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\n\nisFullwidthCodePoint('谢'.codePointAt());\n//=> true\n\nisFullwidthCodePoint('a'.codePointAt());\n//=> false\n```\n\n\n## API\n\n### isFullwidthCodePoint(input)\n\n#### input\n\nType: `number`\n\n[Code point](https://en.wikipedia.org/wiki/Code_point) of a character.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
new file mode 100644
index 000000000..093b0281b
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
@@ -0,0 +1,39 @@
+# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point)
+
+> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
+
+
+## Install
+
+```
+$ npm install --save is-fullwidth-code-point
+```
+
+
+## Usage
+
+```js
+const isFullwidthCodePoint = require('is-fullwidth-code-point');
+
+isFullwidthCodePoint('谢'.codePointAt());
+//=> true
+
+isFullwidthCodePoint('a'.codePointAt());
+//=> false
+```
+
+
+## API
+
+### isFullwidthCodePoint(input)
+
+#### input
+
+Type: `number`
+
+[Code point](https://en.wikipedia.org/wiki/Code_point) of a character.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/index.js b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/index.js
new file mode 100644
index 000000000..96e0292c8
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/index.js
@@ -0,0 +1,4 @@
+'use strict';
+const ansiRegex = require('ansi-regex');
+
+module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input;
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/license b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/license
new file mode 100644
index 000000000..e7af2f771
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/package.json b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/package.json
new file mode 100644
index 000000000..f950b32f6
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/package.json
@@ -0,0 +1,128 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "strip-ansi@^4.0.0",
+ "scope": null,
+ "escapedName": "strip-ansi",
+ "name": "strip-ansi",
+ "rawSpec": "^4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/string-width"
+ ]
+ ],
+ "_from": "strip-ansi@>=4.0.0 <5.0.0",
+ "_id": "strip-ansi@4.0.0",
+ "_inCache": true,
+ "_location": "/string-width/strip-ansi",
+ "_nodeVersion": "4.8.3",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/strip-ansi-4.0.0.tgz_1497986904730_0.4528853143565357"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.11",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "strip-ansi@^4.0.0",
+ "scope": null,
+ "escapedName": "strip-ansi",
+ "name": "strip-ansi",
+ "rawSpec": "^4.0.0",
+ "spec": ">=4.0.0 <5.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "_shasum": "a8479022eb1ac368a871389b635262c505ee368f",
+ "_shrinkwrap": null,
+ "_spec": "strip-ansi@^4.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "a8479022eb1ac368a871389b635262c505ee368f",
+ "tarball": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "c299056a42b31d7a479d6a89b41318b2a2462cc7",
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "dthree",
+ "email": "threedeecee@gmail.com"
+ },
+ {
+ "name": "qix",
+ "email": "i.am.qix@gmail.com"
+ },
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "strip-ansi",
+ "optionalDependencies": {},
+ "readme": "# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)\n\n> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)\n\n\n## Install\n\n```\n$ npm install strip-ansi\n```\n\n\n## Usage\n\n```js\nconst stripAnsi = require('strip-ansi');\n\nstripAnsi('\\u001B[4mUnicorn\\u001B[0m');\n//=> 'Unicorn'\n```\n\n\n## Related\n\n- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module\n- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes\n- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes\n- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right\n\n\n## Maintainers\n\n- [Sindre Sorhus](https://github.com/sindresorhus)\n- [Josh Junon](https://github.com/qix-)\n\n\n## License\n\nMIT\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "4.0.0"
+}
diff --git a/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/readme.md b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/readme.md
new file mode 100644
index 000000000..dc76f0cb1
--- /dev/null
+++ b/node_modules/nyc/node_modules/string-width/node_modules/strip-ansi/readme.md
@@ -0,0 +1,39 @@
+# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)
+
+> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
+
+
+## Install
+
+```
+$ npm install strip-ansi
+```
+
+
+## Usage
+
+```js
+const stripAnsi = require('strip-ansi');
+
+stripAnsi('\u001B[4mUnicorn\u001B[0m');
+//=> 'Unicorn'
+```
+
+
+## Related
+
+- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
+- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
+- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
+- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
+## License
+
+MIT
diff --git a/node_modules/nyc/node_modules/string-width/package.json b/node_modules/nyc/node_modules/string-width/package.json
index f19be7cab..e15d02c87 100644
--- a/node_modules/nyc/node_modules/string-width/package.json
+++ b/node_modules/nyc/node_modules/string-width/package.json
@@ -2,51 +2,49 @@
"_args": [
[
{
- "raw": "string-width@^1.0.2",
+ "raw": "string-width@^2.0.0",
"scope": null,
"escapedName": "string-width",
"name": "string-width",
- "rawSpec": "^1.0.2",
- "spec": ">=1.0.2 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
- "_from": "string-width@>=1.0.2 <2.0.0",
- "_id": "string-width@1.0.2",
+ "_from": "string-width@>=2.0.0 <3.0.0",
+ "_id": "string-width@2.1.0",
"_inCache": true,
"_location": "/string-width",
- "_nodeVersion": "4.4.5",
+ "_nodeVersion": "8.0.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/string-width-1.0.2.tgz_1471188233009_0.6573935742489994"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/string-width-2.1.0.tgz_1498493708563_0.051171303959563375"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.15.5",
+ "_npmVersion": "4.6.1",
"_phantomChildren": {},
"_requested": {
- "raw": "string-width@^1.0.2",
+ "raw": "string-width@^2.0.0",
"scope": null,
"escapedName": "string-width",
"name": "string-width",
- "rawSpec": "^1.0.2",
- "spec": ">=1.0.2 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
- "/wrap-ansi",
- "/yargs",
- "/yargs/cliui"
+ "/yargs"
],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz",
+ "_shasum": "030664561fc146c9423ec7d978fe2457437fe6d0",
"_shrinkwrap": null,
- "_spec": "string-width@^1.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_spec": "string-width@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -56,9 +54,8 @@
"url": "https://github.com/sindresorhus/string-width/issues"
},
"dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
},
"description": "Get the visual width of a string - the number of columns required to display it",
"devDependencies": {
@@ -67,16 +64,16 @@
},
"directories": {},
"dist": {
- "shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "tarball": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+ "shasum": "030664561fc146c9423ec7d978fe2457437fe6d0",
+ "tarball": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
],
- "gitHead": "282cf3d53918a92cc3ee0778dcf938039bcbc47b",
+ "gitHead": "175b26f4cd503d6236b5ea2a1664263b56f1e352",
"homepage": "https://github.com/sindresorhus/string-width#readme",
"keywords": [
"string",
@@ -113,7 +110,7 @@
],
"name": "string-width",
"optionalDependencies": {},
- "readme": "# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)\n\n> Get the visual width of a string - the number of columns required to display it\n\nSome Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.\n\nUseful to be able to measure the actual width of command-line output.\n\n\n## Install\n\n```\n$ npm install --save string-width\n```\n\n\n## Usage\n\n```js\nconst stringWidth = require('string-width');\n\nstringWidth('古');\n//=> 2\n\nstringWidth('\\u001b[1m古\\u001b[22m');\n//=> 2\n\nstringWidth('a');\n//=> 1\n```\n\n\n## Related\n\n- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module\n- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string\n- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readme": "# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)\n\n> Get the visual width of a string - the number of columns required to display it\n\nSome Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.\n\nUseful to be able to measure the actual width of command-line output.\n\n\n## Install\n\n```\n$ npm install string-width\n```\n\n\n## Usage\n\n```js\nconst stringWidth = require('string-width');\n\nstringWidth('古');\n//=> 2\n\nstringWidth('\\u001b[1m古\\u001b[22m');\n//=> 2\n\nstringWidth('a');\n//=> 1\n```\n\n\n## Related\n\n- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module\n- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string\n- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
@@ -122,5 +119,5 @@
"scripts": {
"test": "xo && ava"
},
- "version": "1.0.2"
+ "version": "2.1.0"
}
diff --git a/node_modules/nyc/node_modules/string-width/readme.md b/node_modules/nyc/node_modules/string-width/readme.md
index 1ab42c935..df5b7199f 100644
--- a/node_modules/nyc/node_modules/string-width/readme.md
+++ b/node_modules/nyc/node_modules/string-width/readme.md
@@ -2,7 +2,7 @@
> Get the visual width of a string - the number of columns required to display it
-Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
+Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
Useful to be able to measure the actual width of command-line output.
@@ -10,7 +10,7 @@ Useful to be able to measure the actual width of command-line output.
## Install
```
-$ npm install --save string-width
+$ npm install string-width
```
diff --git a/node_modules/nyc/node_modules/strip-ansi/package.json b/node_modules/nyc/node_modules/strip-ansi/package.json
index 9d42be751..00824f2f5 100644
--- a/node_modules/nyc/node_modules/strip-ansi/package.json
+++ b/node_modules/nyc/node_modules/strip-ansi/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.0.0 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/chalk"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/chalk"
]
],
"_from": "strip-ansi@>=3.0.0 <4.0.0",
@@ -39,15 +39,16 @@
},
"_requiredBy": [
"/chalk",
- "/string-width",
"/wrap-ansi",
- "/yargs/cliui"
+ "/wrap-ansi/string-width",
+ "/yargs/cliui",
+ "/yargs/cliui/string-width"
],
"_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
"_shrinkwrap": null,
"_spec": "strip-ansi@^3.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/chalk",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/strip-bom/package.json b/node_modules/nyc/node_modules/strip-bom/package.json
index 2d271eb59..eadeb87ea 100644
--- a/node_modules/nyc/node_modules/strip-bom/package.json
+++ b/node_modules/nyc/node_modules/strip-bom/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/default-require-extensions"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/default-require-extensions"
]
],
"_from": "strip-bom@>=2.0.0 <3.0.0",
@@ -41,7 +41,7 @@
"_shasum": "6219a85616520491f35788bdbf1447a99c7e6b0e",
"_shrinkwrap": null,
"_spec": "strip-bom@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/default-require-extensions",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/default-require-extensions",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/strip-eof/index.js b/node_modules/nyc/node_modules/strip-eof/index.js
new file mode 100644
index 000000000..a17d0afd3
--- /dev/null
+++ b/node_modules/nyc/node_modules/strip-eof/index.js
@@ -0,0 +1,15 @@
+'use strict';
+module.exports = function (x) {
+ var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt();
+ var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt();
+
+ if (x[x.length - 1] === lf) {
+ x = x.slice(0, x.length - 1);
+ }
+
+ if (x[x.length - 1] === cr) {
+ x = x.slice(0, x.length - 1);
+ }
+
+ return x;
+};
diff --git a/node_modules/nyc/node_modules/strip-eof/license b/node_modules/nyc/node_modules/strip-eof/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/strip-eof/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/strip-eof/package.json b/node_modules/nyc/node_modules/strip-eof/package.json
new file mode 100644
index 000000000..621b2ef76
--- /dev/null
+++ b/node_modules/nyc/node_modules/strip-eof/package.json
@@ -0,0 +1,104 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "strip-eof@^1.0.0",
+ "scope": null,
+ "escapedName": "strip-eof",
+ "name": "strip-eof",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/execa"
+ ]
+ ],
+ "_from": "strip-eof@>=1.0.0 <2.0.0",
+ "_id": "strip-eof@1.0.0",
+ "_inCache": true,
+ "_location": "/strip-eof",
+ "_nodeVersion": "4.2.1",
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.14.7",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "strip-eof@^1.0.0",
+ "scope": null,
+ "escapedName": "strip-eof",
+ "name": "strip-eof",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "_shasum": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
+ "_shrinkwrap": null,
+ "_spec": "strip-eof@^1.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/strip-eof/issues"
+ },
+ "dependencies": {},
+ "description": "Strip the End-Of-File (EOF) character from a string/buffer",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
+ "tarball": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "365dfe6c19b4e607a0cc2cf7dad0b0620f238333",
+ "homepage": "https://github.com/sindresorhus/strip-eof#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "delete",
+ "eof",
+ "end",
+ "file",
+ "newline",
+ "linebreak",
+ "character",
+ "string",
+ "buffer"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "strip-eof",
+ "optionalDependencies": {},
+ "readme": "# strip-eof [![Build Status](https://travis-ci.org/sindresorhus/strip-eof.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-eof)\n\n> Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer\n\n\n## Install\n\n```\n$ npm install --save strip-eof\n```\n\n\n## Usage\n\n```js\nconst stripEof = require('strip-eof');\n\nstripEof('foo\\nbar\\n\\n');\n//=> 'foo\\nbar\\n'\n\nstripEof(new Buffer('foo\\nbar\\n\\n')).toString();\n//=> 'foo\\nbar\\n'\n```\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/strip-eof.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0"
+}
diff --git a/node_modules/nyc/node_modules/strip-eof/readme.md b/node_modules/nyc/node_modules/strip-eof/readme.md
new file mode 100644
index 000000000..45ffe0436
--- /dev/null
+++ b/node_modules/nyc/node_modules/strip-eof/readme.md
@@ -0,0 +1,28 @@
+# strip-eof [![Build Status](https://travis-ci.org/sindresorhus/strip-eof.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-eof)
+
+> Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer
+
+
+## Install
+
+```
+$ npm install --save strip-eof
+```
+
+
+## Usage
+
+```js
+const stripEof = require('strip-eof');
+
+stripEof('foo\nbar\n\n');
+//=> 'foo\nbar\n'
+
+stripEof(new Buffer('foo\nbar\n\n')).toString();
+//=> 'foo\nbar\n'
+```
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/supports-color/package.json b/node_modules/nyc/node_modules/supports-color/package.json
index 64647d6de..4ff936001 100644
--- a/node_modules/nyc/node_modules/supports-color/package.json
+++ b/node_modules/nyc/node_modules/supports-color/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/chalk"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/chalk"
]
],
"_from": "supports-color@>=2.0.0 <3.0.0",
@@ -40,7 +40,7 @@
"_shasum": "535d045ce6b6363fa40117084629995e9df324c7",
"_shrinkwrap": null,
"_spec": "supports-color@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/chalk",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/chalk",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/test-exclude/CHANGELOG.md b/node_modules/nyc/node_modules/test-exclude/CHANGELOG.md
index e6a4ee3d2..5a7721691 100644
--- a/node_modules/nyc/node_modules/test-exclude/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/test-exclude/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="4.1.1"></a>
+## [4.1.1](https://github.com/istanbuljs/istanbuljs/compare/test-exclude@4.1.0...test-exclude@4.1.1) (2017-05-27)
+
+
+### Bug Fixes
+
+* add more general support for negated exclude rules ([#58](https://github.com/istanbuljs/istanbuljs/issues/58)) ([08445db](https://github.com/istanbuljs/istanbuljs/commit/08445db))
+
+
+
+
<a name="4.1.0"></a>
# [4.1.0](https://github.com/istanbuljs/test-exclude/compare/test-exclude@4.0.3...test-exclude@4.1.0) (2017-04-29)
diff --git a/node_modules/nyc/node_modules/test-exclude/index.js b/node_modules/nyc/node_modules/test-exclude/index.js
index ccc0957c2..9c23a5865 100644
--- a/node_modules/nyc/node_modules/test-exclude/index.js
+++ b/node_modules/nyc/node_modules/test-exclude/index.js
@@ -32,27 +32,43 @@ function TestExclude (opts) {
this.include = false
}
- if (!this.removeNegatedModuleExclude() && this.exclude.indexOf('**/node_modules/**') === -1) {
+ if (this.exclude.indexOf('**/node_modules/**') === -1) {
this.exclude.push('**/node_modules/**')
}
this.exclude = prepGlobPatterns(
[].concat(arrify(this.exclude))
)
+
+ this.handleNegation()
}
-// if a glob has been provided that explicitly negates
-// the **/node_modules/** default exclude rule, remove it from
-// excludes but don't add the default exclude rule.
-TestExclude.prototype.removeNegatedModuleExclude = function () {
- var moduleExcludeNegated = false
+// handle the special case of negative globs
+// (!**foo/bar); we create a new this.excludeNegated set
+// of rules, which is applied after excludes and we
+// move excluded include rules into this.excludes.
+TestExclude.prototype.handleNegation = function () {
+ if (Array.isArray(this.include)) {
+ const includeNegated = this.include.filter(function (e) {
+ return e.charAt(0) === '!'
+ }).map(function (e) {
+ return e.slice(1)
+ })
+ this.exclude.push.apply(this.exclude, prepGlobPatterns(includeNegated))
+ this.include = this.include.filter(function (e) {
+ return e.charAt(0) !== '!'
+ })
+ }
+
+ this.excludeNegated = this.exclude.filter(function (e) {
+ return e.charAt(0) === '!'
+ }).map(function (e) {
+ return e.slice(1)
+ })
this.exclude = this.exclude.filter(function (e) {
- var negated = !!micromatch('./node_modules/foo.js', e, {nonegate: false}).length !==
- !!micromatch('./node_modules/foo.js', e, {nonegate: true}).length
- if (negated) moduleExcludeNegated = true
- return !negated
+ return e.charAt(0) !== '!'
})
- return moduleExcludeNegated
+ this.excludeNegated = prepGlobPatterns(this.excludeNegated)
}
TestExclude.prototype.shouldInstrument = function (filename, relFile) {
@@ -67,7 +83,11 @@ TestExclude.prototype.shouldInstrument = function (filename, relFile) {
pathToCheck = relFile.replace(/^\.[\\/]/, '') // remove leading './' or '.\'.
}
- return (!this.include || micromatch.any(pathToCheck, this.include, {dotfiles: true})) && !micromatch.any(pathToCheck, this.exclude, {dotfiles: true})
+ return (
+ !this.include ||
+ micromatch.any(pathToCheck, this.include, {dotfiles: true})) &&
+ (!micromatch.any(pathToCheck, this.exclude, {dotfiles: true}) ||
+ micromatch.any(pathToCheck, this.excludeNegated, {dotfiles: true}))
}
TestExclude.prototype.pkgConf = function (key, path) {
diff --git a/node_modules/nyc/node_modules/test-exclude/package.json b/node_modules/nyc/node_modules/test-exclude/package.json
index 501fca4e3..53e411e31 100644
--- a/node_modules/nyc/node_modules/test-exclude/package.json
+++ b/node_modules/nyc/node_modules/test-exclude/package.json
@@ -2,55 +2,55 @@
"_args": [
[
{
- "raw": "test-exclude@^4.1.0",
+ "raw": "test-exclude@^4.1.1",
"scope": null,
"escapedName": "test-exclude",
"name": "test-exclude",
- "rawSpec": "^4.1.0",
- "spec": ">=4.1.0 <5.0.0",
+ "rawSpec": "^4.1.1",
+ "spec": ">=4.1.1 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
- "_from": "test-exclude@>=4.1.0 <5.0.0",
- "_id": "test-exclude@4.1.0",
+ "_from": "test-exclude@>=4.1.1 <5.0.0",
+ "_id": "test-exclude@4.1.1",
"_inCache": true,
"_location": "/test-exclude",
"_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/test-exclude-4.1.0.tgz_1493442004804_0.6866360483691096"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/test-exclude-4.1.1.tgz_1495919579354_0.9240932059474289"
},
"_npmUser": {
"name": "bcoe",
"email": "ben@npmjs.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "5.0.0",
"_phantomChildren": {},
"_requested": {
- "raw": "test-exclude@^4.1.0",
+ "raw": "test-exclude@^4.1.1",
"scope": null,
"escapedName": "test-exclude",
"name": "test-exclude",
- "rawSpec": "^4.1.0",
- "spec": ">=4.1.0 <5.0.0",
+ "rawSpec": "^4.1.1",
+ "spec": ">=4.1.1 <5.0.0",
"type": "range"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.0.tgz",
- "_shasum": "04ca70b7390dd38c98d4a003a173806ca7991c91",
+ "_resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz",
+ "_shasum": "4d84964b0966b0087ecc334a2ce002d3d9341e26",
"_shrinkwrap": null,
- "_spec": "test-exclude@^4.1.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_spec": "test-exclude@^4.1.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
},
"bugs": {
- "url": "https://github.com/istanbuljs/test-exclude/issues"
+ "url": "https://github.com/istanbuljs/istanbuljs/issues"
},
"dependencies": {
"arrify": "^1.0.1",
@@ -67,8 +67,9 @@
},
"directories": {},
"dist": {
- "shasum": "04ca70b7390dd38c98d4a003a173806ca7991c91",
- "tarball": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.0.tgz"
+ "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==",
+ "shasum": "4d84964b0966b0087ecc334a2ce002d3d9341e26",
+ "tarball": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz"
},
"files": [
"index.js"
@@ -78,7 +79,7 @@
"read-pkg-up"
]
},
- "homepage": "https://github.com/istanbuljs/test-exclude#readme",
+ "homepage": "https://github.com/istanbuljs/istanbuljs#readme",
"keywords": [
"exclude",
"include",
@@ -90,12 +91,12 @@
"main": "index.js",
"maintainers": [
{
- "name": "bcoe",
- "email": "ben@npmjs.com"
- },
- {
"name": "jakxz",
"email": "jgkurian@me.com"
+ },
+ {
+ "name": "bcoe",
+ "email": "ben@npmjs.com"
}
],
"name": "test-exclude",
@@ -104,11 +105,11 @@
"readmeFilename": "README.md",
"repository": {
"type": "git",
- "url": "git+https://github.com/istanbuljs/test-exclude.git"
+ "url": "git+https://github.com/istanbuljs/istanbuljs.git"
},
"scripts": {
"pretest": "standard",
"test": "mocha"
},
- "version": "4.1.0"
+ "version": "4.1.1"
}
diff --git a/node_modules/nyc/node_modules/to-fast-properties/package.json b/node_modules/nyc/node_modules/to-fast-properties/package.json
index 2918b449a..494da496c 100644
--- a/node_modules/nyc/node_modules/to-fast-properties/package.json
+++ b/node_modules/nyc/node_modules/to-fast-properties/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-types"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-types"
]
],
"_from": "to-fast-properties@>=1.0.1 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "b83571fa4d8c25b82e231b06e3a3055de4ca1a47",
"_shrinkwrap": null,
"_spec": "to-fast-properties@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-types",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-types",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/trim-right/package.json b/node_modules/nyc/node_modules/trim-right/package.json
index 7351a000e..dfeb41006 100644
--- a/node_modules/nyc/node_modules/trim-right/package.json
+++ b/node_modules/nyc/node_modules/trim-right/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.1 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/babel-generator"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator"
]
],
"_from": "trim-right@>=1.0.1 <2.0.0",
@@ -40,7 +40,7 @@
"_shasum": "cb2e1203067e0c8de1f614094b9fe45704ea6003",
"_shrinkwrap": null,
"_spec": "trim-right@^1.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/babel-generator",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/babel-generator",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/uglify-js/README.md b/node_modules/nyc/node_modules/uglify-js/README.md
index d15f114ce..8c1d67642 100644
--- a/node_modules/nyc/node_modules/uglify-js/README.md
+++ b/node_modules/nyc/node_modules/uglify-js/README.md
@@ -11,9 +11,10 @@ There's also an
Chrome and probably Safari).
#### Note:
-- release versions of `uglify-js` only support ECMAScript 5 (ES5). If you wish to minify
-ES2015+ (ES6+) code then please use the [harmony](#harmony) development branch.
-- Node 7 has a known performance regression and runs `uglify-js` twice as slow.
+- `uglify-js` only supports ECMAScript 5 (ES5).
+- Support for `const` is [present but incomplete](#support-for-const), and may not be
+ transformed properly.
+- Those wishing to minify ES2015+ (ES6+) should use the `npm` package [**uglify-es**](https://github.com/mishoo/UglifyJS2/tree/harmony).
Install
-------
@@ -29,12 +30,6 @@ From NPM for programmatic use:
npm install uglify-js
-From Git:
-
- git clone git://github.com/mishoo/UglifyJS2.git
- cd UglifyJS2
- npm link .
-
Usage
-----
@@ -358,6 +353,9 @@ to set `true`; it's effectively a shortcut for `foo=true`).
- `unsafe_proto` (default: false) -- optimize expressions like
`Array.prototype.slice.call(a)` into `[].slice.call(a)`
+- `unsafe_regexp` (default: false) -- enable substitutions of variables with
+ `RegExp` values the same way as if they are constants.
+
- `conditionals` -- apply optimizations for `if`-s and conditional
expressions
@@ -441,13 +439,19 @@ to set `true`; it's effectively a shortcut for `foo=true`).
compressor from discarding function names. Useful for code relying on
`Function.prototype.name`. See also: the `keep_fnames` [mangle option](#mangle).
-- `passes` -- default `1`. Number of times to run compress. Use an
- integer argument larger than 1 to further reduce code size in some cases.
- Note: raising the number of passes will increase uglify compress time.
+- `passes` -- default `1`. Number of times to run compress with a maximum of 3.
+ In some cases more than one pass leads to further compressed code. Keep in
+ mind more passes will take more time.
- `keep_infinity` -- default `false`. Pass `true` to prevent `Infinity` from
being compressed into `1/0`, which may cause performance issues on Chrome.
+- `side_effects` -- default `true`. Pass `false` to disable potentially dropping
+ functions marked as "pure". A function call is marked as "pure" if a comment
+ annotation `/*@__PURE__*/` or `/*#__PURE__*/` immediately precedes the call. For
+ example: `/*@__PURE__*/foo();`
+
+
### The `unsafe` option
It enables some transformations that *might* break code logic in certain
@@ -983,19 +987,9 @@ The `source_map_options` (optional) can contain the following properties:
[compressor]: http://lisperator.net/uglifyjs/compress
[parser]: http://lisperator.net/uglifyjs/parser
-#### Harmony
-
-If you wish to use the experimental [harmony](https://github.com/mishoo/UglifyJS2/commits/harmony)
-branch to minify ES2015+ (ES6+) code please use the following in your `package.json` file:
-
-```
-"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"
-```
-
-or to directly install the experimental harmony version of uglify:
-
-```
-npm install --save-dev uglify-js@github:mishoo/UglifyJS2#harmony
-```
+#### Support for `const`
-See [#448](https://github.com/mishoo/UglifyJS2/issues/448) for additional details.
+`const` in `uglify-js@2.x` has function scope and as such behaves much like
+`var` - unlike `const` in ES2015 (ES6) which has block scope. It is recommended
+to avoid using `const` for this reason as it will have undefined behavior when
+run on an ES2015 compatible browser.
diff --git a/node_modules/nyc/node_modules/uglify-js/bin/uglifyjs b/node_modules/nyc/node_modules/uglify-js/bin/uglifyjs
index 635ca3651..63b2f26f1 100755
--- a/node_modules/nyc/node_modules/uglify-js/bin/uglifyjs
+++ b/node_modules/nyc/node_modules/uglify-js/bin/uglifyjs
@@ -367,19 +367,19 @@ var index = 0;
if (ex instanceof UglifyJS.JS_Parse_Error) {
print_error("Parse error at " + file + ":" + ex.line + "," + ex.col);
var col = ex.col;
- var line = code.split(/\r?\n/)[ex.line - (col ? 1 : 2)];
+ var lines = code.split(/\r?\n/);
+ var line = lines[ex.line - 1];
+ if (!line && !col) {
+ line = lines[ex.line - 2];
+ col = line.length;
+ }
if (line) {
if (col > 40) {
line = line.slice(col - 40);
col = 40;
}
- if (col) {
- print_error(line.slice(0, 80));
- print_error(line.slice(0, col).replace(/\S/g, " ") + "^");
- } else {
- print_error(line.slice(-40));
- print_error(line.slice(-40).replace(/\S/g, " ") + "^");
- }
+ print_error(line.slice(0, 80));
+ print_error(line.slice(0, col).replace(/\S/g, " ") + "^");
}
print_error(ex.stack);
process.exit(1);
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/ast.js b/node_modules/nyc/node_modules/uglify-js/lib/ast.js
index ba1330f40..028772f3f 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/ast.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/ast.js
@@ -214,12 +214,13 @@ var AST_LabeledStatement = DEFNODE("LabeledStatement", "label", {
clone: function(deep) {
var node = this._clone(deep);
if (deep) {
- var refs = node.label.references;
- var label = this.label;
+ var label = node.label;
+ var def = this.label;
node.walk(new TreeWalker(function(node) {
if (node instanceof AST_LoopControl
- && node.label && node.label.thedef === label) {
- refs.push(node);
+ && node.label && node.label.thedef === def) {
+ node.label.thedef = label;
+ label.references.push(node);
}
}));
}
@@ -797,8 +798,8 @@ var AST_Object = DEFNODE("Object", "properties", {
var AST_ObjectProperty = DEFNODE("ObjectProperty", "key value", {
$documentation: "Base class for literal object properties",
$propdoc: {
- key: "[string] the property name converted to a string for ObjectKeyVal. For setters and getters this is an arbitrary AST_Node.",
- value: "[AST_Node] property value. For setters and getters this is an AST_Function."
+ key: "[string] the property name converted to a string for ObjectKeyVal. For setters and getters this is an AST_SymbolAccessor.",
+ value: "[AST_Node] property value. For setters and getters this is an AST_Accessor."
},
_walk: function(visitor) {
return visitor._visit(this, function(){
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/compress.js b/node_modules/nyc/node_modules/uglify-js/lib/compress.js
index 1d9258cf6..d8a491ebc 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/compress.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/compress.js
@@ -84,6 +84,7 @@ function Compressor(options, false_by_default) {
unsafe_comps : false,
unsafe_math : false,
unsafe_proto : false,
+ unsafe_regexp : false,
unused : !false_by_default,
warnings : true,
}, true);
@@ -271,6 +272,14 @@ merge(Compressor.prototype, {
if (d.fixed === undefined || !is_safe(d)
|| is_modified(node, 0, node.fixed_value() instanceof AST_Lambda)) {
d.fixed = false;
+ } else {
+ var parent = tw.parent();
+ if (parent instanceof AST_Assign && parent.operator == "=" && node === parent.right
+ || parent instanceof AST_Call && node !== parent.expression
+ || parent instanceof AST_Return && node === parent.value && node.scope !== d.scope
+ || parent instanceof AST_VarDef && node === parent.value) {
+ d.escaped = true;
+ }
}
}
if (node instanceof AST_SymbolCatch) {
@@ -308,21 +317,55 @@ merge(Compressor.prototype, {
safe_ids = save_ids;
return true;
}
- var iife;
- if (node instanceof AST_Function
- && !node.name
- && (iife = tw.parent()) instanceof AST_Call
- && iife.expression === node) {
- // Virtually turn IIFE parameters into variable definitions:
- // (function(a,b) {...})(c,d) => (function() {var a=c,b=d; ...})()
- // So existing transformation rules can work on them.
- node.argnames.forEach(function(arg, i) {
- var d = arg.definition();
- d.fixed = function() {
- return iife.args[i] || make_node(AST_Undefined, iife);
- };
- mark(d, true);
- });
+ if (node instanceof AST_Function) {
+ push();
+ var iife;
+ if (!node.name
+ && (iife = tw.parent()) instanceof AST_Call
+ && iife.expression === node) {
+ // Virtually turn IIFE parameters into variable definitions:
+ // (function(a,b) {...})(c,d) => (function() {var a=c,b=d; ...})()
+ // So existing transformation rules can work on them.
+ node.argnames.forEach(function(arg, i) {
+ var d = arg.definition();
+ if (!node.uses_arguments && d.fixed === undefined) {
+ d.fixed = function() {
+ return iife.args[i] || make_node(AST_Undefined, iife);
+ };
+ mark(d, true);
+ } else {
+ d.fixed = false;
+ }
+ });
+ }
+ descend();
+ pop();
+ return true;
+ }
+ if (node instanceof AST_Accessor) {
+ var save_ids = safe_ids;
+ safe_ids = Object.create(null);
+ descend();
+ safe_ids = save_ids;
+ return true;
+ }
+ if (node instanceof AST_Binary
+ && (node.operator == "&&" || node.operator == "||")) {
+ node.left.walk(tw);
+ push();
+ node.right.walk(tw);
+ pop();
+ return true;
+ }
+ if (node instanceof AST_Conditional) {
+ node.condition.walk(tw);
+ push();
+ node.consequent.walk(tw);
+ pop();
+ push();
+ node.alternative.walk(tw);
+ pop();
+ return true;
}
if (node instanceof AST_If || node instanceof AST_DWLoop) {
node.condition.walk(tw);
@@ -359,7 +402,19 @@ merge(Compressor.prototype, {
pop();
return true;
}
- if (node instanceof AST_Catch || node instanceof AST_SwitchBranch) {
+ if (node instanceof AST_Try) {
+ push();
+ walk_body(node, tw);
+ pop();
+ if (node.bcatch) {
+ push();
+ node.bcatch.walk(tw);
+ pop();
+ }
+ if (node.bfinally) node.bfinally.walk(tw);
+ return true;
+ }
+ if (node instanceof AST_SwitchBranch) {
push();
descend();
pop();
@@ -393,7 +448,10 @@ merge(Compressor.prototype, {
}
function reset_def(def) {
- if (toplevel || !def.global || def.orig[0] instanceof AST_SymbolConst) {
+ def.escaped = false;
+ if (def.scope.uses_eval) {
+ def.fixed = false;
+ } else if (toplevel || !def.global || def.orig[0] instanceof AST_SymbolConst) {
def.fixed = undefined;
} else {
def.fixed = false;
@@ -419,6 +477,14 @@ merge(Compressor.prototype, {
return fixed();
});
+ function is_reference_const(ref) {
+ if (!(ref instanceof AST_SymbolRef)) return false;
+ var orig = ref.definition().orig;
+ for (var i = orig.length; --i >= 0;) {
+ if (orig[i] instanceof AST_SymbolConst) return true;
+ }
+ }
+
function find_variable(compressor, name) {
var scope, i = 0;
while (scope = compressor.parent(i++)) {
@@ -1160,12 +1226,12 @@ merge(Compressor.prototype, {
&& !node.expression.has_side_effects(compressor);
}
- // may_eq_null()
- // returns true if this node may evaluate to null or undefined
+ // may_throw_on_access()
+ // returns true if this node may be null, undefined or contain `AST_Accessor`
(function(def) {
- AST_Node.DEFMETHOD("may_eq_null", function(compressor) {
+ AST_Node.DEFMETHOD("may_throw_on_access", function(compressor) {
var pure_getters = compressor.option("pure_getters");
- return !pure_getters || this._eq_null(pure_getters);
+ return !pure_getters || this._throw_on_access(pure_getters);
});
function is_strict(pure_getters) {
@@ -1177,7 +1243,12 @@ merge(Compressor.prototype, {
def(AST_Undefined, return_true);
def(AST_Constant, return_false);
def(AST_Array, return_false);
- def(AST_Object, return_false);
+ def(AST_Object, function(pure_getters) {
+ if (!is_strict(pure_getters)) return false;
+ for (var i = this.properties.length; --i >=0;)
+ if (this.properties[i].value instanceof AST_Accessor) return true;
+ return false;
+ });
def(AST_Function, return_false);
def(AST_UnaryPostfix, return_false);
def(AST_UnaryPrefix, function() {
@@ -1186,33 +1257,33 @@ merge(Compressor.prototype, {
def(AST_Binary, function(pure_getters) {
switch (this.operator) {
case "&&":
- return this.left._eq_null(pure_getters);
+ return this.left._throw_on_access(pure_getters);
case "||":
- return this.left._eq_null(pure_getters)
- && this.right._eq_null(pure_getters);
+ return this.left._throw_on_access(pure_getters)
+ && this.right._throw_on_access(pure_getters);
default:
return false;
}
})
def(AST_Assign, function(pure_getters) {
return this.operator == "="
- && this.right._eq_null(pure_getters);
+ && this.right._throw_on_access(pure_getters);
})
def(AST_Conditional, function(pure_getters) {
- return this.consequent._eq_null(pure_getters)
- || this.alternative._eq_null(pure_getters);
+ return this.consequent._throw_on_access(pure_getters)
+ || this.alternative._throw_on_access(pure_getters);
})
def(AST_Seq, function(pure_getters) {
- return this.cdr._eq_null(pure_getters);
+ return this.cdr._throw_on_access(pure_getters);
});
def(AST_SymbolRef, function(pure_getters) {
if (this.is_undefined) return true;
if (!is_strict(pure_getters)) return false;
var fixed = this.fixed_value();
- return !fixed || fixed._eq_null(pure_getters);
+ return !fixed || fixed._throw_on_access(pure_getters);
});
})(function(node, func) {
- node.DEFMETHOD("_eq_null", func);
+ node.DEFMETHOD("_throw_on_access", func);
});
/* -----[ boolean/negation helpers ]----- */
@@ -1549,23 +1620,20 @@ merge(Compressor.prototype, {
: ev(this.alternative, compressor);
});
def(AST_SymbolRef, function(compressor){
- if (this._evaluating) throw def;
+ if (!compressor.option("reduce_vars") || this._evaluating) throw def;
this._evaluating = true;
try {
var fixed = this.fixed_value();
- if (compressor.option("reduce_vars") && fixed) {
- if (compressor.option("unsafe")) {
- if (!HOP(fixed, "_evaluated")) {
- fixed._evaluated = ev(fixed, compressor);
- }
- return fixed._evaluated;
- }
- return ev(fixed, compressor);
- }
+ if (!fixed) throw def;
+ var value = ev(fixed, compressor);
+ if (!HOP(fixed, "_eval")) fixed._eval = function() {
+ return value;
+ };
+ if (value && typeof value == "object" && this.definition().escaped) throw def;
+ return value;
} finally {
this._evaluating = false;
}
- throw def;
});
def(AST_PropAccess, function(compressor){
if (compressor.option("unsafe")) {
@@ -1755,11 +1823,11 @@ merge(Compressor.prototype, {
return any(this.elements, compressor);
});
def(AST_Dot, function(compressor){
- return this.expression.may_eq_null(compressor)
+ return this.expression.may_throw_on_access(compressor)
|| this.expression.has_side_effects(compressor);
});
def(AST_Sub, function(compressor){
- return this.expression.may_eq_null(compressor)
+ return this.expression.may_throw_on_access(compressor)
|| this.expression.has_side_effects(compressor)
|| this.property.has_side_effects(compressor);
});
@@ -1891,6 +1959,7 @@ merge(Compressor.prototype, {
&& node instanceof AST_Assign
&& node.operator == "="
&& node.left instanceof AST_SymbolRef
+ && !is_reference_const(node.left)
&& scope === self) {
node.right.walk(tw);
return true;
@@ -1980,7 +2049,7 @@ merge(Compressor.prototype, {
}
return node;
}
- if (drop_vars && node instanceof AST_Definitions && !(tt.parent() instanceof AST_ForIn)) {
+ if (drop_vars && node instanceof AST_Definitions && !(tt.parent() instanceof AST_ForIn && tt.parent().init === node)) {
var def = node.definitions.filter(function(def){
if (def.value) def.value = def.value.transform(tt);
var sym = def.name.definition();
@@ -2058,26 +2127,32 @@ merge(Compressor.prototype, {
return maintain_this_binding(tt.parent(), node, node.right.transform(tt));
}
}
+ // certain combination of unused name + side effect leads to:
+ // https://github.com/mishoo/UglifyJS2/issues/44
+ // https://github.com/mishoo/UglifyJS2/issues/1830
+ // that's an invalid AST.
+ // We fix it at this stage by moving the `var` outside the `for`.
if (node instanceof AST_For) {
descend(node, this);
-
if (node.init instanceof AST_BlockStatement) {
- // certain combination of unused name + side effect leads to:
- // https://github.com/mishoo/UglifyJS2/issues/44
- // that's an invalid AST.
- // We fix it at this stage by moving the `var` outside the `for`.
-
- var body = node.init.body.slice(0, -1);
- node.init = node.init.body.slice(-1)[0].body;
- body.push(node);
-
- return in_list ? MAP.splice(body) : make_node(AST_BlockStatement, node, {
- body: body
- });
+ var block = node.init;
+ node.init = block.body.pop();
+ block.body.push(node);
+ return in_list ? MAP.splice(block.body) : block;
} else if (is_empty(node.init)) {
node.init = null;
- return node;
}
+ return node;
+ }
+ if (node instanceof AST_LabeledStatement && node.body instanceof AST_For) {
+ descend(node, this);
+ if (node.body instanceof AST_BlockStatement) {
+ var block = node.body;
+ node.body = block.body.pop();
+ block.body.push(node);
+ return in_list ? MAP.splice(block.body) : block;
+ }
+ return node;
}
if (node instanceof AST_Scope && node !== self)
return node;
@@ -2256,6 +2331,7 @@ merge(Compressor.prototype, {
var args = trim(this.args, compressor, first_in_statement);
return args && AST_Seq.from_array(args);
});
+ def(AST_Accessor, return_null);
def(AST_Function, return_null);
def(AST_Binary, function(compressor, first_in_statement){
var right = this.right.drop_side_effect_free(compressor);
@@ -2326,11 +2402,11 @@ merge(Compressor.prototype, {
return values && AST_Seq.from_array(values);
});
def(AST_Dot, function(compressor, first_in_statement){
- if (this.expression.may_eq_null(compressor)) return this;
+ if (this.expression.may_throw_on_access(compressor)) return this;
return this.expression.drop_side_effect_free(compressor, first_in_statement);
});
def(AST_Sub, function(compressor, first_in_statement){
- if (this.expression.may_eq_null(compressor)) return this;
+ if (this.expression.may_throw_on_access(compressor)) return this;
var expression = this.expression.drop_side_effect_free(compressor, first_in_statement);
if (!expression) return this.property.drop_side_effect_free(compressor, first_in_statement);
var property = this.property.drop_side_effect_free(compressor);
@@ -2380,7 +2456,7 @@ merge(Compressor.prototype, {
if (compressor.option("dead_code") && self instanceof AST_While) {
var a = [];
extract_declarations_from_unreachable_code(compressor, self.body, a);
- return make_node(AST_BlockStatement, self, { body: a });
+ return make_node(AST_BlockStatement, self, { body: a }).optimize(compressor);
}
if (self instanceof AST_Do) {
var has_loop_control = false;
@@ -2389,7 +2465,8 @@ merge(Compressor.prototype, {
if (node instanceof AST_LoopControl && tw.loopcontrol_target(node) === self)
return has_loop_control = true;
});
- self.walk(tw);
+ var parent = compressor.parent();
+ (parent instanceof AST_LabeledStatement ? parent : self).walk(tw);
if (!has_loop_control) return self.body;
}
}
@@ -2459,7 +2536,7 @@ merge(Compressor.prototype, {
}));
}
extract_declarations_from_unreachable_code(compressor, self.body, a);
- return make_node(AST_BlockStatement, self, { body: a });
+ return make_node(AST_BlockStatement, self, { body: a }).optimize(compressor);
}
if (cond !== self.condition) {
cond = make_node_from_constant(cond, self.condition).transform(compressor);
@@ -2711,9 +2788,9 @@ merge(Compressor.prototype, {
var body = [];
if (self.bcatch) extract_declarations_from_unreachable_code(compressor, self.bcatch, body);
if (self.bfinally) body = body.concat(self.bfinally.body);
- return body.length > 0 ? make_node(AST_BlockStatement, self, {
+ return make_node(AST_BlockStatement, self, {
body: body
- }).optimize(compressor) : make_node(AST_EmptyStatement, self);
+ }).optimize(compressor);
}
return self;
});
@@ -3041,7 +3118,8 @@ merge(Compressor.prototype, {
}
if (left
&& !(left instanceof AST_SymbolRef
- && left.definition().orig[0] instanceof AST_SymbolLambda)) {
+ && (left.definition().orig[0] instanceof AST_SymbolLambda
+ || is_reference_const(left)))) {
var parent, field;
var cdr = self.cdr;
while (true) {
@@ -3595,29 +3673,55 @@ merge(Compressor.prototype, {
return make_node(AST_Infinity, self).optimize(compressor);
}
}
- if (compressor.option("evaluate") && compressor.option("reduce_vars")) {
+ if (compressor.option("evaluate")
+ && compressor.option("reduce_vars")
+ && is_lhs(self, compressor.parent()) !== self) {
var d = self.definition();
var fixed = self.fixed_value();
if (fixed) {
if (d.should_replace === undefined) {
var init = fixed.evaluate(compressor);
- if (init !== fixed) {
+ if (init !== fixed && (compressor.option("unsafe_regexp") || !(init instanceof RegExp))) {
init = make_node_from_constant(init, fixed);
- var value = best_of_expression(init.optimize(compressor), fixed).print_to_string().length;
+ var value = init.optimize(compressor).print_to_string().length;
+ var fn;
+ if (has_symbol_ref(fixed)) {
+ fn = function() {
+ var result = init.optimize(compressor);
+ return result === init ? result.clone(true) : result;
+ };
+ } else {
+ value = Math.min(value, fixed.print_to_string().length);
+ fn = function() {
+ var result = best_of_expression(init.optimize(compressor), fixed);
+ return result === init || result === fixed ? result.clone(true) : result;
+ };
+ }
var name = d.name.length;
- var freq = d.references.length;
- var overhead = d.global || !freq ? 0 : (name + 2 + value) / freq;
- d.should_replace = value <= name + overhead ? init : false;
+ var overhead = 0;
+ if (compressor.option("unused") && (!d.global || compressor.option("toplevel"))) {
+ overhead = (name + 2 + value) / d.references.length;
+ }
+ d.should_replace = value <= name + overhead ? fn : false;
} else {
d.should_replace = false;
}
}
if (d.should_replace) {
- return best_of_expression(d.should_replace.optimize(compressor), fixed).clone(true);
+ return d.should_replace();
}
}
}
return self;
+
+ function has_symbol_ref(value) {
+ var found;
+ value.walk(new TreeWalker(function(node) {
+ if (node instanceof AST_SymbolRef) found = true;
+ if (found) return true;
+ }));
+ return found;
+ }
});
function is_atomic(lhs, self) {
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/mozilla-ast.js b/node_modules/nyc/node_modules/uglify-js/lib/mozilla-ast.js
index 12b55dc5b..88a2eb59f 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/mozilla-ast.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/mozilla-ast.js
@@ -111,23 +111,19 @@
},
Property: function(M) {
var key = M.key;
- var name = key.type == "Identifier" ? key.name : key.value;
var args = {
start : my_start_token(key),
end : my_end_token(M.value),
- key : name,
+ key : key.type == "Identifier" ? key.name : key.value,
value : from_moz(M.value)
};
- switch (M.kind) {
- case "init":
- return new AST_ObjectKeyVal(args);
- case "set":
- args.value.name = from_moz(key);
- return new AST_ObjectSetter(args);
- case "get":
- args.value.name = from_moz(key);
- return new AST_ObjectGetter(args);
- }
+ if (M.kind == "init") return new AST_ObjectKeyVal(args);
+ args.key = new AST_SymbolAccessor({
+ name: args.key
+ });
+ args.value = new AST_Accessor(args.value);
+ if (M.kind == "get") return new AST_ObjectGetter(args);
+ if (M.kind == "set") return new AST_ObjectSetter(args);
},
ArrayExpression: function(M) {
return new AST_Array({
@@ -256,10 +252,7 @@
map("CallExpression", AST_Call, "callee>expression, arguments@args");
def_to_moz(AST_Toplevel, function To_Moz_Program(M) {
- return {
- type: "Program",
- body: M.body.map(to_moz)
- };
+ return to_moz_scope("Program", M);
});
def_to_moz(AST_Defun, function To_Moz_FunctionDeclaration(M) {
@@ -267,7 +260,7 @@
type: "FunctionDeclaration",
id: to_moz(M.name),
params: M.argnames.map(to_moz),
- body: to_moz_block(M)
+ body: to_moz_scope("BlockStatement", M)
}
});
@@ -276,7 +269,7 @@
type: "FunctionExpression",
id: to_moz(M.name),
params: M.argnames.map(to_moz),
- body: to_moz_block(M)
+ body: to_moz_scope("BlockStatement", M)
}
});
@@ -382,11 +375,10 @@
});
def_to_moz(AST_ObjectProperty, function To_Moz_Property(M) {
- var key = (
- is_identifier(M.key)
- ? {type: "Identifier", name: M.key}
- : {type: "Literal", value: M.key}
- );
+ var key = {
+ type: "Literal",
+ value: M.key instanceof AST_SymbolAccessor ? M.key.name : M.key
+ };
var kind;
if (M instanceof AST_ObjectKeyVal) {
kind = "init";
@@ -547,8 +539,8 @@
moz_to_me = new Function("U2", "my_start_token", "my_end_token", "from_moz", "return(" + moz_to_me + ")")(
exports, my_start_token, my_end_token, from_moz
);
- me_to_moz = new Function("to_moz", "to_moz_block", "return(" + me_to_moz + ")")(
- to_moz, to_moz_block
+ me_to_moz = new Function("to_moz", "to_moz_block", "to_moz_scope", "return(" + me_to_moz + ")")(
+ to_moz, to_moz_block, to_moz_scope
);
MOZ_TO_ME[moztype] = moz_to_me;
def_to_moz(mytype, me_to_moz);
@@ -606,4 +598,14 @@
};
};
+ function to_moz_scope(type, node) {
+ var body = node.body.map(to_moz);
+ if (node.body[0] instanceof AST_SimpleStatement && node.body[0].body instanceof AST_String) {
+ body.unshift(to_moz(new AST_EmptyStatement(node.body[0])));
+ }
+ return {
+ type: type,
+ body: body
+ };
+ };
})();
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/output.js b/node_modules/nyc/node_modules/uglify-js/lib/output.js
index 9ac50c08a..78e24877d 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/output.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/output.js
@@ -190,11 +190,7 @@ function OutputStream(options) {
var might_need_space = false;
var might_need_semicolon = false;
var might_add_newline = 0;
- var last = null;
-
- function last_char() {
- return last.charAt(last.length - 1);
- };
+ var last = "";
var ensure_line_len = options.max_line_len ? function() {
if (current_col > options.max_line_len) {
@@ -218,10 +214,11 @@ function OutputStream(options) {
function print(str) {
str = String(str);
var ch = str.charAt(0);
+ var prev = last.charAt(last.length - 1);
if (might_need_semicolon) {
might_need_semicolon = false;
- if ((!ch || ";}".indexOf(ch) < 0) && !/[;]$/.test(last)) {
+ if (prev == ":" && ch == "}" || (!ch || ";}".indexOf(ch) < 0) && prev != ";") {
if (options.semicolons || requireSemicolonChars(ch)) {
OUTPUT += ";";
current_col++;
@@ -258,7 +255,6 @@ function OutputStream(options) {
}
if (might_need_space) {
- var prev = last_char();
if ((is_identifier_char(prev)
&& (is_identifier_char(ch) || ch == "\\"))
|| (ch == "/" && ch == prev)
@@ -1211,9 +1207,8 @@ function OutputStream(options) {
});
else output.print("{}");
});
- DEFPRINT(AST_ObjectKeyVal, function(self, output){
- var key = self.key;
- var quote = self.quote;
+
+ function print_property_name(key, quote, output) {
if (output.option("quote_keys")) {
output.print_string(key + "");
} else if ((typeof key == "number"
@@ -1230,20 +1225,24 @@ function OutputStream(options) {
} else {
output.print_string(key, quote);
}
+ }
+
+ DEFPRINT(AST_ObjectKeyVal, function(self, output){
+ print_property_name(self.key, self.quote, output);
output.colon();
self.value.print(output);
});
- DEFPRINT(AST_ObjectSetter, function(self, output){
- output.print("set");
+ AST_ObjectProperty.DEFMETHOD("_print_getter_setter", function(type, output) {
+ output.print(type);
output.space();
- self.key.print(output);
- self.value._do_print(output, true);
+ print_property_name(this.key.name, this.quote, output);
+ this.value._do_print(output, true);
+ });
+ DEFPRINT(AST_ObjectSetter, function(self, output){
+ self._print_getter_setter("set", output);
});
DEFPRINT(AST_ObjectGetter, function(self, output){
- output.print("get");
- output.space();
- self.key.print(output);
- self.value._do_print(output, true);
+ self._print_getter_setter("get", output);
});
DEFPRINT(AST_Symbol, function(self, output){
var def = self.definition();
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/parse.js b/node_modules/nyc/node_modules/uglify-js/lib/parse.js
index c34e13db6..014822ad9 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/parse.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/parse.js
@@ -111,7 +111,7 @@ var WHITESPACE_CHARS = makePredicate(characters(" \u00a0\n\r\t\f\u000b\u200b\u20
var NEWLINE_CHARS = makePredicate(characters("\n\r\u2028\u2029"));
-var PUNC_BEFORE_EXPRESSION = makePredicate(characters("[{(,.;:"));
+var PUNC_BEFORE_EXPRESSION = makePredicate(characters("[{(,;:"));
var PUNC_CHARS = makePredicate(characters("[]{}(),;:"));
@@ -285,7 +285,11 @@ function tokenizer($TEXT, filename, html5_comments, shebang) {
S.regex_allowed = ((type == "operator" && !UNARY_POSTFIX(value)) ||
(type == "keyword" && KEYWORDS_BEFORE_EXPRESSION(value)) ||
(type == "punc" && PUNC_BEFORE_EXPRESSION(value)));
- prev_was_dot = (type == "punc" && value == ".");
+ if (type == "punc" && value == ".") {
+ prev_was_dot = true;
+ } else if (!is_comment) {
+ prev_was_dot = false;
+ }
var ret = {
type : type,
value : value,
@@ -803,28 +807,23 @@ function parse($TEXT, options) {
};
var statement = embed_tokens(function() {
- var tmp;
handle_regexp();
switch (S.token.type) {
case "string":
- var dir = false;
- if (S.in_directives === true) {
- if ((is_token(peek(), "punc", ";") || peek().nlb) && S.token.raw.indexOf("\\") === -1) {
+ if (S.in_directives) {
+ var token = peek();
+ if (S.token.raw.indexOf("\\") == -1
+ && (token.nlb
+ || is_token(token, "eof")
+ || is_token(token, "punc", ";")
+ || is_token(token, "punc", "}"))) {
S.input.add_directive(S.token.value);
} else {
S.in_directives = false;
}
}
var dir = S.in_directives, stat = simple_statement();
- if (dir) {
- return new AST_Directive({
- start : stat.body.start,
- end : stat.body.end,
- quote : stat.body.quote,
- value : stat.body.value,
- });
- }
- return stat;
+ return dir ? new AST_Directive(stat.body) : stat;
case "num":
case "regexp":
case "operator":
@@ -856,75 +855,103 @@ function parse($TEXT, options) {
}
case "keyword":
- switch (tmp = S.token.value, next(), tmp) {
+ switch (S.token.value) {
case "break":
+ next();
return break_cont(AST_Break);
case "continue":
+ next();
return break_cont(AST_Continue);
case "debugger":
+ next();
semicolon();
return new AST_Debugger();
case "do":
+ next();
+ var body = in_loop(statement);
+ expect_token("keyword", "while");
+ var condition = parenthesised();
+ semicolon(true);
return new AST_Do({
- body : in_loop(statement),
- condition : (expect_token("keyword", "while"), tmp = parenthesised(), semicolon(true), tmp)
+ body : body,
+ condition : condition
});
case "while":
+ next();
return new AST_While({
condition : parenthesised(),
body : in_loop(statement)
});
case "for":
+ next();
return for_();
case "function":
+ next();
return function_(AST_Defun);
case "if":
+ next();
return if_();
case "return":
if (S.in_function == 0 && !options.bare_returns)
croak("'return' outside of function");
+ next();
+ var value = null;
+ if (is("punc", ";")) {
+ next();
+ } else if (!can_insert_semicolon()) {
+ value = expression(true);
+ semicolon();
+ }
return new AST_Return({
- value: ( is("punc", ";")
- ? (next(), null)
- : can_insert_semicolon()
- ? null
- : (tmp = expression(true), semicolon(), tmp) )
+ value: value
});
case "switch":
+ next();
return new AST_Switch({
expression : parenthesised(),
body : in_loop(switch_body_)
});
case "throw":
+ next();
if (S.token.nlb)
croak("Illegal newline after 'throw'");
+ var value = expression(true);
+ semicolon();
return new AST_Throw({
- value: (tmp = expression(true), semicolon(), tmp)
+ value: value
});
case "try":
+ next();
return try_();
case "var":
- return tmp = var_(), semicolon(), tmp;
+ next();
+ var node = var_();
+ semicolon();
+ return node;
case "const":
- return tmp = const_(), semicolon(), tmp;
+ next();
+ var node = const_();
+ semicolon();
+ return node;
case "with":
if (S.input.has_directive("use strict")) {
croak("Strict mode may not include a with statement");
}
+ next();
return new AST_With({
expression : parenthesised(),
body : statement()
@@ -1320,10 +1347,15 @@ function parse($TEXT, options) {
var type = start.type;
var name = as_property_name();
if (type == "name" && !is("punc", ":")) {
+ var key = new AST_SymbolAccessor({
+ start: S.token,
+ name: as_property_name(),
+ end: prev()
+ });
if (name == "get") {
a.push(new AST_ObjectGetter({
start : start,
- key : as_atom_node(),
+ key : key,
value : create_accessor(),
end : prev()
}));
@@ -1332,7 +1364,7 @@ function parse($TEXT, options) {
if (name == "set") {
a.push(new AST_ObjectSetter({
start : start,
- key : as_atom_node(),
+ key : key,
value : create_accessor(),
end : prev()
}));
@@ -1354,14 +1386,15 @@ function parse($TEXT, options) {
function as_property_name() {
var tmp = S.token;
- next();
switch (tmp.type) {
+ case "operator":
+ if (!KEYWORDS(tmp.value)) unexpected();
case "num":
case "string":
case "name":
- case "operator":
case "keyword":
case "atom":
+ next();
return tmp.value;
default:
unexpected();
@@ -1370,16 +1403,9 @@ function parse($TEXT, options) {
function as_name() {
var tmp = S.token;
+ if (tmp.type != "name") unexpected();
next();
- switch (tmp.type) {
- case "name":
- case "operator":
- case "keyword":
- case "atom":
- return tmp.value;
- default:
- unexpected();
- }
+ return tmp.value;
};
function _make_symbol(type) {
@@ -1440,14 +1466,14 @@ function parse($TEXT, options) {
if (is("operator") && UNARY_PREFIX(start.value)) {
next();
handle_regexp();
- var ex = make_unary(AST_UnaryPrefix, start.value, maybe_unary(allow_calls));
+ var ex = make_unary(AST_UnaryPrefix, start, maybe_unary(allow_calls));
ex.start = start;
ex.end = prev();
return ex;
}
var val = expr_atom(allow_calls);
while (is("operator") && UNARY_POSTFIX(S.token.value) && !S.token.nlb) {
- val = make_unary(AST_UnaryPostfix, S.token.value, val);
+ val = make_unary(AST_UnaryPostfix, S.token, val);
val.start = start;
val.end = S.token;
next();
@@ -1455,9 +1481,10 @@ function parse($TEXT, options) {
return val;
};
- function make_unary(ctor, op, expr) {
+ function make_unary(ctor, token, expr) {
+ var op = token.value;
if ((op == "++" || op == "--") && !is_assignable(expr))
- croak("Invalid use of " + op + " operator", null, ctor === AST_UnaryPrefix ? expr.start.col - 1 : null);
+ croak("Invalid use of " + op + " operator", token.line, token.col, token.pos);
return new ctor({ operator: op, expression: expr });
};
diff --git a/node_modules/nyc/node_modules/uglify-js/lib/scope.js b/node_modules/nyc/node_modules/uglify-js/lib/scope.js
index 74760e4f4..bf6dbcbbf 100644
--- a/node_modules/nyc/node_modules/uglify-js/lib/scope.js
+++ b/node_modules/nyc/node_modules/uglify-js/lib/scope.js
@@ -361,11 +361,6 @@ AST_Symbol.DEFMETHOD("unmangleable", function(options){
return this.definition().unmangleable(options);
});
-// property accessors are not mangleable
-AST_SymbolAccessor.DEFMETHOD("unmangleable", function(){
- return true;
-});
-
// labels are always mangleable
AST_Label.DEFMETHOD("unmangleable", function(){
return false;
diff --git a/node_modules/nyc/node_modules/uglify-js/node_modules/yargs/package.json b/node_modules/nyc/node_modules/uglify-js/node_modules/yargs/package.json
index 01f7eba64..53856c769 100644
--- a/node_modules/nyc/node_modules/uglify-js/node_modules/yargs/package.json
+++ b/node_modules/nyc/node_modules/uglify-js/node_modules/yargs/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.10.0 <3.11.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js"
]
],
"_from": "yargs@>=3.10.0 <3.11.0",
@@ -40,7 +40,7 @@
"_shasum": "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1",
"_shrinkwrap": null,
"_spec": "yargs@~3.10.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js",
"author": {
"name": "Alex Ford",
"email": "Alex.Ford@CodeTunnel.com",
diff --git a/node_modules/nyc/node_modules/uglify-js/package.json b/node_modules/nyc/node_modules/uglify-js/package.json
index ad99ff0b5..73bf67810 100644
--- a/node_modules/nyc/node_modules/uglify-js/package.json
+++ b/node_modules/nyc/node_modules/uglify-js/package.json
@@ -10,23 +10,23 @@
"spec": ">=2.6.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/handlebars"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars"
]
],
"_from": "uglify-js@>=2.6.0 <3.0.0",
- "_id": "uglify-js@2.8.22",
+ "_id": "uglify-js@2.8.29",
"_inCache": true,
"_location": "/uglify-js",
- "_nodeVersion": "7.8.0",
+ "_nodeVersion": "6.10.3",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/uglify-js-2.8.22.tgz_1491711254658_0.7903752939309925"
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/uglify-js-2.8.29.tgz_1497411792713_0.252199525013566"
},
"_npmUser": {
"name": "alexlamsl",
"email": "alexlamsl@gmail.com"
},
- "_npmVersion": "4.2.0",
+ "_npmVersion": "3.10.10",
"_phantomChildren": {
"camelcase": "1.2.1",
"cliui": "2.1.0",
@@ -45,11 +45,11 @@
"_requiredBy": [
"/handlebars"
],
- "_resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.22.tgz",
- "_shasum": "d54934778a8da14903fa29a326fb24c0ab51a1a0",
+ "_resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "_shasum": "29c5733148057bb4e1f75df35b7a9cb72e6a59dd",
"_shrinkwrap": null,
"_spec": "uglify-js@^2.6",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/handlebars",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/handlebars",
"author": {
"name": "Mihai Bazon",
"email": "mihai.bazon@gmail.com",
@@ -73,16 +73,13 @@
},
"description": "JavaScript parser, mangler/compressor and beautifier toolkit",
"devDependencies": {
- "acorn": "~0.6.0",
- "escodegen": "~1.3.3",
- "esfuzz": "~0.3.1",
- "estraverse": "~1.5.1",
+ "acorn": "~5.0.3",
"mocha": "~2.3.4"
},
"directories": {},
"dist": {
- "shasum": "d54934778a8da14903fa29a326fb24c0ab51a1a0",
- "tarball": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.22.tgz"
+ "shasum": "29c5733148057bb4e1f75df35b7a9cb72e6a59dd",
+ "tarball": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz"
},
"engines": {
"node": ">=0.8.0"
@@ -93,7 +90,7 @@
"tools",
"LICENSE"
],
- "gitHead": "04b89645058d85b8b67bb94fb9e39252160a0959",
+ "gitHead": "23876a84a51835ca791afa12931e747df048178f",
"homepage": "http://lisperator.net/uglifyjs",
"keywords": [
"uglify",
@@ -114,7 +111,7 @@
"optionalDependencies": {
"uglify-to-browserify": "~1.0.0"
},
- "readme": "UglifyJS 2\n==========\n[![Build Status](https://travis-ci.org/mishoo/UglifyJS2.svg)](https://travis-ci.org/mishoo/UglifyJS2)\n\nUglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit.\n\nThis page documents the command line utility. For\n[API and internals documentation see my website](http://lisperator.net/uglifyjs/).\nThere's also an\n[in-browser online demo](http://lisperator.net/uglifyjs/#demo) (for Firefox,\nChrome and probably Safari).\n\n#### Note:\n- release versions of `uglify-js` only support ECMAScript 5 (ES5). If you wish to minify\nES2015+ (ES6+) code then please use the [harmony](#harmony) development branch.\n- Node 7 has a known performance regression and runs `uglify-js` twice as slow.\n\nInstall\n-------\n\nFirst make sure you have installed the latest version of [node.js](http://nodejs.org/)\n(You may need to restart your computer after this step).\n\nFrom NPM for use as a command line app:\n\n npm install uglify-js -g\n\nFrom NPM for programmatic use:\n\n npm install uglify-js\n\nFrom Git:\n\n git clone git://github.com/mishoo/UglifyJS2.git\n cd UglifyJS2\n npm link .\n\nUsage\n-----\n\n uglifyjs [input files] [options]\n\nUglifyJS2 can take multiple input files. It's recommended that you pass the\ninput files first, then pass the options. UglifyJS will parse input files\nin sequence and apply any compression options. The files are parsed in the\nsame global scope, that is, a reference from a file to some\nvariable/function declared in another file will be matched properly.\n\nIf you want to read from STDIN instead, pass a single dash instead of input\nfiles.\n\nIf you wish to pass your options before the input files, separate the two with\na double dash to prevent input files being used as option arguments:\n\n uglifyjs --compress --mangle -- input.js\n\nThe available options are:\n\n```\n --source-map Specify an output file where to generate source\n map.\n --source-map-root The path to the original source to be included\n in the source map.\n --source-map-url The path to the source map to be added in //#\n sourceMappingURL. Defaults to the value passed\n with --source-map.\n --source-map-include-sources Pass this flag if you want to include the\n content of source files in the source map as\n sourcesContent property.\n --source-map-inline Write base64-encoded source map to the end of js output.\n --in-source-map Input source map, useful if you're compressing\n JS that was generated from some other original\n code. Specify \"inline\" if the source map is included\n inline with the sources.\n --screw-ie8 Use this flag if you don't wish to support\n Internet Explorer 6/7/8.\n By default UglifyJS will not try to be IE-proof.\n --support-ie8 Use this flag to support Internet Explorer 6/7/8.\n Equivalent to setting `screw_ie8: false` in `minify()`\n for `compress`, `mangle` and `output` options.\n --expr Parse a single expression, rather than a\n program (for parsing JSON)\n -p, --prefix Skip prefix for original filenames that appear\n in source maps. For example -p 3 will drop 3\n directories from file names and ensure they are\n relative paths. You can also specify -p\n relative, which will make UglifyJS figure out\n itself the relative paths between original\n sources, the source map and the output file.\n -o, --output Output file (default STDOUT).\n -b, --beautify Beautify output/specify output options.\n -m, --mangle Mangle names/pass mangler options.\n -r, --reserved Reserved names to exclude from mangling.\n -c, --compress Enable compressor/pass compressor options, e.g.\n `-c 'if_return=false,pure_funcs=[\"Math.pow\",\"console.log\"]'`\n Use `-c` with no argument to enable default compression\n options.\n -d, --define Global definitions\n -e, --enclose Embed everything in a big function, with a\n configurable parameter/argument list.\n --comments Preserve copyright comments in the output. By\n default this works like Google Closure, keeping\n JSDoc-style comments that contain \"@license\" or\n \"@preserve\". You can optionally pass one of the\n following arguments to this flag:\n - \"all\" to keep all comments\n - a valid JS RegExp like `/foo/` or `/^!/` to\n keep only matching comments.\n Note that currently not *all* comments can be\n kept when compression is on, because of dead\n code removal or cascading statements into\n sequences.\n --preamble Preamble to prepend to the output. You can use\n this to insert a comment, for example for\n licensing information. This will not be\n parsed, but the source map will adjust for its\n presence.\n --stats Display operations run time on STDERR.\n --acorn Use Acorn for parsing.\n --spidermonkey Assume input files are SpiderMonkey AST format\n (as JSON).\n --self Build itself (UglifyJS2) as a library (implies\n --wrap=UglifyJS --export-all)\n --wrap Embed everything in a big function, making the\n “exports” and “global” variables available. You\n need to pass an argument to this option to\n specify the name that your module will take\n when included in, say, a browser.\n --export-all Only used when --wrap, this tells UglifyJS to\n add code to automatically export all globals.\n --lint Display some scope warnings\n -v, --verbose Verbose\n -V, --version Print version number and exit.\n --noerr Don't throw an error for unknown options in -c,\n -b or -m.\n --bare-returns Allow return outside of functions. Useful when\n minifying CommonJS modules and Userscripts that\n may be anonymous function wrapped (IIFE) by the\n .user.js engine `caller`.\n --keep-fnames Do not mangle/drop function names. Useful for\n code relying on Function.prototype.name.\n --reserved-file File containing reserved names\n --reserve-domprops Make (most?) DOM properties reserved for\n --mangle-props\n --mangle-props Mangle property names (default `0`). Set to\n `true` or `1` to mangle all property names. Set\n to `unquoted` or `2` to only mangle unquoted\n property names. Mode `2` also enables the\n `keep_quoted_props` beautifier option to\n preserve the quotes around property names and\n disables the `properties` compressor option to\n prevent rewriting quoted properties with dot\n notation. You can override these by setting\n them explicitly on the command line.\n --mangle-regex Only mangle property names matching the regex\n --name-cache File to hold mangled names mappings\n --pure-funcs Functions that can be safely removed if their\n return value is not used, e.g.\n `--pure-funcs Math.floor console.info`\n (requires `--compress`)\n```\n\nSpecify `--output` (`-o`) to declare the output file. Otherwise the output\ngoes to STDOUT.\n\n## Source map options\n\nUglifyJS2 can generate a source map file, which is highly useful for\ndebugging your compressed JavaScript. To get a source map, pass\n`--source-map output.js.map` (full path to the file where you want the\nsource map dumped).\n\nAdditionally you might need `--source-map-root` to pass the URL where the\noriginal files can be found. In case you are passing full paths to input\nfiles to UglifyJS, you can use `--prefix` (`-p`) to specify the number of\ndirectories to drop from the path prefix when declaring files in the source\nmap.\n\nFor example:\n\n uglifyjs /home/doe/work/foo/src/js/file1.js \\\n /home/doe/work/foo/src/js/file2.js \\\n -o foo.min.js \\\n --source-map foo.min.js.map \\\n --source-map-root http://foo.com/src \\\n -p 5 -c -m\n\nThe above will compress and mangle `file1.js` and `file2.js`, will drop the\noutput in `foo.min.js` and the source map in `foo.min.js.map`. The source\nmapping will refer to `http://foo.com/src/js/file1.js` and\n`http://foo.com/src/js/file2.js` (in fact it will list `http://foo.com/src`\nas the source map root, and the original files as `js/file1.js` and\n`js/file2.js`).\n\n### Composed source map\n\nWhen you're compressing JS code that was output by a compiler such as\nCoffeeScript, mapping to the JS code won't be too helpful. Instead, you'd\nlike to map back to the original code (i.e. CoffeeScript). UglifyJS has an\noption to take an input source map. Assuming you have a mapping from\nCoffeeScript → compiled JS, UglifyJS can generate a map from CoffeeScript →\ncompressed JS by mapping every token in the compiled JS to its original\nlocation.\n\nTo use this feature you need to pass `--in-source-map\n/path/to/input/source.map` or `--in-source-map inline` if the source map is\nincluded inline with the sources. Normally the input source map should also\npoint to the file containing the generated JS, so if that's correct you can\nomit input files from the command line.\n\n## Mangler options\n\nTo enable the mangler you need to pass `--mangle` (`-m`). The following\n(comma-separated) options are supported:\n\n- `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n- `eval` — mangle names visible in scopes where `eval` or `with` are used\n (disabled by default).\n\nWhen mangling is enabled but you want to prevent certain names from being\nmangled, you can declare those names with `--reserved` (`-r`) — pass a\ncomma-separated list of names. For example:\n\n uglifyjs ... -m -r '$,require,exports'\n\nto prevent the `require`, `exports` and `$` names from being changed.\n\n### Mangling property names (`--mangle-props`)\n\n**Note:** this will probably break your code. Mangling property names is a\nseparate step, different from variable name mangling. Pass\n`--mangle-props`. It will mangle all properties that are seen in some\nobject literal, or that are assigned to. For example:\n\n```js\nvar x = {\n foo: 1\n};\n\nx.bar = 2;\nx[\"baz\"] = 3;\nx[condition ? \"moo\" : \"boo\"] = 4;\nconsole.log(x.something());\n```\n\nIn the above code, `foo`, `bar`, `baz`, `moo` and `boo` will be replaced\nwith single characters, while `something()` will be left as is.\n\nIn order for this to be of any use, we should avoid mangling standard JS\nnames. For instance, if your code would contain `x.length = 10`, then\n`length` becomes a candidate for mangling and it will be mangled throughout\nthe code, regardless if it's being used as part of your own objects or\naccessing an array's length. To avoid that, you can use `--reserved-file`\nto pass a filename that should contain the names to be excluded from\nmangling. This file can be used both for excluding variable names and\nproperty names. It could look like this, for example:\n\n```js\n{\n \"vars\": [ \"define\", \"require\", ... ],\n \"props\": [ \"length\", \"prototype\", ... ]\n}\n```\n\n`--reserved-file` can be an array of file names (either a single\ncomma-separated argument, or you can pass multiple `--reserved-file`\narguments) — in this case it will exclude names from all those files.\n\nA default exclusion file is provided in `tools/domprops.json` which should\ncover most standard JS and DOM properties defined in various browsers. Pass\n`--reserve-domprops` to read that in.\n\nYou can also use a regular expression to define which property names should be\nmangled. For example, `--mangle-regex=\"/^_/\"` will only mangle property names\nthat start with an underscore.\n\nWhen you compress multiple files using this option, in order for them to\nwork together in the end we need to ensure somehow that one property gets\nmangled to the same name in all of them. For this, pass `--name-cache\nfilename.json` and UglifyJS will maintain these mappings in a file which can\nthen be reused. It should be initially empty. Example:\n\n```\nrm -f /tmp/cache.json # start fresh\nuglifyjs file1.js file2.js --mangle-props --name-cache /tmp/cache.json -o part1.js\nuglifyjs file3.js file4.js --mangle-props --name-cache /tmp/cache.json -o part2.js\n```\n\nNow, `part1.js` and `part2.js` will be consistent with each other in terms\nof mangled property names.\n\nUsing the name cache is not necessary if you compress all your files in a\nsingle call to UglifyJS.\n\n#### Mangling unquoted names (`--mangle-props=unquoted` or `--mangle-props=2`)\n\nUsing quoted property name (`o[\"foo\"]`) reserves the property name (`foo`)\nso that it is not mangled throughout the entire script even when used in an\nunquoted style (`o.foo`). Example:\n\n```\n$ echo 'var o={\"foo\":1, bar:3}; o.foo += o.bar; console.log(o.foo);' | uglifyjs --mangle-props=2 -mc\nvar o={\"foo\":1,a:3};o.foo+=o.a,console.log(o.foo);\n```\n\n#### Debugging property name mangling\n\nYou can also pass `--mangle-props-debug` in order to mangle property names\nwithout completely obscuring them. For example the property `o.foo`\nwould mangle to `o._$foo$_` with this option. This allows property mangling\nof a large codebase while still being able to debug the code and identify\nwhere mangling is breaking things.\n\nYou can also pass a custom suffix using `--mangle-props-debug=XYZ`. This would then\nmangle `o.foo` to `o._$foo$XYZ_`. You can change this each time you compile a\nscript to identify how a property got mangled. One technique is to pass a\nrandom number on every compile to simulate mangling changing with different\ninputs (e.g. as you update the input script with new properties), and to help\nidentify mistakes like writing mangled keys to storage.\n\n## Compressor options\n\nYou need to pass `--compress` (`-c`) to enable the compressor. Optionally\nyou can pass a comma-separated list of options. Options are in the form\n`foo=bar`, or just `foo` (the latter implies a boolean option that you want\nto set `true`; it's effectively a shortcut for `foo=true`).\n\n- `sequences` (default: true) -- join consecutive simple statements using the\n comma operator. May be set to a positive integer to specify the maximum number\n of consecutive comma sequences that will be generated. If this option is set to\n `true` then the default `sequences` limit is `200`. Set option to `false` or `0`\n to disable. The smallest `sequences` length is `2`. A `sequences` value of `1`\n is grandfathered to be equivalent to `true` and as such means `200`. On rare\n occasions the default sequences limit leads to very slow compress times in which\n case a value of `20` or less is recommended.\n\n- `properties` -- rewrite property access using the dot notation, for\n example `foo[\"bar\"] → foo.bar`\n\n- `dead_code` -- remove unreachable code\n\n- `drop_debugger` -- remove `debugger;` statements\n\n- `unsafe` (default: false) -- apply \"unsafe\" transformations (discussion below)\n\n- `unsafe_comps` (default: false) -- Reverse `<` and `<=` to `>` and `>=` to\n allow improved compression. This might be unsafe when an at least one of two\n operands is an object with computed values due the use of methods like `get`,\n or `valueOf`. This could cause change in execution order after operands in the\n comparison are switching. Compression only works if both `comparisons` and\n `unsafe_comps` are both set to true.\n\n- `unsafe_math` (default: false) -- optimize numerical expressions like\n `2 * x * 3` into `6 * x`, which may give imprecise floating point results.\n\n- `unsafe_proto` (default: false) -- optimize expressions like\n `Array.prototype.slice.call(a)` into `[].slice.call(a)`\n\n- `conditionals` -- apply optimizations for `if`-s and conditional\n expressions\n\n- `comparisons` -- apply certain optimizations to binary nodes, for example:\n `!(a <= b) → a > b` (only when `unsafe_comps`), attempts to negate binary\n nodes, e.g. `a = !b && !c && !d && !e → a=!(b||c||d||e)` etc.\n\n- `evaluate` -- attempt to evaluate constant expressions\n\n- `booleans` -- various optimizations for boolean context, for example `!!a\n ? b : c → a ? b : c`\n\n- `loops` -- optimizations for `do`, `while` and `for` loops when we can\n statically determine the condition\n\n- `unused` -- drop unreferenced functions and variables (simple direct variable\n assignments do not count as references unless set to `\"keep_assign\"`)\n\n- `toplevel` -- drop unreferenced functions (`\"funcs\"`) and/or variables (`\"vars\"`)\n in the toplevel scope (`false` by default, `true` to drop both unreferenced\n functions and variables)\n\n- `top_retain` -- prevent specific toplevel functions and variables from `unused`\n removal (can be array, comma-separated, RegExp or function. Implies `toplevel`)\n\n- `hoist_funs` -- hoist function declarations\n\n- `hoist_vars` (default: false) -- hoist `var` declarations (this is `false`\n by default because it seems to increase the size of the output in general)\n\n- `if_return` -- optimizations for if/return and if/continue\n\n- `join_vars` -- join consecutive `var` statements\n\n- `cascade` -- small optimization for sequences, transform `x, x` into `x`\n and `x = something(), x` into `x = something()`\n\n- `collapse_vars` -- Collapse single-use `var` and `const` definitions\n when possible.\n\n- `reduce_vars` -- Improve optimization on variables assigned with and\n used as constant values.\n\n- `warnings` -- display warnings when dropping unreachable code or unused\n declarations etc.\n\n- `negate_iife` -- negate \"Immediately-Called Function Expressions\"\n where the return value is discarded, to avoid the parens that the\n code generator would insert.\n\n- `pure_getters` -- the default is `false`. If you pass `true` for\n this, UglifyJS will assume that object property access\n (e.g. `foo.bar` or `foo[\"bar\"]`) doesn't have any side effects.\n Specify `\"strict\"` to treat `foo.bar` as side-effect-free only when\n `foo` is certain to not throw, i.e. not `null` or `undefined`.\n\n- `pure_funcs` -- default `null`. You can pass an array of names and\n UglifyJS will assume that those functions do not produce side\n effects. DANGER: will not check if the name is redefined in scope.\n An example case here, for instance `var q = Math.floor(a/b)`. If\n variable `q` is not used elsewhere, UglifyJS will drop it, but will\n still keep the `Math.floor(a/b)`, not knowing what it does. You can\n pass `pure_funcs: [ 'Math.floor' ]` to let it know that this\n function won't produce any side effect, in which case the whole\n statement would get discarded. The current implementation adds some\n overhead (compression will be slower).\n\n- `drop_console` -- default `false`. Pass `true` to discard calls to\n `console.*` functions. If you wish to drop a specific function call\n such as `console.info` and/or retain side effects from function arguments\n after dropping the function call then use `pure_funcs` instead.\n\n- `expression` -- default `false`. Pass `true` to preserve completion values\n from terminal statements without `return`, e.g. in bookmarklets.\n\n- `keep_fargs` -- default `true`. Prevents the\n compressor from discarding unused function arguments. You need this\n for code which relies on `Function.length`.\n\n- `keep_fnames` -- default `false`. Pass `true` to prevent the\n compressor from discarding function names. Useful for code relying on\n `Function.prototype.name`. See also: the `keep_fnames` [mangle option](#mangle).\n\n- `passes` -- default `1`. Number of times to run compress. Use an\n integer argument larger than 1 to further reduce code size in some cases.\n Note: raising the number of passes will increase uglify compress time.\n\n- `keep_infinity` -- default `false`. Pass `true` to prevent `Infinity` from\n being compressed into `1/0`, which may cause performance issues on Chrome.\n\n### The `unsafe` option\n\nIt enables some transformations that *might* break code logic in certain\ncontrived cases, but should be fine for most code. You might want to try it\non your own code, it should reduce the minified size. Here's what happens\nwhen this flag is on:\n\n- `new Array(1, 2, 3)` or `Array(1, 2, 3)` → `[ 1, 2, 3 ]`\n- `new Object()` → `{}`\n- `String(exp)` or `exp.toString()` → `\"\" + exp`\n- `new Object/RegExp/Function/Error/Array (...)` → we discard the `new`\n- `typeof foo == \"undefined\"` → `foo === void 0`\n- `void 0` → `undefined` (if there is a variable named \"undefined\" in\n scope; we do it because the variable name will be mangled, typically\n reduced to a single character)\n\n### Conditional compilation\n\nYou can use the `--define` (`-d`) switch in order to declare global\nvariables that UglifyJS will assume to be constants (unless defined in\nscope). For example if you pass `--define DEBUG=false` then, coupled with\ndead code removal UglifyJS will discard the following from the output:\n```javascript\nif (DEBUG) {\n\tconsole.log(\"debug stuff\");\n}\n```\n\nYou can specify nested constants in the form of `--define env.DEBUG=false`.\n\nUglifyJS will warn about the condition being always false and about dropping\nunreachable code; for now there is no option to turn off only this specific\nwarning, you can pass `warnings=false` to turn off *all* warnings.\n\nAnother way of doing that is to declare your globals as constants in a\nseparate file and include it into the build. For example you can have a\n`build/defines.js` file with the following:\n```javascript\nconst DEBUG = false;\nconst PRODUCTION = true;\n// etc.\n```\n\nand build your code like this:\n\n uglifyjs build/defines.js js/foo.js js/bar.js... -c\n\nUglifyJS will notice the constants and, since they cannot be altered, it\nwill evaluate references to them to the value itself and drop unreachable\ncode as usual. The build will contain the `const` declarations if you use\nthem. If you are targeting < ES6 environments which does not support `const`,\nusing `var` with `reduce_vars` (enabled by default) should suffice.\n\n<a name=\"codegen-options\"></a>\n\n#### Conditional compilation, API\nYou can also use conditional compilation via the programmatic API. With the difference that the\nproperty name is `global_defs` and is a compressor property:\n\n```js\nuglifyJS.minify([ \"input.js\"], {\n compress: {\n dead_code: true,\n global_defs: {\n DEBUG: false\n }\n }\n});\n```\n\n## Beautifier options\n\nThe code generator tries to output shortest code possible by default. In\ncase you want beautified output, pass `--beautify` (`-b`). Optionally you\ncan pass additional arguments that control the code output:\n\n- `beautify` (default `true`) -- whether to actually beautify the output.\n Passing `-b` will set this to true, but you might need to pass `-b` even\n when you want to generate minified code, in order to specify additional\n arguments, so you can use `-b beautify=false` to override it.\n- `indent-level` (default 4)\n- `indent-start` (default 0) -- prefix all lines by that many spaces\n- `quote-keys` (default `false`) -- pass `true` to quote all keys in literal\n objects\n- `space-colon` (default `true`) -- insert a space after the colon signs\n- `ascii-only` (default `false`) -- escape Unicode characters in strings and\n regexps (affects directives with non-ascii characters becoming invalid)\n- `inline-script` (default `false`) -- escape the slash in occurrences of\n `</script` in strings\n- `width` (default 80) -- only takes effect when beautification is on, this\n specifies an (orientative) line width that the beautifier will try to\n obey. It refers to the width of the line text (excluding indentation).\n It doesn't work very well currently, but it does make the code generated\n by UglifyJS more readable.\n- `max-line-len` (default 32000) -- maximum line length (for uglified code)\n- `bracketize` (default `false`) -- always insert brackets in `if`, `for`,\n `do`, `while` or `with` statements, even if their body is a single\n statement.\n- `semicolons` (default `true`) -- separate statements with semicolons. If\n you pass `false` then whenever possible we will use a newline instead of a\n semicolon, leading to more readable output of uglified code (size before\n gzip could be smaller; size after gzip insignificantly larger).\n- `preamble` (default `null`) -- when passed it must be a string and\n it will be prepended to the output literally. The source map will\n adjust for this text. Can be used to insert a comment containing\n licensing information, for example.\n- `quote_style` (default `0`) -- preferred quote style for strings (affects\n quoted property names and directives as well):\n - `0` -- prefers double quotes, switches to single quotes when there are\n more double quotes in the string itself.\n - `1` -- always use single quotes\n - `2` -- always use double quotes\n - `3` -- always use the original quotes\n- `keep_quoted_props` (default `false`) -- when turned on, prevents stripping\n quotes from property names in object literals.\n\n### Keeping copyright notices or other comments\n\nYou can pass `--comments` to retain certain comments in the output. By\ndefault it will keep JSDoc-style comments that contain \"@preserve\",\n\"@license\" or \"@cc_on\" (conditional compilation for IE). You can pass\n`--comments all` to keep all the comments, or a valid JavaScript regexp to\nkeep only comments that match this regexp. For example `--comments\n'/foo|bar/'` will keep only comments that contain \"foo\" or \"bar\".\n\nNote, however, that there might be situations where comments are lost. For\nexample:\n```javascript\nfunction f() {\n\t/** @preserve Foo Bar */\n\tfunction g() {\n\t // this function is never called\n\t}\n\treturn something();\n}\n```\n\nEven though it has \"@preserve\", the comment will be lost because the inner\nfunction `g` (which is the AST node to which the comment is attached to) is\ndiscarded by the compressor as not referenced.\n\nThe safest comments where to place copyright information (or other info that\nneeds to be kept in the output) are comments attached to toplevel nodes.\n\n## Support for the SpiderMonkey AST\n\nUglifyJS2 has its own abstract syntax tree format; for\n[practical reasons](http://lisperator.net/blog/uglifyjs-why-not-switching-to-spidermonkey-ast/)\nwe can't easily change to using the SpiderMonkey AST internally. However,\nUglifyJS now has a converter which can import a SpiderMonkey AST.\n\nFor example [Acorn][acorn] is a super-fast parser that produces a\nSpiderMonkey AST. It has a small CLI utility that parses one file and dumps\nthe AST in JSON on the standard output. To use UglifyJS to mangle and\ncompress that:\n\n acorn file.js | uglifyjs --spidermonkey -m -c\n\nThe `--spidermonkey` option tells UglifyJS that all input files are not\nJavaScript, but JS code described in SpiderMonkey AST in JSON. Therefore we\ndon't use our own parser in this case, but just transform that AST into our\ninternal AST.\n\n### Use Acorn for parsing\n\nMore for fun, I added the `--acorn` option which will use Acorn to do all\nthe parsing. If you pass this option, UglifyJS will `require(\"acorn\")`.\n\nAcorn is really fast (e.g. 250ms instead of 380ms on some 650K code), but\nconverting the SpiderMonkey tree that Acorn produces takes another 150ms so\nin total it's a bit more than just using UglifyJS's own parser.\n\n### Using UglifyJS to transform SpiderMonkey AST\n\nNow you can use UglifyJS as any other intermediate tool for transforming\nJavaScript ASTs in SpiderMonkey format.\n\nExample:\n\n```javascript\nfunction uglify(ast, options, mangle) {\n // Conversion from SpiderMonkey AST to internal format\n var uAST = UglifyJS.AST_Node.from_mozilla_ast(ast);\n\n // Compression\n uAST.figure_out_scope();\n uAST = UglifyJS.Compressor(options).compress(uAST);\n\n // Mangling (optional)\n if (mangle) {\n uAST.figure_out_scope();\n uAST.compute_char_frequency();\n uAST.mangle_names();\n }\n\n // Back-conversion to SpiderMonkey AST\n return uAST.to_mozilla_ast();\n}\n```\n\nCheck out\n[original blog post](http://rreverser.com/using-mozilla-ast-with-uglifyjs/)\nfor details.\n\nAPI Reference\n-------------\n\nAssuming installation via NPM, you can load UglifyJS in your application\nlike this:\n```javascript\nvar UglifyJS = require(\"uglify-js\");\n```\n\nIt exports a lot of names, but I'll discuss here the basics that are needed\nfor parsing, mangling and compressing a piece of code. The sequence is (1)\nparse, (2) compress, (3) mangle, (4) generate output code.\n\n### The simple way\n\nThere's a single toplevel function which combines all the steps. If you\ndon't need additional customization, you might want to go with `minify`.\nExample:\n```javascript\nvar result = UglifyJS.minify(\"/path/to/file.js\");\nconsole.log(result.code); // minified output\n// if you need to pass code instead of file name\nvar result = UglifyJS.minify(\"var b = function () {};\", {fromString: true});\n```\n\nYou can also compress multiple files:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ]);\nconsole.log(result.code);\n```\n\nTo generate a source map:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ], {\n\toutSourceMap: \"out.js.map\"\n});\nconsole.log(result.code); // minified output\nconsole.log(result.map);\n```\n\nTo generate a source map with the fromString option, you can also use an object:\n```javascript\nvar result = UglifyJS.minify({\"file1.js\": \"var a = function () {};\"}, {\n outSourceMap: \"out.js.map\",\n outFileName: \"out.js\",\n fromString: true\n});\n```\n\nNote that the source map is not saved in a file, it's just returned in\n`result.map`. The value passed for `outSourceMap` is only used to set\n`//# sourceMappingURL=out.js.map` in `result.code`. The value of\n`outFileName` is only used to set `file` attribute in source map file.\n\nThe `file` attribute in the source map (see [the spec][sm-spec]) will\nuse `outFileName` firstly, if it's falsy, then will be deduced from\n`outSourceMap` (by removing `'.map'`).\n\nYou can set option `sourceMapInline` to be `true` and source map will\nbe appended to code.\n\nYou can also specify sourceRoot property to be included in source map:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ], {\n\toutSourceMap: \"out.js.map\",\n\tsourceRoot: \"http://example.com/src\"\n});\n```\n\nIf you're compressing compiled JavaScript and have a source map for it, you\ncan use the `inSourceMap` argument:\n```javascript\nvar result = UglifyJS.minify(\"compiled.js\", {\n\tinSourceMap: \"compiled.js.map\",\n\toutSourceMap: \"minified.js.map\"\n});\n// same as before, it returns `code` and `map`\n```\n\nIf your input source map is not in a file, you can pass it in as an object\nusing the `inSourceMap` argument:\n\n```javascript\nvar result = UglifyJS.minify(\"compiled.js\", {\n\tinSourceMap: JSON.parse(my_source_map_string),\n\toutSourceMap: \"minified.js.map\"\n});\n```\n\nThe `inSourceMap` is only used if you also request `outSourceMap` (it makes\nno sense otherwise).\n\nTo set the source map url, use the `sourceMapUrl` option.\nIf you're using the X-SourceMap header instead, you can just set the `sourceMapUrl` option to false.\nDefaults to outSourceMap:\n\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\" ], {\n outSourceMap: \"out.js.map\",\n sourceMapUrl: \"localhost/out.js.map\"\n});\n```\n\nOther options:\n\n- `warnings` (default `false`) — pass `true` to display compressor warnings.\n\n- `fromString` (default `false`) — if you pass `true` then you can pass\n JavaScript source code, rather than file names.\n\n- `mangle` (default `true`) — pass `false` to skip mangling names, or pass\n an object to specify mangling options (see below).\n\n- `mangleProperties` (default `false`) — pass an object to specify custom\n mangle property options.\n\n- `output` (default `null`) — pass an object if you wish to specify\n additional [output options][codegen]. The defaults are optimized\n for best compression.\n\n- `compress` (default `{}`) — pass `false` to skip compressing entirely.\n Pass an object to specify custom [compressor options][compressor].\n\n- `parse` (default {}) — pass an object if you wish to specify some\n additional [parser options][parser]. (not all options available... see below)\n\n##### mangle\n\n - `except` - pass an array of identifiers that should be excluded from mangling\n\n - `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n - `eval` — mangle names visible in scopes where eval or with are used\n (disabled by default).\n\n - `keep_fnames` -- default `false`. Pass `true` to not mangle\n function names. Useful for code relying on `Function.prototype.name`.\n See also: the `keep_fnames` [compress option](#compressor-options).\n\n Examples:\n\n ```javascript\n //tst.js\n var globalVar;\n function funcName(firstLongName, anotherLongName)\n {\n var myVariable = firstLongName + anotherLongName;\n }\n\n UglifyJS.minify(\"tst.js\").code;\n // 'function funcName(a,n){}var globalVar;'\n\n UglifyJS.minify(\"tst.js\", { mangle: { except: ['firstLongName'] } }).code;\n // 'function funcName(firstLongName,a){}var globalVar;'\n\n UglifyJS.minify(\"tst.js\", { mangle: { toplevel: true } }).code;\n // 'function n(n,a){}var a;'\n ```\n\n##### mangleProperties options\n\n - `regex` — Pass a RegExp to only mangle certain names (maps to the `--mangle-regex` CLI arguments option)\n - `ignore_quoted` – Only mangle unquoted property names (maps to the `--mangle-props 2` CLI arguments option)\n - `debug` – Mangle names with the original name still present (maps to the `--mangle-props-debug` CLI arguments option). Defaults to `false`. Pass an empty string to enable, or a non-empty string to set the suffix.\n\nWe could add more options to `UglifyJS.minify` — if you need additional\nfunctionality please suggest!\n\n### The hard way\n\nFollowing there's more detailed API info, in case the `minify` function is\ntoo simple for your needs.\n\n#### The parser\n```javascript\nvar toplevel_ast = UglifyJS.parse(code, options);\n```\n\n`options` is optional and if present it must be an object. The following\nproperties are available:\n\n- `strict` — disable automatic semicolon insertion and support for trailing\n comma in arrays and objects\n- `bare_returns` — Allow return outside of functions. (maps to the\n `--bare-returns` CLI arguments option and available to `minify` `parse`\n other options object)\n- `filename` — the name of the file where this code is coming from\n- `toplevel` — a `toplevel` node (as returned by a previous invocation of\n `parse`)\n\nThe last two options are useful when you'd like to minify multiple files and\nget a single file as the output and a proper source map. Our CLI tool does\nsomething like this:\n```javascript\nvar toplevel = null;\nfiles.forEach(function(file){\n\tvar code = fs.readFileSync(file, \"utf8\");\n\ttoplevel = UglifyJS.parse(code, {\n\t\tfilename: file,\n\t\ttoplevel: toplevel\n\t});\n});\n```\n\nAfter this, we have in `toplevel` a big AST containing all our files, with\neach token having proper information about where it came from.\n\n#### Scope information\n\nUglifyJS contains a scope analyzer that you need to call manually before\ncompressing or mangling. Basically it augments various nodes in the AST\nwith information about where is a name defined, how many times is a name\nreferenced, if it is a global or not, if a function is using `eval` or the\n`with` statement etc. I will discuss this some place else, for now what's\nimportant to know is that you need to call the following before doing\nanything with the tree:\n```javascript\ntoplevel.figure_out_scope()\n```\n\n#### Compression\n\nLike this:\n```javascript\nvar compressor = UglifyJS.Compressor(options);\nvar compressed_ast = compressor.compress(toplevel);\n```\n\nThe `options` can be missing. Available options are discussed above in\n“Compressor options”. Defaults should lead to best compression in most\nscripts.\n\nThe compressor is destructive, so don't rely that `toplevel` remains the\noriginal tree.\n\n#### Mangling\n\nAfter compression it is a good idea to call again `figure_out_scope` (since\nthe compressor might drop unused variables / unreachable code and this might\nchange the number of identifiers or their position). Optionally, you can\ncall a trick that helps after Gzip (counting character frequency in\nnon-mangleable words). Example:\n```javascript\ncompressed_ast.figure_out_scope();\ncompressed_ast.compute_char_frequency();\ncompressed_ast.mangle_names();\n```\n\n#### Generating output\n\nAST nodes have a `print` method that takes an output stream. Essentially,\nto generate code you do this:\n```javascript\nvar stream = UglifyJS.OutputStream(options);\ncompressed_ast.print(stream);\nvar code = stream.toString(); // this is your minified code\n```\n\nor, for a shortcut you can do:\n```javascript\nvar code = compressed_ast.print_to_string(options);\n```\n\nAs usual, `options` is optional. The output stream accepts a lot of options,\nmost of them documented above in section “Beautifier options”. The two\nwhich we care about here are `source_map` and `comments`.\n\n#### Keeping comments in the output\n\nIn order to keep certain comments in the output you need to pass the\n`comments` option. Pass a RegExp (as string starting and closing with `/`\nor pass a RegExp object), a boolean or a function. Stringified options\n`all` and `some` can be passed too, where `some` behaves like it's cli\nequivalent `--comments` without passing a value. If you pass a RegExp,\nonly those comments whose body matches the RegExp will be kept. Note that body\nmeans without the initial `//` or `/*`. If you pass a function, it will be\ncalled for every comment in the tree and will receive two arguments: the\nnode that the comment is attached to, and the comment token itself.\n\nThe comment token has these properties:\n\n- `type`: \"comment1\" for single-line comments or \"comment2\" for multi-line\n comments\n- `value`: the comment body\n- `pos` and `endpos`: the start/end positions (zero-based indexes) in the\n original code where this comment appears\n- `line` and `col`: the line and column where this comment appears in the\n original code\n- `file` — the file name of the original file\n- `nlb` — true if there was a newline before this comment in the original\n code, or if this comment contains a newline.\n\nYour function should return `true` to keep the comment, or a falsy value\notherwise.\n\n#### Generating a source mapping\n\nYou need to pass the `source_map` argument when calling `print`. It needs\nto be a `SourceMap` object (which is a thin wrapper on top of the\n[source-map][source-map] library).\n\nExample:\n```javascript\nvar source_map = UglifyJS.SourceMap(source_map_options);\nvar stream = UglifyJS.OutputStream({\n\t...\n\tsource_map: source_map\n});\ncompressed_ast.print(stream);\n\nvar code = stream.toString();\nvar map = source_map.toString(); // json output for your source map\n```\n\nThe `source_map_options` (optional) can contain the following properties:\n\n- `file`: the name of the JavaScript output file that this mapping refers to\n- `root`: the `sourceRoot` property (see the [spec][sm-spec])\n- `orig`: the \"original source map\", handy when you compress generated JS\n and want to map the minified output back to the original code where it\n came from. It can be simply a string in JSON, or a JSON object containing\n the original source map.\n\n [acorn]: https://github.com/ternjs/acorn\n [source-map]: https://github.com/mozilla/source-map\n [sm-spec]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\n [codegen]: http://lisperator.net/uglifyjs/codegen\n [compressor]: http://lisperator.net/uglifyjs/compress\n [parser]: http://lisperator.net/uglifyjs/parser\n\n#### Harmony\n\nIf you wish to use the experimental [harmony](https://github.com/mishoo/UglifyJS2/commits/harmony)\nbranch to minify ES2015+ (ES6+) code please use the following in your `package.json` file:\n\n```\n\"uglify-js\": \"git+https://github.com/mishoo/UglifyJS2.git#harmony\"\n```\n\nor to directly install the experimental harmony version of uglify:\n\n```\nnpm install --save-dev uglify-js@github:mishoo/UglifyJS2#harmony\n```\n\nSee [#448](https://github.com/mishoo/UglifyJS2/issues/448) for additional details.\n",
+ "readme": "UglifyJS 2\n==========\n[![Build Status](https://travis-ci.org/mishoo/UglifyJS2.svg)](https://travis-ci.org/mishoo/UglifyJS2)\n\nUglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit.\n\nThis page documents the command line utility. For\n[API and internals documentation see my website](http://lisperator.net/uglifyjs/).\nThere's also an\n[in-browser online demo](http://lisperator.net/uglifyjs/#demo) (for Firefox,\nChrome and probably Safari).\n\n#### Note:\n- `uglify-js` only supports ECMAScript 5 (ES5).\n- Support for `const` is [present but incomplete](#support-for-const), and may not be\n transformed properly.\n- Those wishing to minify ES2015+ (ES6+) should use the `npm` package [**uglify-es**](https://github.com/mishoo/UglifyJS2/tree/harmony).\n\nInstall\n-------\n\nFirst make sure you have installed the latest version of [node.js](http://nodejs.org/)\n(You may need to restart your computer after this step).\n\nFrom NPM for use as a command line app:\n\n npm install uglify-js -g\n\nFrom NPM for programmatic use:\n\n npm install uglify-js\n\nUsage\n-----\n\n uglifyjs [input files] [options]\n\nUglifyJS2 can take multiple input files. It's recommended that you pass the\ninput files first, then pass the options. UglifyJS will parse input files\nin sequence and apply any compression options. The files are parsed in the\nsame global scope, that is, a reference from a file to some\nvariable/function declared in another file will be matched properly.\n\nIf you want to read from STDIN instead, pass a single dash instead of input\nfiles.\n\nIf you wish to pass your options before the input files, separate the two with\na double dash to prevent input files being used as option arguments:\n\n uglifyjs --compress --mangle -- input.js\n\nThe available options are:\n\n```\n --source-map Specify an output file where to generate source\n map.\n --source-map-root The path to the original source to be included\n in the source map.\n --source-map-url The path to the source map to be added in //#\n sourceMappingURL. Defaults to the value passed\n with --source-map.\n --source-map-include-sources Pass this flag if you want to include the\n content of source files in the source map as\n sourcesContent property.\n --source-map-inline Write base64-encoded source map to the end of js output.\n --in-source-map Input source map, useful if you're compressing\n JS that was generated from some other original\n code. Specify \"inline\" if the source map is included\n inline with the sources.\n --screw-ie8 Use this flag if you don't wish to support\n Internet Explorer 6/7/8.\n By default UglifyJS will not try to be IE-proof.\n --support-ie8 Use this flag to support Internet Explorer 6/7/8.\n Equivalent to setting `screw_ie8: false` in `minify()`\n for `compress`, `mangle` and `output` options.\n --expr Parse a single expression, rather than a\n program (for parsing JSON)\n -p, --prefix Skip prefix for original filenames that appear\n in source maps. For example -p 3 will drop 3\n directories from file names and ensure they are\n relative paths. You can also specify -p\n relative, which will make UglifyJS figure out\n itself the relative paths between original\n sources, the source map and the output file.\n -o, --output Output file (default STDOUT).\n -b, --beautify Beautify output/specify output options.\n -m, --mangle Mangle names/pass mangler options.\n -r, --reserved Reserved names to exclude from mangling.\n -c, --compress Enable compressor/pass compressor options, e.g.\n `-c 'if_return=false,pure_funcs=[\"Math.pow\",\"console.log\"]'`\n Use `-c` with no argument to enable default compression\n options.\n -d, --define Global definitions\n -e, --enclose Embed everything in a big function, with a\n configurable parameter/argument list.\n --comments Preserve copyright comments in the output. By\n default this works like Google Closure, keeping\n JSDoc-style comments that contain \"@license\" or\n \"@preserve\". You can optionally pass one of the\n following arguments to this flag:\n - \"all\" to keep all comments\n - a valid JS RegExp like `/foo/` or `/^!/` to\n keep only matching comments.\n Note that currently not *all* comments can be\n kept when compression is on, because of dead\n code removal or cascading statements into\n sequences.\n --preamble Preamble to prepend to the output. You can use\n this to insert a comment, for example for\n licensing information. This will not be\n parsed, but the source map will adjust for its\n presence.\n --stats Display operations run time on STDERR.\n --acorn Use Acorn for parsing.\n --spidermonkey Assume input files are SpiderMonkey AST format\n (as JSON).\n --self Build itself (UglifyJS2) as a library (implies\n --wrap=UglifyJS --export-all)\n --wrap Embed everything in a big function, making the\n “exports” and “global” variables available. You\n need to pass an argument to this option to\n specify the name that your module will take\n when included in, say, a browser.\n --export-all Only used when --wrap, this tells UglifyJS to\n add code to automatically export all globals.\n --lint Display some scope warnings\n -v, --verbose Verbose\n -V, --version Print version number and exit.\n --noerr Don't throw an error for unknown options in -c,\n -b or -m.\n --bare-returns Allow return outside of functions. Useful when\n minifying CommonJS modules and Userscripts that\n may be anonymous function wrapped (IIFE) by the\n .user.js engine `caller`.\n --keep-fnames Do not mangle/drop function names. Useful for\n code relying on Function.prototype.name.\n --reserved-file File containing reserved names\n --reserve-domprops Make (most?) DOM properties reserved for\n --mangle-props\n --mangle-props Mangle property names (default `0`). Set to\n `true` or `1` to mangle all property names. Set\n to `unquoted` or `2` to only mangle unquoted\n property names. Mode `2` also enables the\n `keep_quoted_props` beautifier option to\n preserve the quotes around property names and\n disables the `properties` compressor option to\n prevent rewriting quoted properties with dot\n notation. You can override these by setting\n them explicitly on the command line.\n --mangle-regex Only mangle property names matching the regex\n --name-cache File to hold mangled names mappings\n --pure-funcs Functions that can be safely removed if their\n return value is not used, e.g.\n `--pure-funcs Math.floor console.info`\n (requires `--compress`)\n```\n\nSpecify `--output` (`-o`) to declare the output file. Otherwise the output\ngoes to STDOUT.\n\n## Source map options\n\nUglifyJS2 can generate a source map file, which is highly useful for\ndebugging your compressed JavaScript. To get a source map, pass\n`--source-map output.js.map` (full path to the file where you want the\nsource map dumped).\n\nAdditionally you might need `--source-map-root` to pass the URL where the\noriginal files can be found. In case you are passing full paths to input\nfiles to UglifyJS, you can use `--prefix` (`-p`) to specify the number of\ndirectories to drop from the path prefix when declaring files in the source\nmap.\n\nFor example:\n\n uglifyjs /home/doe/work/foo/src/js/file1.js \\\n /home/doe/work/foo/src/js/file2.js \\\n -o foo.min.js \\\n --source-map foo.min.js.map \\\n --source-map-root http://foo.com/src \\\n -p 5 -c -m\n\nThe above will compress and mangle `file1.js` and `file2.js`, will drop the\noutput in `foo.min.js` and the source map in `foo.min.js.map`. The source\nmapping will refer to `http://foo.com/src/js/file1.js` and\n`http://foo.com/src/js/file2.js` (in fact it will list `http://foo.com/src`\nas the source map root, and the original files as `js/file1.js` and\n`js/file2.js`).\n\n### Composed source map\n\nWhen you're compressing JS code that was output by a compiler such as\nCoffeeScript, mapping to the JS code won't be too helpful. Instead, you'd\nlike to map back to the original code (i.e. CoffeeScript). UglifyJS has an\noption to take an input source map. Assuming you have a mapping from\nCoffeeScript → compiled JS, UglifyJS can generate a map from CoffeeScript →\ncompressed JS by mapping every token in the compiled JS to its original\nlocation.\n\nTo use this feature you need to pass `--in-source-map\n/path/to/input/source.map` or `--in-source-map inline` if the source map is\nincluded inline with the sources. Normally the input source map should also\npoint to the file containing the generated JS, so if that's correct you can\nomit input files from the command line.\n\n## Mangler options\n\nTo enable the mangler you need to pass `--mangle` (`-m`). The following\n(comma-separated) options are supported:\n\n- `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n- `eval` — mangle names visible in scopes where `eval` or `with` are used\n (disabled by default).\n\nWhen mangling is enabled but you want to prevent certain names from being\nmangled, you can declare those names with `--reserved` (`-r`) — pass a\ncomma-separated list of names. For example:\n\n uglifyjs ... -m -r '$,require,exports'\n\nto prevent the `require`, `exports` and `$` names from being changed.\n\n### Mangling property names (`--mangle-props`)\n\n**Note:** this will probably break your code. Mangling property names is a\nseparate step, different from variable name mangling. Pass\n`--mangle-props`. It will mangle all properties that are seen in some\nobject literal, or that are assigned to. For example:\n\n```js\nvar x = {\n foo: 1\n};\n\nx.bar = 2;\nx[\"baz\"] = 3;\nx[condition ? \"moo\" : \"boo\"] = 4;\nconsole.log(x.something());\n```\n\nIn the above code, `foo`, `bar`, `baz`, `moo` and `boo` will be replaced\nwith single characters, while `something()` will be left as is.\n\nIn order for this to be of any use, we should avoid mangling standard JS\nnames. For instance, if your code would contain `x.length = 10`, then\n`length` becomes a candidate for mangling and it will be mangled throughout\nthe code, regardless if it's being used as part of your own objects or\naccessing an array's length. To avoid that, you can use `--reserved-file`\nto pass a filename that should contain the names to be excluded from\nmangling. This file can be used both for excluding variable names and\nproperty names. It could look like this, for example:\n\n```js\n{\n \"vars\": [ \"define\", \"require\", ... ],\n \"props\": [ \"length\", \"prototype\", ... ]\n}\n```\n\n`--reserved-file` can be an array of file names (either a single\ncomma-separated argument, or you can pass multiple `--reserved-file`\narguments) — in this case it will exclude names from all those files.\n\nA default exclusion file is provided in `tools/domprops.json` which should\ncover most standard JS and DOM properties defined in various browsers. Pass\n`--reserve-domprops` to read that in.\n\nYou can also use a regular expression to define which property names should be\nmangled. For example, `--mangle-regex=\"/^_/\"` will only mangle property names\nthat start with an underscore.\n\nWhen you compress multiple files using this option, in order for them to\nwork together in the end we need to ensure somehow that one property gets\nmangled to the same name in all of them. For this, pass `--name-cache\nfilename.json` and UglifyJS will maintain these mappings in a file which can\nthen be reused. It should be initially empty. Example:\n\n```\nrm -f /tmp/cache.json # start fresh\nuglifyjs file1.js file2.js --mangle-props --name-cache /tmp/cache.json -o part1.js\nuglifyjs file3.js file4.js --mangle-props --name-cache /tmp/cache.json -o part2.js\n```\n\nNow, `part1.js` and `part2.js` will be consistent with each other in terms\nof mangled property names.\n\nUsing the name cache is not necessary if you compress all your files in a\nsingle call to UglifyJS.\n\n#### Mangling unquoted names (`--mangle-props=unquoted` or `--mangle-props=2`)\n\nUsing quoted property name (`o[\"foo\"]`) reserves the property name (`foo`)\nso that it is not mangled throughout the entire script even when used in an\nunquoted style (`o.foo`). Example:\n\n```\n$ echo 'var o={\"foo\":1, bar:3}; o.foo += o.bar; console.log(o.foo);' | uglifyjs --mangle-props=2 -mc\nvar o={\"foo\":1,a:3};o.foo+=o.a,console.log(o.foo);\n```\n\n#### Debugging property name mangling\n\nYou can also pass `--mangle-props-debug` in order to mangle property names\nwithout completely obscuring them. For example the property `o.foo`\nwould mangle to `o._$foo$_` with this option. This allows property mangling\nof a large codebase while still being able to debug the code and identify\nwhere mangling is breaking things.\n\nYou can also pass a custom suffix using `--mangle-props-debug=XYZ`. This would then\nmangle `o.foo` to `o._$foo$XYZ_`. You can change this each time you compile a\nscript to identify how a property got mangled. One technique is to pass a\nrandom number on every compile to simulate mangling changing with different\ninputs (e.g. as you update the input script with new properties), and to help\nidentify mistakes like writing mangled keys to storage.\n\n## Compressor options\n\nYou need to pass `--compress` (`-c`) to enable the compressor. Optionally\nyou can pass a comma-separated list of options. Options are in the form\n`foo=bar`, or just `foo` (the latter implies a boolean option that you want\nto set `true`; it's effectively a shortcut for `foo=true`).\n\n- `sequences` (default: true) -- join consecutive simple statements using the\n comma operator. May be set to a positive integer to specify the maximum number\n of consecutive comma sequences that will be generated. If this option is set to\n `true` then the default `sequences` limit is `200`. Set option to `false` or `0`\n to disable. The smallest `sequences` length is `2`. A `sequences` value of `1`\n is grandfathered to be equivalent to `true` and as such means `200`. On rare\n occasions the default sequences limit leads to very slow compress times in which\n case a value of `20` or less is recommended.\n\n- `properties` -- rewrite property access using the dot notation, for\n example `foo[\"bar\"] → foo.bar`\n\n- `dead_code` -- remove unreachable code\n\n- `drop_debugger` -- remove `debugger;` statements\n\n- `unsafe` (default: false) -- apply \"unsafe\" transformations (discussion below)\n\n- `unsafe_comps` (default: false) -- Reverse `<` and `<=` to `>` and `>=` to\n allow improved compression. This might be unsafe when an at least one of two\n operands is an object with computed values due the use of methods like `get`,\n or `valueOf`. This could cause change in execution order after operands in the\n comparison are switching. Compression only works if both `comparisons` and\n `unsafe_comps` are both set to true.\n\n- `unsafe_math` (default: false) -- optimize numerical expressions like\n `2 * x * 3` into `6 * x`, which may give imprecise floating point results.\n\n- `unsafe_proto` (default: false) -- optimize expressions like\n `Array.prototype.slice.call(a)` into `[].slice.call(a)`\n\n- `unsafe_regexp` (default: false) -- enable substitutions of variables with\n `RegExp` values the same way as if they are constants.\n\n- `conditionals` -- apply optimizations for `if`-s and conditional\n expressions\n\n- `comparisons` -- apply certain optimizations to binary nodes, for example:\n `!(a <= b) → a > b` (only when `unsafe_comps`), attempts to negate binary\n nodes, e.g. `a = !b && !c && !d && !e → a=!(b||c||d||e)` etc.\n\n- `evaluate` -- attempt to evaluate constant expressions\n\n- `booleans` -- various optimizations for boolean context, for example `!!a\n ? b : c → a ? b : c`\n\n- `loops` -- optimizations for `do`, `while` and `for` loops when we can\n statically determine the condition\n\n- `unused` -- drop unreferenced functions and variables (simple direct variable\n assignments do not count as references unless set to `\"keep_assign\"`)\n\n- `toplevel` -- drop unreferenced functions (`\"funcs\"`) and/or variables (`\"vars\"`)\n in the toplevel scope (`false` by default, `true` to drop both unreferenced\n functions and variables)\n\n- `top_retain` -- prevent specific toplevel functions and variables from `unused`\n removal (can be array, comma-separated, RegExp or function. Implies `toplevel`)\n\n- `hoist_funs` -- hoist function declarations\n\n- `hoist_vars` (default: false) -- hoist `var` declarations (this is `false`\n by default because it seems to increase the size of the output in general)\n\n- `if_return` -- optimizations for if/return and if/continue\n\n- `join_vars` -- join consecutive `var` statements\n\n- `cascade` -- small optimization for sequences, transform `x, x` into `x`\n and `x = something(), x` into `x = something()`\n\n- `collapse_vars` -- Collapse single-use `var` and `const` definitions\n when possible.\n\n- `reduce_vars` -- Improve optimization on variables assigned with and\n used as constant values.\n\n- `warnings` -- display warnings when dropping unreachable code or unused\n declarations etc.\n\n- `negate_iife` -- negate \"Immediately-Called Function Expressions\"\n where the return value is discarded, to avoid the parens that the\n code generator would insert.\n\n- `pure_getters` -- the default is `false`. If you pass `true` for\n this, UglifyJS will assume that object property access\n (e.g. `foo.bar` or `foo[\"bar\"]`) doesn't have any side effects.\n Specify `\"strict\"` to treat `foo.bar` as side-effect-free only when\n `foo` is certain to not throw, i.e. not `null` or `undefined`.\n\n- `pure_funcs` -- default `null`. You can pass an array of names and\n UglifyJS will assume that those functions do not produce side\n effects. DANGER: will not check if the name is redefined in scope.\n An example case here, for instance `var q = Math.floor(a/b)`. If\n variable `q` is not used elsewhere, UglifyJS will drop it, but will\n still keep the `Math.floor(a/b)`, not knowing what it does. You can\n pass `pure_funcs: [ 'Math.floor' ]` to let it know that this\n function won't produce any side effect, in which case the whole\n statement would get discarded. The current implementation adds some\n overhead (compression will be slower).\n\n- `drop_console` -- default `false`. Pass `true` to discard calls to\n `console.*` functions. If you wish to drop a specific function call\n such as `console.info` and/or retain side effects from function arguments\n after dropping the function call then use `pure_funcs` instead.\n\n- `expression` -- default `false`. Pass `true` to preserve completion values\n from terminal statements without `return`, e.g. in bookmarklets.\n\n- `keep_fargs` -- default `true`. Prevents the\n compressor from discarding unused function arguments. You need this\n for code which relies on `Function.length`.\n\n- `keep_fnames` -- default `false`. Pass `true` to prevent the\n compressor from discarding function names. Useful for code relying on\n `Function.prototype.name`. See also: the `keep_fnames` [mangle option](#mangle).\n\n- `passes` -- default `1`. Number of times to run compress with a maximum of 3.\n In some cases more than one pass leads to further compressed code. Keep in\n mind more passes will take more time.\n\n- `keep_infinity` -- default `false`. Pass `true` to prevent `Infinity` from\n being compressed into `1/0`, which may cause performance issues on Chrome.\n\n- `side_effects` -- default `true`. Pass `false` to disable potentially dropping\n functions marked as \"pure\". A function call is marked as \"pure\" if a comment\n annotation `/*@__PURE__*/` or `/*#__PURE__*/` immediately precedes the call. For\n example: `/*@__PURE__*/foo();`\n\n\n### The `unsafe` option\n\nIt enables some transformations that *might* break code logic in certain\ncontrived cases, but should be fine for most code. You might want to try it\non your own code, it should reduce the minified size. Here's what happens\nwhen this flag is on:\n\n- `new Array(1, 2, 3)` or `Array(1, 2, 3)` → `[ 1, 2, 3 ]`\n- `new Object()` → `{}`\n- `String(exp)` or `exp.toString()` → `\"\" + exp`\n- `new Object/RegExp/Function/Error/Array (...)` → we discard the `new`\n- `typeof foo == \"undefined\"` → `foo === void 0`\n- `void 0` → `undefined` (if there is a variable named \"undefined\" in\n scope; we do it because the variable name will be mangled, typically\n reduced to a single character)\n\n### Conditional compilation\n\nYou can use the `--define` (`-d`) switch in order to declare global\nvariables that UglifyJS will assume to be constants (unless defined in\nscope). For example if you pass `--define DEBUG=false` then, coupled with\ndead code removal UglifyJS will discard the following from the output:\n```javascript\nif (DEBUG) {\n\tconsole.log(\"debug stuff\");\n}\n```\n\nYou can specify nested constants in the form of `--define env.DEBUG=false`.\n\nUglifyJS will warn about the condition being always false and about dropping\nunreachable code; for now there is no option to turn off only this specific\nwarning, you can pass `warnings=false` to turn off *all* warnings.\n\nAnother way of doing that is to declare your globals as constants in a\nseparate file and include it into the build. For example you can have a\n`build/defines.js` file with the following:\n```javascript\nconst DEBUG = false;\nconst PRODUCTION = true;\n// etc.\n```\n\nand build your code like this:\n\n uglifyjs build/defines.js js/foo.js js/bar.js... -c\n\nUglifyJS will notice the constants and, since they cannot be altered, it\nwill evaluate references to them to the value itself and drop unreachable\ncode as usual. The build will contain the `const` declarations if you use\nthem. If you are targeting < ES6 environments which does not support `const`,\nusing `var` with `reduce_vars` (enabled by default) should suffice.\n\n<a name=\"codegen-options\"></a>\n\n#### Conditional compilation, API\nYou can also use conditional compilation via the programmatic API. With the difference that the\nproperty name is `global_defs` and is a compressor property:\n\n```js\nuglifyJS.minify([ \"input.js\"], {\n compress: {\n dead_code: true,\n global_defs: {\n DEBUG: false\n }\n }\n});\n```\n\n## Beautifier options\n\nThe code generator tries to output shortest code possible by default. In\ncase you want beautified output, pass `--beautify` (`-b`). Optionally you\ncan pass additional arguments that control the code output:\n\n- `beautify` (default `true`) -- whether to actually beautify the output.\n Passing `-b` will set this to true, but you might need to pass `-b` even\n when you want to generate minified code, in order to specify additional\n arguments, so you can use `-b beautify=false` to override it.\n- `indent-level` (default 4)\n- `indent-start` (default 0) -- prefix all lines by that many spaces\n- `quote-keys` (default `false`) -- pass `true` to quote all keys in literal\n objects\n- `space-colon` (default `true`) -- insert a space after the colon signs\n- `ascii-only` (default `false`) -- escape Unicode characters in strings and\n regexps (affects directives with non-ascii characters becoming invalid)\n- `inline-script` (default `false`) -- escape the slash in occurrences of\n `</script` in strings\n- `width` (default 80) -- only takes effect when beautification is on, this\n specifies an (orientative) line width that the beautifier will try to\n obey. It refers to the width of the line text (excluding indentation).\n It doesn't work very well currently, but it does make the code generated\n by UglifyJS more readable.\n- `max-line-len` (default 32000) -- maximum line length (for uglified code)\n- `bracketize` (default `false`) -- always insert brackets in `if`, `for`,\n `do`, `while` or `with` statements, even if their body is a single\n statement.\n- `semicolons` (default `true`) -- separate statements with semicolons. If\n you pass `false` then whenever possible we will use a newline instead of a\n semicolon, leading to more readable output of uglified code (size before\n gzip could be smaller; size after gzip insignificantly larger).\n- `preamble` (default `null`) -- when passed it must be a string and\n it will be prepended to the output literally. The source map will\n adjust for this text. Can be used to insert a comment containing\n licensing information, for example.\n- `quote_style` (default `0`) -- preferred quote style for strings (affects\n quoted property names and directives as well):\n - `0` -- prefers double quotes, switches to single quotes when there are\n more double quotes in the string itself.\n - `1` -- always use single quotes\n - `2` -- always use double quotes\n - `3` -- always use the original quotes\n- `keep_quoted_props` (default `false`) -- when turned on, prevents stripping\n quotes from property names in object literals.\n\n### Keeping copyright notices or other comments\n\nYou can pass `--comments` to retain certain comments in the output. By\ndefault it will keep JSDoc-style comments that contain \"@preserve\",\n\"@license\" or \"@cc_on\" (conditional compilation for IE). You can pass\n`--comments all` to keep all the comments, or a valid JavaScript regexp to\nkeep only comments that match this regexp. For example `--comments\n'/foo|bar/'` will keep only comments that contain \"foo\" or \"bar\".\n\nNote, however, that there might be situations where comments are lost. For\nexample:\n```javascript\nfunction f() {\n\t/** @preserve Foo Bar */\n\tfunction g() {\n\t // this function is never called\n\t}\n\treturn something();\n}\n```\n\nEven though it has \"@preserve\", the comment will be lost because the inner\nfunction `g` (which is the AST node to which the comment is attached to) is\ndiscarded by the compressor as not referenced.\n\nThe safest comments where to place copyright information (or other info that\nneeds to be kept in the output) are comments attached to toplevel nodes.\n\n## Support for the SpiderMonkey AST\n\nUglifyJS2 has its own abstract syntax tree format; for\n[practical reasons](http://lisperator.net/blog/uglifyjs-why-not-switching-to-spidermonkey-ast/)\nwe can't easily change to using the SpiderMonkey AST internally. However,\nUglifyJS now has a converter which can import a SpiderMonkey AST.\n\nFor example [Acorn][acorn] is a super-fast parser that produces a\nSpiderMonkey AST. It has a small CLI utility that parses one file and dumps\nthe AST in JSON on the standard output. To use UglifyJS to mangle and\ncompress that:\n\n acorn file.js | uglifyjs --spidermonkey -m -c\n\nThe `--spidermonkey` option tells UglifyJS that all input files are not\nJavaScript, but JS code described in SpiderMonkey AST in JSON. Therefore we\ndon't use our own parser in this case, but just transform that AST into our\ninternal AST.\n\n### Use Acorn for parsing\n\nMore for fun, I added the `--acorn` option which will use Acorn to do all\nthe parsing. If you pass this option, UglifyJS will `require(\"acorn\")`.\n\nAcorn is really fast (e.g. 250ms instead of 380ms on some 650K code), but\nconverting the SpiderMonkey tree that Acorn produces takes another 150ms so\nin total it's a bit more than just using UglifyJS's own parser.\n\n### Using UglifyJS to transform SpiderMonkey AST\n\nNow you can use UglifyJS as any other intermediate tool for transforming\nJavaScript ASTs in SpiderMonkey format.\n\nExample:\n\n```javascript\nfunction uglify(ast, options, mangle) {\n // Conversion from SpiderMonkey AST to internal format\n var uAST = UglifyJS.AST_Node.from_mozilla_ast(ast);\n\n // Compression\n uAST.figure_out_scope();\n uAST = UglifyJS.Compressor(options).compress(uAST);\n\n // Mangling (optional)\n if (mangle) {\n uAST.figure_out_scope();\n uAST.compute_char_frequency();\n uAST.mangle_names();\n }\n\n // Back-conversion to SpiderMonkey AST\n return uAST.to_mozilla_ast();\n}\n```\n\nCheck out\n[original blog post](http://rreverser.com/using-mozilla-ast-with-uglifyjs/)\nfor details.\n\nAPI Reference\n-------------\n\nAssuming installation via NPM, you can load UglifyJS in your application\nlike this:\n```javascript\nvar UglifyJS = require(\"uglify-js\");\n```\n\nIt exports a lot of names, but I'll discuss here the basics that are needed\nfor parsing, mangling and compressing a piece of code. The sequence is (1)\nparse, (2) compress, (3) mangle, (4) generate output code.\n\n### The simple way\n\nThere's a single toplevel function which combines all the steps. If you\ndon't need additional customization, you might want to go with `minify`.\nExample:\n```javascript\nvar result = UglifyJS.minify(\"/path/to/file.js\");\nconsole.log(result.code); // minified output\n// if you need to pass code instead of file name\nvar result = UglifyJS.minify(\"var b = function () {};\", {fromString: true});\n```\n\nYou can also compress multiple files:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ]);\nconsole.log(result.code);\n```\n\nTo generate a source map:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ], {\n\toutSourceMap: \"out.js.map\"\n});\nconsole.log(result.code); // minified output\nconsole.log(result.map);\n```\n\nTo generate a source map with the fromString option, you can also use an object:\n```javascript\nvar result = UglifyJS.minify({\"file1.js\": \"var a = function () {};\"}, {\n outSourceMap: \"out.js.map\",\n outFileName: \"out.js\",\n fromString: true\n});\n```\n\nNote that the source map is not saved in a file, it's just returned in\n`result.map`. The value passed for `outSourceMap` is only used to set\n`//# sourceMappingURL=out.js.map` in `result.code`. The value of\n`outFileName` is only used to set `file` attribute in source map file.\n\nThe `file` attribute in the source map (see [the spec][sm-spec]) will\nuse `outFileName` firstly, if it's falsy, then will be deduced from\n`outSourceMap` (by removing `'.map'`).\n\nYou can set option `sourceMapInline` to be `true` and source map will\nbe appended to code.\n\nYou can also specify sourceRoot property to be included in source map:\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\", \"file2.js\", \"file3.js\" ], {\n\toutSourceMap: \"out.js.map\",\n\tsourceRoot: \"http://example.com/src\"\n});\n```\n\nIf you're compressing compiled JavaScript and have a source map for it, you\ncan use the `inSourceMap` argument:\n```javascript\nvar result = UglifyJS.minify(\"compiled.js\", {\n\tinSourceMap: \"compiled.js.map\",\n\toutSourceMap: \"minified.js.map\"\n});\n// same as before, it returns `code` and `map`\n```\n\nIf your input source map is not in a file, you can pass it in as an object\nusing the `inSourceMap` argument:\n\n```javascript\nvar result = UglifyJS.minify(\"compiled.js\", {\n\tinSourceMap: JSON.parse(my_source_map_string),\n\toutSourceMap: \"minified.js.map\"\n});\n```\n\nThe `inSourceMap` is only used if you also request `outSourceMap` (it makes\nno sense otherwise).\n\nTo set the source map url, use the `sourceMapUrl` option.\nIf you're using the X-SourceMap header instead, you can just set the `sourceMapUrl` option to false.\nDefaults to outSourceMap:\n\n```javascript\nvar result = UglifyJS.minify([ \"file1.js\" ], {\n outSourceMap: \"out.js.map\",\n sourceMapUrl: \"localhost/out.js.map\"\n});\n```\n\nOther options:\n\n- `warnings` (default `false`) — pass `true` to display compressor warnings.\n\n- `fromString` (default `false`) — if you pass `true` then you can pass\n JavaScript source code, rather than file names.\n\n- `mangle` (default `true`) — pass `false` to skip mangling names, or pass\n an object to specify mangling options (see below).\n\n- `mangleProperties` (default `false`) — pass an object to specify custom\n mangle property options.\n\n- `output` (default `null`) — pass an object if you wish to specify\n additional [output options][codegen]. The defaults are optimized\n for best compression.\n\n- `compress` (default `{}`) — pass `false` to skip compressing entirely.\n Pass an object to specify custom [compressor options][compressor].\n\n- `parse` (default {}) — pass an object if you wish to specify some\n additional [parser options][parser]. (not all options available... see below)\n\n##### mangle\n\n - `except` - pass an array of identifiers that should be excluded from mangling\n\n - `toplevel` — mangle names declared in the toplevel scope (disabled by\n default).\n\n - `eval` — mangle names visible in scopes where eval or with are used\n (disabled by default).\n\n - `keep_fnames` -- default `false`. Pass `true` to not mangle\n function names. Useful for code relying on `Function.prototype.name`.\n See also: the `keep_fnames` [compress option](#compressor-options).\n\n Examples:\n\n ```javascript\n //tst.js\n var globalVar;\n function funcName(firstLongName, anotherLongName)\n {\n var myVariable = firstLongName + anotherLongName;\n }\n\n UglifyJS.minify(\"tst.js\").code;\n // 'function funcName(a,n){}var globalVar;'\n\n UglifyJS.minify(\"tst.js\", { mangle: { except: ['firstLongName'] } }).code;\n // 'function funcName(firstLongName,a){}var globalVar;'\n\n UglifyJS.minify(\"tst.js\", { mangle: { toplevel: true } }).code;\n // 'function n(n,a){}var a;'\n ```\n\n##### mangleProperties options\n\n - `regex` — Pass a RegExp to only mangle certain names (maps to the `--mangle-regex` CLI arguments option)\n - `ignore_quoted` – Only mangle unquoted property names (maps to the `--mangle-props 2` CLI arguments option)\n - `debug` – Mangle names with the original name still present (maps to the `--mangle-props-debug` CLI arguments option). Defaults to `false`. Pass an empty string to enable, or a non-empty string to set the suffix.\n\nWe could add more options to `UglifyJS.minify` — if you need additional\nfunctionality please suggest!\n\n### The hard way\n\nFollowing there's more detailed API info, in case the `minify` function is\ntoo simple for your needs.\n\n#### The parser\n```javascript\nvar toplevel_ast = UglifyJS.parse(code, options);\n```\n\n`options` is optional and if present it must be an object. The following\nproperties are available:\n\n- `strict` — disable automatic semicolon insertion and support for trailing\n comma in arrays and objects\n- `bare_returns` — Allow return outside of functions. (maps to the\n `--bare-returns` CLI arguments option and available to `minify` `parse`\n other options object)\n- `filename` — the name of the file where this code is coming from\n- `toplevel` — a `toplevel` node (as returned by a previous invocation of\n `parse`)\n\nThe last two options are useful when you'd like to minify multiple files and\nget a single file as the output and a proper source map. Our CLI tool does\nsomething like this:\n```javascript\nvar toplevel = null;\nfiles.forEach(function(file){\n\tvar code = fs.readFileSync(file, \"utf8\");\n\ttoplevel = UglifyJS.parse(code, {\n\t\tfilename: file,\n\t\ttoplevel: toplevel\n\t});\n});\n```\n\nAfter this, we have in `toplevel` a big AST containing all our files, with\neach token having proper information about where it came from.\n\n#### Scope information\n\nUglifyJS contains a scope analyzer that you need to call manually before\ncompressing or mangling. Basically it augments various nodes in the AST\nwith information about where is a name defined, how many times is a name\nreferenced, if it is a global or not, if a function is using `eval` or the\n`with` statement etc. I will discuss this some place else, for now what's\nimportant to know is that you need to call the following before doing\nanything with the tree:\n```javascript\ntoplevel.figure_out_scope()\n```\n\n#### Compression\n\nLike this:\n```javascript\nvar compressor = UglifyJS.Compressor(options);\nvar compressed_ast = compressor.compress(toplevel);\n```\n\nThe `options` can be missing. Available options are discussed above in\n“Compressor options”. Defaults should lead to best compression in most\nscripts.\n\nThe compressor is destructive, so don't rely that `toplevel` remains the\noriginal tree.\n\n#### Mangling\n\nAfter compression it is a good idea to call again `figure_out_scope` (since\nthe compressor might drop unused variables / unreachable code and this might\nchange the number of identifiers or their position). Optionally, you can\ncall a trick that helps after Gzip (counting character frequency in\nnon-mangleable words). Example:\n```javascript\ncompressed_ast.figure_out_scope();\ncompressed_ast.compute_char_frequency();\ncompressed_ast.mangle_names();\n```\n\n#### Generating output\n\nAST nodes have a `print` method that takes an output stream. Essentially,\nto generate code you do this:\n```javascript\nvar stream = UglifyJS.OutputStream(options);\ncompressed_ast.print(stream);\nvar code = stream.toString(); // this is your minified code\n```\n\nor, for a shortcut you can do:\n```javascript\nvar code = compressed_ast.print_to_string(options);\n```\n\nAs usual, `options` is optional. The output stream accepts a lot of options,\nmost of them documented above in section “Beautifier options”. The two\nwhich we care about here are `source_map` and `comments`.\n\n#### Keeping comments in the output\n\nIn order to keep certain comments in the output you need to pass the\n`comments` option. Pass a RegExp (as string starting and closing with `/`\nor pass a RegExp object), a boolean or a function. Stringified options\n`all` and `some` can be passed too, where `some` behaves like it's cli\nequivalent `--comments` without passing a value. If you pass a RegExp,\nonly those comments whose body matches the RegExp will be kept. Note that body\nmeans without the initial `//` or `/*`. If you pass a function, it will be\ncalled for every comment in the tree and will receive two arguments: the\nnode that the comment is attached to, and the comment token itself.\n\nThe comment token has these properties:\n\n- `type`: \"comment1\" for single-line comments or \"comment2\" for multi-line\n comments\n- `value`: the comment body\n- `pos` and `endpos`: the start/end positions (zero-based indexes) in the\n original code where this comment appears\n- `line` and `col`: the line and column where this comment appears in the\n original code\n- `file` — the file name of the original file\n- `nlb` — true if there was a newline before this comment in the original\n code, or if this comment contains a newline.\n\nYour function should return `true` to keep the comment, or a falsy value\notherwise.\n\n#### Generating a source mapping\n\nYou need to pass the `source_map` argument when calling `print`. It needs\nto be a `SourceMap` object (which is a thin wrapper on top of the\n[source-map][source-map] library).\n\nExample:\n```javascript\nvar source_map = UglifyJS.SourceMap(source_map_options);\nvar stream = UglifyJS.OutputStream({\n\t...\n\tsource_map: source_map\n});\ncompressed_ast.print(stream);\n\nvar code = stream.toString();\nvar map = source_map.toString(); // json output for your source map\n```\n\nThe `source_map_options` (optional) can contain the following properties:\n\n- `file`: the name of the JavaScript output file that this mapping refers to\n- `root`: the `sourceRoot` property (see the [spec][sm-spec])\n- `orig`: the \"original source map\", handy when you compress generated JS\n and want to map the minified output back to the original code where it\n came from. It can be simply a string in JSON, or a JSON object containing\n the original source map.\n\n [acorn]: https://github.com/ternjs/acorn\n [source-map]: https://github.com/mozilla/source-map\n [sm-spec]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\n [codegen]: http://lisperator.net/uglifyjs/codegen\n [compressor]: http://lisperator.net/uglifyjs/compress\n [parser]: http://lisperator.net/uglifyjs/parser\n\n#### Support for `const`\n\n`const` in `uglify-js@2.x` has function scope and as such behaves much like\n`var` - unlike `const` in ES2015 (ES6) which has block scope. It is recommended\nto avoid using `const` for this reason as it will have undefined behavior when\nrun on an ES2015 compatible browser.\n",
"readmeFilename": "README.md",
"repository": {
"type": "git",
@@ -123,5 +120,5 @@
"scripts": {
"test": "node test/run-tests.js"
},
- "version": "2.8.22"
+ "version": "2.8.29"
}
diff --git a/node_modules/nyc/node_modules/uglify-to-browserify/package.json b/node_modules/nyc/node_modules/uglify-to-browserify/package.json
index 69f62f7cb..62db55e7c 100644
--- a/node_modules/nyc/node_modules/uglify-to-browserify/package.json
+++ b/node_modules/nyc/node_modules/uglify-to-browserify/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <1.1.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js"
]
],
"_from": "uglify-to-browserify@>=1.0.0 <1.1.0",
@@ -39,7 +39,7 @@
"_shasum": "6e0924d6bda6b5afe349e39a6d632850a0f882b7",
"_shrinkwrap": null,
"_spec": "uglify-to-browserify@~1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js",
"author": {
"name": "ForbesLindesay"
},
diff --git a/node_modules/nyc/node_modules/validate-npm-package-license/package.json b/node_modules/nyc/node_modules/validate-npm-package-license/package.json
index b25d54d76..73346a73e 100644
--- a/node_modules/nyc/node_modules/validate-npm-package-license/package.json
+++ b/node_modules/nyc/node_modules/validate-npm-package-license/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.0.1 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data"
]
],
"_from": "validate-npm-package-license@>=3.0.1 <4.0.0",
@@ -40,7 +40,7 @@
"_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc",
"_shrinkwrap": null,
"_spec": "validate-npm-package-license@^3.0.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/normalize-package-data",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/normalize-package-data",
"author": {
"name": "Kyle E. Mitchell",
"email": "kyle@kemitchell.com",
diff --git a/node_modules/nyc/node_modules/which-module/CHANGELOG.md b/node_modules/nyc/node_modules/which-module/CHANGELOG.md
index 6c8f5f294..863d4698e 100644
--- a/node_modules/nyc/node_modules/which-module/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/which-module/CHANGELOG.md
@@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/nexdrew/which-module/compare/v1.0.0...v2.0.0) (2017-05-01)
+
+
+### Features
+
+* remove Node < 4 from official testing/support ([#22](https://github.com/nexdrew/which-module/issues/22)) ([ee7aff4](https://github.com/nexdrew/which-module/commit/ee7aff4))
+
+
+### BREAKING CHANGES
+
+* Node 0.10 or 0.12 no longer supported, please update to Node 4+ or use which-module@1.0.0
+
+
+
<a name="1.0.0"></a>
# 1.0.0 (2016-06-06)
diff --git a/node_modules/nyc/node_modules/which-module/package.json b/node_modules/nyc/node_modules/which-module/package.json
index c9b9f8480..13e79c85b 100644
--- a/node_modules/nyc/node_modules/which-module/package.json
+++ b/node_modules/nyc/node_modules/which-module/package.json
@@ -2,49 +2,49 @@
"_args": [
[
{
- "raw": "which-module@^1.0.0",
+ "raw": "which-module@^2.0.0",
"scope": null,
"escapedName": "which-module",
"name": "which-module",
- "rawSpec": "^1.0.0",
- "spec": ">=1.0.0 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
- "_from": "which-module@>=1.0.0 <2.0.0",
- "_id": "which-module@1.0.0",
+ "_from": "which-module@>=2.0.0 <3.0.0",
+ "_id": "which-module@2.0.0",
"_inCache": true,
"_location": "/which-module",
- "_nodeVersion": "5.11.0",
+ "_nodeVersion": "7.9.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/which-module-1.0.0.tgz_1465192451403_0.19380306638777256"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/which-module-2.0.0.tgz_1493670259112_0.19386909971944988"
},
"_npmUser": {
"name": "nexdrew",
"email": "andrew@npmjs.com"
},
- "_npmVersion": "3.8.8",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "raw": "which-module@^1.0.0",
+ "raw": "which-module@^2.0.0",
"scope": null,
"escapedName": "which-module",
"name": "which-module",
- "rawSpec": "^1.0.0",
- "spec": ">=1.0.0 <2.0.0",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/yargs"
],
- "_resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "_shasum": "bba63ca861948994ff307736089e3b96026c2a4f",
+ "_resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "_shasum": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
"_shrinkwrap": null,
- "_spec": "which-module@^1.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_spec": "which-module@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "nexdrew"
},
@@ -54,21 +54,21 @@
"dependencies": {},
"description": "Find the module object for something that was require()d",
"devDependencies": {
- "ava": "^0.15.2",
- "coveralls": "^2.11.9",
- "nyc": "^6.4.4",
- "standard": "^7.1.2",
- "standard-version": "^2.3.0"
+ "ava": "^0.19.1",
+ "coveralls": "^2.13.1",
+ "nyc": "^10.3.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0"
},
"directories": {},
"dist": {
- "shasum": "bba63ca861948994ff307736089e3b96026c2a4f",
- "tarball": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz"
+ "shasum": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
+ "tarball": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
},
"files": [
"index.js"
],
- "gitHead": "a5b7492798fac7e484fd8812d3d3a1138bb08784",
+ "gitHead": "7f78f42d0761133263c3947a3b24dde324a467ce",
"homepage": "https://github.com/nexdrew/which-module#readme",
"keywords": [
"which",
@@ -101,5 +101,5 @@
"release": "standard-version",
"test": "nyc ava"
},
- "version": "1.0.0"
+ "version": "2.0.0"
}
diff --git a/node_modules/nyc/node_modules/which/package.json b/node_modules/nyc/node_modules/which/package.json
index 4927310e2..22200e9b4 100644
--- a/node_modules/nyc/node_modules/which/package.json
+++ b/node_modules/nyc/node_modules/which/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.2.9 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/cross-spawn"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/cross-spawn"
]
],
"_from": "which@>=1.2.9 <2.0.0",
@@ -46,7 +46,7 @@
"_shasum": "9a87c4378f03e827cecaf1acdf56c736c01c14e5",
"_shrinkwrap": null,
"_spec": "which@^1.2.9",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/cross-spawn",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/cross-spawn",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/window-size/package.json b/node_modules/nyc/node_modules/window-size/package.json
index 60e46e634..5a7322758 100644
--- a/node_modules/nyc/node_modules/window-size/package.json
+++ b/node_modules/nyc/node_modules/window-size/package.json
@@ -10,7 +10,7 @@
"spec": "0.1.0",
"type": "version"
},
- "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs"
]
],
"_from": "window-size@0.1.0",
@@ -39,7 +39,7 @@
"_shasum": "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d",
"_shrinkwrap": null,
"_spec": "window-size@0.1.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/uglify-js/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/uglify-js/node_modules/yargs",
"author": {
"name": "Jon Schlinkert",
"url": "https://github.com/jonschlinkert"
diff --git a/node_modules/nyc/node_modules/wordwrap/package.json b/node_modules/nyc/node_modules/wordwrap/package.json
index 3e8cd1f0d..68a7d6d1d 100644
--- a/node_modules/nyc/node_modules/wordwrap/package.json
+++ b/node_modules/nyc/node_modules/wordwrap/package.json
@@ -10,7 +10,7 @@
"spec": ">=0.0.2 <0.1.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/optimist"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/optimist"
]
],
"_from": "wordwrap@>=0.0.2 <0.1.0",
@@ -40,7 +40,7 @@
"_shasum": "a3d5da6cd5c0bc0008d37234bbaf1bed63059107",
"_shrinkwrap": null,
"_spec": "wordwrap@~0.0.2",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/optimist",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/optimist",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
diff --git a/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/index.js b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/index.js
new file mode 100644
index 000000000..b9bec6244
--- /dev/null
+++ b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/index.js
@@ -0,0 +1,37 @@
+'use strict';
+var stripAnsi = require('strip-ansi');
+var codePointAt = require('code-point-at');
+var isFullwidthCodePoint = require('is-fullwidth-code-point');
+
+// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345
+module.exports = function (str) {
+ if (typeof str !== 'string' || str.length === 0) {
+ return 0;
+ }
+
+ var width = 0;
+
+ str = stripAnsi(str);
+
+ for (var i = 0; i < str.length; i++) {
+ var code = codePointAt(str, i);
+
+ // ignore control characters
+ if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {
+ continue;
+ }
+
+ // surrogates
+ if (code >= 0x10000) {
+ i++;
+ }
+
+ if (isFullwidthCodePoint(code)) {
+ width += 2;
+ } else {
+ width++;
+ }
+ }
+
+ return width;
+};
diff --git a/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/license b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/package.json b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/package.json
new file mode 100644
index 000000000..6710e1bb5
--- /dev/null
+++ b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/package.json
@@ -0,0 +1,124 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "string-width@^1.0.1",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/wrap-ansi"
+ ]
+ ],
+ "_from": "string-width@>=1.0.1 <2.0.0",
+ "_id": "string-width@1.0.2",
+ "_inCache": true,
+ "_location": "/wrap-ansi/string-width",
+ "_nodeVersion": "4.4.5",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/string-width-1.0.2.tgz_1471188233009_0.6573935742489994"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "string-width@^1.0.1",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/wrap-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_shrinkwrap": null,
+ "_spec": "string-width@^1.0.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/wrap-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "tarball": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "282cf3d53918a92cc3ee0778dcf938039bcbc47b",
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "string-width",
+ "optionalDependencies": {},
+ "readme": "# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)\n\n> Get the visual width of a string - the number of columns required to display it\n\nSome Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.\n\nUseful to be able to measure the actual width of command-line output.\n\n\n## Install\n\n```\n$ npm install --save string-width\n```\n\n\n## Usage\n\n```js\nconst stringWidth = require('string-width');\n\nstringWidth('古');\n//=> 2\n\nstringWidth('\\u001b[1m古\\u001b[22m');\n//=> 2\n\nstringWidth('a');\n//=> 1\n```\n\n\n## Related\n\n- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module\n- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string\n- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/readme.md b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/readme.md
new file mode 100644
index 000000000..1ab42c935
--- /dev/null
+++ b/node_modules/nyc/node_modules/wrap-ansi/node_modules/string-width/readme.md
@@ -0,0 +1,42 @@
+# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)
+
+> Get the visual width of a string - the number of columns required to display it
+
+Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
+
+Useful to be able to measure the actual width of command-line output.
+
+
+## Install
+
+```
+$ npm install --save string-width
+```
+
+
+## Usage
+
+```js
+const stringWidth = require('string-width');
+
+stringWidth('古');
+//=> 2
+
+stringWidth('\u001b[1m古\u001b[22m');
+//=> 2
+
+stringWidth('a');
+//=> 1
+```
+
+
+## Related
+
+- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module
+- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string
+- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/wrap-ansi/package.json b/node_modules/nyc/node_modules/wrap-ansi/package.json
index 96a61a8d0..925f4b97e 100644
--- a/node_modules/nyc/node_modules/wrap-ansi/package.json
+++ b/node_modules/nyc/node_modules/wrap-ansi/package.json
@@ -10,7 +10,7 @@
"spec": ">=2.0.0 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs/node_modules/cliui"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui"
]
],
"_from": "wrap-ansi@>=2.0.0 <3.0.0",
@@ -27,7 +27,11 @@
"email": "sindresorhus@gmail.com"
},
"_npmVersion": "2.15.11",
- "_phantomChildren": {},
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ },
"_requested": {
"raw": "wrap-ansi@^2.0.0",
"scope": null,
@@ -44,7 +48,7 @@
"_shasum": "d8fc3d284dd05794fe84973caecdd1cf824fdd85",
"_shrinkwrap": null,
"_spec": "wrap-ansi@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs/node_modules/cliui",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/wrappy/package.json b/node_modules/nyc/node_modules/wrappy/package.json
index 6b24cb14a..957ae8279 100644
--- a/node_modules/nyc/node_modules/wrappy/package.json
+++ b/node_modules/nyc/node_modules/wrappy/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/inflight"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/inflight"
]
],
"_from": "wrappy@>=1.0.0 <2.0.0",
@@ -45,7 +45,7 @@
"_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
"_shrinkwrap": null,
"_spec": "wrappy@1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/inflight",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/inflight",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/write-file-atomic/package.json b/node_modules/nyc/node_modules/write-file-atomic/package.json
index 9537bae64..34cf2ccf8 100644
--- a/node_modules/nyc/node_modules/write-file-atomic/package.json
+++ b/node_modules/nyc/node_modules/write-file-atomic/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.1.4 <2.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/caching-transform"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/caching-transform"
]
],
"_from": "write-file-atomic@>=1.1.4 <2.0.0",
@@ -44,7 +44,7 @@
"_shasum": "f807a4f0b1d9e913ae7a48112e6cc3af1991b45f",
"_shrinkwrap": null,
"_spec": "write-file-atomic@^1.1.4",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/caching-transform",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/caching-transform",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
diff --git a/node_modules/nyc/node_modules/y18n/package.json b/node_modules/nyc/node_modules/y18n/package.json
index cb611eee8..df50d81ee 100644
--- a/node_modules/nyc/node_modules/y18n/package.json
+++ b/node_modules/nyc/node_modules/y18n/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.2.1 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
"_from": "y18n@>=3.2.1 <4.0.0",
@@ -44,7 +44,7 @@
"_shasum": "6d15fba884c08679c0d77e88e7759e811e07fa41",
"_shrinkwrap": null,
"_spec": "y18n@^3.2.1",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/yallist/package.json b/node_modules/nyc/node_modules/yallist/package.json
index 18ab2d5cd..5d6fcbc24 100644
--- a/node_modules/nyc/node_modules/yallist/package.json
+++ b/node_modules/nyc/node_modules/yallist/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "yallist@^2.0.0",
+ "raw": "yallist@^2.1.2",
"scope": null,
"escapedName": "yallist",
"name": "yallist",
- "rawSpec": "^2.0.0",
- "spec": ">=2.0.0 <3.0.0",
+ "rawSpec": "^2.1.2",
+ "spec": ">=2.1.2 <3.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/lru-cache"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/lru-cache"
]
],
- "_from": "yallist@>=2.0.0 <3.0.0",
+ "_from": "yallist@>=2.1.2 <3.0.0",
"_id": "yallist@2.1.2",
"_inCache": true,
"_location": "/yallist",
@@ -29,12 +29,12 @@
"_npmVersion": "4.3.0",
"_phantomChildren": {},
"_requested": {
- "raw": "yallist@^2.0.0",
+ "raw": "yallist@^2.1.2",
"scope": null,
"escapedName": "yallist",
"name": "yallist",
- "rawSpec": "^2.0.0",
- "spec": ">=2.0.0 <3.0.0",
+ "rawSpec": "^2.1.2",
+ "spec": ">=2.1.2 <3.0.0",
"type": "range"
},
"_requiredBy": [
@@ -43,8 +43,8 @@
"_resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"_shasum": "1c11f9218f076089a47dd512f93c6699a6a81d52",
"_shrinkwrap": null,
- "_spec": "yallist@^2.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/lru-cache",
+ "_spec": "yallist@^2.1.2",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/lru-cache",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
diff --git a/node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase/package.json b/node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase/package.json
index 7b96a23dc..873c194ad 100644
--- a/node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase/package.json
+++ b/node_modules/nyc/node_modules/yargs-parser/node_modules/camelcase/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.0.0 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs-parser"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs-parser"
]
],
"_from": "camelcase@>=3.0.0 <4.0.0",
@@ -44,7 +44,7 @@
"_shasum": "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a",
"_shrinkwrap": null,
"_spec": "camelcase@^3.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs-parser",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs-parser",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/node_modules/nyc/node_modules/yargs-parser/package.json b/node_modules/nyc/node_modules/yargs-parser/package.json
index bb7da0720..3b5ca9a5a 100644
--- a/node_modules/nyc/node_modules/yargs-parser/package.json
+++ b/node_modules/nyc/node_modules/yargs-parser/package.json
@@ -10,7 +10,7 @@
"spec": ">=5.0.0 <6.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc"
+ "/Users/benjamincoe/bcoe/nyc"
]
],
"_from": "yargs-parser@>=5.0.0 <6.0.0",
@@ -38,14 +38,13 @@
"type": "range"
},
"_requiredBy": [
- "/",
- "/yargs"
+ "/"
],
"_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
"_shasum": "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a",
"_shrinkwrap": null,
"_spec": "yargs-parser@^5.0.0",
- "_where": "/Users/benjamincoe/oss/nyc",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/yargs/CHANGELOG.md b/node_modules/nyc/node_modules/yargs/CHANGELOG.md
index eadcd6a51..95f414125 100644
--- a/node_modules/nyc/node_modules/yargs/CHANGELOG.md
+++ b/node_modules/nyc/node_modules/yargs/CHANGELOG.md
@@ -2,6 +2,46 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="8.0.2"></a>
+## [8.0.2](https://github.com/yargs/yargs/compare/v8.0.1...v8.0.2) (2017-06-12)
+
+
+
+<a name="8.0.1"></a>
+## [8.0.1](https://github.com/yargs/yargs/compare/v8.0.0...v8.0.1) (2017-05-02)
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/yargs/yargs/compare/v7.1.0...v8.0.0) (2017-05-01)
+
+
+### Bug Fixes
+
+* commands are now applied in order, from left to right ([#857](https://github.com/yargs/yargs/issues/857)) ([baba863](https://github.com/yargs/yargs/commit/baba863))
+* help now takes precedence over command recommendation ([#866](https://github.com/yargs/yargs/issues/866)) ([17e3567](https://github.com/yargs/yargs/commit/17e3567))
+* positional arguments now work if no handler is provided to inner command ([#864](https://github.com/yargs/yargs/issues/864)) ([e28ded3](https://github.com/yargs/yargs/commit/e28ded3))
+
+
+### Chores
+
+* upgrade yargs-parser ([#867](https://github.com/yargs/yargs/issues/867)) ([8f9c6c6](https://github.com/yargs/yargs/commit/8f9c6c6))
+
+
+### Features
+
+* allow extends to inherit from a module ([#865](https://github.com/yargs/yargs/issues/865)) ([89456d9](https://github.com/yargs/yargs/commit/89456d9))
+* allow strict mode to be disabled ([#840](https://github.com/yargs/yargs/issues/840)) ([6f78c05](https://github.com/yargs/yargs/commit/6f78c05))
+
+
+### BREAKING CHANGES
+
+* extends functionality now always loads the JSON provided, rather than reading from a specific key
+* Node 4+ is now required; this will allow us to start updating our dependencies.
+* the first argument to strict() is now used to enable/disable its functionality, rather than controlling whether or not it is global.
+
+
+
<a name="7.1.0"></a>
# [7.1.0](https://github.com/yargs/yargs/compare/v7.0.2...v7.1.0) (2017-04-13)
diff --git a/node_modules/nyc/node_modules/yargs/README.md b/node_modules/nyc/node_modules/yargs/README.md
index 488791555..867118bfe 100644
--- a/node_modules/nyc/node_modules/yargs/README.md
+++ b/node_modules/nyc/node_modules/yargs/README.md
@@ -1,9 +1,4 @@
- yargs
-========
-
-Yargs be a node.js library fer hearties tryin' ter parse optstrings.
-
-With yargs, ye be havin' a map that leads straight to yer treasure! Treasure of course, being a simple option hash.
+# Yargs
[![Build Status][travis-image]][travis-url]
[![Coverage Status][coveralls-image]][coveralls-url]
@@ -13,1993 +8,84 @@ With yargs, ye be havin' a map that leads straight to yer treasure! Treasure of
[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
[![Gitter][gitter-image]][gitter-url]
-> Yargs is the official successor to optimist. Please feel free to submit issues and pull requests. If you'd like to contribute and don't know where to start, have a look at [the issue list](https://github.com/yargs/yargs/issues) :)
-
-examples
-========
-
-With yargs, the options be just a hash!
--------------------------------------------------------------------
-
-plunder.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-
-if (argv.ships > 3 && argv.distance < 53.5) {
- console.log('Plunder more riffiwobbles!');
-} else {
- console.log('Retreat from the xupptumblers!');
-}
-````
-
-***
-
- $ ./plunder.js --ships=4 --distance=22
- Plunder more riffiwobbles!
-
- $ ./plunder.js --ships 12 --distance 98.7
- Retreat from the xupptumblers!
-
-![Joe was one optimistic pirate.](https://i.imgur.com/4WFGVJ9.png)
-
-But don't walk the plank just yet! There be more! You can do short options:
--------------------------------------------------
-
-short.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-console.log('(%d,%d)', argv.x, argv.y);
-````
-
-***
-
- $ ./short.js -x 10 -y 21
- (10,21)
-
-And booleans, both long, short, and even grouped:
-----------------------------------
-
-bool.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-
-if (argv.s) {
- process.stdout.write(argv.fr ? 'Le perroquet dit: ' : 'The parrot says: ');
-}
-console.log(
- (argv.fr ? 'couac' : 'squawk') + (argv.p ? '!' : '')
-);
-````
-
-***
-
- $ ./bool.js -s
- The parrot says: squawk
-
- $ ./bool.js -sp
- The parrot says: squawk!
-
- $ ./bool.js -sp --fr
- Le perroquet dit: couac!
-
-And non-hyphenated options too! Just use `argv._`!
--------------------------------------------------
-
-nonopt.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs').argv;
-console.log('(%d,%d)', argv.x, argv.y);
-console.log(argv._);
-````
-
-***
-
- $ ./nonopt.js -x 6.82 -y 3.35 rum
- (6.82,3.35)
- [ 'rum' ]
-
- $ ./nonopt.js "me hearties" -x 0.54 yo -y 1.12 ho
- (0.54,1.12)
- [ 'me hearties', 'yo', 'ho' ]
-
-Yargs even counts your booleans!
-----------------------------------------------------------------------
-
-count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .count('verbose')
- .alias('v', 'verbose')
- .argv;
-
-VERBOSE_LEVEL = argv.verbose;
-
-function WARN() { VERBOSE_LEVEL >= 0 && console.log.apply(console, arguments); }
-function INFO() { VERBOSE_LEVEL >= 1 && console.log.apply(console, arguments); }
-function DEBUG() { VERBOSE_LEVEL >= 2 && console.log.apply(console, arguments); }
-
-WARN("Showing only important stuff");
-INFO("Showing semi-important stuff too");
-DEBUG("Extra chatty mode");
-````
-
-***
- $ node count.js
- Showing only important stuff
-
- $ node count.js -v
- Showing only important stuff
- Showing semi-important stuff too
-
- $ node count.js -vv
- Showing only important stuff
- Showing semi-important stuff too
- Extra chatty mode
-
- $ node count.js -v --verbose
- Showing only important stuff
- Showing semi-important stuff too
- Extra chatty mode
-
-Tell users how to use yer options and make demands.
--------------------------------------------------
-
-area.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Usage: $0 -w [num] -h [num]')
- .demandOption(['w','h'])
- .argv;
-
-console.log("The area is:", argv.w * argv.h);
-````
-
-***
-
- $ ./area.js -w 55 -h 11
- The area is: 605
-
- $ node ./area.js -w 4.91 -w 2.51
- Usage: area.js -w [num] -h [num]
-
- Options:
- -w [required]
- -h [required]
-
- Missing required arguments: h
-
-After yer demands have been met, demand more! Ask for non-hyphenated arguments!
------------------------------------------
-
-demand_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .demandCommand(2)
- .argv;
-console.dir(argv);
-````
-
-***
-
- $ ./demand_count.js a
-
- Not enough non-option arguments: got 1, need at least 2
-
- $ ./demand_count.js a b
- { _: [ 'a', 'b' ], '$0': 'demand_count.js' }
-
- $ ./demand_count.js a b c
- { _: [ 'a', 'b', 'c' ], '$0': 'demand_count.js' }
-
-EVEN MORE SHIVER ME TIMBERS!
-------------------
-
-default_singles.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .default('x', 10)
- .default('y', 10)
- .argv
-;
-console.log(argv.x + argv.y);
-````
-
-***
-
- $ ./default_singles.js -x 5
- 15
-
-default_hash.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .default({ x : 10, y : 10 })
- .argv
-;
-console.log(argv.x + argv.y);
-````
-
-***
-
- $ ./default_hash.js -y 7
- 17
-
-And if you really want to get all descriptive about it...
----------------------------------------------------------
-
-boolean_single.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .boolean('v')
- .argv
-;
-console.dir(argv.v);
-console.dir(argv._);
-````
-
-***
-
- $ ./boolean_single.js -v "me hearties" yo ho
- true
- [ 'me hearties', 'yo', 'ho' ]
-
-
-boolean_double.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .boolean(['x','y','z'])
- .argv
-;
-console.dir([ argv.x, argv.y, argv.z ]);
-console.dir(argv._);
-````
-
-***
-
- $ ./boolean_double.js -x -z one two three
- [ true, false, true ]
- [ 'one', 'two', 'three' ]
-
-Yargs is here to help you...
----------------------------
-
-Ye can describe parameters fer help messages and set aliases. Yargs figures
-out how ter format a handy help string automatically.
-
-line_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Usage: $0 <command> [options]')
- .command('count', 'Count the lines in a file')
- .example('$0 count -f foo.js', 'count the lines in the given file')
- .alias('f', 'file')
- .nargs('f', 1)
- .describe('f', 'Load a file')
- .demandOption(['f'])
- .help('h')
- .alias('h', 'help')
- .epilog('copyright 2015')
- .argv;
-
-var fs = require('fs');
-var s = fs.createReadStream(argv.file);
-
-var lines = 0;
-s.on('data', function (buf) {
- lines += buf.toString().match(/\n/g).length;
-});
-
-s.on('end', function () {
- console.log(lines);
-});
-````
-
-***
- $ node line_count.js count
- Usage: line_count.js <command> [options]
-
- Commands:
- count Count the lines in a file
-
- Options:
- -f, --file Load a file [required]
- -h, --help Show help [boolean]
-
- Examples:
- line_count.js count -f foo.js count the lines in the given file
-
- copyright 2015
-
- Missing required arguments: f
-
- $ node line_count.js count --file line_count.js
- 26
-
- $ node line_count.js count -f line_count.js
- 26
-
-methods
-=======
-
-By itself,
-
-````javascript
-require('yargs').argv
-````
-
-will use the `process.argv` array to construct the `argv` object.
-
-You can pass in the `process.argv` yourself:
-
-````javascript
-require('yargs')([ '-x', '1', '-y', '2' ]).argv
-````
-
-or use `.parse()` to do the same thing:
-
-````javascript
-require('yargs').parse([ '-x', '1', '-y', '2' ])
-````
-
-The rest of these methods below come in just before the terminating `.argv`.
-
-<a name="alias"></a>.alias(key, alias)
-------------------
-
-Set key names as equivalent such that updates to a key will propagate to aliases
-and vice-versa.
-
-Optionally `.alias()` can take an object that maps keys to aliases.
-Each key of this object should be the canonical version of the option, and each
-value should be a string or an array of strings.
-
-.argv
------
-
-Get the arguments as a plain old object.
-
-Arguments without a corresponding flag show up in the `argv._` array.
-
-The script name or node command is available at `argv.$0` similarly to how `$0`
-works in bash or perl.
-
-If `yargs` is executed in an environment that embeds node and there's no script name (e.g.
-[Electron](http://electron.atom.io/) or [nw.js](http://nwjs.io/)), it will ignore the first parameter since it
-expects it to be the script name. In order to override this behavior, use `.parse(process.argv.slice(1))`
-instead of `.argv` and the first parameter won't be ignored.
-
-<a name="array"></a>.array(key)
-----------
-
-Tell the parser to interpret `key` as an array. If `.array('foo')` is set,
-`--foo foo bar` will be parsed as `['foo', 'bar']` rather than as `'foo'`.
-
-<a name="boolean"></a>.boolean(key)
--------------
-
-Interpret `key` as a boolean. If a non-flag option follows `key` in
-`process.argv`, that string won't get set as the value of `key`.
-
-`key` will default to `false`, unless a `default(key, undefined)` is
-explicitly set.
-
-If `key` is an array, interpret all the elements as booleans.
-
-.check(fn, [global=true])
-----------
-
-Check that certain conditions are met in the provided arguments.
-
-`fn` is called with two arguments, the parsed `argv` hash and an array of options and their aliases.
-
-If `fn` throws or returns a non-truthy value, show the thrown error, usage information, and
-exit.
-
-`global` indicates whether `check()` should be enabled both
-at the top-level and for each sub-command.
-
-<a name="choices"></a>.choices(key, choices)
-----------------------
-
-Limit valid values for `key` to a predefined set of `choices`, given as an array
-or as an individual value.
-
-```js
-var argv = require('yargs')
- .alias('i', 'ingredient')
- .describe('i', 'choose your sandwich ingredients')
- .choices('i', ['peanut-butter', 'jelly', 'banana', 'pickles'])
- .help('help')
- .argv
-```
-
-If this method is called multiple times, all enumerated values will be merged
-together. Choices are generally strings or numbers, and value matching is
-case-sensitive.
-
-Optionally `.choices()` can take an object that maps multiple keys to their
-choices.
-
-Choices can also be specified as `choices` in the object given to `option()`.
-
-```js
-var argv = require('yargs')
- .option('size', {
- alias: 's',
- describe: 'choose a size',
- choices: ['xs', 's', 'm', 'l', 'xl']
- })
- .argv
-```
-
-<a name="coerce"></a>.coerce(key, fn)
-----------------
+> Yargs be a node.js library fer hearties tryin' ter parse optstrings.
-Provide a synchronous function to coerce or transform the value(s) given on the
-command line for `key`.
+<img width="250" src="/yargs-logo.png">
-The coercion function should accept one argument, representing the parsed value
-from the command line, and should return a new value or throw an error. The
-returned value will be used as the value for `key` (or one of its aliases) in
-`argv`.
+Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. It gives you:
-If the function throws, the error will be treated as a validation
-failure, delegating to either a custom [`.fail()`](#fail) handler or printing
-the error message in the console.
+* commands and (grouped) options (`my-program.js serve --port=5000`).
+* a dynamically generated help menu based on your arguments.
-Coercion will be applied to a value after
-all other modifications, such as [`.normalize()`](#normalize).
-
-_Examples:_
-
-```js
-var argv = require('yargs')
- .coerce('file', function (arg) {
- return require('fs').readFileSync(arg, 'utf8')
- })
- .argv
-```
-
-Optionally `.coerce()` can take an object that maps several keys to their
-respective coercion function.
-
-```js
-var argv = require('yargs')
- .coerce({
- date: Date.parse,
- json: JSON.parse
- })
- .argv
-```
-
-You can also map the same function to several keys at one time. Just pass an
-array of keys as the first argument to `.coerce()`:
-
-```js
-var path = require('path')
-var argv = require('yargs')
- .coerce(['src', 'dest'], path.resolve)
- .argv
-```
-
-If you are using dot-notion or arrays, .e.g., `user.email` and `user.password`,
-coercion will be applied to the final object that has been parsed:
-
-```js
-// --user.name Batman --user.password 123
-// gives us: {name: 'batman', password: '[SECRET]'}
-var argv = require('yargs')
- .option('user')
- .coerce('user', opt => {
- opt.name = opt.name.toLowerCase()
- opt.password = '[SECRET]'
- return opt
- })
- .argv
-```
-
-.command(cmd, desc, [builder], [handler])
------------------------------------------
-.command(cmd, desc, [module])
------------------------------
-.command(module)
-----------------
-
-Define the commands exposed by your application.
-
-`cmd` should be a string representing the command or an array of strings
-representing the command and its aliases. Read more about command aliases in the
-subsection below.
-
-Use `desc` to provide a description for each command your application accepts (the
-values stored in `argv._`). Set `desc` to `false` to create a hidden command.
-Hidden commands don't show up in the help output and aren't available for
-completion.
-
-Optionally, you can provide a `builder` object to give hints about the
-options that your command accepts:
-
-```js
-yargs
- .command('get', 'make a get HTTP request', {
- url: {
- alias: 'u',
- default: 'http://yargs.js.org/'
- }
- })
- .help()
- .argv
-```
-
-`builder` can also be a function. This function is executed
-with a `yargs` instance, and can be used to provide _advanced_ command specific help:
-
-```js
-yargs
- .command('get', 'make a get HTTP request', function (yargs) {
- return yargs.option('url', {
- alias: 'u',
- default: 'http://yargs.js.org/'
- })
- })
- .help()
- .argv
-```
-
-You can also provide a handler function, which will be executed with the
-parsed `argv` object:
-
-```js
-yargs
- .command(
- 'get',
- 'make a get HTTP request',
- function (yargs) {
- return yargs.option('u', {
- alias: 'url',
- describe: 'the URL to make an HTTP request to'
- })
- },
- function (argv) {
- console.log(argv.url)
- }
- )
- .help()
- .argv
-```
-
-### Default Commands
-
-To specify a default command use the character `*`. A default command
-will be run if the positional arguments provided match no known
-commands:
-
-```js
-const argv = require('yargs')
- .command('*', 'the default command', () => {}, (argv) => {
- console.log('this command will be run by default')
- })
-```
-
-The command defined above will be executed if the program
-is run with `./my-cli.js --x=22`.
-
-Default commands can also be used as a command alias, like so:
-
-```js
-const argv = require('yargs')
- .command(['serve', '*'], 'the serve command', () => {}, (argv) => {
- console.log('this command will be run by default')
- })
-```
-
-The command defined above will be executed if the program
-is run with `./my-cli.js --x=22`, or with `./my-cli.js serve --x=22`.
-
-### Positional Arguments
-
-Commands can accept _optional_ and _required_ positional arguments. Required
-positional arguments take the form `<foo>`, and optional arguments
-take the form `[bar]`. The parsed positional arguments will be populated in
-`argv`:
-
-```js
-yargs.command('get <source> [proxy]', 'make a get HTTP request')
- .help()
- .argv
-```
-
-#### Positional Argument Aliases
-
-Aliases can be provided for positional arguments using the `|` character.
-As an example, suppose our application allows either a username _or_
-an email as the first argument:
-
-```js
-yargs.command('get <username|email> [password]', 'fetch a user by username or email.')
- .help()
- .argv
-```
-
-In this way, both `argv.username` and `argv.email` would be populated with the
-same value when the command is executed.
-
-#### Variadic Positional Arguments
-
-The last positional argument can optionally accept an array of
-values, by using the `..` operator:
-
-```js
-yargs.command('download <url> [files..]', 'download several files')
- .help()
- .argv
-```
-
-### Command Execution
-
-When a command is given on the command line, yargs will execute the following:
-
-1. push the command into the current context
-2. reset non-global configuration
-3. apply command configuration via the `builder`, if given
-4. parse and validate args from the command line, including positional args
-5. if validation succeeds, run the `handler` function, if given
-6. pop the command from the current context
-
-### Command Aliases
-
-You can define aliases for a command by putting the command and all of its
-aliases into an array.
-
-Alternatively, a command module may specify an `aliases` property, which may be
-a string or an array of strings. All aliases defined via the `command` property
-and the `aliases` property will be concatenated together.
-
-The first element in the array is considered the canonical command, which may
-define positional arguments, and the remaining elements in the array are
-considered aliases. Aliases inherit positional args from the canonical command,
-and thus any positional args defined in the aliases themselves are ignored.
-
-If either the canonical command or any of its aliases are given on the command
-line, the command will be executed.
-
-```js
-#!/usr/bin/env node
-require('yargs')
- .command(['start [app]', 'run', 'up'], 'Start up an app', {}, (argv) => {
- console.log('starting up the', argv.app || 'default', 'app')
- })
- .command({
- command: 'configure <key> [value]',
- aliases: ['config', 'cfg'],
- desc: 'Set a config variable',
- builder: (yargs) => yargs.default('value', 'true'),
- handler: (argv) => {
- console.log(`setting ${argv.key} to ${argv.value}`)
- }
- })
- .demandCommand()
- .help()
- .wrap(72)
- .argv
-```
-
-```
-$ ./svc.js help
-Commands:
- start [app] Start up an app [aliases: run, up]
- configure <key> [value] Set a config variable [aliases: config, cfg]
-
-Options:
- --help Show help [boolean]
-
-$ ./svc.js cfg concurrency 4
-setting concurrency to 4
-
-$ ./svc.js run web
-starting up the web app
-```
-
-### Providing a Command Module
-
-For complicated commands you can pull the logic into a module. A module
-simply needs to export:
-
-* `exports.command`: string (or array of strings) that executes this command when given on the command line, first string may contain positional args
-* `exports.aliases`: array of strings (or a single string) representing aliases of `exports.command`, positional args defined in an alias are ignored
-* `exports.describe`: string used as the description for the command in help text, use `false` for a hidden command
-* `exports.builder`: object declaring the options the command accepts, or a function accepting and returning a yargs instance
-* `exports.handler`: a function which will be passed the parsed argv.
-
-```js
-// my-module.js
-exports.command = 'get <source> [proxy]'
-
-exports.describe = 'make a get HTTP request'
-
-exports.builder = {
- banana: {
- default: 'cool'
- },
- batman: {
- default: 'sad'
- }
-}
-
-exports.handler = function (argv) {
- // do something with argv.
-}
-```
-
-You then register the module like so:
-
-```js
-yargs.command(require('my-module'))
- .help()
- .argv
-```
-
-Or if the module does not export `command` and `describe` (or if you just want to override them):
-
-```js
-yargs.command('get <source> [proxy]', 'make a get HTTP request', require('my-module'))
- .help()
- .argv
-```
-
-.commandDir(directory, [opts])
-------------------------------
-
-Apply command modules from a directory relative to the module calling this method.
-
-This allows you to organize multiple commands into their own modules under a
-single directory and apply all of them at once instead of calling
-`.command(require('./dir/module'))` multiple times.
-
-By default, it ignores subdirectories. This is so you can use a directory
-structure to represent your command hierarchy, where each command applies its
-subcommands using this method in its builder function. See the example below.
-
-Note that yargs assumes all modules in the given directory are command modules
-and will error if non-command modules are encountered. In this scenario, you
-can either move your module to a different directory or use the `exclude` or
-`visit` option to manually filter it out. More on that below.
-
-`directory` is a relative directory path as a string (required).
-
-`opts` is an options object (optional). The following options are valid:
-
-- `recurse`: boolean, default `false`
-
- Look for command modules in all subdirectories and apply them as a flattened
- (non-hierarchical) list.
-
-- `extensions`: array of strings, default `['js']`
-
- The types of files to look for when requiring command modules.
-
-- `visit`: function
-
- A synchronous function called for each command module encountered. Accepts
- `commandObject`, `pathToFile`, and `filename` as arguments. Returns
- `commandObject` to include the command; any falsy value to exclude/skip it.
-
-- `include`: RegExp or function
-
- Whitelist certain modules. See [`require-directory` whitelisting](https://www.npmjs.com/package/require-directory#whitelisting) for details.
-
-- `exclude`: RegExp or function
-
- Blacklist certain modules. See [`require-directory` blacklisting](https://www.npmjs.com/package/require-directory#blacklisting) for details.
-
-### Example command hierarchy using `.commandDir()`
-
-Desired CLI:
-
-```sh
-$ myapp --help
-$ myapp init
-$ myapp remote --help
-$ myapp remote add base http://yargs.js.org
-$ myapp remote prune base
-$ myapp remote prune base fork whatever
-```
-
-Directory structure:
-
-```
-myapp/
-├─ cli.js
-└─ cmds/
- ├─ init.js
- ├─ remote.js
- └─ remote_cmds/
- ├─ add.js
- └─ prune.js
-```
-
-cli.js:
-
-```js
-#!/usr/bin/env node
-require('yargs')
- .commandDir('cmds')
- .demandCommand()
- .help()
- .argv
-```
-
-cmds/init.js:
-
-```js
-exports.command = 'init [dir]'
-exports.desc = 'Create an empty repo'
-exports.builder = {
- dir: {
- default: '.'
- }
-}
-exports.handler = function (argv) {
- console.log('init called for dir', argv.dir)
-}
-```
-
-cmds/remote.js:
-
-```js
-exports.command = 'remote <command>'
-exports.desc = 'Manage set of tracked repos'
-exports.builder = function (yargs) {
- return yargs.commandDir('remote_cmds')
-}
-exports.handler = function (argv) {}
-```
-
-cmds/remote_cmds/add.js:
-
-```js
-exports.command = 'add <name> <url>'
-exports.desc = 'Add remote named <name> for repo at url <url>'
-exports.builder = {}
-exports.handler = function (argv) {
- console.log('adding remote %s at url %s', argv.name, argv.url)
-}
-```
-
-cmds/remote_cmds/prune.js:
-
-```js
-exports.command = 'prune <name> [names..]'
-exports.desc = 'Delete tracked branches gone stale for remotes'
-exports.builder = {}
-exports.handler = function (argv) {
- console.log('pruning remotes %s', [].concat(argv.name).concat(argv.names).join(', '))
-}
-```
+> <img width="400" src="/screen.png">
-.completion([cmd], [description], [fn])
----------------------------------------
+* bash-completion shortcuts for commands and options.
+* and [tons more](/docs/api.md).
-Enable bash-completion shortcuts for commands and options.
+## Installation
-`cmd`: When present in `argv._`, will result in the `.bashrc` completion script
-being outputted. To enable bash completions, concat the generated script to your
-`.bashrc` or `.bash_profile`.
-
-`description`: Provide a description in your usage instructions for the command
-that generates bash completion scripts.
-
-`fn`: Rather than relying on yargs' default completion functionality, which
-shiver me timbers is pretty awesome, you can provide your own completion
-method.
-
-If invoked without parameters, `.completion()` will make `completion` the command to output
-the completion script.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv) {
- // 'current' is the current command being completed.
- // 'argv' is the parsed arguments so far.
- // simply return an array of completions.
- return [
- 'foo',
- 'bar'
- ];
- })
- .argv;
-```
-
-You can also provide asynchronous completions.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv, done) {
- setTimeout(function() {
- done([
- 'apple',
- 'banana'
- ]);
- }, 500);
- })
- .argv;
-```
-
-But wait, there's more! You can return an asynchronous promise.
-
-```js
-var argv = require('yargs')
- .completion('completion', function(current, argv, done) {
- return new Promise(function (resolve, reject) {
- setTimeout(function () {
- resolve(['apple', 'banana'])
- }, 10)
- })
- })
- .argv;
-```
-
-<a name="config"></a>.config([key], [description], [parseFn])
--------------------------------------------------------------
-.config(object)
----------------
-
-Tells the parser that if the option specified by `key` is passed in, it
-should be interpreted as a path to a JSON config file. The file is loaded
-and parsed, and its properties are set as arguments. Because the file is
-loaded using Node's require(), the filename MUST end in `.json` to be
-interpreted correctly.
-
-If invoked without parameters, `.config()` will make `--config` the option to pass the JSON config file.
-
-An optional `description` can be provided to customize the config (`key`) option
-in the usage string.
-
-An optional `parseFn` can be used to provide a custom parser. The parsing
-function must be synchronous, and should return an object containing
-key value pairs or an error.
-
-```js
-var argv = require('yargs')
- .config('settings', function (configPath) {
- return JSON.parse(fs.readFileSync(configPath, 'utf-8'))
- })
- .argv
-```
-
-You can also pass an explicit configuration `object`, it will be parsed
-and its properties will be set as arguments.
-
-```js
-var argv = require('yargs')
- .config({foo: 1, bar: 2})
- .argv
-console.log(argv)
-```
-
-```
-$ node test.js
-{ _: [],
- foo: 1,
- bar: 2,
- '$0': 'test.js' }
-```
-
-Note that a configuration object may extend from a JSON file using the `"extends"` property. When doing so, the `"extends"` value should be a path (relative or absolute) to the extended JSON file.
-
-<a name="conflicts"></a>.conflicts(x, y)
-----------------------------------------------
-
-Given the key `x` is set, the key `y` must not be set.
-
-Optionally `.conflicts()` can accept an object specifying multiple conflicting keys.
-
-<a name="count"></a>.count(key)
-------------
-
-Interpret `key` as a boolean flag, but set its parsed value to the number of
-flag occurrences rather than `true` or `false`. Default value is thus `0`.
-
-<a name="default"></a>.default(key, value, [description])
----------------------------------------------------------
-.defaults(key, value, [description])
-------------------------------------
-
-**Note:** The `.defaults()` alias is deprecated. It will be
-removed in the next major version.
-
-Set `argv[key]` to `value` if no option was specified in `process.argv`.
-
-Optionally `.default()` can take an object that maps keys to default values.
-
-But wait, there's more! The default value can be a `function` which returns
-a value. The name of the function will be used in the usage string:
-
-```js
-var argv = require('yargs')
- .default('random', function randomValue() {
- return Math.random() * 256;
- }).argv;
-```
-
-Optionally, `description` can also be provided and will take precedence over
-displaying the value in the usage instructions:
-
-```js
-.default('timeout', 60000, '(one-minute)')
-```
-
-<a name="demand"></a>.demand(count, [max], [msg]) [DEPRECATED]
---------------------
-
-`demand()` has been deprecated, please instead see [`demandOption()`](#demandOption) and
-[`demandCommand()`](#demandCommand).
-
-<a name="demandOption"></a>.demandOption(key, [msg | boolean])
-------------------------------
-.demandOption(key, msg)
-------------------------------
-
-If `key` is a string, show the usage information and exit if `key` wasn't
-specified in `process.argv`.
-
-If `key` is an array, demand each element.
-
-If a `msg` string is given, it will be printed when the argument is missing, instead of the standard error message.
-
-```javascript
-// demand an array of keys to be provided
-require('yargs')
- .option('run', {
- alias: 'r',
- describe: 'run your program'
- })
- .option('path', {
- alias: 'p',
- describe: 'provide a path to file'
- })
- .option('spec', {
- alias: 's',
- describe: 'program specifications'
- })
- .demandOption(['run', 'path'], 'Please provide both run and path arguments to work with this tool')
- .help()
- .argv
-```
-which will provide the following output:
```bash
-Options:
- --run, -r run your program [required]
- --path, -p provide a path to file [required]
- --spec, -s program specifications
- --help Show help [boolean]
-
- Missing required arguments: run, path
- Please provide both run and path arguments to work with this tool
-```
-
-If a `boolean` value is given, it controls whether the option is demanded;
-this is useful when using `.options()` to specify command line parameters.
-
-```javascript
-// demand individual options within the option constructor
-require('yargs')
- .options({
- 'run': {
- alias: 'r',
- describe: 'run your program',
- demandOption: true
- },
- 'path': {
- alias: 'p',
- describe: 'provide a path to file',
- demandOption: true
- },
- 'spec': {
- alias: 's',
- describe: 'program specifications'
- }
- })
- .help()
- .argv
-```
-which will provide the following output:
-```bash
-Options:
- --run, -r run your program [required]
- --path, -p provide a path to file [required]
- --spec, -s program specifications
- --help Show help [boolean]
-
-Missing required arguments: run, path
-```
-
-<a name="demandCommand"></a>.demandCommand([min=1], [minMsg])
-------------------------------
-.demandCommand([min=1], [max], [minMsg], [maxMsg])
-------------------------------
-
-Demand in context of commands. You can demand a minimum and a maximum number a user can have within your program, as well as provide corresponding error messages if either of the demands is not met.
-```javascript
-require('yargs')
- .command({
- command: 'configure <key> [value]',
- aliases: ['config', 'cfg'],
- desc: 'Set a config variable',
- builder: (yargs) => yargs.default('value', 'true'),
- handler: (argv) => {
- console.log(`setting ${argv.key} to ${argv.value}`)
- }
- })
- // provide a minimum demand and a minimum demand message
- .demandCommand(1, 'You need at least one command before moving on')
- .help()
- .argv
-```
-
-which will provide the following output:
-
-```bash
-Commands:
- configure <key> [value] Set a config variable [aliases: config, cfg]
-
-Options:
- --help Show help [boolean]
-
-You need at least one command before moving on
-```
-
-_Note: in `minMsg` and `maxMsg`, every occurrence of `$0` will be replaced
-with the observed value, and every instance of `$1` will be replaced with the
-expected value._
-
-<a name="describe"></a>.describe(key, desc)
---------------------
-
-Describe a `key` for the generated usage information.
-
-Optionally `.describe()` can take an object that maps keys to descriptions.
-
-.detectLocale(boolean)
------------
-
-Should yargs attempt to detect the os' locale? Defaults to `true`.
-
-.env([prefix])
---------------
-
-Tell yargs to parse environment variables matching the given prefix and apply
-them to argv as though they were command line arguments.
-
-Use the "__" separator in the environment variable to indicate nested options.
-(e.g. prefix_nested__foo => nested.foo)
-
-If this method is called with no argument or with an empty string or with `true`,
-then all env vars will be applied to argv.
-
-Program arguments are defined in this order of precedence:
-
-1. Command line args
-2. Env vars
-3. Config file/objects
-4. Configured defaults
-
-```js
-var argv = require('yargs')
- .env('MY_PROGRAM')
- .option('f', {
- alias: 'fruit-thing',
- default: 'apple'
- })
- .argv
-console.log(argv)
-```
-
-```
-$ node fruity.js
-{ _: [],
- f: 'apple',
- 'fruit-thing': 'apple',
- fruitThing: 'apple',
- '$0': 'fruity.js' }
-```
-
-```
-$ MY_PROGRAM_FRUIT_THING=banana node fruity.js
-{ _: [],
- fruitThing: 'banana',
- f: 'banana',
- 'fruit-thing': 'banana',
- '$0': 'fruity.js' }
-```
-
-```
-$ MY_PROGRAM_FRUIT_THING=banana node fruity.js -f cat
-{ _: [],
- f: 'cat',
- 'fruit-thing': 'cat',
- fruitThing: 'cat',
- '$0': 'fruity.js' }
-```
-
-Env var parsing is disabled by default, but you can also explicitly disable it
-by calling `.env(false)`, e.g. if you need to undo previous configuration.
-
-.epilog(str)
-------------
-.epilogue(str)
---------------
-
-A message to print at the end of the usage instructions, e.g.
-
-```js
-var argv = require('yargs')
- .epilogue('for more information, find our manual at http://example.com');
-```
-
-.example(cmd, desc)
--------------------
-
-Give some example invocations of your program. Inside `cmd`, the string
-`$0` will get interpolated to the current script name or node command for the
-present script similar to how `$0` works in bash or perl.
-Examples will be printed out as part of the help message.
-
-<a name="exitprocess"></a>.exitProcess(enable)
-----------------------------------
-
-By default, yargs exits the process when the user passes a help flag, uses the
-`.version` functionality, or when validation fails. Calling
-`.exitProcess(false)` disables this behavior, enabling further actions after
-yargs have been validated.
-
-<a name="fail"></a>.fail(fn)
----------
-
-Method to execute when a failure occurs, rather than printing the failure message.
-
-`fn` is called with the failure message that would have been printed, the
-`Error` instance originally thrown and yargs state when the failure
-occured.
-
-```js
-var argv = require('yargs')
- .fail(function (msg, err, yargs) {
- if (err) throw err // preserve stack
- console.error('You broke it!')
- console.error(msg)
- console.error('You should be doing', yargs.help())
- process.exit(1)
- })
- .argv
-```
-
-.getCompletion(args, done);
----------------------------
-
-Allows to programmatically get completion choices for any line.
-
-`args`: An array of the words in the command line to complete.
-
-`done`: The callback to be called with the resulting completions.
-
-For example:
-
-```js
-require('yargs')
- .option('foobar')
- .option('foobaz')
- .completion()
- .getCompletion(['./test.js', '--foo'], function (completions) {
- console.log(completions)
- })
+npm i yargs --save
```
-Outputs the same completion choices as `./test.js --foo`<kbd>TAB</kbd>: `--foobar` and `--foobaz`
-
-<a name="global"></a>.global(globals, [global=true])
-------------
-
-Indicate that an option (or group of options) should not be reset when a command
-is executed, as an example:
-
-```js
-var argv = require('yargs')
- .option('a', {
- alias: 'all',
- default: true,
- global: false
- })
- .option('n', {
- alias: 'none',
- default: true,
- global: false
- })
- .command('foo', 'foo command', function (yargs) {
- return yargs.option('b', {
- alias: 'bar'
- })
- })
- .help('help')
- .global('a')
- .argv
-```
-
-If the `foo` command is executed the `all` option will remain, but the `none`
-option will have been eliminated.
-
-Options default to being global.
-
-<a name="group"></a>.group(key(s), groupName)
---------------------
-
-Given a key, or an array of keys, places options under an alternative heading
-when displaying usage instructions, e.g.,
-
-```js
-var yargs = require('yargs')(['--help'])
- .help()
- .group('batman', 'Heroes:')
- .describe('batman', "world's greatest detective")
- .wrap(null)
- .argv
-```
-***
- Heroes:
- --batman world's greatest detective
-
- Options:
- --help Show help [boolean]
-
-<a name="help"></a>.help()
------------------------------------------
-.help([option | boolean])
------------------------------------------
-.help([option, [description | boolean]])
------------------------------------------
-.help([option, [description, [boolean]]])
------------------------------------------
-
-Add an option (e.g. `--help`) and implicit command that displays the usage
-string and exits the process.
-
-If present, the `description` parameter customizes the description of
-the help option in the usage string.
-
-If a boolean argument is provided, it will enable or disable the use of an
-implicit command. The implicit command is enabled by default, but it can be
-disabled by passing `false`.
-
-Note that any multi-char aliases (e.g. `help`) used for the help option will
-also be used for the implicit command. If there are no multi-char aliases (e.g.
-`h`), then all single-char aliases will be used for the command.
-
-If invoked without parameters, `.help()` will use `--help` as the option and
-`help` as the implicit command to trigger help output.
-
-Example:
-
-```js
-var yargs = require("yargs")(['--help'])
- .usage("$0 -operand1 number -operand2 number -operation [add|subtract]")
- .help()
- .argv
-```
-
-Later on, `argv` can be retrieved with `yargs.argv`.
-
-<a name="implies"></a>.implies(x, y)
---------------
-
-Given the key `x` is set, it is required that the key `y` is set.
-
-Optionally `.implies()` can accept an object specifying multiple implications.
-
-.locale()
----------
-
-Return the locale that yargs is currently using.
-
-By default, yargs will auto-detect the operating system's locale so that
-yargs-generated help content will display in the user's language.
-
-To override this behavior with a static locale, pass the desired locale as a
-string to this method (see below).
-
-.locale(locale)
----------------
-
-Override the auto-detected locale from the user's operating system with a static
-locale. Note that the OS locale can be modified by setting/exporting the `LC_ALL`
-environment variable.
-
-```js
-var argv = require('yargs')
- .usage('./$0 - follow ye instructions true')
- .option('option', {
- alias: 'o',
- describe: "'tis a mighty fine option",
- demandOption: true
- })
- .command('run', "Arrr, ya best be knowin' what yer doin'")
- .example('$0 run foo', "shiver me timbers, here's an example for ye")
- .help('help')
- .wrap(70)
- .locale('pirate')
- .argv
-```
-
-***
-
-```shell
-./test.js - follow ye instructions true
-
-Choose yer command:
- run Arrr, ya best be knowin' what yer doin'
-
-Options for me hearties!
- --option, -o 'tis a mighty fine option [requi-yar-ed]
- --help Parlay this here code of conduct [boolean]
-
-Ex. marks the spot:
- test.js run foo shiver me timbers, here's an example for ye
-
-Ye be havin' to set the followin' argument land lubber: option
-```
-
-Locales currently supported:
-
-* **de:** German.
-* **en:** American English.
-* **es:** Spanish.
-* **fr:** French.
-* **hi:** Hindi.
-* **hu:** Hungarian.
-* **id:** Indonesian.
-* **it:** Italian.
-* **ja:** Japanese.
-* **ko:** Korean.
-* **nb:** Norwegian Bokmål.
-* **pirate:** American Pirate.
-* **pl:** Polish.
-* **pt:** Portuguese.
-* **pt_BR:** Brazilian Portuguese.
-* **ru:** Russian.
-* **th:** Thai.
-* **tr:** Turkish.
-* **zh_CN:** Chinese.
-
-To submit a new translation for yargs:
-
-1. use `./locales/en.json` as a starting point.
-2. submit a pull request with the new locale file.
-
-*The [Microsoft Terminology Search](http://www.microsoft.com/Language/en-US/Search.aspx) can be useful for finding the correct terminology in your locale.*
-
-<a name="nargs"></a>.nargs(key, count)
------------
-
-The number of arguments that should be consumed after a key. This can be a
-useful hint to prevent parsing ambiguity. For example:
-
-```js
-var argv = require('yargs')
- .nargs('token', 1)
- .parse(['--token', '-my-token']);
-```
-
-parses as:
-
-`{ _: [], token: '-my-token', '$0': 'node test' }`
-
-Optionally `.nargs()` can take an object of `key`/`narg` pairs.
-
-<a name="normalize"></a>.normalize(key)
----------------
-
-The key provided represents a path and should have `path.normalize()` applied.
-
-<a name="number"></a>.number(key)
-------------
-
-Tell the parser to always interpret `key` as a number.
-
-If `key` is an array, all elements will be parsed as numbers.
-
-If the option is given on the command line without a value, `argv` will be
-populated with `undefined`.
-
-If the value given on the command line cannot be parsed as a number, `argv` will
-be populated with `NaN`.
-
-Note that decimals, hexadecimals, and scientific notation are all accepted.
-
-```js
-var argv = require('yargs')
- .number('n')
- .number(['width', 'height'])
- .argv
-```
-
-.option(key, [opt])
------------------
-.options(key, [opt])
-------------------
-
-This method can be used to make yargs aware of options that _could_
-exist. You can also pass an `opt` object which can hold further
-customization, like `.alias()`, `.demandOption()` etc. for that option.
-
-For example:
-
-````javascript
-var argv = require('yargs')
- .option('f', {
- alias: 'file',
- demandOption: true,
- default: '/etc/passwd',
- describe: 'x marks the spot',
- type: 'string'
- })
- .argv
-;
-````
-
-is the same as
-
-````javascript
-var argv = require('yargs')
- .alias('f', 'file')
- .demandOption('f')
- .default('f', '/etc/passwd')
- .describe('f', 'x marks the spot')
- .string('f')
- .argv
-;
-````
-
-Optionally `.options()` can take an object that maps keys to `opt` parameters.
+## Simple Example
````javascript
-var argv = require('yargs')
- .options({
- 'f': {
- alias: 'file',
- demandOption: true,
- default: '/etc/passwd',
- describe: 'x marks the spot',
- type: 'string'
- }
- })
- .argv
-;
-````
-
-Valid `opt` keys include:
-
-- `alias`: string or array of strings, alias(es) for the canonical option key, see [`alias()`](#alias)
-- `array`: boolean, interpret option as an array, see [`array()`](#array)
-- `boolean`: boolean, interpret option as a boolean flag, see [`boolean()`](#boolean)
-- `choices`: value or array of values, limit valid option arguments to a predefined set, see [`choices()`](#choices)
-- `coerce`: function, coerce or transform parsed command line values into another value, see [`coerce()`](#coerce)
-- `config`: boolean, interpret option as a path to a JSON config file, see [`config()`](#config)
-- `configParser`: function, provide a custom config parsing function, see [`config()`](#config)
-- `conflicts`: string or object, require certain keys not to be set, see [`conflicts()`](#conflicts)
-- `count`: boolean, interpret option as a count of boolean flags, see [`count()`](#count)
-- `default`: value, set a default value for the option, see [`default()`](#default)
-- `defaultDescription`: string, use this description for the default value in help content, see [`default()`](#default)
-- `demandOption`: boolean or string, demand the option be given, with optional error message, see [`demandOption()`](#demandOption)
-- `desc`/`describe`/`description`: string, the option description for help content, see [`describe()`](#describe)
-- `global`: boolean, indicate that this key should not be [reset](#reset) when a command is invoked, see [`global()`](#global)
-- `group`: string, when displaying usage instructions place the option under an alternative group heading, see [`group()`](#group)
-- `implies`: string or object, require certain keys to be set, see [`implies()`](#implies)
-- `nargs`: number, specify how many arguments should be consumed for the option, see [`nargs()`](#nargs)
-- `normalize`: boolean, apply `path.normalize()` to the option, see [`normalize()`](#normalize)
-- `number`: boolean, interpret option as a number, [`number()`](#number)
-- `requiresArg`: boolean, require the option be specified with a value, see [`requiresArg()`](#requiresArg)
-- `skipValidation`: boolean, skips validation if the option is present, see [`skipValidation()`](#skipValidation)
-- `string`: boolean, interpret option as a string, see [`string()`](#string)
-- `type`: one of the following strings
- - `'array'`: synonymous for `array: true`, see [`array()`](#array)
- - `'boolean'`: synonymous for `boolean: true`, see [`boolean()`](#boolean)
- - `'count'`: synonymous for `count: true`, see [`count()`](#count)
- - `'number'`: synonymous for `number: true`, see [`number()`](#number)
- - `'string'`: synonymous for `string: true`, see [`string()`](#string)
-
-.parse(args, [context], [parseCallback])
-------------
-
-Parse `args` instead of `process.argv`. Returns the `argv` object.
-`args` may either be a pre-processed argv array, or a raw argument string.
-
-A `context` object can optionally be given as the second argument to `parse()`, providing a
-useful mechanism for passing state information to commands:
-
-```js
-const parser = yargs
- .command('lunch-train <restaurant>', 'start lunch train', function () {}, function (argv) {
- console.log(argv.restaurant, argv.time)
- })
- .parse("lunch-train rudy's", {time: '12:15'})
-```
-
-A `parseCallback` can also be provided to `.parse()`. If a callback is given, it will be invoked with three arguments:
-
-1. `err`: populated if any validation errors raised while parsing.
-2. `argv`: the parsed argv object.
-3. `output`: any text that would have been output to the terminal, had a
- callback not been provided.
-
-```js
-// providing the `fn` argument to `parse()` runs yargs in headless mode, this
-// makes it easy to use yargs in contexts other than the CLI, e.g., writing
-// a chat-bot.
-const parser = yargs
- .command('lunch-train <restaurant> <time>', 'start lunch train', function () {}, function (argv) {
- api.scheduleLunch(argv.restaurant, moment(argv.time))
- })
- .help()
-
-parser.parse(bot.userText, function (err, argv, output) {
- if (output) bot.respond(output)
-})
-```
-
-***Note:*** Providing a callback to `parse()` disables the [`exitProcess` setting](#exitprocess) until after the callback is invoked.
-
-.pkgConf(key, [cwd])
-------------
-
-Similar to [`config()`](#config), indicates that yargs should interpret the object from the specified key in package.json
-as a configuration object.
-
-`cwd` can optionally be provided, the package.json will be read
-from this location.
-
-Note that a configuration stanza in package.json may extend from an identically keyed stanza in another package.json file using the `"extends"` property. When doing so, the `"extends"` value should be a path (relative or absolute) to the extended package.json file.
-
-.recommendCommands()
----------------------------
-
-Should yargs provide suggestions regarding similar commands if no matching
-command is found?
-
-.require(key, [msg | boolean])
-------------------------------
-.required(key, [msg | boolean])
-------------------------------
-
-An alias for [`demand()`](#demand). See docs there.
-
-<a name="requiresArg"></a>.requiresArg(key)
------------------
-
-Specifies either a single option key (string), or an array of options that
-must be followed by option values. If any option value is missing, show the
-usage information and exit.
-
-The default behavior is to set the value of any key not followed by an
-option value to `true`.
-
-<a name="reset"></a>.reset()
---------
-
-Reset the argument object built up so far. This is useful for
-creating nested command line interfaces. Use [global](#global)
-to specify keys that should not be reset.
-
-```js
-var yargs = require('yargs')
- .usage('$0 command')
- .command('hello', 'hello command')
- .command('world', 'world command')
- .demandCommand(1, 'must provide a valid command'),
- argv = yargs.argv,
- command = argv._[0];
-
-if (command === 'hello') {
- yargs.reset()
- .usage('$0 hello')
- .help('h')
- .example('$0 hello', 'print the hello message!')
- .argv
-
- console.log('hello!');
-} else if (command === 'world'){
- yargs.reset()
- .usage('$0 world')
- .help('h')
- .example('$0 world', 'print the world message!')
- .argv
+#!/usr/bin/env node
+const argv = require('yargs').argv
- console.log('world!');
+if (argv.ships > 3 && argv.distance < 53.5) {
+ console.log('Plunder more riffiwobbles!')
} else {
- yargs.showHelp();
+ console.log('Retreat from the xupptumblers!')
}
-```
-
-.showCompletionScript()
-----------------------
-
-Generate a bash completion script. Users of your application can install this
-script in their `.bashrc`, and yargs will provide completion shortcuts for
-commands and options.
-
-.showHelp(consoleLevel='error')
----------------------------
-
-Print the usage data using the [`console`](https://nodejs.org/api/console.html) function `consoleLevel` for printing.
-
-Example:
-
-```js
-var yargs = require("yargs")
- .usage("$0 -operand1 number -operand2 number -operation [add|subtract]");
-yargs.showHelp(); //prints to stderr using console.error()
-```
-
-Or, to print the usage data to `stdout` instead, you can specify the use of `console.log`:
-
-```js
-yargs.showHelp("log"); //prints to stdout using console.log()
-```
-
-Later on, `argv` can be retrieved with `yargs.argv`.
-
-.showHelpOnFail(enable, [message])
-----------------------------------
-
-By default, yargs outputs a usage string if any error is detected. Use the
-`.showHelpOnFail()` method to customize this behavior. If `enable` is `false`,
-the usage string is not output. If the `message` parameter is present, this
-message is output after the error message.
-
-line_count.js:
-
-````javascript
-#!/usr/bin/env node
-var argv = require('yargs')
- .usage('Count the lines in a file.\nUsage: $0 -f <file>')
- .demandOption('f')
- .alias('f', 'file')
- .describe('f', 'Load a file')
- .string('f')
- .showHelpOnFail(false, 'Specify --help for available options')
- .help('help')
- .argv;
-
-// etc.
````
-***
-
-```
-$ node line_count.js
-Missing argument value: f
+```bash
+$ ./plunder.js --ships=4 --distance=22
+Plunder more riffiwobbles!
-Specify --help for available options
+$ ./plunder.js --ships 12 --distance 98.7
+Retreat from the xupptumblers!
```
-<a name="skipValidation"></a>.skipValidation(key)
------------------
-
-Specifies either a single option key (string), or an array of options.
-If any of the options is present, yargs validation is skipped.
-
-.strict([global=true])
----------
-
-Any command-line argument given that is not demanded, or does not have a
-corresponding description, will be reported as an error.
-
-`global` indicates whether `strict()` should be enabled both
-at the top-level and for each sub-command.
-
-<a name="string"></a>.string(key)
-------------
-
-Tell the parser logic not to interpret `key` as a number or boolean.
-This can be useful if you need to preserve leading zeros in an input.
-
-If `key` is an array, interpret all the elements as strings.
-
-`.string('_')` will result in non-hyphenated arguments being interpreted as strings,
-regardless of whether they resemble numbers.
-
-.updateLocale(obj)
-------------------
-.updateStrings(obj)
-------------------
-
-Override the default strings used by yargs with the key/value
-pairs provided in `obj`:
+## Complex Example
```js
-var argv = require('yargs')
- .command('run', 'the run command')
- .help('help')
- .updateStrings({
- 'Commands:': 'My Commands -->\n'
- })
- .wrap(null)
- .argv
-```
-
-***
-
-```shell
-My Commands -->
-
- run the run command
-
-Options:
- --help Show help [boolean]
-```
-
-If you explicitly specify a `locale()`, you should do so *before* calling
-`updateStrings()`.
-
-.usage(message, [opts])
----------------------
-
-Set a usage message to show which commands to use. Inside `message`, the string
-`$0` will get interpolated to the current script name or node command for the
-present script similar to how `$0` works in bash or perl.
-
-`opts` is optional and acts like calling `.options(opts)`.
-
-<a name="version"></a>.version([option], [description], [version])
-----------------------------------------
-
-Add an option (e.g. `--version`) that displays the version number (given by the
-`version` parameter) and exits the process.
-
-If no arguments are passed to `version` (`.version()`), yargs will parse the `package.json`
-of your module and use its `version` value. The default value of `option` is `--version`.
-
-You can provide a `function` for version, rather than a string.
-This is useful if you want to use a version stored in a location other than package.json:
-
-```js
-var argv = require('yargs')
- .version(function() {
- return require('../lib/version').version;
- })
- .argv;
-```
-
-<a name="wrap"></a>.wrap(columns)
---------------
-
-Format usage output to wrap at `columns` many columns.
-
-By default wrap will be set to `Math.min(80, windowWidth)`. Use `.wrap(null)` to
-specify no column limit (no right-align). Use `.wrap(yargs.terminalWidth())` to
-maximize the width of yargs' usage instructions.
-
-parsing tricks
-==============
-
-stop parsing
-------------
-
-Use `--` to stop parsing flags and stuff the remainder into `argv._`.
-
- $ node examples/reflect.js -a 1 -b 2 -- -c 3 -d 4
- { _: [ '-c', '3', '-d', '4' ],
- a: 1,
- b: 2,
- '$0': 'examples/reflect.js' }
-
-negate fields
--------------
-
-If you want to explicitly set a field to false instead of just leaving it
-undefined or to override a default you can do `--no-key`.
-
- $ node examples/reflect.js -a --no-b
- { _: [], a: true, b: false, '$0': 'examples/reflect.js' }
-
-numbers
--------
-
-Every argument that looks like a number (`!isNaN(Number(arg))`) is converted to
-one. This way you can just `net.createConnection(argv.port)` and you can add
-numbers out of `argv` with `+` without having that mean concatenation,
-which is super frustrating.
-
-duplicates
-----------
-
-If you specify a flag multiple times it will get turned into an array containing
-all the values in order.
-
- $ node examples/reflect.js -x 5 -x 8 -x 0
- { _: [], x: [ 5, 8, 0 ], '$0': 'examples/reflect.js' }
-
-dot notation
-------------
-
-When you use dots (`.`s) in argument names, an implicit object path is assumed.
-This lets you organize arguments into nested objects.
-
- $ node examples/reflect.js --foo.bar.baz=33 --foo.quux=5
- { _: [],
- foo: { bar: { baz: 33 }, quux: 5 },
- '$0': 'examples/reflect.js' }
-
-short numbers
--------------
-
-Short numeric `-n5` style arguments work too:
-
- $ node examples/reflect.js -n123 -m456
- { _: [], n: 123, m: 456, '$0': 'examples/reflect.js' }
-
-installation
-============
-
-With [npm](https://github.com/npm/npm), just do:
-
- npm install yargs
-
-or clone this project on github:
-
- git clone http://github.com/yargs/yargs.git
-
-To run the tests with npm, just do:
-
- npm test
-
-configuration
-=============
-
-Using the `yargs` stanza in your `package.json` you can turn on and off
-some of yargs' parsing features:
-
-```json
-{
- "yargs": {
- "short-option-groups": true,
- "camel-case-expansion": true,
- "dot-notation": true,
- "parse-numbers": true,
- "boolean-negation": true
- }
-}
-```
-
-See the [yargs-parser](https://github.com/yargs/yargs-parser#configuration) module
-for detailed documentation of this feature.
-
-inspired by
-===========
-
-This module is loosely inspired by Perl's
-[Getopt::Casual](http://search.cpan.org/~photo/Getopt-Casual-0.13.1/Casual.pm).
+#!/usr/bin/env node
+const yargs = require('yargs') // eslint-disable-line
+ .command('serve', 'start the server', (yargs) => {
+ yargs.option('port', {
+ describe: 'port to bind on',
+ default: 5000
+ })
+ }, (argv) => {
+ if (argv.verbose) console.info(`start server on :${argv.port}`)
+ serve(argv.port)
+ })
+ .option('verbose', {
+ alias: 'v',
+ default: false
+ })
+ .help()
+ .argv
+```
+
+## Table of Contents
+
+* [Yargs' API](/docs/api.md)
+* [Examples](/docs/examples.md)
+* [Parsing Tricks](/docs/tricks.md)
+ * [Stop the Parser](/docs/tricks.md#stop)
+ * [Negating Boolean Arguments](/docs/tricks.md#negate)
+ * [Numbers](/docs/tricks.md#numbers)
+ * [Arrays](/docs/tricks.md#arrays)
+ * [Objects](/docs/tricks.md#objects)
+* [Advanced Topics](/docs/advanced.md)
+ * [Composing Your App Using Commands](/docs/advanced.md#commands)
+ * [Building Configurable CLI Apps](/docs/advanced.md#configuration)
+ * [Customizing Yargs' Parser](/docs/advanced.md#customizing)
+* [Contributing](/contributing.md)
[travis-url]: https://travis-ci.org/yargs/yargs
[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg
diff --git a/node_modules/nyc/node_modules/yargs/lib/apply-extends.js b/node_modules/nyc/node_modules/yargs/lib/apply-extends.js
index ec751b0b0..5fc69fab1 100644
--- a/node_modules/nyc/node_modules/yargs/lib/apply-extends.js
+++ b/node_modules/nyc/node_modules/yargs/lib/apply-extends.js
@@ -15,22 +15,33 @@ function getPathToDefaultConfig (cwd, pathToExtend) {
return path.resolve(cwd, pathToExtend)
}
-function applyExtends (config, cwd, subKey) {
+function applyExtends (config, cwd) {
var defaultConfig = {}
if (config.hasOwnProperty('extends')) {
- var pathToDefault = getPathToDefaultConfig(cwd, config.extends)
+ if (typeof config.extends !== 'string') return defaultConfig
+ var isPath = /\.json$/.test(config.extends)
+ var pathToDefault = null
+ if (!isPath) {
+ try {
+ pathToDefault = require.resolve(config.extends)
+ } catch (err) {
+ // most likely this simply isn't a module.
+ }
+ } else {
+ pathToDefault = getPathToDefaultConfig(cwd, config.extends)
+ }
+ // maybe the module uses key for some other reason,
+ // err on side of caution.
+ if (!pathToDefault && !isPath) return config
checkForCircularExtends(pathToDefault)
previouslyVisitedConfigs.push(pathToDefault)
- delete config.extends
- defaultConfig = JSON.parse(fs.readFileSync(pathToDefault, 'utf8'))
- if (subKey) {
- defaultConfig = defaultConfig[subKey] || {}
- }
- defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault), subKey)
+ defaultConfig = isPath ? JSON.parse(fs.readFileSync(pathToDefault, 'utf8')) : require(config.extends)
+ delete config.extends
+ defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault))
}
previouslyVisitedConfigs = []
diff --git a/node_modules/nyc/node_modules/yargs/lib/command.js b/node_modules/nyc/node_modules/yargs/lib/command.js
index c49555ac3..3567cf953 100644
--- a/node_modules/nyc/node_modules/yargs/lib/command.js
+++ b/node_modules/nyc/node_modules/yargs/lib/command.js
@@ -15,6 +15,8 @@ module.exports = function (yargs, usage, validation) {
var defaultCommand
self.addHandler = function (cmd, description, builder, handler) {
var aliases = []
+ handler = handler || function () {}
+
if (Array.isArray(cmd)) {
aliases = cmd.slice(1)
cmd = cmd[0]
@@ -174,7 +176,7 @@ module.exports = function (yargs, usage, validation) {
return !!defaultCommand
}
- self.runCommand = function (command, yargs, parsed) {
+ self.runCommand = function (command, yargs, parsed, commandIndex) {
var aliases = parsed.aliases
var commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand
var currentContext = yargs.getContext()
@@ -199,7 +201,7 @@ module.exports = function (yargs, usage, validation) {
if (typeof yargs.getUsageInstance().getUsage() === 'undefined') {
yargs.usage('$0 ' + (parentCommands.length ? parentCommands.join(' ') + ' ' : '') + commandHandler.original)
}
- innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true) : yargs._parseArgs(null, null, true)
+ innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true, commandIndex) : yargs._parseArgs(null, null, true, commandIndex)
} else {
innerArgv = yargs.parsed.argv
}
@@ -214,7 +216,7 @@ module.exports = function (yargs, usage, validation) {
Object.keys(commandHandler.builder).forEach(function (key) {
innerYargs.option(key, commandHandler.builder[key])
})
- innerArgv = innerYargs._parseArgs(null, null, true)
+ innerArgv = innerYargs._parseArgs(null, null, true, commandIndex)
aliases = innerYargs.parsed.aliases
}
diff --git a/node_modules/nyc/node_modules/yargs/lib/validation.js b/node_modules/nyc/node_modules/yargs/lib/validation.js
index 0c2502f22..2f9ff8e6c 100644
--- a/node_modules/nyc/node_modules/yargs/lib/validation.js
+++ b/node_modules/nyc/node_modules/yargs/lib/validation.js
@@ -1,4 +1,5 @@
const objFilter = require('./obj-filter')
+const specialKeys = ['$0', '--', '_']
// validation-type-stuff, missing params,
// bad implications, custom checks.
@@ -131,7 +132,7 @@ module.exports = function (yargs, usage, y18n) {
})
Object.keys(argv).forEach(function (key) {
- if (key !== '$0' && key !== '_' &&
+ if (specialKeys.indexOf(key) === -1 &&
!descriptions.hasOwnProperty(key) &&
!demandedOptions.hasOwnProperty(key) &&
!positionalMap.hasOwnProperty(key) &&
@@ -167,7 +168,7 @@ module.exports = function (yargs, usage, y18n) {
if (!Object.keys(options.choices).length) return
Object.keys(argv).forEach(function (key) {
- if (key !== '$0' && key !== '_' &&
+ if (specialKeys.indexOf(key) === -1 &&
options.choices.hasOwnProperty(key)) {
[].concat(argv[key]).forEach(function (value) {
// TODO case-insensitive configurability
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/index.js b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/index.js
index 5670f73f2..c8492a228 100644
--- a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/index.js
+++ b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/index.js
@@ -1,31 +1,45 @@
'use strict';
function preserveCamelCase(str) {
- var isLastCharLower = false;
+ let isLastCharLower = false;
+ let isLastCharUpper = false;
+ let isLastLastCharUpper = false;
- for (var i = 0; i < str.length; i++) {
- var c = str.charAt(i);
+ for (let i = 0; i < str.length; i++) {
+ const c = str[i];
- if (isLastCharLower && (/[a-zA-Z]/).test(c) && c.toUpperCase() === c) {
+ if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {
str = str.substr(0, i) + '-' + str.substr(i);
isLastCharLower = false;
+ isLastLastCharUpper = isLastCharUpper;
+ isLastCharUpper = true;
i++;
+ } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {
+ str = str.substr(0, i - 1) + '-' + str.substr(i - 1);
+ isLastLastCharUpper = isLastCharUpper;
+ isLastCharUpper = false;
+ isLastCharLower = true;
} else {
- isLastCharLower = (c.toLowerCase() === c);
+ isLastCharLower = c.toLowerCase() === c;
+ isLastLastCharUpper = isLastCharUpper;
+ isLastCharUpper = c.toUpperCase() === c;
}
}
return str;
}
-module.exports = function () {
- var str = [].map.call(arguments, function (str) {
- return str.trim();
- }).filter(function (str) {
- return str.length;
- }).join('-');
+module.exports = function (str) {
+ if (arguments.length > 1) {
+ str = Array.from(arguments)
+ .map(x => x.trim())
+ .filter(x => x.length)
+ .join('-');
+ } else {
+ str = str.trim();
+ }
- if (!str.length) {
+ if (str.length === 0) {
return '';
}
@@ -33,24 +47,18 @@ module.exports = function () {
return str.toLowerCase();
}
- if (!(/[_.\- ]+/).test(str)) {
- if (str === str.toUpperCase()) {
- return str.toLowerCase();
- }
-
- if (str[0] !== str[0].toLowerCase()) {
- return str[0].toLowerCase() + str.slice(1);
- }
-
+ if (/^[a-z0-9]+$/.test(str)) {
return str;
}
- str = preserveCamelCase(str);
+ const hasUpperCase = str !== str.toLowerCase();
+
+ if (hasUpperCase) {
+ str = preserveCamelCase(str);
+ }
return str
- .replace(/^[_.\- ]+/, '')
- .toLowerCase()
- .replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
- return p1.toUpperCase();
- });
+ .replace(/^[_.\- ]+/, '')
+ .toLowerCase()
+ .replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase());
};
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/package.json b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/package.json
index e02614939..327fb3f5c 100644
--- a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/package.json
+++ b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/package.json
@@ -2,53 +2,54 @@
"_args": [
[
{
- "raw": "camelcase@^3.0.0",
+ "raw": "camelcase@^4.1.0",
"scope": null,
"escapedName": "camelcase",
"name": "camelcase",
- "rawSpec": "^3.0.0",
- "spec": ">=3.0.0 <4.0.0",
+ "rawSpec": "^4.1.0",
+ "spec": ">=4.1.0 <5.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
- "_from": "camelcase@>=3.0.0 <4.0.0",
- "_id": "camelcase@3.0.0",
+ "_from": "camelcase@>=4.1.0 <5.0.0",
+ "_id": "camelcase@4.1.0",
"_inCache": true,
"_location": "/yargs/camelcase",
- "_nodeVersion": "4.4.2",
+ "_nodeVersion": "7.8.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/camelcase-3.0.0.tgz_1462383205197_0.03801905922591686"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/camelcase-4.1.0.tgz_1490865362489_0.433825216954574"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "3.8.9",
+ "_npmVersion": "4.2.0",
"_phantomChildren": {},
"_requested": {
- "raw": "camelcase@^3.0.0",
+ "raw": "camelcase@^4.1.0",
"scope": null,
"escapedName": "camelcase",
"name": "camelcase",
- "rawSpec": "^3.0.0",
- "spec": ">=3.0.0 <4.0.0",
+ "rawSpec": "^4.1.0",
+ "spec": ">=4.1.0 <5.0.0",
"type": "range"
},
"_requiredBy": [
- "/yargs"
+ "/yargs",
+ "/yargs/yargs-parser"
],
- "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "_shasum": "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a",
+ "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "_shasum": "d545635be1e33c542649c69173e5de6acfae34dd",
"_shrinkwrap": null,
- "_spec": "camelcase@^3.0.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_spec": "camelcase@^4.1.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
+ "url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/camelcase/issues"
@@ -61,16 +62,16 @@
},
"directories": {},
"dist": {
- "shasum": "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a",
- "tarball": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
+ "shasum": "d545635be1e33c542649c69173e5de6acfae34dd",
+ "tarball": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
},
"files": [
"index.js"
],
- "gitHead": "d4de0e37b625e38a880efc6517194917a5beda01",
+ "gitHead": "0e6e4a2752aa013b8e9477145c7b8132c95a82ef",
"homepage": "https://github.com/sindresorhus/camelcase#readme",
"keywords": [
"camelcase",
@@ -95,7 +96,7 @@
],
"name": "camelcase",
"optionalDependencies": {},
- "readme": "# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)\n\n> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`\n\n\n## Install\n\n```\n$ npm install --save camelcase\n```\n\n\n## Usage\n\n```js\nconst camelCase = require('camelcase');\n\ncamelCase('foo-bar');\n//=> 'fooBar'\n\ncamelCase('foo_bar');\n//=> 'fooBar'\n\ncamelCase('Foo-Bar');\n//=> 'fooBar'\n\ncamelCase('--foo.bar');\n//=> 'fooBar'\n\ncamelCase('__foo__bar__');\n//=> 'fooBar'\n\ncamelCase('foo bar');\n//=> 'fooBar'\n\nconsole.log(process.argv[3]);\n//=> '--foo-bar'\ncamelCase(process.argv[3]);\n//=> 'fooBar'\n\ncamelCase('foo', 'bar');\n//=> 'fooBar'\n\ncamelCase('__foo__', '--bar');\n//=> 'fooBar'\n```\n\n\n## Related\n\n- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module\n- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase\n\n\n## License\n\nMIT © [Sindre Sorhus](http://sindresorhus.com)\n",
+ "readme": "# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)\n\n> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`\n\n\n## Install\n\n```\n$ npm install --save camelcase\n```\n\n\n## Usage\n\n```js\nconst camelCase = require('camelcase');\n\ncamelCase('foo-bar');\n//=> 'fooBar'\n\ncamelCase('foo_bar');\n//=> 'fooBar'\n\ncamelCase('Foo-Bar');\n//=> 'fooBar'\n\ncamelCase('--foo.bar');\n//=> 'fooBar'\n\ncamelCase('__foo__bar__');\n//=> 'fooBar'\n\ncamelCase('foo bar');\n//=> 'fooBar'\n\nconsole.log(process.argv[3]);\n//=> '--foo-bar'\ncamelCase(process.argv[3]);\n//=> 'fooBar'\n\ncamelCase('foo', 'bar');\n//=> 'fooBar'\n\ncamelCase('__foo__', '--bar');\n//=> 'fooBar'\n```\n\n\n## Related\n\n- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module\n- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
"readmeFilename": "readme.md",
"repository": {
"type": "git",
@@ -104,5 +105,8 @@
"scripts": {
"test": "xo && ava"
},
- "version": "3.0.0"
+ "version": "4.1.0",
+ "xo": {
+ "esnext": true
+ }
}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/readme.md
index 080b2a103..0610dc627 100644
--- a/node_modules/nyc/node_modules/yargs/node_modules/camelcase/readme.md
+++ b/node_modules/nyc/node_modules/yargs/node_modules/camelcase/readme.md
@@ -54,4 +54,4 @@ camelCase('__foo__', '--bar');
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js
new file mode 100644
index 000000000..b9bec6244
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js
@@ -0,0 +1,37 @@
+'use strict';
+var stripAnsi = require('strip-ansi');
+var codePointAt = require('code-point-at');
+var isFullwidthCodePoint = require('is-fullwidth-code-point');
+
+// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345
+module.exports = function (str) {
+ if (typeof str !== 'string' || str.length === 0) {
+ return 0;
+ }
+
+ var width = 0;
+
+ str = stripAnsi(str);
+
+ for (var i = 0; i < str.length; i++) {
+ var code = codePointAt(str, i);
+
+ // ignore control characters
+ if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {
+ continue;
+ }
+
+ // surrogates
+ if (code >= 0x10000) {
+ i++;
+ }
+
+ if (isFullwidthCodePoint(code)) {
+ width += 2;
+ } else {
+ width++;
+ }
+ }
+
+ return width;
+};
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/license b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json
new file mode 100644
index 000000000..4efdd77c8
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json
@@ -0,0 +1,124 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "string-width@^1.0.1",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui"
+ ]
+ ],
+ "_from": "string-width@>=1.0.1 <2.0.0",
+ "_id": "string-width@1.0.2",
+ "_inCache": true,
+ "_location": "/yargs/cliui/string-width",
+ "_nodeVersion": "4.4.5",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/string-width-1.0.2.tgz_1471188233009_0.6573935742489994"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "string-width@^1.0.1",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^1.0.1",
+ "spec": ">=1.0.1 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs/cliui"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_shrinkwrap": null,
+ "_spec": "string-width@^1.0.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/cliui",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "tarball": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "282cf3d53918a92cc3ee0778dcf938039bcbc47b",
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "string-width",
+ "optionalDependencies": {},
+ "readme": "# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)\n\n> Get the visual width of a string - the number of columns required to display it\n\nSome Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.\n\nUseful to be able to measure the actual width of command-line output.\n\n\n## Install\n\n```\n$ npm install --save string-width\n```\n\n\n## Usage\n\n```js\nconst stringWidth = require('string-width');\n\nstringWidth('古');\n//=> 2\n\nstringWidth('\\u001b[1m古\\u001b[22m');\n//=> 2\n\nstringWidth('a');\n//=> 1\n```\n\n\n## Related\n\n- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module\n- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string\n- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md
new file mode 100644
index 000000000..1ab42c935
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md
@@ -0,0 +1,42 @@
+# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)
+
+> Get the visual width of a string - the number of columns required to display it
+
+Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
+
+Useful to be able to measure the actual width of command-line output.
+
+
+## Install
+
+```
+$ npm install --save string-width
+```
+
+
+## Usage
+
+```js
+const stringWidth = require('string-width');
+
+stringWidth('古');
+//=> 2
+
+stringWidth('\u001b[1m古\u001b[22m');
+//=> 2
+
+stringWidth('a');
+//=> 1
+```
+
+
+## Related
+
+- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module
+- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string
+- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/cliui/package.json b/node_modules/nyc/node_modules/yargs/node_modules/cliui/package.json
index 3850dd99c..4bb74c633 100644
--- a/node_modules/nyc/node_modules/yargs/node_modules/cliui/package.json
+++ b/node_modules/nyc/node_modules/yargs/node_modules/cliui/package.json
@@ -10,7 +10,7 @@
"spec": ">=3.2.0 <4.0.0",
"type": "range"
},
- "/Users/benjamincoe/oss/nyc/node_modules/yargs"
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
]
],
"_from": "cliui@>=3.2.0 <4.0.0",
@@ -27,7 +27,11 @@
"email": "ben@npmjs.com"
},
"_npmVersion": "3.3.12",
- "_phantomChildren": {},
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ },
"_requested": {
"raw": "cliui@^3.2.0",
"scope": null,
@@ -44,7 +48,7 @@
"_shasum": "120601537a916d29940f934da3b48d585a39213d",
"_shrinkwrap": null,
"_spec": "cliui@^3.2.0",
- "_where": "/Users/benjamincoe/oss/nyc/node_modules/yargs",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
"author": {
"name": "Ben Coe",
"email": "ben@npmjs.com"
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/index.js b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/index.js
new file mode 100644
index 000000000..b2767e302
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/index.js
@@ -0,0 +1,11 @@
+'use strict';
+const path = require('path');
+const fs = require('graceful-fs');
+const stripBom = require('strip-bom');
+const parseJson = require('parse-json');
+const pify = require('pify');
+
+const parse = (data, fp) => parseJson(stripBom(data), path.relative('.', fp));
+
+module.exports = fp => pify(fs.readFile)(fp, 'utf8').then(data => parse(data, fp));
+module.exports.sync = fp => parse(fs.readFileSync(fp, 'utf8'), fp);
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/license b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/package.json b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/package.json
new file mode 100644
index 000000000..b6a060be1
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/package.json
@@ -0,0 +1,111 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "load-json-file@^2.0.0",
+ "scope": null,
+ "escapedName": "load-json-file",
+ "name": "load-json-file",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg"
+ ]
+ ],
+ "_from": "load-json-file@>=2.0.0 <3.0.0",
+ "_id": "load-json-file@2.0.0",
+ "_inCache": true,
+ "_location": "/yargs/load-json-file",
+ "_nodeVersion": "4.4.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/load-json-file-2.0.0.tgz_1462036668887_0.931434569414705"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "load-json-file@^2.0.0",
+ "scope": null,
+ "escapedName": "load-json-file",
+ "name": "load-json-file",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs/read-pkg"
+ ],
+ "_resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "_shasum": "7947e42149af80d696cbf797bcaabcfe1fe29ca8",
+ "_shrinkwrap": null,
+ "_spec": "load-json-file@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/load-json-file/issues"
+ },
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "description": "Read and parse a JSON file",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "7947e42149af80d696cbf797bcaabcfe1fe29ca8",
+ "tarball": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "49620f12bce627dc2459a08f5ef18cd2ff151eb2",
+ "homepage": "https://github.com/sindresorhus/load-json-file#readme",
+ "keywords": [
+ "read",
+ "json",
+ "parse",
+ "file",
+ "fs",
+ "graceful",
+ "load"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "load-json-file",
+ "optionalDependencies": {},
+ "readme": "# load-json-file [![Build Status](https://travis-ci.org/sindresorhus/load-json-file.svg?branch=master)](https://travis-ci.org/sindresorhus/load-json-file)\n\n> Read and parse a JSON file\n\n[Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom), uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs), and throws more [helpful JSON errors](https://github.com/sindresorhus/parse-json).\n\n\n## Install\n\n```\n$ npm install --save load-json-file\n```\n\n\n## Usage\n\n```js\nconst loadJsonFile = require('load-json-file');\n\nloadJsonFile('foo.json').then(json => {\n\tconsole.log(json);\n\t//=> {foo: true}\n});\n```\n\n\n## API\n\n### loadJsonFile(filepath)\n\nReturns a promise for the parsed JSON.\n\n### loadJsonFile.sync(filepath)\n\nReturns the parsed JSON.\n\n\n## Related\n\n- [write-json-file](https://github.com/sindresorhus/write-json-file) - Stringify and write JSON to a file atomically\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/load-json-file.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/readme.md
new file mode 100644
index 000000000..3319c266c
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/load-json-file/readme.md
@@ -0,0 +1,45 @@
+# load-json-file [![Build Status](https://travis-ci.org/sindresorhus/load-json-file.svg?branch=master)](https://travis-ci.org/sindresorhus/load-json-file)
+
+> Read and parse a JSON file
+
+[Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom), uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs), and throws more [helpful JSON errors](https://github.com/sindresorhus/parse-json).
+
+
+## Install
+
+```
+$ npm install --save load-json-file
+```
+
+
+## Usage
+
+```js
+const loadJsonFile = require('load-json-file');
+
+loadJsonFile('foo.json').then(json => {
+ console.log(json);
+ //=> {foo: true}
+});
+```
+
+
+## API
+
+### loadJsonFile(filepath)
+
+Returns a promise for the parsed JSON.
+
+### loadJsonFile.sync(filepath)
+
+Returns the parsed JSON.
+
+
+## Related
+
+- [write-json-file](https://github.com/sindresorhus/write-json-file) - Stringify and write JSON to a file atomically
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/path-type/index.js b/node_modules/nyc/node_modules/yargs/node_modules/path-type/index.js
new file mode 100644
index 000000000..4ac9dd967
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/path-type/index.js
@@ -0,0 +1,26 @@
+'use strict';
+const fs = require('fs');
+const pify = require('pify');
+
+function type(fn, fn2, fp) {
+ if (typeof fp !== 'string') {
+ return Promise.reject(new TypeError(`Expected a string, got ${typeof fp}`));
+ }
+
+ return pify(fs[fn])(fp).then(stats => stats[fn2]());
+}
+
+function typeSync(fn, fn2, fp) {
+ if (typeof fp !== 'string') {
+ throw new TypeError(`Expected a string, got ${typeof fp}`);
+ }
+
+ return fs[fn](fp)[fn2]();
+}
+
+exports.file = type.bind(null, 'stat', 'isFile');
+exports.dir = type.bind(null, 'stat', 'isDirectory');
+exports.symlink = type.bind(null, 'lstat', 'isSymbolicLink');
+exports.fileSync = typeSync.bind(null, 'statSync', 'isFile');
+exports.dirSync = typeSync.bind(null, 'statSync', 'isDirectory');
+exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink');
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/path-type/license b/node_modules/nyc/node_modules/yargs/node_modules/path-type/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/path-type/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/path-type/package.json b/node_modules/nyc/node_modules/yargs/node_modules/path-type/package.json
new file mode 100644
index 000000000..b92cca052
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/path-type/package.json
@@ -0,0 +1,116 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "path-type@^2.0.0",
+ "scope": null,
+ "escapedName": "path-type",
+ "name": "path-type",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg"
+ ]
+ ],
+ "_from": "path-type@>=2.0.0 <3.0.0",
+ "_id": "path-type@2.0.0",
+ "_inCache": true,
+ "_location": "/yargs/path-type",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/path-type-2.0.0.tgz_1475051315257_0.8221027220133692"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "path-type@^2.0.0",
+ "scope": null,
+ "escapedName": "path-type",
+ "name": "path-type",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs/read-pkg"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "_shasum": "f012ccb8415b7096fc2daa1054c3d72389594c73",
+ "_shrinkwrap": null,
+ "_spec": "path-type@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-type/issues"
+ },
+ "dependencies": {
+ "pify": "^2.0.0"
+ },
+ "description": "Check if a path is a file, directory, or symlink",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "f012ccb8415b7096fc2daa1054c3d72389594c73",
+ "tarball": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "ef08bdbd35fa01342ef6d80f2e8eb8b9c2cccc30",
+ "homepage": "https://github.com/sindresorhus/path-type#readme",
+ "keywords": [
+ "path",
+ "fs",
+ "type",
+ "is",
+ "check",
+ "directory",
+ "dir",
+ "file",
+ "filepath",
+ "symlink",
+ "symbolic",
+ "link",
+ "stat",
+ "stats",
+ "filesystem"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "path-type",
+ "optionalDependencies": {},
+ "readme": "# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type)\n\n> Check if a path is a file, directory, or symlink\n\n\n## Install\n\n```\n$ npm install --save path-type\n```\n\n\n## Usage\n\n```js\nconst pathType = require('path-type');\n\npathType.file('package.json').then(isFile => {\n\tconsole.log(isFile);\n\t//=> true\n})\n```\n\n\n## API\n\n### .file(path)\n### .dir(path)\n### .symlink(path)\n\nReturns a `Promise` for a `boolean` of whether the path is the checked type.\n\n### .fileSync(path)\n### .dirSync(path)\n### .symlinkSync(path)\n\nReturns a `boolean` of whether the path is the checked type.\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-type.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/path-type/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/path-type/readme.md
new file mode 100644
index 000000000..b1ea61fe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/path-type/readme.md
@@ -0,0 +1,42 @@
+# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type)
+
+> Check if a path is a file, directory, or symlink
+
+
+## Install
+
+```
+$ npm install --save path-type
+```
+
+
+## Usage
+
+```js
+const pathType = require('path-type');
+
+pathType.file('package.json').then(isFile => {
+ console.log(isFile);
+ //=> true
+})
+```
+
+
+## API
+
+### .file(path)
+### .dir(path)
+### .symlink(path)
+
+Returns a `Promise` for a `boolean` of whether the path is the checked type.
+
+### .fileSync(path)
+### .dirSync(path)
+### .symlinkSync(path)
+
+Returns a `boolean` of whether the path is the checked type.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/index.js b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/index.js
new file mode 100644
index 000000000..26079760f
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/index.js
@@ -0,0 +1,26 @@
+'use strict';
+const findUp = require('find-up');
+const readPkg = require('read-pkg');
+
+module.exports = opts => {
+ return findUp('package.json', opts).then(fp => {
+ if (!fp) {
+ return {};
+ }
+
+ return readPkg(fp, opts).then(pkg => ({pkg, path: fp}));
+ });
+};
+
+module.exports.sync = opts => {
+ const fp = findUp.sync('package.json', opts);
+
+ if (!fp) {
+ return {};
+ }
+
+ return {
+ pkg: readPkg.sync(fp, opts),
+ path: fp
+ };
+};
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/license b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/package.json b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/package.json
new file mode 100644
index 000000000..ba879c39f
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/package.json
@@ -0,0 +1,130 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "read-pkg-up@^2.0.0",
+ "scope": null,
+ "escapedName": "read-pkg-up",
+ "name": "read-pkg-up",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
+ ]
+ ],
+ "_from": "read-pkg-up@>=2.0.0 <3.0.0",
+ "_id": "read-pkg-up@2.0.0",
+ "_inCache": true,
+ "_location": "/yargs/read-pkg-up",
+ "_nodeVersion": "4.6.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/read-pkg-up-2.0.0.tgz_1476173892380_0.9843513397499919"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "read-pkg-up@^2.0.0",
+ "scope": null,
+ "escapedName": "read-pkg-up",
+ "name": "read-pkg-up",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "_shasum": "6b72a8048984e0c41e79510fd5e9fa99b3b549be",
+ "_shrinkwrap": null,
+ "_spec": "read-pkg-up@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/read-pkg-up/issues"
+ },
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ },
+ "description": "Read the closest package.json file",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "6b72a8048984e0c41e79510fd5e9fa99b3b549be",
+ "tarball": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "3b8a594ab581f000f705e43e8abdb1a23e8822f2",
+ "homepage": "https://github.com/sindresorhus/read-pkg-up#readme",
+ "keywords": [
+ "json",
+ "read",
+ "parse",
+ "file",
+ "fs",
+ "graceful",
+ "load",
+ "pkg",
+ "package",
+ "find",
+ "up",
+ "find-up",
+ "findup",
+ "look-up",
+ "look",
+ "file",
+ "search",
+ "match",
+ "package",
+ "resolve",
+ "parent",
+ "parents",
+ "folder",
+ "directory",
+ "dir",
+ "walk",
+ "walking",
+ "path"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "read-pkg-up",
+ "optionalDependencies": {},
+ "readme": "# read-pkg-up [![Build Status](https://travis-ci.org/sindresorhus/read-pkg-up.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg-up)\n\n> Read the closest package.json file\n\n\n## Why\n\n- [Finds the closest package.json](https://github.com/sindresorhus/find-up)\n- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)\n- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)\n- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)\n- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)\n\n\n## Install\n\n```\n$ npm install --save read-pkg-up\n```\n\n\n## Usage\n\n```js\nconst readPkgUp = require('read-pkg-up');\n\nreadPkgUp().then(result => {\n\tconsole.log(result);\n\t/*\n\t{\n\t\tpkg: {\n\t\t\tname: 'awesome-package',\n\t\t\tversion: '1.0.0',\n\t\t\t...\n\t\t},\n\t\tpath: '/Users/sindresorhus/dev/awesome-package/package.json'\n\t}\n\t*/\n});\n```\n\n\n## API\n\n### readPkgUp([options])\n\nReturns a `Promise` for the result object.\n\n### readPkgUp.sync([options])\n\nReturns the result object.\n\n#### options\n\n##### cwd\n\nType: `string`<br>\nDefault: `.`\n\nDirectory to start looking for a package.json file.\n\n##### normalize\n\nType: `boolean`<br>\nDefault: `true`\n\n[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.\n\n\n## Related\n\n- [read-pkg](https://github.com/sindresorhus/read-pkg) - Read a package.json file\n- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file\n- [find-up](https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories\n- [pkg-conf](https://github.com/sindresorhus/pkg-conf) - Get namespaced config from the closest package.json\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/read-pkg-up.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/readme.md
new file mode 100644
index 000000000..ba18780f9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg-up/readme.md
@@ -0,0 +1,80 @@
+# read-pkg-up [![Build Status](https://travis-ci.org/sindresorhus/read-pkg-up.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg-up)
+
+> Read the closest package.json file
+
+
+## Why
+
+- [Finds the closest package.json](https://github.com/sindresorhus/find-up)
+- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
+- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
+- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
+- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
+
+
+## Install
+
+```
+$ npm install --save read-pkg-up
+```
+
+
+## Usage
+
+```js
+const readPkgUp = require('read-pkg-up');
+
+readPkgUp().then(result => {
+ console.log(result);
+ /*
+ {
+ pkg: {
+ name: 'awesome-package',
+ version: '1.0.0',
+ ...
+ },
+ path: '/Users/sindresorhus/dev/awesome-package/package.json'
+ }
+ */
+});
+```
+
+
+## API
+
+### readPkgUp([options])
+
+Returns a `Promise` for the result object.
+
+### readPkgUp.sync([options])
+
+Returns the result object.
+
+#### options
+
+##### cwd
+
+Type: `string`<br>
+Default: `.`
+
+Directory to start looking for a package.json file.
+
+##### normalize
+
+Type: `boolean`<br>
+Default: `true`
+
+[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
+
+
+## Related
+
+- [read-pkg](https://github.com/sindresorhus/read-pkg) - Read a package.json file
+- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file
+- [find-up](https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories
+- [pkg-conf](https://github.com/sindresorhus/pkg-conf) - Get namespaced config from the closest package.json
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/index.js b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/index.js
new file mode 100644
index 000000000..dff948b69
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/index.js
@@ -0,0 +1,47 @@
+'use strict';
+const path = require('path');
+const loadJsonFile = require('load-json-file');
+const pathType = require('path-type');
+
+module.exports = (fp, opts) => {
+ if (typeof fp !== 'string') {
+ opts = fp;
+ fp = '.';
+ }
+
+ opts = opts || {};
+
+ return pathType.dir(fp)
+ .then(isDir => {
+ if (isDir) {
+ fp = path.join(fp, 'package.json');
+ }
+
+ return loadJsonFile(fp);
+ })
+ .then(x => {
+ if (opts.normalize !== false) {
+ require('normalize-package-data')(x);
+ }
+
+ return x;
+ });
+};
+
+module.exports.sync = (fp, opts) => {
+ if (typeof fp !== 'string') {
+ opts = fp;
+ fp = '.';
+ }
+
+ opts = opts || {};
+ fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp;
+
+ const x = loadJsonFile.sync(fp);
+
+ if (opts.normalize !== false) {
+ require('normalize-package-data')(x);
+ }
+
+ return x;
+};
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/license b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/package.json b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/package.json
new file mode 100644
index 000000000..3c8ba819a
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/package.json
@@ -0,0 +1,113 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "read-pkg@^2.0.0",
+ "scope": null,
+ "escapedName": "read-pkg",
+ "name": "read-pkg",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg-up"
+ ]
+ ],
+ "_from": "read-pkg@>=2.0.0 <3.0.0",
+ "_id": "read-pkg@2.0.0",
+ "_inCache": true,
+ "_location": "/yargs/read-pkg",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/read-pkg-2.0.0.tgz_1475052271222_0.4820629544556141"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "read-pkg@^2.0.0",
+ "scope": null,
+ "escapedName": "read-pkg",
+ "name": "read-pkg",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs/read-pkg-up"
+ ],
+ "_resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "_shasum": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
+ "_shrinkwrap": null,
+ "_spec": "read-pkg@^2.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/read-pkg-up",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/read-pkg/issues"
+ },
+ "dependencies": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ },
+ "description": "Read a package.json file",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
+ "tarball": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "c1664a2f42d1f1898b7648534576e6dcfa1f48c8",
+ "homepage": "https://github.com/sindresorhus/read-pkg#readme",
+ "keywords": [
+ "json",
+ "read",
+ "parse",
+ "file",
+ "fs",
+ "graceful",
+ "load",
+ "pkg",
+ "package",
+ "normalize"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "read-pkg",
+ "optionalDependencies": {},
+ "readme": "# read-pkg [![Build Status](https://travis-ci.org/sindresorhus/read-pkg.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg)\n\n> Read a package.json file\n\n\n## Why\n\n- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)\n- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)\n- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)\n- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)\n\n\n## Install\n\n```\n$ npm install --save read-pkg\n```\n\n\n## Usage\n\n```js\nconst readPkg = require('read-pkg');\n\nreadPkg().then(pkg => {\n\tconsole.log(pkg);\n\t//=> {name: 'read-pkg', ...}\n});\n\nreadPkg(__dirname).then(pkg => {\n\tconsole.log(pkg);\n\t//=> {name: 'read-pkg', ...}\n});\n\nreadPkg(path.join('unicorn', 'package.json')).then(pkg => {\n\tconsole.log(pkg);\n\t//=> {name: 'read-pkg', ...}\n});\n```\n\n\n## API\n\n### readPkg([path], [options])\n\nReturns a `Promise` for the parsed JSON.\n\n### readPkg.sync([path], [options])\n\nReturns the parsed JSON.\n\n#### path\n\nType: `string`<br>\nDefault: `.`\n\nPath to a `package.json` file or its directory.\n\n#### options\n\n##### normalize\n\nType: `boolean`<br>\nDefault: `true`\n\n[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.\n\n\n## Related\n\n- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file\n- [write-pkg](https://github.com/sindresorhus/write-pkg) - Write a `package.json` file\n- [load-json-file](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/read-pkg.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/readme.md
new file mode 100644
index 000000000..5796008b8
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/read-pkg/readme.md
@@ -0,0 +1,79 @@
+# read-pkg [![Build Status](https://travis-ci.org/sindresorhus/read-pkg.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg)
+
+> Read a package.json file
+
+
+## Why
+
+- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
+- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
+- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
+- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
+
+
+## Install
+
+```
+$ npm install --save read-pkg
+```
+
+
+## Usage
+
+```js
+const readPkg = require('read-pkg');
+
+readPkg().then(pkg => {
+ console.log(pkg);
+ //=> {name: 'read-pkg', ...}
+});
+
+readPkg(__dirname).then(pkg => {
+ console.log(pkg);
+ //=> {name: 'read-pkg', ...}
+});
+
+readPkg(path.join('unicorn', 'package.json')).then(pkg => {
+ console.log(pkg);
+ //=> {name: 'read-pkg', ...}
+});
+```
+
+
+## API
+
+### readPkg([path], [options])
+
+Returns a `Promise` for the parsed JSON.
+
+### readPkg.sync([path], [options])
+
+Returns the parsed JSON.
+
+#### path
+
+Type: `string`<br>
+Default: `.`
+
+Path to a `package.json` file or its directory.
+
+#### options
+
+##### normalize
+
+Type: `boolean`<br>
+Default: `true`
+
+[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
+
+
+## Related
+
+- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file
+- [write-pkg](https://github.com/sindresorhus/write-pkg) - Write a `package.json` file
+- [load-json-file](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/index.js b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/index.js
new file mode 100644
index 000000000..b00feb9a4
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/index.js
@@ -0,0 +1,14 @@
+'use strict';
+module.exports = x => {
+ if (typeof x !== 'string') {
+ throw new TypeError('Expected a string, got ' + typeof x);
+ }
+
+ // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
+ // conversion translates it to FEFF (UTF-16 BOM)
+ if (x.charCodeAt(0) === 0xFEFF) {
+ return x.slice(1);
+ }
+
+ return x;
+};
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/license b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/license
new file mode 100644
index 000000000..654d0bfe9
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/package.json b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/package.json
new file mode 100644
index 000000000..7d73dbf17
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/package.json
@@ -0,0 +1,109 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "strip-bom@^3.0.0",
+ "scope": null,
+ "escapedName": "strip-bom",
+ "name": "strip-bom",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/load-json-file"
+ ]
+ ],
+ "_from": "strip-bom@>=3.0.0 <4.0.0",
+ "_id": "strip-bom@3.0.0",
+ "_inCache": true,
+ "_location": "/yargs/strip-bom",
+ "_nodeVersion": "4.4.2",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/strip-bom-3.0.0.tgz_1462032162626_0.6434765527956188"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "2.15.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "strip-bom@^3.0.0",
+ "scope": null,
+ "escapedName": "strip-bom",
+ "name": "strip-bom",
+ "rawSpec": "^3.0.0",
+ "spec": ">=3.0.0 <4.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs/load-json-file"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "_shasum": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
+ "_shrinkwrap": null,
+ "_spec": "strip-bom@^3.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs/node_modules/load-json-file",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/strip-bom/issues"
+ },
+ "dependencies": {},
+ "description": "Strip UTF-8 byte order mark (BOM) from a string",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
+ "tarball": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "8258d09a069a5d5eb3d787c1d5d29737df1c8bba",
+ "homepage": "https://github.com/sindresorhus/strip-bom#readme",
+ "keywords": [
+ "strip",
+ "bom",
+ "byte",
+ "order",
+ "mark",
+ "unicode",
+ "utf8",
+ "utf-8",
+ "remove",
+ "delete",
+ "trim",
+ "text",
+ "string"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ }
+ ],
+ "name": "strip-bom",
+ "optionalDependencies": {},
+ "readme": "# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)\n\n> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string\n\nFrom Wikipedia:\n\n> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.\n\n\n## Install\n\n```\n$ npm install --save strip-bom\n```\n\n\n## Usage\n\n```js\nconst stripBom = require('strip-bom');\n\nstripBom('\\uFEFFunicorn');\n//=> 'unicorn'\n```\n\n\n## Related\n\n- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module\n- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module\n- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module\n\n\n## License\n\nMIT © [Sindre Sorhus](https://sindresorhus.com)\n",
+ "readmeFilename": "readme.md",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/strip-bom.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0"
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/readme.md b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/readme.md
new file mode 100644
index 000000000..812a98071
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/strip-bom/readme.md
@@ -0,0 +1,36 @@
+# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
+
+> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
+
+From Wikipedia:
+
+> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
+
+
+## Install
+
+```
+$ npm install --save strip-bom
+```
+
+
+## Usage
+
+```js
+const stripBom = require('strip-bom');
+
+stripBom('\uFEFFunicorn');
+//=> 'unicorn'
+```
+
+
+## Related
+
+- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
+- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module
+- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
new file mode 100644
index 000000000..3ad3df821
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
@@ -0,0 +1,223 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/yargs/yargs-parser/compare/v6.0.1...v7.0.0) (2017-05-02)
+
+
+### Chores
+
+* revert populate-- logic ([#91](https://github.com/yargs/yargs-parser/issues/91)) ([6003e6d](https://github.com/yargs/yargs-parser/commit/6003e6d))
+
+
+### BREAKING CHANGES
+
+* populate-- now defaults to false.
+
+
+
+<a name="6.0.1"></a>
+## [6.0.1](https://github.com/yargs/yargs-parser/compare/v6.0.0...v6.0.1) (2017-05-01)
+
+
+### Bug Fixes
+
+* default '--' to undefined when not provided; this is closer to the array API ([#90](https://github.com/yargs/yargs-parser/issues/90)) ([4e739cc](https://github.com/yargs/yargs-parser/commit/4e739cc))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v6.0.0) (2017-05-01)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+* parsing hints should apply for dot notation keys ([#86](https://github.com/yargs/yargs-parser/issues/86)) ([3e47d62](https://github.com/yargs/yargs-parser/commit/3e47d62))
+
+
+### Chores
+
+* upgrade to newest version of camelcase ([#87](https://github.com/yargs/yargs-parser/issues/87)) ([f1903aa](https://github.com/yargs/yargs-parser/commit/f1903aa))
+
+
+### Features
+
+* add -- option which allows arguments after the -- flag to be returned separated from positional arguments ([#84](https://github.com/yargs/yargs-parser/issues/84)) ([2572ca8](https://github.com/yargs/yargs-parser/commit/2572ca8))
+* when parsing stops, we now populate "--" by default ([#88](https://github.com/yargs/yargs-parser/issues/88)) ([cd666db](https://github.com/yargs/yargs-parser/commit/cd666db))
+
+
+### BREAKING CHANGES
+
+* rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
+* camelcase now requires Node 4+.
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+
+
+### BREAKING CHANGES
+
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="4.2.1"></a>
+## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
+
+
+### Bug Fixes
+
+* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0))
+
+
+
+<a name="4.2.0"></a>
+# [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01)
+
+
+### Bug Fixes
+
+* inner objects in configs had their keys appended to top-level key when dot-notation was disabled ([#72](https://github.com/yargs/yargs-parser/issues/72)) ([0b1b5f9](https://github.com/yargs/yargs-parser/commit/0b1b5f9))
+
+
+### Features
+
+* allow multiple arrays to be provided, rather than always combining ([#71](https://github.com/yargs/yargs-parser/issues/71)) ([0f0fb2d](https://github.com/yargs/yargs-parser/commit/0f0fb2d))
+
+
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/yargs/yargs-parser/compare/v4.0.2...v4.1.0) (2016-11-07)
+
+
+### Features
+
+* apply coercions to default options ([#65](https://github.com/yargs/yargs-parser/issues/65)) ([c79052b](https://github.com/yargs/yargs-parser/commit/c79052b))
+* handle dot notation boolean options ([#63](https://github.com/yargs/yargs-parser/issues/63)) ([02c3545](https://github.com/yargs/yargs-parser/commit/02c3545))
+
+
+
+<a name="4.0.2"></a>
+## [4.0.2](https://github.com/yargs/yargs-parser/compare/v4.0.1...v4.0.2) (2016-09-30)
+
+
+### Bug Fixes
+
+* whoops, let's make the assign not change the Object key order ([29d069a](https://github.com/yargs/yargs-parser/commit/29d069a))
+
+
+
+<a name="4.0.1"></a>
+## [4.0.1](https://github.com/yargs/yargs-parser/compare/v4.0.0...v4.0.1) (2016-09-30)
+
+
+### Bug Fixes
+
+* lodash.assign was deprecated ([#59](https://github.com/yargs/yargs-parser/issues/59)) ([5e7eb11](https://github.com/yargs/yargs-parser/commit/5e7eb11))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/yargs-parser/compare/v3.2.0...v4.0.0) (2016-09-26)
+
+
+### Bug Fixes
+
+* coerce should be applied to the final objects and arrays created ([#57](https://github.com/yargs/yargs-parser/issues/57)) ([4ca69da](https://github.com/yargs/yargs-parser/commit/4ca69da))
+
+
+### BREAKING CHANGES
+
+* coerce is no longer applied to individual arguments in an implicit array.
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/yargs/yargs-parser/compare/v3.1.0...v3.2.0) (2016-08-13)
+
+
+### Features
+
+* coerce full array instead of each element ([#51](https://github.com/yargs/yargs-parser/issues/51)) ([cc4dc56](https://github.com/yargs/yargs-parser/commit/cc4dc56))
+
+
+
+<a name="3.1.0"></a>
+# [3.1.0](https://github.com/yargs/yargs-parser/compare/v3.0.0...v3.1.0) (2016-08-09)
+
+
+### Bug Fixes
+
+* address pkgConf parsing bug outlined in [#37](https://github.com/yargs/yargs-parser/issues/37) ([#45](https://github.com/yargs/yargs-parser/issues/45)) ([be76ee6](https://github.com/yargs/yargs-parser/commit/be76ee6))
+* better parsing of negative values ([#44](https://github.com/yargs/yargs-parser/issues/44)) ([2e43692](https://github.com/yargs/yargs-parser/commit/2e43692))
+* check aliases when guessing defaults for arguments fixes [#41](https://github.com/yargs/yargs-parser/issues/41) ([#43](https://github.com/yargs/yargs-parser/issues/43)) ([f3e4616](https://github.com/yargs/yargs-parser/commit/f3e4616))
+
+
+### Features
+
+* added coerce option, for providing specialized argument parsing ([#42](https://github.com/yargs/yargs-parser/issues/42)) ([7b49cd2](https://github.com/yargs/yargs-parser/commit/7b49cd2))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/yargs/yargs-parser/compare/v2.4.1...v3.0.0) (2016-08-07)
+
+
+### Bug Fixes
+
+* parsing issue with numeric character in group of options ([#19](https://github.com/yargs/yargs-parser/issues/19)) ([f743236](https://github.com/yargs/yargs-parser/commit/f743236))
+* upgraded lodash.assign ([5d7fdf4](https://github.com/yargs/yargs-parser/commit/5d7fdf4))
+
+### BREAKING CHANGES
+
+* subtle change to how values are parsed in a group of single-character arguments.
+* _first released in 3.1.0, better handling of negative values should be considered a breaking change._
+
+
+
+<a name="2.4.1"></a>
+## [2.4.1](https://github.com/yargs/yargs-parser/compare/v2.4.0...v2.4.1) (2016-07-16)
+
+
+### Bug Fixes
+
+* **count:** do not increment a default value ([#39](https://github.com/yargs/yargs-parser/issues/39)) ([b04a189](https://github.com/yargs/yargs-parser/commit/b04a189))
+
+
+
+<a name="2.4.0"></a>
+# [2.4.0](https://github.com/yargs/yargs-parser/compare/v2.3.0...v2.4.0) (2016-04-11)
+
+
+### Features
+
+* **environment:** Support nested options in environment variables ([#26](https://github.com/yargs/yargs-parser/issues/26)) thanks [@elas7](https://github.com/elas7) \o/ ([020778b](https://github.com/yargs/yargs-parser/commit/020778b))
+
+
+
+<a name="2.3.0"></a>
+# [2.3.0](https://github.com/yargs/yargs-parser/compare/v2.2.0...v2.3.0) (2016-04-09)
+
+
+### Bug Fixes
+
+* **boolean:** fix for boolean options with non boolean defaults (#20) ([2dbe86b](https://github.com/yargs/yargs-parser/commit/2dbe86b)), closes [(#20](https://github.com/(/issues/20)
+* **package:** remove tests from tarball ([0353c0d](https://github.com/yargs/yargs-parser/commit/0353c0d))
+* **parsing:** handle calling short option with an empty string as the next value. ([a867165](https://github.com/yargs/yargs-parser/commit/a867165))
+* boolean flag when next value contains the strings 'true' or 'false'. ([69941a6](https://github.com/yargs/yargs-parser/commit/69941a6))
+* update dependencies; add standard-version bin for next release (#24) ([822d9d5](https://github.com/yargs/yargs-parser/commit/822d9d5))
+
+### Features
+
+* **configuration:** Allow to pass configuration objects to yargs-parser ([0780900](https://github.com/yargs/yargs-parser/commit/0780900))
+* **normalize:** allow normalize to work with arrays ([e0eaa1a](https://github.com/yargs/yargs-parser/commit/e0eaa1a))
diff --git a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/LICENSE.txt b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
index c7e27478a..836440bef 100644
--- a/node_modules/nyc/node_modules/spawn-wrap/node_modules/signal-exit/LICENSE.txt
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2015, Contributors
+Copyright (c) 2016, Contributors
Permission to use, copy, modify, and/or distribute this software
for any purpose with or without fee is hereby granted, provided
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/README.md b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/README.md
new file mode 100644
index 000000000..d1817fccc
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/README.md
@@ -0,0 +1,281 @@
+# yargs-parser
+
+[![Build Status](https://travis-ci.org/yargs/yargs-parser.png)](https://travis-ci.org/yargs/yargs-parser)
+[![Coverage Status](https://coveralls.io/repos/yargs/yargs-parser/badge.svg?branch=)](https://coveralls.io/r/yargs/yargs-parser?branch=master)
+[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser)
+[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/yargs-parser/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/yargs-parser)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
+
+
+The mighty option parser used by [yargs](https://github.com/yargs/yargs).
+
+visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.
+
+<img width="250" src="https://raw.githubusercontent.com/yargs/yargs-parser/master/yargs-logo.png">
+
+## Example
+
+```sh
+npm i yargs-parser --save
+```
+
+```js
+var argv = require('yargs-parser')(process.argv.slice(2))
+console.log(argv)
+```
+
+```sh
+node example.js --foo=33 --bar hello
+{ _: [], foo: 33, bar: 'hello' }
+```
+
+_or parse a string!_
+
+```js
+var argv = require('./')('--foo=99 --bar=33')
+console.log(argv)
+```
+
+```sh
+{ _: [], foo: 99, bar: 33 }
+```
+
+Convert an array of mixed types before passing to `yargs-parser`:
+
+```js
+var parse = require('yargs-parser')
+parse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string
+parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings
+```
+
+## API
+
+### require('yargs-parser')(args, opts={})
+
+Parses command line arguments returning a simple mapping of keys and values.
+
+**expects:**
+
+* `args`: a string or array of strings representing the options to parse.
+* `opts`: provide a set of hints indicating how `args` should be parsed:
+ * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`.
+ * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.
+ * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`.
+ * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).
+ * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided
+ (or throws an error), e.g. `{coerce: {foo: function (arg) {return modifiedArg}}}`.
+ * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`.
+ * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`.
+ * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed.
+ * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`.
+ * `opts.normalize`: `path.normalize()` will be applied to values set to this key.
+ * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`).
+ * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)).
+ * `opts.number`: keys should be treated as numbers.
+ * `opts['--']`: arguments after the end-of-options flag `--` will be set to the `argv.['--']` array instead of being set to the `argv._` array.
+
+**returns:**
+
+* `obj`: an object representing the parsed value of `args`
+ * `key/value`: key value pairs for each argument and their aliases.
+ * `_`: an array representing the positional arguments.
+ * [optional] `--`: an array with arguments after the end-of-options flag `--`.
+
+### require('yargs-parser').detailed(args, opts={})
+
+Parses a command line string, returning detailed information required by the
+yargs engine.
+
+**expects:**
+
+* `args`: a string or array of strings representing options to parse.
+* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`.
+
+**returns:**
+
+* `argv`: an object representing the parsed value of `args`
+ * `key/value`: key value pairs for each argument and their aliases.
+ * `_`: an array representing the positional arguments.
+* `error`: populated with an error object if an exception occurred during parsing.
+* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`.
+* `newAliases`: any new aliases added via camel-case expansion.
+* `configuration`: the configuration loaded from the `yargs` stanza in package.json.
+
+<a name="configuration"></a>
+
+### Configuration
+
+The yargs-parser applies several automated transformations on the keys provided
+in `args`. These features can be turned on and off using the `configuration` field
+of `opts`.
+
+```js
+var parsed = parser(['--no-dice'], {
+ configuration: {
+ 'boolean-negation': false
+ }
+})
+```
+
+### short option groups
+
+* default: `true`.
+* key: `short-option-groups`.
+
+Should a group of short-options be treated as boolean flags?
+
+```sh
+node example.js -abc
+{ _: [], a: true, b: true, c: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js -abc
+{ _: [], abc: true }
+```
+
+### camel-case expansion
+
+* default: `true`.
+* key: `camel-case-expansion`.
+
+Should hyphenated arguments be expanded into camel-case aliases?
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true, fooBar: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true }
+```
+
+### dot-notation
+
+* default: `true`
+* key: `dot-notation`
+
+Should keys that contain `.` be treated as objects?
+
+```sh
+node example.js --foo.bar
+{ _: [], foo: { bar: true } }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo.bar
+{ _: [], "foo.bar": true }
+```
+
+### parse numbers
+
+* default: `true`
+* key: `parse-numbers`
+
+Should keys that look like numbers be treated as such?
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: 99.3 }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: "99.3" }
+```
+
+### boolean negation
+
+* default: `true`
+* key: `boolean-negation`
+
+Should variables prefixed with `--no` be treated as negations?
+
+```sh
+node example.js --no-foo
+{ _: [], foo: false }
+```
+
+_if disabled:_
+
+```sh
+node example.js --no-foo
+{ _: [], "no-foo": true }
+```
+
+### duplicate arguments array
+
+* default: `true`
+* key: `duplicate-arguments-array`
+
+Should arguments be coerced into an array when duplicated:
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: [1, 2] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: 2 }
+```
+
+### flatten duplicate arrays
+
+* default: `true`
+* key: `flatten-duplicate-arrays`
+
+Should array arguments be coerced into a single array when duplicated:
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [1, 2, 3, 4] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [[1, 2], [3, 4]] }
+```
+
+### populate --
+
+* default: `false`.
+* key: `populate--`
+
+Should unparsed flags be stored in `--` or `_`.
+
+_If disabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a', 'x', 'y' ], b: true }
+```
+
+_If enabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true }
+```
+
+## Special Thanks
+
+The yargs project evolves from optimist and minimist. It owes its
+existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/
+
+## License
+
+ISC
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/index.js b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/index.js
new file mode 100644
index 000000000..73154066f
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/index.js
@@ -0,0 +1,764 @@
+var camelCase = require('camelcase')
+var path = require('path')
+var tokenizeArgString = require('./lib/tokenize-arg-string')
+var util = require('util')
+
+function parse (args, opts) {
+ if (!opts) opts = {}
+ // allow a string argument to be passed in rather
+ // than an argv array.
+ args = tokenizeArgString(args)
+ // aliases might have transitive relationships, normalize this.
+ var aliases = combineAliases(opts.alias || {})
+ var configuration = assign({
+ 'short-option-groups': true,
+ 'camel-case-expansion': true,
+ 'dot-notation': true,
+ 'parse-numbers': true,
+ 'boolean-negation': true,
+ 'duplicate-arguments-array': true,
+ 'flatten-duplicate-arrays': true,
+ 'populate--': false
+ }, opts.configuration)
+ var defaults = opts.default || {}
+ var configObjects = opts.configObjects || []
+ var envPrefix = opts.envPrefix
+ var notFlagsOption = configuration['populate--']
+ var notFlagsArgv = notFlagsOption ? '--' : '_'
+ var newAliases = {}
+ // allow a i18n handler to be passed in, default to a fake one (util.format).
+ var __ = opts.__ || function (str) {
+ return util.format.apply(util, Array.prototype.slice.call(arguments))
+ }
+ var error = null
+ var flags = {
+ aliases: {},
+ arrays: {},
+ bools: {},
+ strings: {},
+ numbers: {},
+ counts: {},
+ normalize: {},
+ configs: {},
+ defaulted: {},
+ nargs: {},
+ coercions: {}
+ }
+ var negative = /^-[0-9]+(\.[0-9]+)?/
+
+ ;[].concat(opts.array).filter(Boolean).forEach(function (key) {
+ flags.arrays[key] = true
+ })
+
+ ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
+ flags.bools[key] = true
+ })
+
+ ;[].concat(opts.string).filter(Boolean).forEach(function (key) {
+ flags.strings[key] = true
+ })
+
+ ;[].concat(opts.number).filter(Boolean).forEach(function (key) {
+ flags.numbers[key] = true
+ })
+
+ ;[].concat(opts.count).filter(Boolean).forEach(function (key) {
+ flags.counts[key] = true
+ })
+
+ ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) {
+ flags.normalize[key] = true
+ })
+
+ Object.keys(opts.narg || {}).forEach(function (k) {
+ flags.nargs[k] = opts.narg[k]
+ })
+
+ Object.keys(opts.coerce || {}).forEach(function (k) {
+ flags.coercions[k] = opts.coerce[k]
+ })
+
+ if (Array.isArray(opts.config) || typeof opts.config === 'string') {
+ ;[].concat(opts.config).filter(Boolean).forEach(function (key) {
+ flags.configs[key] = true
+ })
+ } else {
+ Object.keys(opts.config || {}).forEach(function (k) {
+ flags.configs[k] = opts.config[k]
+ })
+ }
+
+ // create a lookup table that takes into account all
+ // combinations of aliases: {f: ['foo'], foo: ['f']}
+ extendAliases(opts.key, aliases, opts.default, flags.arrays)
+
+ // apply default values to all aliases.
+ Object.keys(defaults).forEach(function (key) {
+ (flags.aliases[key] || []).forEach(function (alias) {
+ defaults[alias] = defaults[key]
+ })
+ })
+
+ var argv = { _: [] }
+
+ Object.keys(flags.bools).forEach(function (key) {
+ setArg(key, !(key in defaults) ? false : defaults[key])
+ setDefaulted(key)
+ })
+
+ var notFlags = []
+ if (args.indexOf('--') !== -1) {
+ notFlags = args.slice(args.indexOf('--') + 1)
+ args = args.slice(0, args.indexOf('--'))
+ }
+
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i]
+ var broken
+ var key
+ var letters
+ var m
+ var next
+ var value
+
+ // -- seperated by =
+ if (arg.match(/^--.+=/) || (
+ !configuration['short-option-groups'] && arg.match(/^-.+=/)
+ )) {
+ // Using [\s\S] instead of . because js doesn't support the
+ // 'dotall' regex modifier. See:
+ // http://stackoverflow.com/a/1068308/13216
+ m = arg.match(/^--?([^=]+)=([\s\S]*)$/)
+
+ // nargs format = '--f=monkey washing cat'
+ if (checkAllAliases(m[1], flags.nargs)) {
+ args.splice(i + 1, 0, m[2])
+ i = eatNargs(i, m[1], args)
+ // arrays format = '--f=a b c'
+ } else if (checkAllAliases(m[1], flags.arrays) && args.length > i + 1) {
+ args.splice(i + 1, 0, m[2])
+ i = eatArray(i, m[1], args)
+ } else {
+ setArg(m[1], m[2])
+ }
+ } else if (arg.match(/^--no-.+/) && configuration['boolean-negation']) {
+ key = arg.match(/^--no-(.+)/)[1]
+ setArg(key, false)
+
+ // -- seperated by space.
+ } else if (arg.match(/^--.+/) || (
+ !configuration['short-option-groups'] && arg.match(/^-.+/)
+ )) {
+ key = arg.match(/^--?(.+)/)[1]
+
+ // nargs format = '--foo a b c'
+ if (checkAllAliases(key, flags.nargs)) {
+ i = eatNargs(i, key, args)
+ // array format = '--foo a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ i = eatArray(i, key, args)
+ } else {
+ next = args[i + 1]
+
+ if (next !== undefined && (!next.match(/^-/) ||
+ next.match(negative)) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else if (/^(true|false)$/.test(next)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ }
+
+ // dot-notation flag seperated by '='.
+ } else if (arg.match(/^-.\..+=/)) {
+ m = arg.match(/^-([^=]+)=([\s\S]*)$/)
+ setArg(m[1], m[2])
+
+ // dot-notation flag seperated by space.
+ } else if (arg.match(/^-.\..+/)) {
+ next = args[i + 1]
+ key = arg.match(/^-(.\..+)/)[1]
+
+ if (next !== undefined && !next.match(/^-/) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
+ letters = arg.slice(1, -1).split('')
+ broken = false
+
+ for (var j = 0; j < letters.length; j++) {
+ next = arg.slice(j + 2)
+
+ if (letters[j + 1] && letters[j + 1] === '=') {
+ value = arg.slice(j + 3)
+ key = letters[j]
+
+ // nargs format = '-f=monkey washing cat'
+ if (checkAllAliases(key, flags.nargs)) {
+ args.splice(i + 1, 0, value)
+ i = eatNargs(i, key, args)
+ // array format = '-f=a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ args.splice(i + 1, 0, value)
+ i = eatArray(i, key, args)
+ } else {
+ setArg(key, value)
+ }
+
+ broken = true
+ break
+ }
+
+ if (next === '-') {
+ setArg(letters[j], next)
+ continue
+ }
+
+ // current letter is an alphabetic character and next value is a number
+ if (/[A-Za-z]/.test(letters[j]) &&
+ /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
+ setArg(letters[j], next)
+ broken = true
+ break
+ }
+
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
+ setArg(letters[j], next)
+ broken = true
+ break
+ } else {
+ setArg(letters[j], defaultForType(guessType(letters[j], flags)))
+ }
+ }
+
+ key = arg.slice(-1)[0]
+
+ if (!broken && key !== '-') {
+ // nargs format = '-f a b c'
+ if (checkAllAliases(key, flags.nargs)) {
+ i = eatNargs(i, key, args)
+ // array format = '-f a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ i = eatArray(i, key, args)
+ } else {
+ next = args[i + 1]
+
+ if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
+ next.match(negative)) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else if (/^(true|false)$/.test(next)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ }
+ }
+ } else {
+ argv._.push(
+ flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
+ )
+ }
+ }
+
+ // order of precedence:
+ // 1. command line arg
+ // 2. value from env var
+ // 3. value from config file
+ // 4. value from config objects
+ // 5. configured default value
+ applyEnvVars(argv, true) // special case: check env vars that point to config file
+ applyEnvVars(argv, false)
+ setConfig(argv)
+ setConfigObjects()
+ applyDefaultsAndAliases(argv, flags.aliases, defaults)
+ applyCoercions(argv)
+
+ // for any counts either not in args or without an explicit default, set to 0
+ Object.keys(flags.counts).forEach(function (key) {
+ if (!hasKey(argv, key.split('.'))) setArg(key, 0)
+ })
+
+ // '--' defaults to undefined.
+ if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []
+ notFlags.forEach(function (key) {
+ argv[notFlagsArgv].push(key)
+ })
+
+ // how many arguments should we consume, based
+ // on the nargs option?
+ function eatNargs (i, key, args) {
+ var toEat = checkAllAliases(key, flags.nargs)
+
+ if (args.length - (i + 1) < toEat) error = Error(__('Not enough arguments following: %s', key))
+
+ for (var ii = i + 1; ii < (toEat + i + 1); ii++) {
+ setArg(key, args[ii])
+ }
+
+ return (i + toEat)
+ }
+
+ // if an option is an array, eat all non-hyphenated arguments
+ // following it... YUM!
+ // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"]
+ function eatArray (i, key, args) {
+ var start = i + 1
+ var argsToSet = []
+ var multipleArrayFlag = i > 0
+ for (var ii = i + 1; ii < args.length; ii++) {
+ if (/^-/.test(args[ii]) && !negative.test(args[ii])) {
+ if (ii === start) {
+ setArg(key, defaultForType('array'))
+ }
+ multipleArrayFlag = true
+ break
+ }
+ i = ii
+ argsToSet.push(args[ii])
+ }
+ if (multipleArrayFlag) {
+ setArg(key, argsToSet.map(function (arg) {
+ return processValue(key, arg)
+ }))
+ } else {
+ argsToSet.forEach(function (arg) {
+ setArg(key, arg)
+ })
+ }
+
+ return i
+ }
+
+ function setArg (key, val) {
+ unsetDefaulted(key)
+
+ if (/-/.test(key) && !(flags.aliases[key] && flags.aliases[key].length) && configuration['camel-case-expansion']) {
+ var c = camelCase(key)
+ flags.aliases[key] = [c]
+ newAliases[c] = true
+ }
+
+ var value = processValue(key, val)
+
+ var splitKey = key.split('.')
+ setKey(argv, splitKey, value)
+
+ // handle populating aliases of the full key
+ if (flags.aliases[key]) {
+ flags.aliases[key].forEach(function (x) {
+ x = x.split('.')
+ setKey(argv, x, value)
+ })
+ }
+
+ // handle populating aliases of the first element of the dot-notation key
+ if (splitKey.length > 1 && configuration['dot-notation']) {
+ ;(flags.aliases[splitKey[0]] || []).forEach(function (x) {
+ x = x.split('.')
+
+ // expand alias with nested objects in key
+ var a = [].concat(splitKey)
+ a.shift() // nuke the old key.
+ x = x.concat(a)
+
+ setKey(argv, x, value)
+ })
+ }
+
+ // Set normalize getter and setter when key is in 'normalize' but isn't an array
+ if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
+ var keys = [key].concat(flags.aliases[key] || [])
+ keys.forEach(function (key) {
+ argv.__defineSetter__(key, function (v) {
+ val = path.normalize(v)
+ })
+
+ argv.__defineGetter__(key, function () {
+ return typeof val === 'string' ? path.normalize(val) : val
+ })
+ })
+ }
+ }
+
+ function processValue (key, val) {
+ // handle parsing boolean arguments --foo=true --bar false.
+ if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
+ if (typeof val === 'string') val = val === 'true'
+ }
+
+ var value = val
+ if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) {
+ if (isNumber(val)) value = Number(val)
+ if (!isUndefined(val) && !isNumber(val) && checkAllAliases(key, flags.numbers)) value = NaN
+ }
+
+ // increment a count given as arg (either no value or value parsed as boolean)
+ if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
+ value = increment
+ }
+
+ // Set normalized value when key is in 'normalize' and in 'arrays'
+ if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
+ if (Array.isArray(val)) value = val.map(path.normalize)
+ else value = path.normalize(val)
+ }
+ return value
+ }
+
+ // set args from config.json file, this should be
+ // applied last so that defaults can be applied.
+ function setConfig (argv) {
+ var configLookup = {}
+
+ // expand defaults/aliases, in-case any happen to reference
+ // the config.json file.
+ applyDefaultsAndAliases(configLookup, flags.aliases, defaults)
+
+ Object.keys(flags.configs).forEach(function (configKey) {
+ var configPath = argv[configKey] || configLookup[configKey]
+ if (configPath) {
+ try {
+ var config = null
+ var resolvedConfigPath = path.resolve(process.cwd(), configPath)
+
+ if (typeof flags.configs[configKey] === 'function') {
+ try {
+ config = flags.configs[configKey](resolvedConfigPath)
+ } catch (e) {
+ config = e
+ }
+ if (config instanceof Error) {
+ error = config
+ return
+ }
+ } else {
+ config = require(resolvedConfigPath)
+ }
+
+ setConfigObject(config)
+ } catch (ex) {
+ if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath))
+ }
+ }
+ })
+ }
+
+ // set args from config object.
+ // it recursively checks nested objects.
+ function setConfigObject (config, prev) {
+ Object.keys(config).forEach(function (key) {
+ var value = config[key]
+ var fullKey = prev ? prev + '.' + key : key
+
+ // if the value is an inner object and we have dot-notation
+ // enabled, treat inner objects in config the same as
+ // heavily nested dot notations (foo.bar.apple).
+ if (typeof value === 'object' && !Array.isArray(value) && configuration['dot-notation']) {
+ // if the value is an object but not an array, check nested object
+ setConfigObject(value, fullKey)
+ } else {
+ // setting arguments via CLI takes precedence over
+ // values within the config file.
+ if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey])) {
+ setArg(fullKey, value)
+ }
+ }
+ })
+ }
+
+ // set all config objects passed in opts
+ function setConfigObjects () {
+ if (typeof configObjects === 'undefined') return
+ configObjects.forEach(function (configObject) {
+ setConfigObject(configObject)
+ })
+ }
+
+ function applyEnvVars (argv, configOnly) {
+ if (typeof envPrefix === 'undefined') return
+
+ var prefix = typeof envPrefix === 'string' ? envPrefix : ''
+ Object.keys(process.env).forEach(function (envVar) {
+ if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
+ // get array of nested keys and convert them to camel case
+ var keys = envVar.split('__').map(function (key, i) {
+ if (i === 0) {
+ key = key.substring(prefix.length)
+ }
+ return camelCase(key)
+ })
+
+ if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && (!hasKey(argv, keys) || flags.defaulted[keys.join('.')])) {
+ setArg(keys.join('.'), process.env[envVar])
+ }
+ }
+ })
+ }
+
+ function applyCoercions (argv) {
+ var coerce
+ Object.keys(argv).forEach(function (key) {
+ coerce = checkAllAliases(key, flags.coercions)
+ if (typeof coerce === 'function') {
+ try {
+ argv[key] = coerce(argv[key])
+ } catch (err) {
+ error = err
+ }
+ }
+ })
+ }
+
+ function applyDefaultsAndAliases (obj, aliases, defaults) {
+ Object.keys(defaults).forEach(function (key) {
+ if (!hasKey(obj, key.split('.'))) {
+ setKey(obj, key.split('.'), defaults[key])
+
+ ;(aliases[key] || []).forEach(function (x) {
+ if (hasKey(obj, x.split('.'))) return
+ setKey(obj, x.split('.'), defaults[key])
+ })
+ }
+ })
+ }
+
+ function hasKey (obj, keys) {
+ var o = obj
+
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+ keys.slice(0, -1).forEach(function (key) {
+ o = (o[key] || {})
+ })
+
+ var key = keys[keys.length - 1]
+
+ if (typeof o !== 'object') return false
+ else return key in o
+ }
+
+ function setKey (obj, keys, value) {
+ var o = obj
+
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+ keys.slice(0, -1).forEach(function (key) {
+ if (o[key] === undefined) o[key] = {}
+ o = o[key]
+ })
+
+ var key = keys[keys.length - 1]
+
+ var isTypeArray = checkAllAliases(keys.join('.'), flags.arrays)
+ var isValueArray = Array.isArray(value)
+ var duplicate = configuration['duplicate-arguments-array']
+
+ if (value === increment) {
+ o[key] = increment(o[key])
+ } else if (Array.isArray(o[key])) {
+ if (duplicate && isTypeArray && isValueArray) {
+ o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : [o[key]].concat([value])
+ } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
+ o[key] = value
+ } else {
+ o[key] = o[key].concat([value])
+ }
+ } else if (o[key] === undefined && isTypeArray) {
+ o[key] = isValueArray ? value : [value]
+ } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) {
+ o[key] = [ o[key], value ]
+ } else {
+ o[key] = value
+ }
+ }
+
+ // extend the aliases list with inferred aliases.
+ function extendAliases () {
+ Array.prototype.slice.call(arguments).forEach(function (obj) {
+ Object.keys(obj || {}).forEach(function (key) {
+ // short-circuit if we've already added a key
+ // to the aliases array, for example it might
+ // exist in both 'opts.default' and 'opts.key'.
+ if (flags.aliases[key]) return
+
+ flags.aliases[key] = [].concat(aliases[key] || [])
+ // For "--option-name", also set argv.optionName
+ flags.aliases[key].concat(key).forEach(function (x) {
+ if (/-/.test(x) && configuration['camel-case-expansion']) {
+ var c = camelCase(x)
+ flags.aliases[key].push(c)
+ newAliases[c] = true
+ }
+ })
+ flags.aliases[key].forEach(function (x) {
+ flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
+ return x !== y
+ }))
+ })
+ })
+ })
+ }
+
+ // check if a flag is set for any of a key's aliases.
+ function checkAllAliases (key, flag) {
+ var isSet = false
+ var toCheck = [].concat(flags.aliases[key] || [], key)
+
+ toCheck.forEach(function (key) {
+ if (flag[key]) isSet = flag[key]
+ })
+
+ return isSet
+ }
+
+ function setDefaulted (key) {
+ [].concat(flags.aliases[key] || [], key).forEach(function (k) {
+ flags.defaulted[k] = true
+ })
+ }
+
+ function unsetDefaulted (key) {
+ [].concat(flags.aliases[key] || [], key).forEach(function (k) {
+ delete flags.defaulted[k]
+ })
+ }
+
+ // return a default value, given the type of a flag.,
+ // e.g., key of type 'string' will default to '', rather than 'true'.
+ function defaultForType (type) {
+ var def = {
+ boolean: true,
+ string: '',
+ number: undefined,
+ array: []
+ }
+
+ return def[type]
+ }
+
+ // given a flag, enforce a default type.
+ function guessType (key, flags) {
+ var type = 'boolean'
+
+ if (checkAllAliases(key, flags.strings)) type = 'string'
+ else if (checkAllAliases(key, flags.numbers)) type = 'number'
+ else if (checkAllAliases(key, flags.arrays)) type = 'array'
+
+ return type
+ }
+
+ function isNumber (x) {
+ if (!configuration['parse-numbers']) return false
+ if (typeof x === 'number') return true
+ if (/^0x[0-9a-f]+$/i.test(x)) return true
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x)
+ }
+
+ function isUndefined (num) {
+ return num === undefined
+ }
+
+ return {
+ argv: argv,
+ error: error,
+ aliases: flags.aliases,
+ newAliases: newAliases,
+ configuration: configuration
+ }
+}
+
+// if any aliases reference each other, we should
+// merge them together.
+function combineAliases (aliases) {
+ var aliasArrays = []
+ var change = true
+ var combined = {}
+
+ // turn alias lookup hash {key: ['alias1', 'alias2']} into
+ // a simple array ['key', 'alias1', 'alias2']
+ Object.keys(aliases).forEach(function (key) {
+ aliasArrays.push(
+ [].concat(aliases[key], key)
+ )
+ })
+
+ // combine arrays until zero changes are
+ // made in an iteration.
+ while (change) {
+ change = false
+ for (var i = 0; i < aliasArrays.length; i++) {
+ for (var ii = i + 1; ii < aliasArrays.length; ii++) {
+ var intersect = aliasArrays[i].filter(function (v) {
+ return aliasArrays[ii].indexOf(v) !== -1
+ })
+
+ if (intersect.length) {
+ aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii])
+ aliasArrays.splice(ii, 1)
+ change = true
+ break
+ }
+ }
+ }
+ }
+
+ // map arrays back to the hash-lookup (de-dupe while
+ // we're at it).
+ aliasArrays.forEach(function (aliasArray) {
+ aliasArray = aliasArray.filter(function (v, i, self) {
+ return self.indexOf(v) === i
+ })
+ combined[aliasArray.pop()] = aliasArray
+ })
+
+ return combined
+}
+
+function assign (defaults, configuration) {
+ var o = {}
+ configuration = configuration || {}
+
+ Object.keys(defaults).forEach(function (k) {
+ o[k] = defaults[k]
+ })
+ Object.keys(configuration).forEach(function (k) {
+ o[k] = configuration[k]
+ })
+
+ return o
+}
+
+// this function should only be called when a count is given as an arg
+// it is NOT called to set a default value
+// thus we can start the count at 1 instead of 0
+function increment (orig) {
+ return orig !== undefined ? orig + 1 : 1
+}
+
+function Parser (args, opts) {
+ var result = parse(args.slice(), opts)
+
+ return result.argv
+}
+
+// parse arguments and return detailed
+// meta information, aliases, etc.
+Parser.detailed = function (args, opts) {
+ return parse(args.slice(), opts)
+}
+
+module.exports = Parser
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
new file mode 100644
index 000000000..23d39e1fe
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
@@ -0,0 +1,34 @@
+// take an un-split argv string and tokenize it.
+module.exports = function (argString) {
+ if (Array.isArray(argString)) return argString
+
+ var i = 0
+ var c = null
+ var opening = null
+ var args = []
+
+ for (var ii = 0; ii < argString.length; ii++) {
+ c = argString.charAt(ii)
+
+ // split on spaces unless we're in quotes.
+ if (c === ' ' && !opening) {
+ i++
+ continue
+ }
+
+ // don't split the string if we're in matching
+ // opening or closing single and double quotes.
+ if (c === opening) {
+ opening = null
+ continue
+ } else if ((c === "'" || c === '"') && !opening) {
+ opening = c
+ continue
+ }
+
+ if (!args[i]) args[i] = ''
+ args[i] += c
+ }
+
+ return args
+}
diff --git a/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/package.json b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/package.json
new file mode 100644
index 000000000..95fc04eed
--- /dev/null
+++ b/node_modules/nyc/node_modules/yargs/node_modules/yargs-parser/package.json
@@ -0,0 +1,115 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "yargs-parser@^7.0.0",
+ "scope": null,
+ "escapedName": "yargs-parser",
+ "name": "yargs-parser",
+ "rawSpec": "^7.0.0",
+ "spec": ">=7.0.0 <8.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc/node_modules/yargs"
+ ]
+ ],
+ "_from": "yargs-parser@>=7.0.0 <8.0.0",
+ "_id": "yargs-parser@7.0.0",
+ "_inCache": true,
+ "_location": "/yargs/yargs-parser",
+ "_nodeVersion": "7.9.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/yargs-parser-7.0.0.tgz_1493704782540_0.1645174971781671"
+ },
+ "_npmUser": {
+ "name": "bcoe",
+ "email": "ben@npmjs.com"
+ },
+ "_npmVersion": "4.2.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "yargs-parser@^7.0.0",
+ "scope": null,
+ "escapedName": "yargs-parser",
+ "name": "yargs-parser",
+ "rawSpec": "^7.0.0",
+ "spec": ">=7.0.0 <8.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
+ "_shasum": "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9",
+ "_shrinkwrap": null,
+ "_spec": "yargs-parser@^7.0.0",
+ "_where": "/Users/benjamincoe/bcoe/nyc/node_modules/yargs",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/yargs-parser/issues"
+ },
+ "dependencies": {
+ "camelcase": "^4.1.0"
+ },
+ "description": "the mighty option parser used by yargs",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.12",
+ "mocha": "^3.0.1",
+ "nyc": "^10.0.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9",
+ "tarball": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz"
+ },
+ "files": [
+ "lib",
+ "index.js"
+ ],
+ "gitHead": "8ae91cddffc69f535e1d9ad1ce321444be84a483",
+ "homepage": "https://github.com/yargs/yargs-parser#readme",
+ "keywords": [
+ "argument",
+ "parser",
+ "yargs",
+ "command",
+ "cli",
+ "parsing",
+ "option",
+ "args",
+ "argument"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "bcoe",
+ "email": "ben@npmjs.com"
+ },
+ {
+ "name": "nexdrew",
+ "email": "andrew@npmjs.com"
+ }
+ ],
+ "name": "yargs-parser",
+ "optionalDependencies": {},
+ "readme": "# yargs-parser\n\n[![Build Status](https://travis-ci.org/yargs/yargs-parser.png)](https://travis-ci.org/yargs/yargs-parser)\n[![Coverage Status](https://coveralls.io/repos/yargs/yargs-parser/badge.svg?branch=)](https://coveralls.io/r/yargs/yargs-parser?branch=master)\n[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser)\n[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/yargs-parser/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/yargs-parser)\n[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)\n\n\nThe mighty option parser used by [yargs](https://github.com/yargs/yargs).\n\nvisit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.\n\n<img width=\"250\" src=\"https://raw.githubusercontent.com/yargs/yargs-parser/master/yargs-logo.png\">\n\n## Example\n\n```sh\nnpm i yargs-parser --save\n```\n\n```js\nvar argv = require('yargs-parser')(process.argv.slice(2))\nconsole.log(argv)\n```\n\n```sh\nnode example.js --foo=33 --bar hello\n{ _: [], foo: 33, bar: 'hello' }\n```\n\n_or parse a string!_\n\n```js\nvar argv = require('./')('--foo=99 --bar=33')\nconsole.log(argv)\n```\n\n```sh\n{ _: [], foo: 99, bar: 33 }\n```\n\nConvert an array of mixed types before passing to `yargs-parser`:\n\n```js\nvar parse = require('yargs-parser')\nparse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string\nparse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings\n```\n\n## API\n\n### require('yargs-parser')(args, opts={})\n\nParses command line arguments returning a simple mapping of keys and values.\n\n**expects:**\n\n* `args`: a string or array of strings representing the options to parse.\n* `opts`: provide a set of hints indicating how `args` should be parsed:\n * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`.\n * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.\n * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`.\n * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).\n * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided\n (or throws an error), e.g. `{coerce: {foo: function (arg) {return modifiedArg}}}`.\n * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`.\n * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`.\n * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed.\n * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`.\n * `opts.normalize`: `path.normalize()` will be applied to values set to this key.\n * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`).\n * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)).\n * `opts.number`: keys should be treated as numbers.\n * `opts['--']`: arguments after the end-of-options flag `--` will be set to the `argv.['--']` array instead of being set to the `argv._` array.\n\n**returns:**\n\n* `obj`: an object representing the parsed value of `args`\n * `key/value`: key value pairs for each argument and their aliases.\n * `_`: an array representing the positional arguments.\n * [optional] `--`: an array with arguments after the end-of-options flag `--`.\n\n### require('yargs-parser').detailed(args, opts={})\n\nParses a command line string, returning detailed information required by the\nyargs engine.\n\n**expects:**\n\n* `args`: a string or array of strings representing options to parse.\n* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`.\n\n**returns:**\n\n* `argv`: an object representing the parsed value of `args`\n * `key/value`: key value pairs for each argument and their aliases.\n * `_`: an array representing the positional arguments.\n* `error`: populated with an error object if an exception occurred during parsing.\n* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`.\n* `newAliases`: any new aliases added via camel-case expansion.\n* `configuration`: the configuration loaded from the `yargs` stanza in package.json.\n\n<a name=\"configuration\"></a>\n\n### Configuration\n\nThe yargs-parser applies several automated transformations on the keys provided\nin `args`. These features can be turned on and off using the `configuration` field\nof `opts`.\n\n```js\nvar parsed = parser(['--no-dice'], {\n configuration: {\n 'boolean-negation': false\n }\n})\n```\n\n### short option groups\n\n* default: `true`.\n* key: `short-option-groups`.\n\nShould a group of short-options be treated as boolean flags?\n\n```sh\nnode example.js -abc\n{ _: [], a: true, b: true, c: true }\n```\n\n_if disabled:_\n\n```sh\nnode example.js -abc\n{ _: [], abc: true }\n```\n\n### camel-case expansion\n\n* default: `true`.\n* key: `camel-case-expansion`.\n\nShould hyphenated arguments be expanded into camel-case aliases?\n\n```sh\nnode example.js --foo-bar\n{ _: [], 'foo-bar': true, fooBar: true }\n```\n\n_if disabled:_\n\n```sh\nnode example.js --foo-bar\n{ _: [], 'foo-bar': true }\n```\n\n### dot-notation\n\n* default: `true`\n* key: `dot-notation`\n\nShould keys that contain `.` be treated as objects?\n\n```sh\nnode example.js --foo.bar\n{ _: [], foo: { bar: true } }\n```\n\n_if disabled:_\n\n```sh\nnode example.js --foo.bar\n{ _: [], \"foo.bar\": true }\n```\n\n### parse numbers\n\n* default: `true`\n* key: `parse-numbers`\n\nShould keys that look like numbers be treated as such?\n\n```sh\nnode example.js --foo=99.3\n{ _: [], foo: 99.3 }\n```\n\n_if disabled:_\n\n```sh\nnode example.js --foo=99.3\n{ _: [], foo: \"99.3\" }\n```\n\n### boolean negation\n\n* default: `true`\n* key: `boolean-negation`\n\nShould variables prefixed with `--no` be treated as negations?\n\n```sh\nnode example.js --no-foo\n{ _: [], foo: false }\n```\n\n_if disabled:_\n\n```sh\nnode example.js --no-foo\n{ _: [], \"no-foo\": true }\n```\n\n### duplicate arguments array\n\n* default: `true`\n* key: `duplicate-arguments-array`\n\nShould arguments be coerced into an array when duplicated:\n\n```sh\nnode example.js -x 1 -x 2\n{ _: [], x: [1, 2] }\n```\n\n_if disabled:_\n\n```sh\nnode example.js -x 1 -x 2\n{ _: [], x: 2 }\n```\n\n### flatten duplicate arrays\n\n* default: `true`\n* key: `flatten-duplicate-arrays`\n\nShould array arguments be coerced into a single array when duplicated:\n\n```sh\nnode example.js -x 1 2 -x 3 4\n{ _: [], x: [1, 2, 3, 4] }\n```\n\n_if disabled:_\n\n```sh\nnode example.js -x 1 2 -x 3 4\n{ _: [], x: [[1, 2], [3, 4]] }\n```\n\n### populate --\n\n* default: `false`.\n* key: `populate--`\n\nShould unparsed flags be stored in `--` or `_`.\n\n_If disabled:_\n\n```sh\nnode example.js a -b -- x y\n{ _: [ 'a', 'x', 'y' ], b: true }\n```\n\n_If enabled:_\n\n```sh\nnode example.js a -b -- x y\n{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true }\n```\n\n## Special Thanks\n\nThe yargs project evolves from optimist and minimist. It owes its\nexistence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \\o/\n\n## License\n\nISC\n",
+ "readmeFilename": "README.md",
+ "repository": {
+ "url": "git+ssh://git@github.com/yargs/yargs-parser.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc mocha test/*.js"
+ },
+ "version": "7.0.0"
+}
diff --git a/node_modules/nyc/node_modules/yargs/package.json b/node_modules/nyc/node_modules/yargs/package.json
index a396ea7b4..01425ce78 100644
--- a/node_modules/nyc/node_modules/yargs/package.json
+++ b/node_modules/nyc/node_modules/yargs/package.json
@@ -1,31 +1,79 @@
{
- "name": "yargs",
- "version": "7.1.0",
- "description": "yargs the modern, pirate-themed, successor to optimist.",
- "main": "./index.js",
- "files": [
- "index.js",
- "yargs.js",
- "lib",
- "locales",
- "completion.sh.hbs",
- "LICENSE"
+ "_args": [
+ [
+ {
+ "raw": "yargs@^8.0.1",
+ "scope": null,
+ "escapedName": "yargs",
+ "name": "yargs",
+ "rawSpec": "^8.0.1",
+ "spec": ">=8.0.1 <9.0.0",
+ "type": "range"
+ },
+ "/Users/benjamincoe/bcoe/nyc"
+ ]
+ ],
+ "_from": "yargs@>=8.0.1 <9.0.0",
+ "_id": "yargs@8.0.2",
+ "_inCache": true,
+ "_location": "/yargs",
+ "_nodeVersion": "6.9.5",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/yargs-8.0.2.tgz_1497310246372_0.5759420988615602"
+ },
+ "_npmUser": {
+ "name": "bcoe",
+ "email": "ben@npmjs.com"
+ },
+ "_npmVersion": "4.6.1",
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "find-up": "2.1.0",
+ "graceful-fs": "4.1.11",
+ "is-fullwidth-code-point": "1.0.0",
+ "normalize-package-data": "2.4.0",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ },
+ "_requested": {
+ "raw": "yargs@^8.0.1",
+ "scope": null,
+ "escapedName": "yargs",
+ "name": "yargs",
+ "rawSpec": "^8.0.1",
+ "spec": ">=8.0.1 <9.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/"
],
+ "_resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
+ "_shasum": "6299a9055b1cefc969ff7e79c1d918dceb22c360",
+ "_shrinkwrap": null,
+ "_spec": "yargs@^8.0.1",
+ "_where": "/Users/benjamincoe/bcoe/nyc",
+ "bugs": {
+ "url": "https://github.com/yargs/yargs/issues"
+ },
"dependencies": {
- "camelcase": "^3.0.0",
+ "camelcase": "^4.1.0",
"cliui": "^3.2.0",
"decamelize": "^1.1.1",
"get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^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": "^1.0.2",
- "which-module": "^1.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
"y18n": "^3.2.1",
- "yargs-parser": "^5.0.0"
+ "yargs-parser": "^7.0.0"
},
+ "description": "yargs the modern, pirate-themed, successor to optimist.",
"devDependencies": {
"chai": "^3.4.1",
"chalk": "^1.1.3",
@@ -35,28 +83,31 @@
"es6-promise": "^4.0.2",
"hashish": "0.0.4",
"mocha": "^3.0.1",
- "nyc": "^10.0.0",
+ "nyc": "^10.3.0",
"rimraf": "^2.5.0",
"standard": "^8.6.0",
- "standard-version": "^3.0.0",
- "which": "^1.2.9"
+ "standard-version": "^4.2.0",
+ "which": "^1.2.9",
+ "yargs-test-extends": "^1.0.1"
},
- "scripts": {
- "pretest": "standard",
- "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks",
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "release": "standard-version"
+ "directories": {},
+ "dist": {
+ "shasum": "6299a9055b1cefc969ff7e79c1d918dceb22c360",
+ "tarball": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz"
},
- "repository": {
- "type": "git",
- "url": "http://github.com/yargs/yargs.git"
+ "engine": {
+ "node": ">=0.10"
},
+ "files": [
+ "index.js",
+ "yargs.js",
+ "lib",
+ "locales",
+ "completion.sh.hbs",
+ "LICENSE"
+ ],
+ "gitHead": "30a18720759163ec1a5f6ca54ecb9e089da8b5a0",
"homepage": "http://yargs.js.org/",
- "standard": {
- "ignore": [
- "**/example/**"
- ]
- },
"keywords": [
"argument",
"args",
@@ -67,14 +118,39 @@
"command"
],
"license": "MIT",
- "engine": {
- "node": ">=0.10"
+ "main": "./index.js",
+ "maintainers": [
+ {
+ "name": "bcoe",
+ "email": "ben@npmjs.com"
+ },
+ {
+ "name": "chevex",
+ "email": "alex.ford@codetunnel.com"
+ },
+ {
+ "name": "nexdrew",
+ "email": "andrew@npmjs.com"
+ }
+ ],
+ "name": "yargs",
+ "optionalDependencies": {},
+ "readme": "# Yargs\n\n[![Build Status][travis-image]][travis-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n[![NPM version][npm-image]][npm-url]\n[![Windows Tests][windows-image]][windows-url]\n[![js-standard-style][standard-image]][standard-url]\n[![Conventional Commits][conventional-commits-image]][conventional-commits-url]\n[![Gitter][gitter-image]][gitter-url]\n\n> Yargs be a node.js library fer hearties tryin' ter parse optstrings.\n\n<img width=\"250\" src=\"/yargs-logo.png\">\n\nYargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. It gives you:\n\n* commands and (grouped) options (`my-program.js serve --port=5000`).\n* a dynamically generated help menu based on your arguments.\n\n> <img width=\"400\" src=\"/screen.png\">\n\n* bash-completion shortcuts for commands and options.\n* and [tons more](/docs/api.md).\n\n## Installation\n\n```bash\nnpm i yargs --save\n```\n\n## Simple Example\n\n````javascript\n#!/usr/bin/env node\nconst argv = require('yargs').argv\n\nif (argv.ships > 3 && argv.distance < 53.5) {\n console.log('Plunder more riffiwobbles!')\n} else {\n console.log('Retreat from the xupptumblers!')\n}\n````\n\n```bash\n$ ./plunder.js --ships=4 --distance=22\nPlunder more riffiwobbles!\n\n$ ./plunder.js --ships 12 --distance 98.7\nRetreat from the xupptumblers!\n```\n\n## Complex Example\n\n```js\n#!/usr/bin/env node\nconst yargs = require('yargs') // eslint-disable-line\n .command('serve', 'start the server', (yargs) => {\n yargs.option('port', {\n describe: 'port to bind on',\n default: 5000\n }) \n }, (argv) => {\n if (argv.verbose) console.info(`start server on :${argv.port}`)\n serve(argv.port)\n })\n .option('verbose', {\n alias: 'v',\n default: false\n })\n .help()\n .argv\n```\n\n## Table of Contents\n\n* [Yargs' API](/docs/api.md)\n* [Examples](/docs/examples.md)\n* [Parsing Tricks](/docs/tricks.md)\n * [Stop the Parser](/docs/tricks.md#stop)\n * [Negating Boolean Arguments](/docs/tricks.md#negate)\n * [Numbers](/docs/tricks.md#numbers)\n * [Arrays](/docs/tricks.md#arrays)\n * [Objects](/docs/tricks.md#objects)\n* [Advanced Topics](/docs/advanced.md)\n * [Composing Your App Using Commands](/docs/advanced.md#commands)\n * [Building Configurable CLI Apps](/docs/advanced.md#configuration)\n * [Customizing Yargs' Parser](/docs/advanced.md#customizing)\n* [Contributing](/contributing.md)\n\n[travis-url]: https://travis-ci.org/yargs/yargs\n[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg\n[coveralls-url]: https://coveralls.io/github/yargs/yargs\n[coveralls-image]: https://img.shields.io/coveralls/yargs/yargs.svg\n[npm-url]: https://www.npmjs.com/package/yargs\n[npm-image]: https://img.shields.io/npm/v/yargs.svg\n[windows-url]: https://ci.appveyor.com/project/bcoe/yargs-ljwvf\n[windows-image]: https://img.shields.io/appveyor/ci/bcoe/yargs-ljwvf/master.svg?label=Windows%20Tests\n[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n[standard-url]: http://standardjs.com/\n[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg\n[conventional-commits-url]: https://conventionalcommits.org/\n[gitter-image]: https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000\n[gitter-url]: https://gitter.im/yargs/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link\n",
+ "readmeFilename": "README.md",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/yargs.git"
},
- "greenkeeper": {
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks"
+ },
+ "standard": {
"ignore": [
- "string-width",
- "read-pkg-up",
- "camelcase"
+ "**/example/**"
]
- }
+ },
+ "version": "8.0.2"
}
diff --git a/node_modules/nyc/node_modules/yargs/yargs.js b/node_modules/nyc/node_modules/yargs/yargs.js
index 92eb38f9e..078bf8f14 100644
--- a/node_modules/nyc/node_modules/yargs/yargs.js
+++ b/node_modules/nyc/node_modules/yargs/yargs.js
@@ -126,7 +126,6 @@ function Yargs (processArgs, cwd, parentRequire) {
command = command ? command.reset() : Command(self, usage, validation)
if (!completion) completion = Completion(self, usage, command)
- if (!strictGlobal) strict = false
completionCommand = null
output = ''
exitError = null
@@ -479,7 +478,7 @@ function Yargs (processArgs, cwd, parentRequire) {
// If an object exists in the key, add it to options.configObjects
if (obj[key] && typeof obj[key] === 'object') {
- conf = applyExtends(obj[key], path || cwd, key)
+ conf = applyExtends(obj[key], path || cwd)
options.configObjects = (options.configObjects || []).concat(conf)
}
@@ -695,11 +694,9 @@ function Yargs (processArgs, cwd, parentRequire) {
}
var strict = false
- var strictGlobal = false
- self.strict = function (global) {
- argsert('[boolean]', [global], arguments.length)
- strict = true
- strictGlobal = global !== false
+ self.strict = function (enabled) {
+ argsert('[boolean]', [enabled], arguments.length)
+ strict = enabled !== false
return self
}
self.getStrict = function () {
@@ -932,7 +929,7 @@ function Yargs (processArgs, cwd, parentRequire) {
enumerable: true
})
- self._parseArgs = function (args, shortCircuit, _skipValidation) {
+ self._parseArgs = function (args, shortCircuit, _skipValidation, commandIndex) {
var skipValidation = !!_skipValidation
args = args || processArgs
@@ -983,13 +980,17 @@ function Yargs (processArgs, cwd, parentRequire) {
var handlerKeys = command.getCommands()
if (handlerKeys.length) {
var firstUnknownCommand
- for (var i = 0, cmd; argv._[i] !== undefined; i++) {
+ for (var i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) {
cmd = String(argv._[i])
if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) {
setPlaceholderKeys(argv)
- return command.runCommand(cmd, self, parsed)
+ // commands are executed using a recursive algorithm that executes
+ // the deepest command first; we keep track of the position in the
+ // argv._ array that is currently being executed.
+ return command.runCommand(cmd, self, parsed, i + 1)
} else if (!firstUnknownCommand && cmd !== completionCommand) {
firstUnknownCommand = cmd
+ break
}
}
@@ -1001,7 +1002,7 @@ function Yargs (processArgs, cwd, parentRequire) {
// recommend a command if recommendCommands() has
// been enabled, and no commands were found to execute
- if (recommendCommands && firstUnknownCommand) {
+ if (recommendCommands && firstUnknownCommand && !argv[helpOpt]) {
validation.recommendCommands(firstUnknownCommand, handlerKeys)
}
}
diff --git a/node_modules/nyc/package.json b/node_modules/nyc/package.json
index 5ccc79ff9..dba01ad6a 100644
--- a/node_modules/nyc/package.json
+++ b/node_modules/nyc/package.json
@@ -1,6 +1,6 @@
{
"name": "nyc",
- "version": "10.3.2",
+ "version": "11.1.0",
"description": "the Istanbul command line interface",
"main": "index.js",
"scripts": {
@@ -80,15 +80,15 @@
"debug-log": "^1.0.1",
"default-require-extensions": "^1.0.0",
"find-cache-dir": "^0.1.1",
- "find-up": "^1.1.2",
+ "find-up": "^2.1.0",
"foreground-child": "^1.5.3",
"glob": "^7.0.6",
- "istanbul-lib-coverage": "^1.1.0",
- "istanbul-lib-hook": "^1.0.6",
- "istanbul-lib-instrument": "^1.7.1",
- "istanbul-lib-report": "^1.1.0",
- "istanbul-lib-source-maps": "^1.2.0",
- "istanbul-reports": "^1.1.0",
+ "istanbul-lib-coverage": "^1.1.1",
+ "istanbul-lib-hook": "^1.0.7",
+ "istanbul-lib-instrument": "^1.7.4",
+ "istanbul-lib-report": "^1.1.1",
+ "istanbul-lib-source-maps": "^1.2.1",
+ "istanbul-reports": "^1.1.1",
"md5-hex": "^1.2.0",
"merge-source-map": "^1.0.2",
"micromatch": "^2.3.11",
@@ -96,9 +96,9 @@
"resolve-from": "^2.0.0",
"rimraf": "^2.5.4",
"signal-exit": "^3.0.1",
- "spawn-wrap": "1.2.4",
- "test-exclude": "^4.1.0",
- "yargs": "^7.1.0",
+ "spawn-wrap": "^1.3.8",
+ "test-exclude": "^4.1.1",
+ "yargs": "^8.0.1",
"yargs-parser": "^5.0.0"
},
"devDependencies": {