summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2016-12-31 21:40:59 -0800
committerRich Trott <rtrott@gmail.com>2017-01-06 14:36:27 -0800
commitf44969a5aba6b447f7c1a715c5009644cbd49a5b (patch)
tree52cf860a27ad101bee24f4588d93d1c9fc6dba7f /tools
parenta68987c154fbc041ea6d03ffdafa447e8c8a26f5 (diff)
downloadandroid-node-v8-f44969a5aba6b447f7c1a715c5009644cbd49a5b.tar.gz
android-node-v8-f44969a5aba6b447f7c1a715c5009644cbd49a5b.tar.bz2
android-node-v8-f44969a5aba6b447f7c1a715c5009644cbd49a5b.zip
tools: update ESLint to current version
We have been stalled on ESLint 3.8.0 for some time. Current ESLint is 3.13.0. We have been unable to upgrade because of more aggressive reporting on some rules, including indentation. ESLint configuration options and bugfixes are now such that we can reasonably upgrade. PR-URL: https://github.com/nodejs/node/pull/10561 Reviewed-By: Teddy Katz <teddy.katz@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/eslint/LICENSE2
-rw-r--r--tools/eslint/README.md7
-rwxr-xr-xtools/eslint/bin/eslint.js10
-rwxr-xr-xtools/eslint/conf/eslint.json14
-rw-r--r--tools/eslint/lib/ast-utils.js411
-rw-r--r--tools/eslint/lib/cli-engine.js30
-rw-r--r--tools/eslint/lib/code-path-analysis/code-path-analyzer.js31
-rw-r--r--tools/eslint/lib/code-path-analysis/code-path-segment.js279
-rw-r--r--tools/eslint/lib/code-path-analysis/code-path-state.js131
-rw-r--r--tools/eslint/lib/code-path-analysis/code-path.js93
-rw-r--r--tools/eslint/lib/code-path-analysis/debug-helpers.js8
-rw-r--r--tools/eslint/lib/code-path-analysis/fork-context.js93
-rw-r--r--tools/eslint/lib/code-path-analysis/id-generator.js43
-rw-r--r--tools/eslint/lib/config.js236
-rw-r--r--tools/eslint/lib/config/autoconfig.js62
-rw-r--r--tools/eslint/lib/config/config-file.js12
-rw-r--r--tools/eslint/lib/config/config-initializer.js84
-rw-r--r--tools/eslint/lib/config/config-ops.js20
-rw-r--r--tools/eslint/lib/config/config-rule.js32
-rw-r--r--tools/eslint/lib/config/config-validator.js94
-rw-r--r--tools/eslint/lib/config/environments.js6
-rwxr-xr-xtools/eslint/lib/eslint.js102
-rw-r--r--tools/eslint/lib/file-finder.js130
-rw-r--r--tools/eslint/lib/formatters/checkstyle.js4
-rw-r--r--tools/eslint/lib/formatters/codeframe.js121
-rw-r--r--tools/eslint/lib/formatters/compact.js4
-rw-r--r--tools/eslint/lib/formatters/html.js20
-rw-r--r--tools/eslint/lib/formatters/jslint-xml.js4
-rw-r--r--tools/eslint/lib/formatters/junit.js4
-rw-r--r--tools/eslint/lib/formatters/stylish.js10
-rw-r--r--tools/eslint/lib/formatters/table.js10
-rw-r--r--tools/eslint/lib/formatters/tap.js4
-rw-r--r--tools/eslint/lib/formatters/unix.js4
-rw-r--r--tools/eslint/lib/formatters/visualstudio.js4
-rw-r--r--tools/eslint/lib/ignored-paths.js247
-rw-r--r--tools/eslint/lib/internal-rules/internal-consistent-docs-description.js1
-rw-r--r--tools/eslint/lib/internal-rules/internal-no-invalid-meta.js3
-rw-r--r--tools/eslint/lib/load-rules.js2
-rw-r--r--tools/eslint/lib/rule-context.js57
-rw-r--r--tools/eslint/lib/rules.js20
-rw-r--r--tools/eslint/lib/rules/accessor-pairs.js4
-rw-r--r--tools/eslint/lib/rules/array-bracket-spacing.js6
-rw-r--r--tools/eslint/lib/rules/arrow-body-style.js98
-rw-r--r--tools/eslint/lib/rules/arrow-parens.js11
-rw-r--r--tools/eslint/lib/rules/block-scoped-var.js5
-rw-r--r--tools/eslint/lib/rules/block-spacing.js2
-rw-r--r--tools/eslint/lib/rules/brace-style.js82
-rw-r--r--tools/eslint/lib/rules/callback-return.js2
-rw-r--r--tools/eslint/lib/rules/camelcase.js7
-rw-r--r--tools/eslint/lib/rules/capitalized-comments.js301
-rw-r--r--tools/eslint/lib/rules/comma-dangle.js15
-rw-r--r--tools/eslint/lib/rules/comma-spacing.js4
-rw-r--r--tools/eslint/lib/rules/comma-style.js57
-rw-r--r--tools/eslint/lib/rules/complexity.js2
-rw-r--r--tools/eslint/lib/rules/consistent-return.js19
-rw-r--r--tools/eslint/lib/rules/consistent-this.js21
-rw-r--r--tools/eslint/lib/rules/constructor-super.js4
-rw-r--r--tools/eslint/lib/rules/curly.js19
-rw-r--r--tools/eslint/lib/rules/default-case.js8
-rw-r--r--tools/eslint/lib/rules/eqeqeq.js28
-rw-r--r--tools/eslint/lib/rules/func-call-spacing.js9
-rw-r--r--tools/eslint/lib/rules/func-name-matching.js77
-rw-r--r--tools/eslint/lib/rules/func-names.js31
-rw-r--r--tools/eslint/lib/rules/func-style.js6
-rw-r--r--tools/eslint/lib/rules/generator-star-spacing.js4
-rw-r--r--tools/eslint/lib/rules/global-require.js12
-rw-r--r--tools/eslint/lib/rules/guard-for-in.js2
-rw-r--r--tools/eslint/lib/rules/handle-callback-err.js6
-rw-r--r--tools/eslint/lib/rules/id-blacklist.js4
-rw-r--r--tools/eslint/lib/rules/id-length.js10
-rw-r--r--tools/eslint/lib/rules/id-match.js4
-rw-r--r--tools/eslint/lib/rules/indent.js268
-rw-r--r--tools/eslint/lib/rules/jsx-quotes.js2
-rw-r--r--tools/eslint/lib/rules/key-spacing.js8
-rw-r--r--tools/eslint/lib/rules/keyword-spacing.js18
-rw-r--r--tools/eslint/lib/rules/lines-around-comment.js16
-rw-r--r--tools/eslint/lib/rules/lines-around-directive.js27
-rw-r--r--tools/eslint/lib/rules/max-depth.js3
-rw-r--r--tools/eslint/lib/rules/max-len.js32
-rw-r--r--tools/eslint/lib/rules/max-lines.js16
-rw-r--r--tools/eslint/lib/rules/max-nested-callbacks.js4
-rw-r--r--tools/eslint/lib/rules/max-params.js4
-rw-r--r--tools/eslint/lib/rules/max-statements.js20
-rw-r--r--tools/eslint/lib/rules/new-cap.js2
-rw-r--r--tools/eslint/lib/rules/new-parens.js27
-rw-r--r--tools/eslint/lib/rules/newline-after-var.js63
-rw-r--r--tools/eslint/lib/rules/newline-before-return.js6
-rw-r--r--tools/eslint/lib/rules/no-alert.js6
-rw-r--r--tools/eslint/lib/rules/no-array-constructor.js2
-rw-r--r--tools/eslint/lib/rules/no-await-in-loop.js75
-rw-r--r--tools/eslint/lib/rules/no-bitwise.js2
-rw-r--r--tools/eslint/lib/rules/no-caller.js2
-rw-r--r--tools/eslint/lib/rules/no-catch-shadow.js3
-rw-r--r--tools/eslint/lib/rules/no-class-assign.js7
-rw-r--r--tools/eslint/lib/rules/no-cond-assign.js4
-rw-r--r--tools/eslint/lib/rules/no-confusing-arrow.js4
-rw-r--r--tools/eslint/lib/rules/no-const-assign.js7
-rw-r--r--tools/eslint/lib/rules/no-constant-condition.js2
-rw-r--r--tools/eslint/lib/rules/no-continue.js2
-rw-r--r--tools/eslint/lib/rules/no-control-regex.js4
-rw-r--r--tools/eslint/lib/rules/no-debugger.js2
-rw-r--r--tools/eslint/lib/rules/no-delete-var.js2
-rw-r--r--tools/eslint/lib/rules/no-div-regex.js2
-rw-r--r--tools/eslint/lib/rules/no-dupe-args.js2
-rw-r--r--tools/eslint/lib/rules/no-dupe-class-members.js6
-rw-r--r--tools/eslint/lib/rules/no-dupe-keys.js4
-rw-r--r--tools/eslint/lib/rules/no-duplicate-case.js4
-rw-r--r--tools/eslint/lib/rules/no-else-return.js2
-rw-r--r--tools/eslint/lib/rules/no-empty-character-class.js4
-rw-r--r--tools/eslint/lib/rules/no-empty-function.js2
-rw-r--r--tools/eslint/lib/rules/no-empty-pattern.js4
-rw-r--r--tools/eslint/lib/rules/no-empty.js4
-rw-r--r--tools/eslint/lib/rules/no-eq-null.js2
-rw-r--r--tools/eslint/lib/rules/no-eval.js2
-rw-r--r--tools/eslint/lib/rules/no-ex-assign.js6
-rw-r--r--tools/eslint/lib/rules/no-extend-native.js10
-rw-r--r--tools/eslint/lib/rules/no-extra-boolean-cast.js17
-rw-r--r--tools/eslint/lib/rules/no-extra-label.js27
-rw-r--r--tools/eslint/lib/rules/no-extra-parens.js35
-rw-r--r--tools/eslint/lib/rules/no-fallthrough.js2
-rw-r--r--tools/eslint/lib/rules/no-func-assign.js7
-rw-r--r--tools/eslint/lib/rules/no-global-assign.js2
-rw-r--r--tools/eslint/lib/rules/no-implicit-globals.js12
-rw-r--r--tools/eslint/lib/rules/no-implied-eval.js4
-rw-r--r--tools/eslint/lib/rules/no-inline-comments.js2
-rw-r--r--tools/eslint/lib/rules/no-inner-declarations.js14
-rw-r--r--tools/eslint/lib/rules/no-invalid-this.js2
-rw-r--r--tools/eslint/lib/rules/no-irregular-whitespace.js6
-rw-r--r--tools/eslint/lib/rules/no-iterator.js2
-rw-r--r--tools/eslint/lib/rules/no-label-var.js2
-rw-r--r--tools/eslint/lib/rules/no-lone-blocks.js4
-rw-r--r--tools/eslint/lib/rules/no-lonely-if.js2
-rw-r--r--tools/eslint/lib/rules/no-loop-func.js2
-rw-r--r--tools/eslint/lib/rules/no-mixed-operators.js6
-rw-r--r--tools/eslint/lib/rules/no-mixed-requires.js14
-rw-r--r--tools/eslint/lib/rules/no-mixed-spaces-and-tabs.js8
-rw-r--r--tools/eslint/lib/rules/no-multi-spaces.js2
-rw-r--r--tools/eslint/lib/rules/no-multi-str.js2
-rw-r--r--tools/eslint/lib/rules/no-multiple-empty-lines.js22
-rw-r--r--tools/eslint/lib/rules/no-native-reassign.js2
-rw-r--r--tools/eslint/lib/rules/no-negated-condition.js4
-rw-r--r--tools/eslint/lib/rules/no-negated-in-lhs.js2
-rw-r--r--tools/eslint/lib/rules/no-nested-ternary.js2
-rw-r--r--tools/eslint/lib/rules/no-new-func.js2
-rw-r--r--tools/eslint/lib/rules/no-new-object.js2
-rw-r--r--tools/eslint/lib/rules/no-new-require.js2
-rw-r--r--tools/eslint/lib/rules/no-new-symbol.js4
-rw-r--r--tools/eslint/lib/rules/no-new-wrappers.js2
-rw-r--r--tools/eslint/lib/rules/no-new.js2
-rw-r--r--tools/eslint/lib/rules/no-obj-calls.js4
-rw-r--r--tools/eslint/lib/rules/no-octal-escape.js3
-rw-r--r--tools/eslint/lib/rules/no-octal.js2
-rw-r--r--tools/eslint/lib/rules/no-param-reassign.js12
-rw-r--r--tools/eslint/lib/rules/no-path-concat.js2
-rw-r--r--tools/eslint/lib/rules/no-process-env.js2
-rw-r--r--tools/eslint/lib/rules/no-process-exit.js2
-rw-r--r--tools/eslint/lib/rules/no-proto.js2
-rw-r--r--tools/eslint/lib/rules/no-prototype-builtins.js2
-rw-r--r--tools/eslint/lib/rules/no-redeclare.js13
-rw-r--r--tools/eslint/lib/rules/no-regex-spaces.js2
-rw-r--r--tools/eslint/lib/rules/no-restricted-globals.js8
-rw-r--r--tools/eslint/lib/rules/no-restricted-imports.js56
-rw-r--r--tools/eslint/lib/rules/no-restricted-modules.js89
-rw-r--r--tools/eslint/lib/rules/no-restricted-properties.js12
-rw-r--r--tools/eslint/lib/rules/no-restricted-syntax.js8
-rw-r--r--tools/eslint/lib/rules/no-return-await.js94
-rw-r--r--tools/eslint/lib/rules/no-script-url.js2
-rw-r--r--tools/eslint/lib/rules/no-self-compare.js2
-rw-r--r--tools/eslint/lib/rules/no-sequences.js2
-rw-r--r--tools/eslint/lib/rules/no-shadow.js4
-rw-r--r--tools/eslint/lib/rules/no-sparse-arrays.js2
-rw-r--r--tools/eslint/lib/rules/no-tabs.js14
-rw-r--r--tools/eslint/lib/rules/no-ternary.js2
-rw-r--r--tools/eslint/lib/rules/no-this-before-super.js6
-rw-r--r--tools/eslint/lib/rules/no-throw-literal.js4
-rw-r--r--tools/eslint/lib/rules/no-undef-init.js2
-rw-r--r--tools/eslint/lib/rules/no-undef.js2
-rw-r--r--tools/eslint/lib/rules/no-undefined.js2
-rw-r--r--tools/eslint/lib/rules/no-underscore-dangle.js4
-rw-r--r--tools/eslint/lib/rules/no-unexpected-multiline.js4
-rw-r--r--tools/eslint/lib/rules/no-unneeded-ternary.js75
-rw-r--r--tools/eslint/lib/rules/no-unused-expressions.js2
-rw-r--r--tools/eslint/lib/rules/no-unused-vars.js32
-rw-r--r--tools/eslint/lib/rules/no-use-before-define.js8
-rw-r--r--tools/eslint/lib/rules/no-useless-call.js5
-rw-r--r--tools/eslint/lib/rules/no-useless-concat.js7
-rw-r--r--tools/eslint/lib/rules/no-useless-escape.js195
-rw-r--r--tools/eslint/lib/rules/no-useless-return.js293
-rw-r--r--tools/eslint/lib/rules/no-var.js99
-rw-r--r--tools/eslint/lib/rules/no-void.js2
-rw-r--r--tools/eslint/lib/rules/no-warning-comments.js6
-rw-r--r--tools/eslint/lib/rules/no-with.js2
-rw-r--r--tools/eslint/lib/rules/object-curly-newline.js4
-rw-r--r--tools/eslint/lib/rules/object-property-newline.js17
-rw-r--r--tools/eslint/lib/rules/object-shorthand.js219
-rw-r--r--tools/eslint/lib/rules/one-var-declaration-per-line.js2
-rw-r--r--tools/eslint/lib/rules/one-var.js18
-rw-r--r--tools/eslint/lib/rules/operator-assignment.js74
-rw-r--r--tools/eslint/lib/rules/operator-linebreak.js76
-rw-r--r--tools/eslint/lib/rules/padded-blocks.js4
-rw-r--r--tools/eslint/lib/rules/prefer-arrow-callback.js4
-rw-r--r--tools/eslint/lib/rules/prefer-const.js137
-rw-r--r--tools/eslint/lib/rules/prefer-destructuring.js173
-rw-r--r--tools/eslint/lib/rules/prefer-reflect.js10
-rw-r--r--tools/eslint/lib/rules/quote-props.js14
-rw-r--r--tools/eslint/lib/rules/quotes.js17
-rw-r--r--tools/eslint/lib/rules/radix.js4
-rw-r--r--tools/eslint/lib/rules/require-await.js95
-rw-r--r--tools/eslint/lib/rules/require-jsdoc.js10
-rw-r--r--tools/eslint/lib/rules/require-yield.js4
-rw-r--r--tools/eslint/lib/rules/semi.js6
-rw-r--r--tools/eslint/lib/rules/sort-imports.js68
-rw-r--r--tools/eslint/lib/rules/sort-vars.js4
-rw-r--r--tools/eslint/lib/rules/space-in-parens.js2
-rw-r--r--tools/eslint/lib/rules/space-infix-ops.js2
-rw-r--r--tools/eslint/lib/rules/spaced-comment.js2
-rw-r--r--tools/eslint/lib/rules/strict.js16
-rw-r--r--tools/eslint/lib/rules/symbol-description.js2
-rw-r--r--tools/eslint/lib/rules/template-curly-spacing.js2
-rw-r--r--tools/eslint/lib/rules/unicode-bom.js2
-rw-r--r--tools/eslint/lib/rules/use-isnan.js2
-rw-r--r--tools/eslint/lib/rules/valid-jsdoc.js32
-rw-r--r--tools/eslint/lib/rules/valid-typeof.js4
-rw-r--r--tools/eslint/lib/rules/vars-on-top.js4
-rw-r--r--tools/eslint/lib/rules/yield-star-spacing.js4
-rw-r--r--tools/eslint/lib/rules/yoda.js51
-rw-r--r--tools/eslint/lib/testers/event-generator-tester.js10
-rw-r--r--tools/eslint/lib/testers/rule-tester.js42
-rw-r--r--tools/eslint/lib/timing.js24
-rw-r--r--tools/eslint/lib/util/comment-event-generator.js2
-rw-r--r--tools/eslint/lib/util/glob-util.js16
-rw-r--r--tools/eslint/lib/util/module-resolver.js24
-rw-r--r--tools/eslint/lib/util/node-event-generator.js23
-rw-r--r--tools/eslint/lib/util/npm-util.js8
-rw-r--r--tools/eslint/lib/util/patterns/letters.js37
-rw-r--r--tools/eslint/lib/util/source-code-fixer.js8
-rw-r--r--tools/eslint/lib/util/source-code-util.js12
-rw-r--r--tools/eslint/lib/util/source-code.js12
-rw-r--r--tools/eslint/lib/util/traverser.js4
-rw-r--r--tools/eslint/lib/util/xml-escape.js2
l---------tools/eslint/node_modules/.bin/eslint1
l---------tools/eslint/node_modules/.bin/strip-json-comments1
-rw-r--r--tools/eslint/node_modules/acorn/.tern-project6
-rw-r--r--tools/eslint/node_modules/acorn/AUTHORS2
-rw-r--r--tools/eslint/node_modules/acorn/bin/generate-identifier-regex.js55
-rwxr-xr-xtools/eslint/node_modules/acorn/bin/update_authors.sh6
-rw-r--r--tools/eslint/node_modules/acorn/dist/acorn.es.js52
-rw-r--r--tools/eslint/node_modules/acorn/dist/acorn.js6300
-rw-r--r--tools/eslint/node_modules/acorn/dist/acorn_loose.es.js33
-rw-r--r--tools/eslint/node_modules/acorn/dist/acorn_loose.js2391
-rw-r--r--tools/eslint/node_modules/acorn/dist/walk.js648
-rw-r--r--tools/eslint/node_modules/acorn/package.json28
-rw-r--r--tools/eslint/node_modules/acorn/rollup/config.bin.js15
-rw-r--r--tools/eslint/node_modules/acorn/rollup/config.loose.js22
-rw-r--r--tools/eslint/node_modules/acorn/rollup/config.main.js11
-rw-r--r--tools/eslint/node_modules/acorn/rollup/config.walk.js11
-rw-r--r--tools/eslint/node_modules/acorn/src/index.js2
-rw-r--r--tools/eslint/node_modules/acorn/src/statement.js7
-rw-r--r--tools/eslint/node_modules/ajv-keywords/.eslintrc.yml32
-rw-r--r--tools/eslint/node_modules/ajv-keywords/README.md274
-rw-r--r--tools/eslint/node_modules/ajv-keywords/index.js6
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/_formatLimit.js92
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/deepProperties.js55
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/deepRequired.js57
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dot/_formatLimit.jst116
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dot/patternRequired.jst28
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dot/switch.jst73
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dotjs/README.md3
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js176
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dotjs/patternRequired.js52
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dotjs/switch.js129
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/dynamicDefaults.js68
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/formatMaximum.js3
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/formatMinimum.js3
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/if.js21
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/index.js15
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/instanceof.js71
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/patternRequired.js24
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/prohibited.js25
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/propertyNames.js9
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/range.js63
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/regexp.js9
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/switch.js39
-rw-r--r--tools/eslint/node_modules/ajv-keywords/keywords/typeof.js49
-rw-r--r--tools/eslint/node_modules/ajv-keywords/package.json43
-rw-r--r--tools/eslint/node_modules/ajv/README.md49
-rw-r--r--tools/eslint/node_modules/ajv/dist/ajv.bundle.js351
-rw-r--r--tools/eslint/node_modules/ajv/dist/ajv.min.js10
-rw-r--r--tools/eslint/node_modules/ajv/dist/ajv.min.js.map2
-rw-r--r--tools/eslint/node_modules/ajv/dist/nodent.min.js16
-rw-r--r--tools/eslint/node_modules/ajv/dist/regenerator.min.js48
-rw-r--r--tools/eslint/node_modules/ajv/lib/ajv.d.ts14
-rw-r--r--tools/eslint/node_modules/ajv/lib/ajv.js6
-rw-r--r--tools/eslint/node_modules/ajv/lib/async.js8
-rw-r--r--tools/eslint/node_modules/ajv/lib/compile/equal.js15
-rw-r--r--tools/eslint/node_modules/ajv/lib/compile/formats.js4
-rw-r--r--tools/eslint/node_modules/ajv/lib/compile/index.js13
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/allOf.jst12
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/anyOf.jst2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/custom.jst2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/definitions.def5
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/dependencies.jst2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/enum.jst12
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/errors.def2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/format.jst34
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/items.jst17
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/not.jst2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/oneOf.jst6
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/properties.jst42
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/ref.jst2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/required.jst15
-rw-r--r--tools/eslint/node_modules/ajv/lib/dot/v5/switch.jst6
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/_formatLimit.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/_limit.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/_limitItems.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/_limitLength.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/allOf.js15
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/anyOf.js5
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/constant.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/custom.js7
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/dependencies.js7
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/enum.js9
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/format.js34
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/items.js34
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/multipleOf.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/not.js5
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/oneOf.js9
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/pattern.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/patternRequired.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/properties.js59
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/ref.js3
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/required.js15
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/switch.js11
-rw-r--r--tools/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js2
-rw-r--r--tools/eslint/node_modules/ajv/lib/keyword.js72
-rw-r--r--tools/eslint/node_modules/ajv/package.json40
-rwxr-xr-xtools/eslint/node_modules/ajv/scripts/bundle33
-rw-r--r--tools/eslint/node_modules/ajv/scripts/compile-dots.js56
-rwxr-xr-xtools/eslint/node_modules/ajv/scripts/info10
-rwxr-xr-xtools/eslint/node_modules/ajv/scripts/prepare-tests9
-rwxr-xr-xtools/eslint/node_modules/ajv/scripts/travis-gh-pages21
-rw-r--r--tools/eslint/node_modules/babel-code-frame/README.md43
-rw-r--r--tools/eslint/node_modules/babel-code-frame/lib/index.js141
-rw-r--r--tools/eslint/node_modules/babel-code-frame/package.json102
-rw-r--r--tools/eslint/node_modules/buffer-shims/index.js108
-rw-r--r--tools/eslint/node_modules/buffer-shims/license.md19
-rw-r--r--tools/eslint/node_modules/buffer-shims/package.json85
-rw-r--r--tools/eslint/node_modules/buffer-shims/readme.md21
-rw-r--r--tools/eslint/node_modules/chalk/package.json1
-rw-r--r--tools/eslint/node_modules/circular-json/package.json16
-rw-r--r--tools/eslint/node_modules/code-point-at/index.js7
-rw-r--r--tools/eslint/node_modules/code-point-at/package.json31
-rw-r--r--tools/eslint/node_modules/code-point-at/readme.md2
-rw-r--r--tools/eslint/node_modules/concat-stream/package.json30
-rw-r--r--tools/eslint/node_modules/concat-stream/readme.md2
-rw-r--r--tools/eslint/node_modules/debug/.coveralls.yml1
-rw-r--r--tools/eslint/node_modules/debug/LICENSE19
-rw-r--r--tools/eslint/node_modules/debug/Makefile54
-rw-r--r--tools/eslint/node_modules/debug/Readme.md92
-rw-r--r--tools/eslint/node_modules/debug/karma.conf.js70
-rw-r--r--tools/eslint/node_modules/debug/node.js210
-rw-r--r--tools/eslint/node_modules/debug/package.json62
-rw-r--r--tools/eslint/node_modules/debug/src/browser.js (renamed from tools/eslint/node_modules/debug/browser.js)44
-rw-r--r--tools/eslint/node_modules/debug/src/debug.js (renamed from tools/eslint/node_modules/debug/debug.js)74
-rw-r--r--tools/eslint/node_modules/debug/src/index.js10
-rw-r--r--tools/eslint/node_modules/debug/src/node.js240
-rw-r--r--tools/eslint/node_modules/esutils/package.json1
-rw-r--r--tools/eslint/node_modules/fast-levenshtein/levenshtein.js86
-rw-r--r--tools/eslint/node_modules/fast-levenshtein/package.json22
-rw-r--r--tools/eslint/node_modules/flat-cache/cache.js6
-rw-r--r--tools/eslint/node_modules/flat-cache/changelog.md21
-rw-r--r--tools/eslint/node_modules/flat-cache/package.json24
-rw-r--r--tools/eslint/node_modules/flat-cache/utils.js10
-rw-r--r--tools/eslint/node_modules/glob/package.json3
-rw-r--r--tools/eslint/node_modules/globals/globals.json2
-rw-r--r--tools/eslint/node_modules/globals/package.json38
-rw-r--r--tools/eslint/node_modules/graceful-fs/package.json20
-rw-r--r--tools/eslint/node_modules/graceful-fs/polyfills.js28
-rw-r--r--tools/eslint/node_modules/ignore/package.json16
-rw-r--r--tools/eslint/node_modules/inherits/package.json16
-rw-r--r--tools/eslint/node_modules/interpret/LICENSE22
-rw-r--r--tools/eslint/node_modules/interpret/README.md136
-rw-r--r--tools/eslint/node_modules/interpret/index.js132
-rw-r--r--tools/eslint/node_modules/interpret/package.json119
-rw-r--r--tools/eslint/node_modules/is-path-in-cwd/package.json2
-rw-r--r--tools/eslint/node_modules/js-tokens/LICENSE21
-rw-r--r--tools/eslint/node_modules/js-tokens/changelog.md82
-rw-r--r--tools/eslint/node_modules/js-tokens/index.js19
-rw-r--r--tools/eslint/node_modules/js-tokens/package.json100
-rw-r--r--tools/eslint/node_modules/js-tokens/readme.md217
-rw-r--r--tools/eslint/node_modules/js-yaml/dist/js-yaml.js24
-rw-r--r--tools/eslint/node_modules/js-yaml/dist/js-yaml.min.js6
-rw-r--r--tools/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js3
-rw-r--r--tools/eslint/node_modules/js-yaml/lib/js-yaml/loader.js7
-rw-r--r--tools/eslint/node_modules/js-yaml/lib/js-yaml/schema.js12
-rw-r--r--tools/eslint/node_modules/js-yaml/package.json22
-rw-r--r--tools/eslint/node_modules/jsonpointer/README.md2
-rw-r--r--tools/eslint/node_modules/jsonpointer/benchmark.js56
-rw-r--r--tools/eslint/node_modules/jsonpointer/package.json25
-rw-r--r--tools/eslint/node_modules/lodash/LICENSE2
-rw-r--r--tools/eslint/node_modules/lodash/README.md6
-rw-r--r--tools/eslint/node_modules/lodash/_Hash.js2
-rw-r--r--tools/eslint/node_modules/lodash/_ListCache.js2
-rw-r--r--tools/eslint/node_modules/lodash/_MapCache.js2
-rw-r--r--tools/eslint/node_modules/lodash/_SetCache.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayAggregator.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayEach.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayEachRight.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayEvery.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayFilter.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayIncludes.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayIncludesWith.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayMap.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayReduce.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arrayReduceRight.js2
-rw-r--r--tools/eslint/node_modules/lodash/_arraySome.js2
-rw-r--r--tools/eslint/node_modules/lodash/_baseAssignIn.js17
-rw-r--r--tools/eslint/node_modules/lodash/_baseAt.js8
-rw-r--r--tools/eslint/node_modules/lodash/_baseClone.js36
-rw-r--r--tools/eslint/node_modules/lodash/_baseDifference.js2
-rw-r--r--tools/eslint/node_modules/lodash/_baseGet.js3
-rw-r--r--tools/eslint/node_modules/lodash/_baseGetTag.js26
-rw-r--r--tools/eslint/node_modules/lodash/_baseInvoke.js10
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsArguments.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsArrayBuffer.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsDate.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsEqual.js14
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsEqualDeep.js36
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsMatch.js8
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsRegExp.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseIsTypedArray.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseMatchesProperty.js8
-rw-r--r--tools/eslint/node_modules/lodash/_baseMean.js2
-rw-r--r--tools/eslint/node_modules/lodash/_basePick.js12
-rw-r--r--tools/eslint/node_modules/lodash/_basePickBy.js18
-rw-r--r--tools/eslint/node_modules/lodash/_basePullAt.js21
-rw-r--r--tools/eslint/node_modules/lodash/_baseSet.js3
-rw-r--r--tools/eslint/node_modules/lodash/_baseSortedIndex.js2
-rw-r--r--tools/eslint/node_modules/lodash/_baseSortedIndexBy.js2
-rw-r--r--tools/eslint/node_modules/lodash/_baseUnset.js15
-rw-r--r--tools/eslint/node_modules/lodash/_baseXor.js26
-rw-r--r--tools/eslint/node_modules/lodash/_castPath.js12
-rw-r--r--tools/eslint/node_modules/lodash/_cloneMap.js5
-rw-r--r--tools/eslint/node_modules/lodash/_cloneSet.js5
-rw-r--r--tools/eslint/node_modules/lodash/_copySymbols.js2
-rw-r--r--tools/eslint/node_modules/lodash/_copySymbolsIn.js16
-rw-r--r--tools/eslint/node_modules/lodash/_createBind.js4
-rw-r--r--tools/eslint/node_modules/lodash/_createFlow.js16
-rw-r--r--tools/eslint/node_modules/lodash/_createHybrid.js22
-rw-r--r--tools/eslint/node_modules/lodash/_createPartial.js4
-rw-r--r--tools/eslint/node_modules/lodash/_createRecurry.js22
-rw-r--r--tools/eslint/node_modules/lodash/_createRound.js2
-rw-r--r--tools/eslint/node_modules/lodash/_createWrap.js51
-rw-r--r--tools/eslint/node_modules/lodash/_customDefaultsAssignIn.js (renamed from tools/eslint/node_modules/lodash/_assignInDefaults.js)8
-rw-r--r--tools/eslint/node_modules/lodash/_customDefaultsMerge.js (renamed from tools/eslint/node_modules/lodash/_mergeDefaults.js)9
-rw-r--r--tools/eslint/node_modules/lodash/_customOmitClone.js16
-rw-r--r--tools/eslint/node_modules/lodash/_equalArrays.js21
-rw-r--r--tools/eslint/node_modules/lodash/_equalByTag.js19
-rw-r--r--tools/eslint/node_modules/lodash/_equalObjects.js21
-rw-r--r--tools/eslint/node_modules/lodash/_getRawTag.js46
-rw-r--r--tools/eslint/node_modules/lodash/_getSymbols.js20
-rw-r--r--tools/eslint/node_modules/lodash/_getSymbolsIn.js3
-rw-r--r--tools/eslint/node_modules/lodash/_getTag.js14
-rw-r--r--tools/eslint/node_modules/lodash/_hasPath.js5
-rw-r--r--tools/eslint/node_modules/lodash/_hasUnicode.js8
-rw-r--r--tools/eslint/node_modules/lodash/_hashHas.js2
-rw-r--r--tools/eslint/node_modules/lodash/_lazyValue.js6
-rw-r--r--tools/eslint/node_modules/lodash/_mergeData.js26
-rw-r--r--tools/eslint/node_modules/lodash/_nodeUtil.js2
-rw-r--r--tools/eslint/node_modules/lodash/_objectToString.js22
-rw-r--r--tools/eslint/node_modules/lodash/_parent.js2
-rw-r--r--tools/eslint/node_modules/lodash/_shortOut.js2
-rw-r--r--tools/eslint/node_modules/lodash/_stringToPath.js5
-rw-r--r--tools/eslint/node_modules/lodash/_toSource.js2
-rw-r--r--tools/eslint/node_modules/lodash/_unicodeSize.js8
-rw-r--r--tools/eslint/node_modules/lodash/_unicodeToArray.js8
-rw-r--r--tools/eslint/node_modules/lodash/_unicodeWords.js28
-rw-r--r--tools/eslint/node_modules/lodash/_updateWrapDetails.js36
-rw-r--r--tools/eslint/node_modules/lodash/ary.js4
-rw-r--r--tools/eslint/node_modules/lodash/at.js2
-rw-r--r--tools/eslint/node_modules/lodash/bind.js8
-rw-r--r--tools/eslint/node_modules/lodash/bindKey.js10
-rw-r--r--tools/eslint/node_modules/lodash/chunk.js2
-rw-r--r--tools/eslint/node_modules/lodash/clone.js5
-rw-r--r--tools/eslint/node_modules/lodash/cloneDeep.js6
-rw-r--r--tools/eslint/node_modules/lodash/cloneDeepWith.js7
-rw-r--r--tools/eslint/node_modules/lodash/cloneWith.js6
-rw-r--r--tools/eslint/node_modules/lodash/compact.js2
-rw-r--r--tools/eslint/node_modules/lodash/cond.js2
-rw-r--r--tools/eslint/node_modules/lodash/conforms.js5
-rw-r--r--tools/eslint/node_modules/lodash/core.js239
-rw-r--r--tools/eslint/node_modules/lodash/core.min.js46
-rw-r--r--tools/eslint/node_modules/lodash/countBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/create.js2
-rw-r--r--tools/eslint/node_modules/lodash/curry.js4
-rw-r--r--tools/eslint/node_modules/lodash/curryRight.js4
-rw-r--r--tools/eslint/node_modules/lodash/deburr.js8
-rw-r--r--tools/eslint/node_modules/lodash/defaults.js6
-rw-r--r--tools/eslint/node_modules/lodash/defaultsDeep.js4
-rw-r--r--tools/eslint/node_modules/lodash/drop.js2
-rw-r--r--tools/eslint/node_modules/lodash/dropRight.js2
-rw-r--r--tools/eslint/node_modules/lodash/dropWhile.js3
-rw-r--r--tools/eslint/node_modules/lodash/every.js3
-rw-r--r--tools/eslint/node_modules/lodash/fill.js2
-rw-r--r--tools/eslint/node_modules/lodash/filter.js3
-rw-r--r--tools/eslint/node_modules/lodash/find.js3
-rw-r--r--tools/eslint/node_modules/lodash/findIndex.js5
-rw-r--r--tools/eslint/node_modules/lodash/findLast.js3
-rw-r--r--tools/eslint/node_modules/lodash/findLastIndex.js5
-rw-r--r--tools/eslint/node_modules/lodash/flatMap.js3
-rw-r--r--tools/eslint/node_modules/lodash/flatMapDeep.js3
-rw-r--r--tools/eslint/node_modules/lodash/flatMapDepth.js3
-rw-r--r--tools/eslint/node_modules/lodash/flatten.js2
-rw-r--r--tools/eslint/node_modules/lodash/flattenDeep.js2
-rw-r--r--tools/eslint/node_modules/lodash/flattenDepth.js2
-rw-r--r--tools/eslint/node_modules/lodash/flip.js4
-rw-r--r--tools/eslint/node_modules/lodash/forEach.js4
-rw-r--r--tools/eslint/node_modules/lodash/forEachRight.js4
-rw-r--r--tools/eslint/node_modules/lodash/forIn.js4
-rw-r--r--tools/eslint/node_modules/lodash/forInRight.js4
-rw-r--r--tools/eslint/node_modules/lodash/forOwn.js4
-rw-r--r--tools/eslint/node_modules/lodash/forOwnRight.js4
-rw-r--r--tools/eslint/node_modules/lodash/fp/_baseConvert.js77
-rw-r--r--tools/eslint/node_modules/lodash/fp/_mapping.js15
-rw-r--r--tools/eslint/node_modules/lodash/fp/_util.js1
-rw-r--r--tools/eslint/node_modules/lodash/fromPairs.js2
-rw-r--r--tools/eslint/node_modules/lodash/groupBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/indexOf.js2
-rw-r--r--tools/eslint/node_modules/lodash/initial.js2
-rw-r--r--tools/eslint/node_modules/lodash/intersectionWith.js5
-rw-r--r--tools/eslint/node_modules/lodash/invokeMap.js7
-rw-r--r--tools/eslint/node_modules/lodash/isBoolean.js15
-rw-r--r--tools/eslint/node_modules/lodash/isElement.js2
-rw-r--r--tools/eslint/node_modules/lodash/isEmpty.js3
-rw-r--r--tools/eslint/node_modules/lodash/isEqual.js2
-rw-r--r--tools/eslint/node_modules/lodash/isEqualWith.js2
-rw-r--r--tools/eslint/node_modules/lodash/isError.js22
-rw-r--r--tools/eslint/node_modules/lodash/isFunction.js25
-rw-r--r--tools/eslint/node_modules/lodash/isNative.js2
-rw-r--r--tools/eslint/node_modules/lodash/isNumber.js15
-rw-r--r--tools/eslint/node_modules/lodash/isPlainObject.js16
-rw-r--r--tools/eslint/node_modules/lodash/isString.js15
-rw-r--r--tools/eslint/node_modules/lodash/isSymbol.js15
-rw-r--r--tools/eslint/node_modules/lodash/isWeakSet.js15
-rw-r--r--tools/eslint/node_modules/lodash/iteratee.js5
-rw-r--r--tools/eslint/node_modules/lodash/join.js2
-rw-r--r--tools/eslint/node_modules/lodash/keyBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/last.js2
-rw-r--r--tools/eslint/node_modules/lodash/lastIndexOf.js2
-rw-r--r--tools/eslint/node_modules/lodash/lodash.js1024
-rw-r--r--tools/eslint/node_modules/lodash/lodash.min.js264
-rw-r--r--tools/eslint/node_modules/lodash/matches.js5
-rw-r--r--tools/eslint/node_modules/lodash/matchesProperty.js5
-rw-r--r--tools/eslint/node_modules/lodash/memoize.js4
-rw-r--r--tools/eslint/node_modules/lodash/omit.js44
-rw-r--r--tools/eslint/node_modules/lodash/package.json29
-rw-r--r--tools/eslint/node_modules/lodash/partial.js4
-rw-r--r--tools/eslint/node_modules/lodash/partialRight.js4
-rw-r--r--tools/eslint/node_modules/lodash/pick.js12
-rw-r--r--tools/eslint/node_modules/lodash/pickBy.js14
-rw-r--r--tools/eslint/node_modules/lodash/pullAllBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/pullAt.js2
-rw-r--r--tools/eslint/node_modules/lodash/rearg.js4
-rw-r--r--tools/eslint/node_modules/lodash/remove.js3
-rw-r--r--tools/eslint/node_modules/lodash/result.js5
-rw-r--r--tools/eslint/node_modules/lodash/reverse.js2
-rw-r--r--tools/eslint/node_modules/lodash/slice.js2
-rw-r--r--tools/eslint/node_modules/lodash/sortedIndexBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/sortedIndexOf.js2
-rw-r--r--tools/eslint/node_modules/lodash/sortedLastIndexBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/sortedLastIndexOf.js2
-rw-r--r--tools/eslint/node_modules/lodash/spread.js2
-rw-r--r--tools/eslint/node_modules/lodash/startsWith.js5
-rw-r--r--tools/eslint/node_modules/lodash/tail.js2
-rw-r--r--tools/eslint/node_modules/lodash/takeRight.js2
-rw-r--r--tools/eslint/node_modules/lodash/takeRightWhile.js3
-rw-r--r--tools/eslint/node_modules/lodash/takeWhile.js5
-rw-r--r--tools/eslint/node_modules/lodash/template.js8
-rw-r--r--tools/eslint/node_modules/lodash/templateSettings.js4
-rw-r--r--tools/eslint/node_modules/lodash/times.js6
-rw-r--r--tools/eslint/node_modules/lodash/toArray.js6
-rw-r--r--tools/eslint/node_modules/lodash/toPath.js5
-rw-r--r--tools/eslint/node_modules/lodash/toSafeInteger.js4
-rw-r--r--tools/eslint/node_modules/lodash/unionBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/unionWith.js4
-rw-r--r--tools/eslint/node_modules/lodash/uniq.js4
-rw-r--r--tools/eslint/node_modules/lodash/uniqBy.js7
-rw-r--r--tools/eslint/node_modules/lodash/uniqWith.js5
-rw-r--r--tools/eslint/node_modules/lodash/values.js2
-rw-r--r--tools/eslint/node_modules/lodash/wrap.js5
-rw-r--r--tools/eslint/node_modules/lodash/wrapperAt.js2
-rw-r--r--tools/eslint/node_modules/lodash/wrapperLodash.js6
-rw-r--r--tools/eslint/node_modules/lodash/xorBy.js3
-rw-r--r--tools/eslint/node_modules/lodash/xorWith.js4
-rw-r--r--tools/eslint/node_modules/lodash/zipWith.js3
-rw-r--r--tools/eslint/node_modules/ms/LICENSE.md21
-rw-r--r--tools/eslint/node_modules/ms/README.md33
-rw-r--r--tools/eslint/node_modules/ms/index.js102
-rw-r--r--tools/eslint/node_modules/ms/package.json80
-rw-r--r--tools/eslint/node_modules/number-is-nan/package.json5
-rw-r--r--tools/eslint/node_modules/prelude-ls/package.json2
-rw-r--r--tools/eslint/node_modules/readable-stream/.zuul.yml1
-rw-r--r--tools/eslint/node_modules/readable-stream/README.md8
-rw-r--r--tools/eslint/node_modules/readable-stream/lib/_stream_readable.js285
-rw-r--r--tools/eslint/node_modules/readable-stream/lib/_stream_transform.js16
-rw-r--r--tools/eslint/node_modules/readable-stream/lib/_stream_writable.js76
-rw-r--r--tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js64
-rw-r--r--tools/eslint/node_modules/readable-stream/package.json57
-rw-r--r--tools/eslint/node_modules/readable-stream/readable.js4
-rw-r--r--tools/eslint/node_modules/rechoir/LICENSE22
-rw-r--r--tools/eslint/node_modules/rechoir/README.md42
-rw-r--r--tools/eslint/node_modules/rechoir/index.js59
-rw-r--r--tools/eslint/node_modules/rechoir/lib/extension.js11
-rw-r--r--tools/eslint/node_modules/rechoir/lib/normalize.js15
-rw-r--r--tools/eslint/node_modules/rechoir/lib/register.js15
-rw-r--r--tools/eslint/node_modules/rechoir/package.json148
-rw-r--r--tools/eslint/node_modules/require-uncached/index.js19
-rw-r--r--tools/eslint/node_modules/require-uncached/license21
-rw-r--r--tools/eslint/node_modules/require-uncached/package.json38
-rw-r--r--tools/eslint/node_modules/require-uncached/readme.md19
-rw-r--r--tools/eslint/node_modules/resolve/LICENSE (renamed from tools/eslint/node_modules/ms/LICENSE)4
-rw-r--r--tools/eslint/node_modules/resolve/index.js5
-rw-r--r--tools/eslint/node_modules/resolve/lib/async.js193
-rw-r--r--tools/eslint/node_modules/resolve/lib/caller.js8
-rw-r--r--tools/eslint/node_modules/resolve/lib/core.js22
-rw-r--r--tools/eslint/node_modules/resolve/lib/core.json47
-rw-r--r--tools/eslint/node_modules/resolve/lib/node-modules-paths.js38
-rw-r--r--tools/eslint/node_modules/resolve/lib/sync.js84
-rw-r--r--tools/eslint/node_modules/resolve/package.json101
-rw-r--r--tools/eslint/node_modules/resolve/readme.markdown148
-rw-r--r--tools/eslint/node_modules/shelljs/.eslintrc.json32
-rw-r--r--tools/eslint/node_modules/shelljs/README.md294
-rwxr-xr-xtools/eslint/node_modules/shelljs/bin/shjs26
-rw-r--r--tools/eslint/node_modules/shelljs/global.js11
-rw-r--r--tools/eslint/node_modules/shelljs/package.json71
-rw-r--r--tools/eslint/node_modules/shelljs/plugin.js16
-rwxr-xr-xtools/eslint/node_modules/shelljs/scripts/generate-docs.js15
-rwxr-xr-xtools/eslint/node_modules/shelljs/scripts/run-tests.js36
-rw-r--r--tools/eslint/node_modules/shelljs/shell.js148
-rw-r--r--tools/eslint/node_modules/shelljs/src/cat.js24
-rw-r--r--tools/eslint/node_modules/shelljs/src/cd.js36
-rw-r--r--tools/eslint/node_modules/shelljs/src/chmod.js98
-rw-r--r--tools/eslint/node_modules/shelljs/src/common.js336
-rw-r--r--tools/eslint/node_modules/shelljs/src/cp.js276
-rw-r--r--tools/eslint/node_modules/shelljs/src/dirs.js21
-rw-r--r--tools/eslint/node_modules/shelljs/src/echo.js22
-rw-r--r--tools/eslint/node_modules/shelljs/src/error.js8
-rw-r--r--tools/eslint/node_modules/shelljs/src/exec.js177
-rw-r--r--tools/eslint/node_modules/shelljs/src/find.js19
-rw-r--r--tools/eslint/node_modules/shelljs/src/grep.js59
-rw-r--r--tools/eslint/node_modules/shelljs/src/head.js104
-rw-r--r--tools/eslint/node_modules/shelljs/src/ln.js23
-rw-r--r--tools/eslint/node_modules/shelljs/src/ls.js163
-rw-r--r--tools/eslint/node_modules/shelljs/src/mkdir.js54
-rw-r--r--tools/eslint/node_modules/shelljs/src/mv.js53
-rw-r--r--tools/eslint/node_modules/shelljs/src/popd.js2
-rw-r--r--tools/eslint/node_modules/shelljs/src/pushd.js2
-rw-r--r--tools/eslint/node_modules/shelljs/src/pwd.js6
-rw-r--r--tools/eslint/node_modules/shelljs/src/rm.js88
-rw-r--r--tools/eslint/node_modules/shelljs/src/sed.js55
-rw-r--r--tools/eslint/node_modules/shelljs/src/set.js20
-rw-r--r--tools/eslint/node_modules/shelljs/src/sort.js91
-rw-r--r--tools/eslint/node_modules/shelljs/src/tail.js72
-rw-r--r--tools/eslint/node_modules/shelljs/src/tempdir.js24
-rw-r--r--tools/eslint/node_modules/shelljs/src/test.js66
-rw-r--r--tools/eslint/node_modules/shelljs/src/to.js26
-rw-r--r--tools/eslint/node_modules/shelljs/src/toEnd.js25
-rw-r--r--tools/eslint/node_modules/shelljs/src/touch.js35
-rw-r--r--tools/eslint/node_modules/shelljs/src/uniq.js80
-rw-r--r--tools/eslint/node_modules/shelljs/src/which.js35
-rw-r--r--tools/eslint/node_modules/string-width/package.json3
-rw-r--r--tools/eslint/node_modules/strip-ansi/package.json3
-rwxr-xr-xtools/eslint/node_modules/strip-json-comments/cli.js41
-rw-r--r--tools/eslint/node_modules/strip-json-comments/index.js70
-rw-r--r--tools/eslint/node_modules/strip-json-comments/package.json58
-rw-r--r--tools/eslint/node_modules/strip-json-comments/readme.md40
-rw-r--r--tools/eslint/node_modules/strip-json-comments/strip-json-comments.js73
-rw-r--r--tools/eslint/node_modules/table/dist/alignString.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/alignTableData.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/calculateCellHeight.js2
-rw-r--r--tools/eslint/node_modules/table/dist/calculateCellHeight.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/calculateCellWidthIndex.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/calculateRowHeightIndex.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/createStream.js2
-rw-r--r--tools/eslint/node_modules/table/dist/createStream.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/drawBorder.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/drawRow.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/drawTable.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/getBorderCharacters.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/index.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/makeConfig.js8
-rw-r--r--tools/eslint/node_modules/table/dist/makeConfig.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/makeStreamConfig.js8
-rw-r--r--tools/eslint/node_modules/table/dist/makeStreamConfig.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/padTableData.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/stringifyTableData.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/table.js2
-rw-r--r--tools/eslint/node_modules/table/dist/table.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/truncateTableData.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/validateConfig.js810
-rw-r--r--tools/eslint/node_modules/table/dist/validateConfig.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/validateStreamConfig.js789
-rw-r--r--tools/eslint/node_modules/table/dist/validateStreamConfig.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/validateTableData.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/wrapString.js.map1
-rw-r--r--tools/eslint/node_modules/table/dist/wrapWord.js.map1
-rw-r--r--tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/index.js46
-rw-r--r--tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/license21
-rw-r--r--tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/package.json113
-rw-r--r--tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/readme.md39
-rw-r--r--tools/eslint/node_modules/table/node_modules/string-width/index.js35
-rw-r--r--tools/eslint/node_modules/table/node_modules/string-width/license21
-rw-r--r--tools/eslint/node_modules/table/node_modules/string-width/package.json125
-rw-r--r--tools/eslint/node_modules/table/node_modules/string-width/readme.md42
-rw-r--r--tools/eslint/node_modules/table/package.json53
-rw-r--r--tools/eslint/node_modules/tryit/package.json25
-rw-r--r--tools/eslint/node_modules/typedarray/package.json16
-rw-r--r--tools/eslint/package.json49
721 files changed, 20936 insertions, 10996 deletions
diff --git a/tools/eslint/LICENSE b/tools/eslint/LICENSE
index d41bdf7951..777939e8fc 100644
--- a/tools/eslint/LICENSE
+++ b/tools/eslint/LICENSE
@@ -1,5 +1,5 @@
ESLint
-Copyright jQuery Foundation and other contributors, https://jquery.org/
+Copyright JS Foundation and other contributors, https://js.foundation
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/tools/eslint/README.md b/tools/eslint/README.md
index 4d84a7e3df..dcd42cff46 100644
--- a/tools/eslint/README.md
+++ b/tools/eslint/README.md
@@ -13,7 +13,7 @@
[Rules](http://eslint.org/docs/rules/) |
[Contributing](http://eslint.org/docs/developer-guide/contributing) |
[Reporting Bugs](http://eslint.org/docs/developer-guide/contributing/reporting-bugs) |
-[Code of Conduct](https://jquery.org/conduct/) |
+[Code of Conduct](https://js.foundation/conduct/) |
[Twitter](https://twitter.com/geteslint) |
[Mailing List](https://groups.google.com/group/eslint) |
[Chat Room](https://gitter.im/eslint/eslint)
@@ -210,10 +210,7 @@ ESLint has full support for ECMAScript 6. By default, this support is off. You c
ESLint doesn't natively support experimental ECMAScript language features. You can use [babel-eslint](https://github.com/babel/babel-eslint) to use any option available in Babel.
-Once a language feature has been adopted into the ECMAScript standard, we will accept
-issues and pull requests related to the new feature, subject to our [contributing
-guidelines](http://eslint.org/docs/developer-guide/contributing). Until then, please use
-the appropriate parser and plugin(s) for your experimental feature.
+Once a language feature has been adopted into the ECMAScript standard (stage 4 according to the [TC39 process](https://tc39.github.io/process-document/)), we will accept issues and pull requests related to the new feature, subject to our [contributing guidelines](http://eslint.org/docs/developer-guide/contributing). Until then, please use the appropriate parser and plugin(s) for your experimental feature.
### Where to ask for help?
diff --git a/tools/eslint/bin/eslint.js b/tools/eslint/bin/eslint.js
index d85d29d7a5..bf534971f2 100755
--- a/tools/eslint/bin/eslint.js
+++ b/tools/eslint/bin/eslint.js
@@ -5,7 +5,7 @@
* @author Nicholas C. Zakas
*/
-/* eslint no-console:off, no-process-exit:off */
+/* eslint no-console:off */
"use strict";
@@ -36,7 +36,7 @@ const concat = require("concat-stream"),
// Execution
//------------------------------------------------------------------------------
-process.on("uncaughtException", function(err) {
+process.once("uncaughtException", err => {
// lazy load
const lodash = require("lodash");
@@ -51,17 +51,17 @@ process.on("uncaughtException", function(err) {
console.log(err.stack);
}
- process.exit(1);
+ process.exitCode = 1;
});
if (useStdIn) {
- process.stdin.pipe(concat({ encoding: "string" }, function(text) {
+ process.stdin.pipe(concat({ encoding: "string" }, text => {
process.exitCode = cli.execute(process.argv, text);
}));
} else if (init) {
const configInit = require("../lib/config/config-initializer");
- configInit.initializeConfig(function(err) {
+ configInit.initializeConfig(err => {
if (err) {
process.exitCode = 1;
console.error(err.message);
diff --git a/tools/eslint/conf/eslint.json b/tools/eslint/conf/eslint.json
index 4d54e3ab6d..81f5bb8aa5 100755
--- a/tools/eslint/conf/eslint.json
+++ b/tools/eslint/conf/eslint.json
@@ -4,6 +4,7 @@
"rules": {
"no-alert": "off",
"no-array-constructor": "off",
+ "no-await-in-loop": "off",
"no-bitwise": "off",
"no-caller": "off",
"no-case-declarations": "error",
@@ -41,7 +42,7 @@
"no-fallthrough": "error",
"no-floating-decimal": "off",
"no-func-assign": "error",
- "no-global-assign": "off",
+ "no-global-assign": "error",
"no-implicit-coercion": "off",
"no-implicit-globals": "off",
"no-implied-eval": "off",
@@ -63,9 +64,9 @@
"no-multi-spaces": "off",
"no-multi-str": "off",
"no-multiple-empty-lines": "off",
- "no-native-reassign": "error",
+ "no-native-reassign": "off",
"no-negated-condition": "off",
- "no-negated-in-lhs": "error",
+ "no-negated-in-lhs": "off",
"no-nested-ternary": "off",
"no-new": "off",
"no-new-func": "off",
@@ -91,6 +92,7 @@
"no-restricted-properties": "off",
"no-restricted-syntax": "off",
"no-return-assign": "off",
+ "no-return-await": "off",
"no-script-url": "off",
"no-self-assign": "error",
"no-self-compare": "off",
@@ -115,7 +117,7 @@
"no-unneeded-ternary": "off",
"no-unreachable": "error",
"no-unsafe-finally": "error",
- "no-unsafe-negation": "off",
+ "no-unsafe-negation": "error",
"no-unused-expressions": "off",
"no-unused-labels": "error",
"no-unused-vars": "error",
@@ -126,6 +128,7 @@
"no-useless-constructor": "off",
"no-useless-escape": "off",
"no-useless-rename": "off",
+ "no-useless-return": "off",
"no-void": "off",
"no-var": "off",
"no-warning-comments": "off",
@@ -141,6 +144,7 @@
"brace-style": "off",
"callback-return": "off",
"camelcase": "off",
+ "capitalized-comments": "off",
"class-methods-use-this": "off",
"comma-dangle": "off",
"comma-spacing": "off",
@@ -200,6 +204,7 @@
"padded-blocks": "off",
"prefer-arrow-callback": "off",
"prefer-const": "off",
+ "prefer-destructuring": "off",
"prefer-numeric-literals": "off",
"prefer-reflect": "off",
"prefer-rest-params": "off",
@@ -208,6 +213,7 @@
"quote-props": "off",
"quotes": "off",
"radix": "off",
+ "require-await": "off",
"require-jsdoc": "off",
"require-yield": "error",
"rest-spread-spacing": "off",
diff --git a/tools/eslint/lib/ast-utils.js b/tools/eslint/lib/ast-utils.js
index 9e171ea316..46dfebe101 100644
--- a/tools/eslint/lib/ast-utils.js
+++ b/tools/eslint/lib/ast-utils.js
@@ -10,6 +10,7 @@
//------------------------------------------------------------------------------
const esutils = require("esutils");
+const lodash = require("lodash");
//------------------------------------------------------------------------------
// Helpers
@@ -21,7 +22,7 @@ const arrayOrTypedArrayPattern = /Array$/;
const arrayMethodPattern = /^(?:every|filter|find|findIndex|forEach|map|some)$/;
const bindOrCallOrApplyPattern = /^(?:bind|call|apply)$/;
const breakableTypePattern = /^(?:(?:Do)?While|For(?:In|Of)?|Switch)Statement$/;
-const thisTagPattern = /^[\s\*]*@this/m;
+const thisTagPattern = /^[\s*]*@this/m;
/**
* Checks reference if is non initializer and writable.
@@ -84,6 +85,56 @@ function getUpperFunction(node) {
}
/**
+ * Checks whether a given node is a function node or not.
+ * The following types are function nodes:
+ *
+ * - ArrowFunctionExpression
+ * - FunctionDeclaration
+ * - FunctionExpression
+ *
+ * @param {ASTNode|null} node - A node to check.
+ * @returns {boolean} `true` if the node is a function node.
+ */
+function isFunction(node) {
+ return Boolean(node && anyFunctionPattern.test(node.type));
+}
+
+/**
+ * Checks whether a given node is a loop node or not.
+ * The following types are loop nodes:
+ *
+ * - DoWhileStatement
+ * - ForInStatement
+ * - ForOfStatement
+ * - ForStatement
+ * - WhileStatement
+ *
+ * @param {ASTNode|null} node - A node to check.
+ * @returns {boolean} `true` if the node is a loop node.
+ */
+function isLoop(node) {
+ return Boolean(node && anyLoopPattern.test(node.type));
+}
+
+/**
+ * Checks whether the given node is in a loop or not.
+ *
+ * @param {ASTNode} node - The node to check.
+ * @returns {boolean} `true` if the node is in a loop.
+ */
+function isInLoop(node) {
+ while (node && !isFunction(node)) {
+ if (isLoop(node)) {
+ return true;
+ }
+
+ node = node.parent;
+ }
+
+ return false;
+}
+
+/**
* Checks whether or not a node is `null` or `undefined`.
* @param {ASTNode} node - A node to check.
* @returns {boolean} Whether or not the node is a `null` or `undefined`.
@@ -176,9 +227,7 @@ function hasJSDocThisTag(node, sourceCode) {
// because callbacks don't have its JSDoc comment.
// e.g.
// sinon.test(/* @this sinon.Sandbox */function() { this.spy(); });
- return sourceCode.getComments(node).leading.some(function(comment) {
- return thisTagPattern.test(comment.value);
- });
+ return sourceCode.getComments(node).leading.some(comment => thisTagPattern.test(comment.value));
}
/**
@@ -197,6 +246,59 @@ function isParenthesised(sourceCode, node) {
nextToken.value === ")" && nextToken.range[0] >= node.range[1];
}
+/**
+ * Gets the `=>` token of the given arrow function node.
+ *
+ * @param {ASTNode} node - The arrow function node to get.
+ * @param {SourceCode} sourceCode - The source code object to get tokens.
+ * @returns {Token} `=>` token.
+ */
+function getArrowToken(node, sourceCode) {
+ let token = sourceCode.getTokenBefore(node.body);
+
+ while (token.value !== "=>") {
+ token = sourceCode.getTokenBefore(token);
+ }
+
+ return token;
+}
+
+/**
+ * Gets the `(` token of the given function node.
+ *
+ * @param {ASTNode} node - The function node to get.
+ * @param {SourceCode} sourceCode - The source code object to get tokens.
+ * @returns {Token} `(` token.
+ */
+function getOpeningParenOfParams(node, sourceCode) {
+ let token = node.id ? sourceCode.getTokenAfter(node.id) : sourceCode.getFirstToken(node);
+
+ while (token.value !== "(") {
+ token = sourceCode.getTokenAfter(token);
+ }
+
+ return token;
+}
+
+const lineIndexCache = new WeakMap();
+
+/**
+ * Gets the range index for the first character in each of the lines of `sourceCode`.
+ * @param {SourceCode} sourceCode A sourceCode object
+ * @returns {number[]} The indices of the first characters in the each of the lines of the code
+ */
+function getLineIndices(sourceCode) {
+
+ if (!lineIndexCache.has(sourceCode)) {
+ const lineIndices = (sourceCode.text.match(/[^\r\n\u2028\u2029]*(\r\n|\r|\n|\u2028|\u2029)/g) || [])
+ .reduce((indices, line) => indices.concat(indices[indices.length - 1] + line.length), [0]);
+
+ // Store the sourceCode object in a WeakMap to avoid iterating over all of the lines every time a sourceCode object is passed in.
+ lineIndexCache.set(sourceCode, lineIndices);
+ }
+ return lineIndexCache.get(sourceCode);
+}
+
//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------
@@ -218,6 +320,9 @@ module.exports = {
isCallee,
isES5Constructor,
getUpperFunction,
+ isFunction,
+ isLoop,
+ isInLoop,
isArrayFromMethod,
isParenthesised,
@@ -583,35 +688,23 @@ module.exports = {
},
/**
- * Checks whether a given node is a loop node or not.
- * The following types are loop nodes:
+ * Checks whether the given node is an empty block node or not.
*
- * - DoWhileStatement
- * - ForInStatement
- * - ForOfStatement
- * - ForStatement
- * - WhileStatement
- *
- * @param {ASTNode|null} node - A node to check.
- * @returns {boolean} `true` if the node is a loop node.
+ * @param {ASTNode|null} node - The node to check.
+ * @returns {boolean} `true` if the node is an empty block.
*/
- isLoop(node) {
- return Boolean(node && anyLoopPattern.test(node.type));
+ isEmptyBlock(node) {
+ return Boolean(node && node.type === "BlockStatement" && node.body.length === 0);
},
/**
- * Checks whether a given node is a function node or not.
- * The following types are function nodes:
+ * Checks whether the given node is an empty function node or not.
*
- * - ArrowFunctionExpression
- * - FunctionDeclaration
- * - FunctionExpression
- *
- * @param {ASTNode|null} node - A node to check.
- * @returns {boolean} `true` if the node is a function node.
+ * @param {ASTNode|null} node - The node to check.
+ * @returns {boolean} `true` if the node is an empty function.
*/
- isFunction(node) {
- return Boolean(node && anyFunctionPattern.test(node.type));
+ isEmptyFunction(node) {
+ return isFunction(node) && module.exports.isEmptyBlock(node.body);
},
/**
@@ -738,5 +831,271 @@ module.exports = {
*/
isDecimalInteger(node) {
return node.type === "Literal" && typeof node.value === "number" && /^(0|[1-9]\d*)$/.test(node.raw);
+ },
+
+ /**
+ * Gets the name and kind of the given function node.
+ *
+ * - `function foo() {}` .................... `function 'foo'`
+ * - `(function foo() {})` .................. `function 'foo'`
+ * - `(function() {})` ...................... `function`
+ * - `function* foo() {}` ................... `generator function 'foo'`
+ * - `(function* foo() {})` ................. `generator function 'foo'`
+ * - `(function*() {})` ..................... `generator function`
+ * - `() => {}` ............................. `arrow function`
+ * - `async () => {}` ....................... `async arrow function`
+ * - `({ foo: function foo() {} })` ......... `method 'foo'`
+ * - `({ foo: function() {} })` ............. `method 'foo'`
+ * - `({ ['foo']: function() {} })` ......... `method 'foo'`
+ * - `({ [foo]: function() {} })` ........... `method`
+ * - `({ foo() {} })` ....................... `method 'foo'`
+ * - `({ foo: function* foo() {} })` ........ `generator method 'foo'`
+ * - `({ foo: function*() {} })` ............ `generator method 'foo'`
+ * - `({ ['foo']: function*() {} })` ........ `generator method 'foo'`
+ * - `({ [foo]: function*() {} })` .......... `generator method`
+ * - `({ *foo() {} })` ...................... `generator method 'foo'`
+ * - `({ foo: async function foo() {} })` ... `async method 'foo'`
+ * - `({ foo: async function() {} })` ....... `async method 'foo'`
+ * - `({ ['foo']: async function() {} })` ... `async method 'foo'`
+ * - `({ [foo]: async function() {} })` ..... `async method`
+ * - `({ async foo() {} })` ................. `async method 'foo'`
+ * - `({ get foo() {} })` ................... `getter 'foo'`
+ * - `({ set foo(a) {} })` .................. `setter 'foo'`
+ * - `class A { constructor() {} }` ......... `constructor`
+ * - `class A { foo() {} }` ................. `method 'foo'`
+ * - `class A { *foo() {} }` ................ `generator method 'foo'`
+ * - `class A { async foo() {} }` ........... `async method 'foo'`
+ * - `class A { ['foo']() {} }` ............. `method 'foo'`
+ * - `class A { *['foo']() {} }` ............ `generator method 'foo'`
+ * - `class A { async ['foo']() {} }` ....... `async method 'foo'`
+ * - `class A { [foo]() {} }` ............... `method`
+ * - `class A { *[foo]() {} }` .............. `generator method`
+ * - `class A { async [foo]() {} }` ......... `async method`
+ * - `class A { get foo() {} }` ............. `getter 'foo'`
+ * - `class A { set foo(a) {} }` ............ `setter 'foo'`
+ * - `class A { static foo() {} }` .......... `static method 'foo'`
+ * - `class A { static *foo() {} }` ......... `static generator method 'foo'`
+ * - `class A { static async foo() {} }` .... `static async method 'foo'`
+ * - `class A { static get foo() {} }` ...... `static getter 'foo'`
+ * - `class A { static set foo(a) {} }` ..... `static setter 'foo'`
+ *
+ * @param {ASTNode} node - The function node to get.
+ * @returns {string} The name and kind of the function node.
+ */
+ getFunctionNameWithKind(node) {
+ const parent = node.parent;
+ const tokens = [];
+
+ if (parent.type === "MethodDefinition" && parent.static) {
+ tokens.push("static");
+ }
+ if (node.async) {
+ tokens.push("async");
+ }
+ if (node.generator) {
+ tokens.push("generator");
+ }
+
+ if (node.type === "ArrowFunctionExpression") {
+ tokens.push("arrow", "function");
+ } else if (parent.type === "Property" || parent.type === "MethodDefinition") {
+ if (parent.kind === "constructor") {
+ return "constructor";
+ } else if (parent.kind === "get") {
+ tokens.push("getter");
+ } else if (parent.kind === "set") {
+ tokens.push("setter");
+ } else {
+ tokens.push("method");
+ }
+ } else {
+ tokens.push("function");
+ }
+
+ if (node.id) {
+ tokens.push(`'${node.id.name}'`);
+ } else {
+ const name = module.exports.getStaticPropertyName(parent);
+
+ if (name) {
+ tokens.push(`'${name}'`);
+ }
+ }
+
+ return tokens.join(" ");
+ },
+
+ /**
+ * Gets the location of the given function node for reporting.
+ *
+ * - `function foo() {}`
+ * ^^^^^^^^^^^^
+ * - `(function foo() {})`
+ * ^^^^^^^^^^^^
+ * - `(function() {})`
+ * ^^^^^^^^
+ * - `function* foo() {}`
+ * ^^^^^^^^^^^^^
+ * - `(function* foo() {})`
+ * ^^^^^^^^^^^^^
+ * - `(function*() {})`
+ * ^^^^^^^^^
+ * - `() => {}`
+ * ^^
+ * - `async () => {}`
+ * ^^
+ * - `({ foo: function foo() {} })`
+ * ^^^^^^^^^^^^^^^^^
+ * - `({ foo: function() {} })`
+ * ^^^^^^^^^^^^^
+ * - `({ ['foo']: function() {} })`
+ * ^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function() {} })`
+ * ^^^^^^^^^^^^^^^
+ * - `({ foo() {} })`
+ * ^^^
+ * - `({ foo: function* foo() {} })`
+ * ^^^^^^^^^^^^^^^^^^
+ * - `({ foo: function*() {} })`
+ * ^^^^^^^^^^^^^^
+ * - `({ ['foo']: function*() {} })`
+ * ^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: function*() {} })`
+ * ^^^^^^^^^^^^^^^^
+ * - `({ *foo() {} })`
+ * ^^^^
+ * - `({ foo: async function foo() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ foo: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^
+ * - `({ ['foo']: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^^^
+ * - `({ [foo]: async function() {} })`
+ * ^^^^^^^^^^^^^^^^^^^^^
+ * - `({ async foo() {} })`
+ * ^^^^^^^^^
+ * - `({ get foo() {} })`
+ * ^^^^^^^
+ * - `({ set foo(a) {} })`
+ * ^^^^^^^
+ * - `class A { constructor() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { foo() {} }`
+ * ^^^
+ * - `class A { *foo() {} }`
+ * ^^^^
+ * - `class A { async foo() {} }`
+ * ^^^^^^^^^
+ * - `class A { ['foo']() {} }`
+ * ^^^^^^^
+ * - `class A { *['foo']() {} }`
+ * ^^^^^^^^
+ * - `class A { async ['foo']() {} }`
+ * ^^^^^^^^^^^^^
+ * - `class A { [foo]() {} }`
+ * ^^^^^
+ * - `class A { *[foo]() {} }`
+ * ^^^^^^
+ * - `class A { async [foo]() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { get foo() {} }`
+ * ^^^^^^^
+ * - `class A { set foo(a) {} }`
+ * ^^^^^^^
+ * - `class A { static foo() {} }`
+ * ^^^^^^^^^^
+ * - `class A { static *foo() {} }`
+ * ^^^^^^^^^^^
+ * - `class A { static async foo() {} }`
+ * ^^^^^^^^^^^^^^^^
+ * - `class A { static get foo() {} }`
+ * ^^^^^^^^^^^^^^
+ * - `class A { static set foo(a) {} }`
+ * ^^^^^^^^^^^^^^
+ *
+ * @param {ASTNode} node - The function node to get.
+ * @param {SourceCode} sourceCode - The source code object to get tokens.
+ * @returns {string} The location of the function node for reporting.
+ */
+ getFunctionHeadLoc(node, sourceCode) {
+ const parent = node.parent;
+ let start = null;
+ let end = null;
+
+ if (node.type === "ArrowFunctionExpression") {
+ const arrowToken = getArrowToken(node, sourceCode);
+
+ start = arrowToken.loc.start;
+ end = arrowToken.loc.end;
+ } else if (parent.type === "Property" || parent.type === "MethodDefinition") {
+ start = parent.loc.start;
+ end = getOpeningParenOfParams(node, sourceCode).loc.start;
+ } else {
+ start = node.loc.start;
+ end = getOpeningParenOfParams(node, sourceCode).loc.start;
+ }
+
+ return {
+ start: Object.assign({}, start),
+ end: Object.assign({}, end),
+ };
+ },
+
+ /*
+ * Converts a range index into a (line, column) pair.
+ * @param {SourceCode} sourceCode A SourceCode object
+ * @param {number} rangeIndex The range index of a character in a file
+ * @returns {Object} A {line, column} location object with a 0-indexed column
+ */
+ getLocationFromRangeIndex(sourceCode, rangeIndex) {
+ const lineIndices = getLineIndices(sourceCode);
+
+ /*
+ * lineIndices is a sorted list of indices of the first character of each line.
+ * To figure out which line rangeIndex is on, determine the last index at which rangeIndex could
+ * be inserted into lineIndices to keep the list sorted.
+ */
+ const lineNumber = lodash.sortedLastIndex(lineIndices, rangeIndex);
+
+ return { line: lineNumber, column: rangeIndex - lineIndices[lineNumber - 1] };
+
+ },
+
+ /**
+ * Converts a (line, column) pair into a range index.
+ * @param {SourceCode} sourceCode A SourceCode object
+ * @param {Object} loc A line/column location
+ * @param {number} loc.line The line number of the location (1-indexed)
+ * @param {number} loc.column The column number of the location (0-indexed)
+ * @returns {number} The range index of the location in the file.
+ */
+ getRangeIndexFromLocation(sourceCode, loc) {
+ return getLineIndices(sourceCode)[loc.line - 1] + loc.column;
+ },
+
+ /**
+ * Gets the parenthesized text of a node. This is similar to sourceCode.getText(node), but it also includes any parentheses
+ * surrounding the node.
+ * @param {SourceCode} sourceCode The source code object
+ * @param {ASTNode} node An expression node
+ * @returns {string} The text representing the node, with all surrounding parentheses included
+ */
+ getParenthesisedText(sourceCode, node) {
+ let leftToken = sourceCode.getFirstToken(node);
+ let rightToken = sourceCode.getLastToken(node);
+
+ while (
+ sourceCode.getTokenBefore(leftToken) &&
+ sourceCode.getTokenBefore(leftToken).type === "Punctuator" &&
+ sourceCode.getTokenBefore(leftToken).value === "(" &&
+ sourceCode.getTokenAfter(rightToken) &&
+ sourceCode.getTokenAfter(rightToken).type === "Punctuator" &&
+ sourceCode.getTokenAfter(rightToken).value === ")"
+ ) {
+ leftToken = sourceCode.getTokenBefore(leftToken);
+ rightToken = sourceCode.getTokenAfter(rightToken);
+ }
+
+ return sourceCode.getText().slice(leftToken.range[0], rightToken.range[1]);
}
};
diff --git a/tools/eslint/lib/cli-engine.js b/tools/eslint/lib/cli-engine.js
index b9019932fe..de875a4d35 100644
--- a/tools/eslint/lib/cli-engine.js
+++ b/tools/eslint/lib/cli-engine.js
@@ -90,7 +90,7 @@ const debug = require("debug")("eslint:cli-engine");
* @private
*/
function calculateStatsPerFile(messages) {
- return messages.reduce(function(stat, message) {
+ return messages.reduce((stat, message) => {
if (message.fatal || message.severity === 2) {
stat.errorCount++;
} else {
@@ -110,7 +110,7 @@ function calculateStatsPerFile(messages) {
* @private
*/
function calculateStatsPerRun(results) {
- return results.reduce(function(stat, result) {
+ return results.reduce((stat, result) => {
stat.errorCount += result.errorCount;
stat.warningCount += result.warningCount;
return stat;
@@ -241,7 +241,7 @@ function processText(text, configHelper, filename, fix, allowInlineConfig) {
const parsedBlocks = processor.preprocess(text, filename);
const unprocessedMessages = [];
- parsedBlocks.forEach(function(block) {
+ parsedBlocks.forEach(block => {
unprocessedMessages.push(eslint.verify(block, config, {
filename,
allowInlineConfig
@@ -320,11 +320,11 @@ function createIgnoreResult(filePath, baseDir) {
const isInBowerComponents = baseDir && /^bower_components/.test(path.relative(baseDir, filePath));
if (isHidden) {
- message = "File ignored by default. Use a negated ignore pattern (like \"--ignore-pattern \'!<relative/path/to/filename>\'\") to override.";
+ message = "File ignored by default. Use a negated ignore pattern (like \"--ignore-pattern '!<relative/path/to/filename>'\") to override.";
} else if (isInNodeModules) {
- message = "File ignored by default. Use \"--ignore-pattern \'!node_modules/*\'\" to override.";
+ message = "File ignored by default. Use \"--ignore-pattern '!node_modules/*'\" to override.";
} else if (isInBowerComponents) {
- message = "File ignored by default. Use \"--ignore-pattern \'!bower_components/*\'\" to override.";
+ message = "File ignored by default. Use \"--ignore-pattern '!bower_components/*'\" to override.";
} else {
message = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override.";
}
@@ -442,7 +442,7 @@ function CLIEngine(options) {
options = Object.assign(
Object.create(null),
defaultOptions,
- {cwd: process.cwd()},
+ { cwd: process.cwd() },
options
);
@@ -466,15 +466,15 @@ function CLIEngine(options) {
if (this.options.rulePaths) {
const cwd = this.options.cwd;
- this.options.rulePaths.forEach(function(rulesdir) {
+ this.options.rulePaths.forEach(rulesdir => {
debug(`Loading rules from ${rulesdir}`);
rules.load(rulesdir, cwd);
});
}
- Object.keys(this.options.rules || {}).forEach(function(name) {
+ Object.keys(this.options.rules || {}).forEach(name => {
validator.validateRuleOptions(name, this.options.rules[name], "CLI");
- }.bind(this));
+ });
}
/**
@@ -526,7 +526,7 @@ CLIEngine.getFormatter = function(format) {
CLIEngine.getErrorResults = function(results) {
const filtered = [];
- results.forEach(function(result) {
+ results.forEach(result => {
const filteredMessages = result.messages.filter(isErrorMessage);
if (filteredMessages.length > 0) {
@@ -549,9 +549,7 @@ CLIEngine.getErrorResults = function(results) {
* @returns {void}
*/
CLIEngine.outputFixes = function(report) {
- report.results.filter(function(result) {
- return result.hasOwnProperty("output");
- }).forEach(function(result) {
+ report.results.filter(result => result.hasOwnProperty("output")).forEach(result => {
fs.writeFileSync(result.filePath, result.output);
});
};
@@ -708,7 +706,7 @@ CLIEngine.prototype = {
patterns = this.resolveFileGlobPatterns(patterns);
const fileList = globUtil.listFilesToProcess(patterns, options);
- fileList.forEach(function(fileInfo) {
+ fileList.forEach(fileInfo => {
executeOnFile(fileInfo.filename, fileInfo.ignored);
});
@@ -794,4 +792,6 @@ CLIEngine.prototype = {
};
+CLIEngine.version = pkg.version;
+
module.exports = CLIEngine;
diff --git a/tools/eslint/lib/code-path-analysis/code-path-analyzer.js b/tools/eslint/lib/code-path-analysis/code-path-analyzer.js
index 655211430b..cb8b1e1bf8 100644
--- a/tools/eslint/lib/code-path-analysis/code-path-analyzer.js
+++ b/tools/eslint/lib/code-path-analysis/code-path-analyzer.js
@@ -569,21 +569,20 @@ function postprocess(analyzer, node) {
/**
* The class to analyze code paths.
* This class implements the EventGenerator interface.
- *
- * @constructor
- * @param {EventGenerator} eventGenerator - An event generator to wrap.
*/
-function CodePathAnalyzer(eventGenerator) {
- this.original = eventGenerator;
- this.emitter = eventGenerator.emitter;
- this.codePath = null;
- this.idGenerator = new IdGenerator("s");
- this.currentNode = null;
- this.onLooped = this.onLooped.bind(this);
-}
+class CodePathAnalyzer {
-CodePathAnalyzer.prototype = {
- constructor: CodePathAnalyzer,
+ /**
+ * @param {EventGenerator} eventGenerator - An event generator to wrap.
+ */
+ constructor(eventGenerator) {
+ this.original = eventGenerator;
+ this.emitter = eventGenerator.emitter;
+ this.codePath = null;
+ this.idGenerator = new IdGenerator("s");
+ this.currentNode = null;
+ this.onLooped = this.onLooped.bind(this);
+ }
/**
* Does the process to enter a given AST node.
@@ -608,7 +607,7 @@ CodePathAnalyzer.prototype = {
this.original.enterNode(node);
this.currentNode = null;
- },
+ }
/**
* Does the process to leave a given AST node.
@@ -631,7 +630,7 @@ CodePathAnalyzer.prototype = {
postprocess(this, node);
this.currentNode = null;
- },
+ }
/**
* This is called on a code path looped.
@@ -652,6 +651,6 @@ CodePathAnalyzer.prototype = {
);
}
}
-};
+}
module.exports = CodePathAnalyzer;
diff --git a/tools/eslint/lib/code-path-analysis/code-path-segment.js b/tools/eslint/lib/code-path-analysis/code-path-segment.js
index b3966c415b..db1eba4560 100644
--- a/tools/eslint/lib/code-path-analysis/code-path-segment.js
+++ b/tools/eslint/lib/code-path-analysis/code-path-segment.js
@@ -68,174 +68,175 @@ function isReachable(segment) {
/**
* A code path segment.
- *
- * @constructor
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
- * This array includes unreachable segments.
- * @param {boolean} reachable - A flag which shows this is reachable.
*/
-function CodePathSegment(id, allPrevSegments, reachable) {
+class CodePathSegment {
/**
- * The identifier of this code path.
- * Rules use it to store additional information of each rule.
- * @type {string}
+ * @param {string} id - An identifier.
+ * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * This array includes unreachable segments.
+ * @param {boolean} reachable - A flag which shows this is reachable.
*/
- this.id = id;
+ constructor(id, allPrevSegments, reachable) {
+
+ /**
+ * The identifier of this code path.
+ * Rules use it to store additional information of each rule.
+ * @type {string}
+ */
+ this.id = id;
+
+ /**
+ * An array of the next segments.
+ * @type {CodePathSegment[]}
+ */
+ this.nextSegments = [];
+
+ /**
+ * An array of the previous segments.
+ * @type {CodePathSegment[]}
+ */
+ this.prevSegments = allPrevSegments.filter(isReachable);
+
+ /**
+ * An array of the next segments.
+ * This array includes unreachable segments.
+ * @type {CodePathSegment[]}
+ */
+ this.allNextSegments = [];
+
+ /**
+ * An array of the previous segments.
+ * This array includes unreachable segments.
+ * @type {CodePathSegment[]}
+ */
+ this.allPrevSegments = allPrevSegments;
+
+ /**
+ * A flag which shows this is reachable.
+ * @type {boolean}
+ */
+ this.reachable = reachable;
+
+ // Internal data.
+ Object.defineProperty(this, "internal", {
+ value: {
+ used: false,
+ loopedPrevSegments: []
+ }
+ });
- /**
- * An array of the next segments.
- * @type {CodePathSegment[]}
- */
- this.nextSegments = [];
+ /* istanbul ignore if */
+ if (debug.enabled) {
+ this.internal.nodes = [];
+ this.internal.exitNodes = [];
+ }
+ }
/**
- * An array of the previous segments.
- * @type {CodePathSegment[]}
+ * Checks a given previous segment is coming from the end of a loop.
+ *
+ * @param {CodePathSegment} segment - A previous segment to check.
+ * @returns {boolean} `true` if the segment is coming from the end of a loop.
*/
- this.prevSegments = allPrevSegments.filter(isReachable);
+ isLoopedPrevSegment(segment) {
+ return this.internal.loopedPrevSegments.indexOf(segment) !== -1;
+ }
/**
- * An array of the next segments.
- * This array includes unreachable segments.
- * @type {CodePathSegment[]}
+ * Creates the root segment.
+ *
+ * @param {string} id - An identifier.
+ * @returns {CodePathSegment} The created segment.
*/
- this.allNextSegments = [];
+ static newRoot(id) {
+ return new CodePathSegment(id, [], true);
+ }
/**
- * An array of the previous segments.
- * This array includes unreachable segments.
- * @type {CodePathSegment[]}
+ * Creates a segment that follows given segments.
+ *
+ * @param {string} id - An identifier.
+ * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @returns {CodePathSegment} The created segment.
*/
- this.allPrevSegments = allPrevSegments;
+ static newNext(id, allPrevSegments) {
+ return new CodePathSegment(
+ id,
+ flattenUnusedSegments(allPrevSegments),
+ allPrevSegments.some(isReachable));
+ }
/**
- * A flag which shows this is reachable.
- * @type {boolean}
+ * Creates an unreachable segment that follows given segments.
+ *
+ * @param {string} id - An identifier.
+ * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @returns {CodePathSegment} The created segment.
*/
- this.reachable = reachable;
-
- // Internal data.
- Object.defineProperty(this, "internal", {value: {
- used: false,
- loopedPrevSegments: []
- }});
-
- /* istanbul ignore if */
- if (debug.enabled) {
- this.internal.nodes = [];
- this.internal.exitNodes = [];
- }
-}
+ static newUnreachable(id, allPrevSegments) {
+ const segment = new CodePathSegment(id, flattenUnusedSegments(allPrevSegments), false);
-CodePathSegment.prototype = {
- constructor: CodePathSegment,
+ // In `if (a) return a; foo();` case, the unreachable segment preceded by
+ // the return statement is not used but must not be remove.
+ CodePathSegment.markUsed(segment);
+
+ return segment;
+ }
/**
- * Checks a given previous segment is coming from the end of a loop.
+ * Creates a segment that follows given segments.
+ * This factory method does not connect with `allPrevSegments`.
+ * But this inherits `reachable` flag.
*
- * @param {CodePathSegment} segment - A previous segment to check.
- * @returns {boolean} `true` if the segment is coming from the end of a loop.
+ * @param {string} id - An identifier.
+ * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
+ * @returns {CodePathSegment} The created segment.
*/
- isLoopedPrevSegment(segment) {
- return this.internal.loopedPrevSegments.indexOf(segment) !== -1;
+ static newDisconnected(id, allPrevSegments) {
+ return new CodePathSegment(id, [], allPrevSegments.some(isReachable));
}
-};
-
-/**
- * Creates the root segment.
- *
- * @param {string} id - An identifier.
- * @returns {CodePathSegment} The created segment.
- */
-CodePathSegment.newRoot = function(id) {
- return new CodePathSegment(id, [], true);
-};
-/**
- * Creates a segment that follows given segments.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
- * @returns {CodePathSegment} The created segment.
- */
-CodePathSegment.newNext = function(id, allPrevSegments) {
- return new CodePathSegment(
- id,
- flattenUnusedSegments(allPrevSegments),
- allPrevSegments.some(isReachable));
-};
-
-/**
- * Creates an unreachable segment that follows given segments.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
- * @returns {CodePathSegment} The created segment.
- */
-CodePathSegment.newUnreachable = function(id, allPrevSegments) {
- const segment = new CodePathSegment(id, flattenUnusedSegments(allPrevSegments), false);
-
- // In `if (a) return a; foo();` case, the unreachable segment preceded by
- // the return statement is not used but must not be remove.
- CodePathSegment.markUsed(segment);
-
- return segment;
-};
-
-/**
- * Creates a segment that follows given segments.
- * This factory method does not connect with `allPrevSegments`.
- * But this inherits `reachable` flag.
- *
- * @param {string} id - An identifier.
- * @param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
- * @returns {CodePathSegment} The created segment.
- */
-CodePathSegment.newDisconnected = function(id, allPrevSegments) {
- return new CodePathSegment(id, [], allPrevSegments.some(isReachable));
-};
-
-/**
- * Makes a given segment being used.
- *
- * And this function registers the segment into the previous segments as a next.
- *
- * @param {CodePathSegment} segment - A segment to mark.
- * @returns {void}
- */
-CodePathSegment.markUsed = function(segment) {
- if (segment.internal.used) {
- return;
- }
- segment.internal.used = true;
+ /**
+ * Makes a given segment being used.
+ *
+ * And this function registers the segment into the previous segments as a next.
+ *
+ * @param {CodePathSegment} segment - A segment to mark.
+ * @returns {void}
+ */
+ static markUsed(segment) {
+ if (segment.internal.used) {
+ return;
+ }
+ segment.internal.used = true;
- let i;
+ let i;
- if (segment.reachable) {
- for (i = 0; i < segment.allPrevSegments.length; ++i) {
- const prevSegment = segment.allPrevSegments[i];
+ if (segment.reachable) {
+ for (i = 0; i < segment.allPrevSegments.length; ++i) {
+ const prevSegment = segment.allPrevSegments[i];
- prevSegment.allNextSegments.push(segment);
- prevSegment.nextSegments.push(segment);
- }
- } else {
- for (i = 0; i < segment.allPrevSegments.length; ++i) {
- segment.allPrevSegments[i].allNextSegments.push(segment);
+ prevSegment.allNextSegments.push(segment);
+ prevSegment.nextSegments.push(segment);
+ }
+ } else {
+ for (i = 0; i < segment.allPrevSegments.length; ++i) {
+ segment.allPrevSegments[i].allNextSegments.push(segment);
+ }
}
}
-};
-/**
- * Marks a previous segment as looped.
- *
- * @param {CodePathSegment} segment - A segment.
- * @param {CodePathSegment} prevSegment - A previous segment to mark.
- * @returns {void}
- */
-CodePathSegment.markPrevSegmentAsLooped = function(segment, prevSegment) {
- segment.internal.loopedPrevSegments.push(prevSegment);
-};
+ /**
+ * Marks a previous segment as looped.
+ *
+ * @param {CodePathSegment} segment - A segment.
+ * @param {CodePathSegment} prevSegment - A previous segment to mark.
+ * @returns {void}
+ */
+ static markPrevSegmentAsLooped(segment, prevSegment) {
+ segment.internal.loopedPrevSegments.push(prevSegment);
+ }
+}
module.exports = CodePathSegment;
diff --git a/tools/eslint/lib/code-path-analysis/code-path-state.js b/tools/eslint/lib/code-path-analysis/code-path-state.js
index 3b0b1606e2..64779c0d3c 100644
--- a/tools/eslint/lib/code-path-analysis/code-path-state.js
+++ b/tools/eslint/lib/code-path-analysis/code-path-state.js
@@ -221,36 +221,35 @@ function finalizeTestSegmentsOfFor(context, choiceContext, head) {
/**
* A class which manages state to analyze code paths.
- *
- * @constructor
- * @param {IdGenerator} idGenerator - An id generator to generate id for code
- * path segments.
- * @param {Function} onLooped - A callback function to notify looping.
*/
-function CodePathState(idGenerator, onLooped) {
- this.idGenerator = idGenerator;
- this.notifyLooped = onLooped;
- this.forkContext = ForkContext.newRoot(idGenerator);
- this.choiceContext = null;
- this.switchContext = null;
- this.tryContext = null;
- this.loopContext = null;
- this.breakContext = null;
-
- this.currentSegments = [];
- this.initialSegment = this.forkContext.head[0];
-
- // returnedSegments and thrownSegments push elements into finalSegments also.
- const final = this.finalSegments = [];
- const returned = this.returnedForkContext = [];
- const thrown = this.thrownForkContext = [];
-
- returned.add = addToReturnedOrThrown.bind(null, returned, thrown, final);
- thrown.add = addToReturnedOrThrown.bind(null, thrown, returned, final);
-}
+class CodePathState {
-CodePathState.prototype = {
- constructor: CodePathState,
+ /**
+ * @param {IdGenerator} idGenerator - An id generator to generate id for code
+ * path segments.
+ * @param {Function} onLooped - A callback function to notify looping.
+ */
+ constructor(idGenerator, onLooped) {
+ this.idGenerator = idGenerator;
+ this.notifyLooped = onLooped;
+ this.forkContext = ForkContext.newRoot(idGenerator);
+ this.choiceContext = null;
+ this.switchContext = null;
+ this.tryContext = null;
+ this.loopContext = null;
+ this.breakContext = null;
+
+ this.currentSegments = [];
+ this.initialSegment = this.forkContext.head[ 0 ];
+
+ // returnedSegments and thrownSegments push elements into finalSegments also.
+ const final = this.finalSegments = [];
+ const returned = this.returnedForkContext = [];
+ const thrown = this.thrownForkContext = [];
+
+ returned.add = addToReturnedOrThrown.bind(null, returned, thrown, final);
+ thrown.add = addToReturnedOrThrown.bind(null, thrown, returned, final);
+ }
/**
* The head segments.
@@ -258,7 +257,7 @@ CodePathState.prototype = {
*/
get headSegments() {
return this.forkContext.head;
- },
+ }
/**
* The parent forking context.
@@ -269,7 +268,7 @@ CodePathState.prototype = {
const current = this.forkContext;
return current && current.upper;
- },
+ }
/**
* Creates and stacks new forking context.
@@ -285,7 +284,7 @@ CodePathState.prototype = {
);
return this.forkContext;
- },
+ }
/**
* Pops and merges the last forking context.
@@ -298,7 +297,7 @@ CodePathState.prototype = {
this.forkContext.replaceHead(lastContext.makeNext(0, -1));
return lastContext;
- },
+ }
/**
* Creates a new path.
@@ -306,7 +305,7 @@ CodePathState.prototype = {
*/
forkPath() {
this.forkContext.add(this.parentForkContext.makeNext(-1, -1));
- },
+ }
/**
* Creates a bypass path.
@@ -316,7 +315,7 @@ CodePathState.prototype = {
*/
forkBypassPath() {
this.forkContext.add(this.parentForkContext.head);
- },
+ }
//--------------------------------------------------------------------------
// ConditionalExpression, LogicalExpression, IfStatement
@@ -362,7 +361,7 @@ CodePathState.prototype = {
falseForkContext: ForkContext.newEmpty(this.forkContext),
processed: false
};
- },
+ }
/**
* Pops the last choice context and finalizes it.
@@ -449,7 +448,7 @@ CodePathState.prototype = {
forkContext.replaceHead(prevForkContext.makeNext(0, -1));
return context;
- },
+ }
/**
* Makes a code path segment of the right-hand operand of a logical
@@ -494,7 +493,7 @@ CodePathState.prototype = {
forkContext.replaceHead(forkContext.makeNext(-1, -1));
}
- },
+ }
/**
* Makes a code path segment of the `if` block.
@@ -521,7 +520,7 @@ CodePathState.prototype = {
forkContext.replaceHead(
context.trueForkContext.makeNext(0, -1)
);
- },
+ }
/**
* Makes a code path segment of the `else` block.
@@ -544,7 +543,7 @@ CodePathState.prototype = {
forkContext.replaceHead(
context.falseForkContext.makeNext(0, -1)
);
- },
+ }
//--------------------------------------------------------------------------
// SwitchStatement
@@ -570,7 +569,7 @@ CodePathState.prototype = {
};
this.pushBreakContext(true, label);
- },
+ }
/**
* Pops the last context of SwitchStatement and finalizes it.
@@ -649,7 +648,7 @@ CodePathState.prototype = {
* This is a path after switch statement.
*/
this.forkContext.replaceHead(brokenForkContext.makeNext(0, -1));
- },
+ }
/**
* Makes a code path segment for a `SwitchCase` node.
@@ -696,7 +695,7 @@ CodePathState.prototype = {
context.lastIsDefault = isDefault;
context.countForks += 1;
- },
+ }
//--------------------------------------------------------------------------
// TryStatement
@@ -723,7 +722,7 @@ CodePathState.prototype = {
lastOfTryIsReachable: false,
lastOfCatchIsReachable: false
};
- },
+ }
/**
* Pops the last context of TryStatement and finalizes it.
@@ -777,7 +776,7 @@ CodePathState.prototype = {
if (!context.lastOfTryIsReachable && !context.lastOfCatchIsReachable) {
this.forkContext.makeUnreachable();
}
- },
+ }
/**
* Makes a code path segment for a `catch` block.
@@ -802,7 +801,7 @@ CodePathState.prototype = {
this.pushForkContext();
this.forkBypassPath();
this.forkContext.add(thrownSegments);
- },
+ }
/**
* Makes a code path segment for a `finally` block.
@@ -863,7 +862,7 @@ CodePathState.prototype = {
this.pushForkContext(true);
this.forkContext.add(segments);
- },
+ }
/**
* Makes a code path segment from the first throwable node to the `catch`
@@ -889,7 +888,7 @@ CodePathState.prototype = {
context.thrownForkContext.add(forkContext.head);
forkContext.replaceHead(forkContext.makeNext(-1, -1));
- },
+ }
//--------------------------------------------------------------------------
// Loop Statements
@@ -969,7 +968,7 @@ CodePathState.prototype = {
default:
throw new Error(`unknown type: "${type}"`);
}
- },
+ }
/**
* Pops the last context of a loop statement and finalizes it.
@@ -1039,7 +1038,7 @@ CodePathState.prototype = {
} else {
forkContext.replaceHead(brokenForkContext.makeNext(0, -1));
}
- },
+ }
/**
* Makes a code path segment for the test part of a WhileStatement.
@@ -1056,7 +1055,7 @@ CodePathState.prototype = {
context.test = test;
context.continueDestSegments = testSegments;
forkContext.replaceHead(testSegments);
- },
+ }
/**
* Makes a code path segment for the body part of a WhileStatement.
@@ -1078,7 +1077,7 @@ CodePathState.prototype = {
context.brokenForkContext.addAll(choiceContext.falseForkContext);
}
forkContext.replaceHead(choiceContext.trueForkContext.makeNext(0, -1));
- },
+ }
/**
* Makes a code path segment for the body part of a DoWhileStatement.
@@ -1093,7 +1092,7 @@ CodePathState.prototype = {
// Update state.
context.entrySegments = bodySegments;
forkContext.replaceHead(bodySegments);
- },
+ }
/**
* Makes a code path segment for the test part of a DoWhileStatement.
@@ -1114,7 +1113,7 @@ CodePathState.prototype = {
forkContext.replaceHead(testSegments);
}
- },
+ }
/**
* Makes a code path segment for the test part of a ForStatement.
@@ -1133,7 +1132,7 @@ CodePathState.prototype = {
context.endOfInitSegments = endOfInitSegments;
context.continueDestSegments = context.testSegments = testSegments;
forkContext.replaceHead(testSegments);
- },
+ }
/**
* Makes a code path segment for the update part of a ForStatement.
@@ -1160,7 +1159,7 @@ CodePathState.prototype = {
context.continueDestSegments = context.updateSegments = updateSegments;
forkContext.replaceHead(updateSegments);
- },
+ }
/**
* Makes a code path segment for the body part of a ForStatement.
@@ -1211,7 +1210,7 @@ CodePathState.prototype = {
}
context.continueDestSegments = context.continueDestSegments || bodySegments;
forkContext.replaceHead(bodySegments);
- },
+ }
/**
* Makes a code path segment for the left part of a ForInStatement and a
@@ -1228,7 +1227,7 @@ CodePathState.prototype = {
context.prevSegments = forkContext.head;
context.leftSegments = context.continueDestSegments = leftSegments;
forkContext.replaceHead(leftSegments);
- },
+ }
/**
* Makes a code path segment for the right part of a ForInStatement and a
@@ -1247,7 +1246,7 @@ CodePathState.prototype = {
// Update state.
context.endOfLeftSegments = forkContext.head;
forkContext.replaceHead(rightSegments);
- },
+ }
/**
* Makes a code path segment for the body part of a ForInStatement and a
@@ -1269,7 +1268,7 @@ CodePathState.prototype = {
// Update state.
context.brokenForkContext.add(forkContext.head);
forkContext.replaceHead(bodySegments);
- },
+ }
//--------------------------------------------------------------------------
// Control Statements
@@ -1291,7 +1290,7 @@ CodePathState.prototype = {
brokenForkContext: ForkContext.newEmpty(this.forkContext)
};
return this.breakContext;
- },
+ }
/**
* Removes the top item of the break context stack.
@@ -1315,7 +1314,7 @@ CodePathState.prototype = {
}
return context;
- },
+ }
/**
* Makes a path for a `break` statement.
@@ -1341,7 +1340,7 @@ CodePathState.prototype = {
}
forkContext.replaceHead(forkContext.makeUnreachable(-1, -1));
- },
+ }
/**
* Makes a path for a `continue` statement.
@@ -1377,7 +1376,7 @@ CodePathState.prototype = {
}
}
forkContext.replaceHead(forkContext.makeUnreachable(-1, -1));
- },
+ }
/**
* Makes a path for a `return` statement.
@@ -1394,7 +1393,7 @@ CodePathState.prototype = {
getReturnContext(this).returnedForkContext.add(forkContext.head);
forkContext.replaceHead(forkContext.makeUnreachable(-1, -1));
}
- },
+ }
/**
* Makes a path for a `throw` statement.
@@ -1411,7 +1410,7 @@ CodePathState.prototype = {
getThrowContext(this).thrownForkContext.add(forkContext.head);
forkContext.replaceHead(forkContext.makeUnreachable(-1, -1));
}
- },
+ }
/**
* Makes the final path.
@@ -1424,6 +1423,6 @@ CodePathState.prototype = {
this.returnedForkContext.add(segments);
}
}
-};
+}
module.exports = CodePathState;
diff --git a/tools/eslint/lib/code-path-analysis/code-path.js b/tools/eslint/lib/code-path-analysis/code-path.js
index 96363423c2..6ef07b4a2d 100644
--- a/tools/eslint/lib/code-path-analysis/code-path.js
+++ b/tools/eslint/lib/code-path-analysis/code-path.js
@@ -18,47 +18,56 @@ const IdGenerator = require("./id-generator");
/**
* A code path.
- *
- * @constructor
- * @param {string} id - An identifier.
- * @param {CodePath|null} upper - The code path of the upper function scope.
- * @param {Function} onLooped - A callback function to notify looping.
*/
-function CodePath(id, upper, onLooped) {
+class CodePath {
/**
- * The identifier of this code path.
- * Rules use it to store additional information of each rule.
- * @type {string}
+ * @param {string} id - An identifier.
+ * @param {CodePath|null} upper - The code path of the upper function scope.
+ * @param {Function} onLooped - A callback function to notify looping.
*/
- this.id = id;
+ constructor(id, upper, onLooped) {
- /**
- * The code path of the upper function scope.
- * @type {CodePath|null}
- */
- this.upper = upper;
+ /**
+ * The identifier of this code path.
+ * Rules use it to store additional information of each rule.
+ * @type {string}
+ */
+ this.id = id;
- /**
- * The code paths of nested function scopes.
- * @type {CodePath[]}
- */
- this.childCodePaths = [];
+ /**
+ * The code path of the upper function scope.
+ * @type {CodePath|null}
+ */
+ this.upper = upper;
+
+ /**
+ * The code paths of nested function scopes.
+ * @type {CodePath[]}
+ */
+ this.childCodePaths = [];
- // Initializes internal state.
- Object.defineProperty(
- this,
- "internal",
- {value: new CodePathState(new IdGenerator(`${id}_`), onLooped)});
+ // Initializes internal state.
+ Object.defineProperty(
+ this,
+ "internal",
+ { value: new CodePathState(new IdGenerator(`${id}_`), onLooped) });
- // Adds this into `childCodePaths` of `upper`.
- if (upper) {
- upper.childCodePaths.push(this);
+ // Adds this into `childCodePaths` of `upper`.
+ if (upper) {
+ upper.childCodePaths.push(this);
+ }
}
-}
-CodePath.prototype = {
- constructor: CodePath,
+ /**
+ * Gets the state of a given code path.
+ *
+ * @param {CodePath} codePath - A code path to get.
+ * @returns {CodePathState} The state of the code path.
+ */
+ static getState(codePath) {
+ return codePath.internal;
+ }
/**
* The initial code path segment.
@@ -66,7 +75,7 @@ CodePath.prototype = {
*/
get initialSegment() {
return this.internal.initialSegment;
- },
+ }
/**
* Final code path segments.
@@ -75,7 +84,7 @@ CodePath.prototype = {
*/
get finalSegments() {
return this.internal.finalSegments;
- },
+ }
/**
* Final code path segments which is with `return` statements.
@@ -85,7 +94,7 @@ CodePath.prototype = {
*/
get returnedSegments() {
return this.internal.returnedForkContext;
- },
+ }
/**
* Final code path segments which is with `throw` statements.
@@ -93,7 +102,7 @@ CodePath.prototype = {
*/
get thrownSegments() {
return this.internal.thrownForkContext;
- },
+ }
/**
* Current code path segments.
@@ -101,7 +110,7 @@ CodePath.prototype = {
*/
get currentSegments() {
return this.internal.currentSegments;
- },
+ }
/**
* Traverses all segments in this code path.
@@ -219,16 +228,6 @@ CodePath.prototype = {
}
}
}
-};
-
-/**
- * Gets the state of a given code path.
- *
- * @param {CodePath} codePath - A code path to get.
- * @returns {CodePathState} The state of the code path.
- */
-CodePath.getState = function getState(codePath) {
- return codePath.internal;
-};
+}
module.exports = CodePath;
diff --git a/tools/eslint/lib/code-path-analysis/debug-helpers.js b/tools/eslint/lib/code-path-analysis/debug-helpers.js
index 5e311eb352..622bd6081f 100644
--- a/tools/eslint/lib/code-path-analysis/debug-helpers.js
+++ b/tools/eslint/lib/code-path-analysis/debug-helpers.js
@@ -108,7 +108,7 @@ module.exports = {
}
if (segment.internal.nodes.length > 0) {
- text += segment.internal.nodes.map(function(node) {
+ text += segment.internal.nodes.map(node => {
switch (node.type) {
case "Identifier": return `${node.type} (${node.name})`;
case "Literal": return `${node.type} (${node.value})`;
@@ -116,7 +116,7 @@ module.exports = {
}
}).join("\\n");
} else if (segment.internal.exitNodes.length > 0) {
- text += segment.internal.exitNodes.map(function(node) {
+ text += segment.internal.exitNodes.map(node => {
switch (node.type) {
case "Identifier": return `${node.type}:exit (${node.name})`;
case "Literal": return `${node.type}:exit (${node.value})`;
@@ -176,7 +176,7 @@ module.exports = {
stack.push([nextSegment, 0]);
}
- codePath.returnedSegments.forEach(function(finalSegment) {
+ codePath.returnedSegments.forEach(finalSegment => {
if (lastId === finalSegment.id) {
text += "->final";
} else {
@@ -185,7 +185,7 @@ module.exports = {
lastId = null;
});
- codePath.thrownSegments.forEach(function(finalSegment) {
+ codePath.thrownSegments.forEach(finalSegment => {
if (lastId === finalSegment.id) {
text += "->thrown";
} else {
diff --git a/tools/eslint/lib/code-path-analysis/fork-context.js b/tools/eslint/lib/code-path-analysis/fork-context.js
index 6996af1dcc..7423c13199 100644
--- a/tools/eslint/lib/code-path-analysis/fork-context.js
+++ b/tools/eslint/lib/code-path-analysis/fork-context.js
@@ -99,21 +99,20 @@ function mergeExtraSegments(context, segments) {
/**
* A class to manage forking.
- *
- * @constructor
- * @param {IdGenerator} idGenerator - An identifier generator for segments.
- * @param {ForkContext|null} upper - An upper fork context.
- * @param {number} count - A number of parallel segments.
*/
-function ForkContext(idGenerator, upper, count) {
- this.idGenerator = idGenerator;
- this.upper = upper;
- this.count = count;
- this.segmentsList = [];
-}
+class ForkContext {
-ForkContext.prototype = {
- constructor: ForkContext,
+ /**
+ * @param {IdGenerator} idGenerator - An identifier generator for segments.
+ * @param {ForkContext|null} upper - An upper fork context.
+ * @param {number} count - A number of parallel segments.
+ */
+ constructor(idGenerator, upper, count) {
+ this.idGenerator = idGenerator;
+ this.upper = upper;
+ this.count = count;
+ this.segmentsList = [];
+ }
/**
* The head segments.
@@ -123,7 +122,7 @@ ForkContext.prototype = {
const list = this.segmentsList;
return list.length === 0 ? [] : list[list.length - 1];
- },
+ }
/**
* A flag which shows empty.
@@ -131,7 +130,7 @@ ForkContext.prototype = {
*/
get empty() {
return this.segmentsList.length === 0;
- },
+ }
/**
* A flag which shows reachable.
@@ -141,7 +140,7 @@ ForkContext.prototype = {
const segments = this.head;
return segments.length > 0 && segments.some(isReachable);
- },
+ }
/**
* Creates new segments from this context.
@@ -152,7 +151,7 @@ ForkContext.prototype = {
*/
makeNext(begin, end) {
return makeSegments(this, begin, end, CodePathSegment.newNext);
- },
+ }
/**
* Creates new segments from this context.
@@ -164,7 +163,7 @@ ForkContext.prototype = {
*/
makeUnreachable(begin, end) {
return makeSegments(this, begin, end, CodePathSegment.newUnreachable);
- },
+ }
/**
* Creates new segments from this context.
@@ -177,7 +176,7 @@ ForkContext.prototype = {
*/
makeDisconnected(begin, end) {
return makeSegments(this, begin, end, CodePathSegment.newDisconnected);
- },
+ }
/**
* Adds segments into this context.
@@ -190,7 +189,7 @@ ForkContext.prototype = {
assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
this.segmentsList.push(mergeExtraSegments(this, segments));
- },
+ }
/**
* Replaces the head segments with given segments.
@@ -203,7 +202,7 @@ ForkContext.prototype = {
assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
this.segmentsList.splice(-1, 1, mergeExtraSegments(this, segments));
- },
+ }
/**
* Adds all segments of a given fork context into this context.
@@ -219,7 +218,7 @@ ForkContext.prototype = {
for (let i = 0; i < source.length; ++i) {
this.segmentsList.push(source[i]);
}
- },
+ }
/**
* Clears all secments in this context.
@@ -229,34 +228,34 @@ ForkContext.prototype = {
clear() {
this.segmentsList = [];
}
-};
-/**
- * Creates the root fork context.
- *
- * @param {IdGenerator} idGenerator - An identifier generator for segments.
- * @returns {ForkContext} New fork context.
- */
-ForkContext.newRoot = function(idGenerator) {
- const context = new ForkContext(idGenerator, null, 1);
+ /**
+ * Creates the root fork context.
+ *
+ * @param {IdGenerator} idGenerator - An identifier generator for segments.
+ * @returns {ForkContext} New fork context.
+ */
+ static newRoot(idGenerator) {
+ const context = new ForkContext(idGenerator, null, 1);
- context.add([CodePathSegment.newRoot(idGenerator.next())]);
+ context.add([CodePathSegment.newRoot(idGenerator.next())]);
- return context;
-};
+ return context;
+ }
-/**
- * Creates an empty fork context preceded by a given context.
- *
- * @param {ForkContext} parentContext - The parent fork context.
- * @param {boolean} forkLeavingPath - A flag which shows inside of `finally` block.
- * @returns {ForkContext} New fork context.
- */
-ForkContext.newEmpty = function(parentContext, forkLeavingPath) {
- return new ForkContext(
- parentContext.idGenerator,
- parentContext,
- (forkLeavingPath ? 2 : 1) * parentContext.count);
-};
+ /**
+ * Creates an empty fork context preceded by a given context.
+ *
+ * @param {ForkContext} parentContext - The parent fork context.
+ * @param {boolean} forkLeavingPath - A flag which shows inside of `finally` block.
+ * @returns {ForkContext} New fork context.
+ */
+ static newEmpty(parentContext, forkLeavingPath) {
+ return new ForkContext(
+ parentContext.idGenerator,
+ parentContext,
+ (forkLeavingPath ? 2 : 1) * parentContext.count);
+ }
+}
module.exports = ForkContext;
diff --git a/tools/eslint/lib/code-path-analysis/id-generator.js b/tools/eslint/lib/code-path-analysis/id-generator.js
index f33858cacd..062058ddc1 100644
--- a/tools/eslint/lib/code-path-analysis/id-generator.js
+++ b/tools/eslint/lib/code-path-analysis/id-generator.js
@@ -15,29 +15,32 @@
/**
* A generator for unique ids.
- *
- * @constructor
- * @param {string} prefix - Optional. A prefix of generated ids.
- */
-function IdGenerator(prefix) {
- this.prefix = String(prefix);
- this.n = 0;
-}
-
-/**
- * Generates id.
- *
- * @returns {string} A generated id.
*/
-IdGenerator.prototype.next = function() {
- this.n = 1 + this.n | 0;
+class IdGenerator {
- /* istanbul ignore if */
- if (this.n < 0) {
- this.n = 1;
+ /**
+ * @param {string} prefix - Optional. A prefix of generated ids.
+ */
+ constructor(prefix) {
+ this.prefix = String(prefix);
+ this.n = 0;
}
- return this.prefix + this.n;
-};
+ /**
+ * Generates id.
+ *
+ * @returns {string} A generated id.
+ */
+ next() {
+ this.n = 1 + this.n | 0;
+
+ /* istanbul ignore if */
+ if (this.n < 0) {
+ this.n = 1;
+ }
+
+ return this.prefix + this.n;
+ }
+}
module.exports = IdGenerator;
diff --git a/tools/eslint/lib/config.js b/tools/eslint/lib/config.js
index 9ff203c16d..9c56e7ad98 100644
--- a/tools/eslint/lib/config.js
+++ b/tools/eslint/lib/config.js
@@ -179,155 +179,159 @@ function getLocalConfig(thisConfig, directory) {
//------------------------------------------------------------------------------
/**
- * Config
- * @constructor
- * @class Config
- * @param {Object} options Options to be passed in
+ * Configuration class
*/
-function Config(options) {
- options = options || {};
+class Config {
- this.ignore = options.ignore;
- this.ignorePath = options.ignorePath;
- this.cache = {};
- this.parser = options.parser;
- this.parserOptions = options.parserOptions || {};
+ /**
+ * Config options
+ * @param {Object} options Options to be passed in
+ */
+ constructor(options) {
+ options = options || {};
- this.baseConfig = options.baseConfig ? loadConfig(options.baseConfig) : { rules: {} };
+ this.ignore = options.ignore;
+ this.ignorePath = options.ignorePath;
+ this.cache = {};
+ this.parser = options.parser;
+ this.parserOptions = options.parserOptions || {};
- this.useEslintrc = (options.useEslintrc !== false);
+ this.baseConfig = options.baseConfig ? loadConfig(options.baseConfig) : { rules: {} };
- this.env = (options.envs || []).reduce(function(envs, name) {
- envs[name] = true;
- return envs;
- }, {});
+ this.useEslintrc = (options.useEslintrc !== false);
- /*
- * Handle declared globals.
- * For global variable foo, handle "foo:false" and "foo:true" to set
- * whether global is writable.
- * If user declares "foo", convert to "foo:false".
- */
- this.globals = (options.globals || []).reduce(function(globals, def) {
- const parts = def.split(":");
+ this.env = (options.envs || []).reduce((envs, name) => {
+ envs[ name ] = true;
+ return envs;
+ }, {});
- globals[parts[0]] = (parts.length > 1 && parts[1] === "true");
+ /*
+ * Handle declared globals.
+ * For global variable foo, handle "foo:false" and "foo:true" to set
+ * whether global is writable.
+ * If user declares "foo", convert to "foo:false".
+ */
+ this.globals = (options.globals || []).reduce((globals, def) => {
+ const parts = def.split(":");
- return globals;
- }, {});
+ globals[parts[0]] = (parts.length > 1 && parts[1] === "true");
- const useConfig = options.configFile;
+ return globals;
+ }, {});
- this.options = options;
+ const useConfig = options.configFile;
- if (useConfig) {
- debug(`Using command line config ${useConfig}`);
- if (isResolvable(useConfig) || isResolvable(`eslint-config-${useConfig}`) || useConfig.charAt(0) === "@") {
- this.useSpecificConfig = loadConfig(useConfig);
- } else {
- this.useSpecificConfig = loadConfig(path.resolve(this.options.cwd, useConfig));
+ this.options = options;
+
+ if (useConfig) {
+ debug(`Using command line config ${useConfig}`);
+ if (isResolvable(useConfig) || isResolvable(`eslint-config-${useConfig}`) || useConfig.charAt(0) === "@") {
+ this.useSpecificConfig = loadConfig(useConfig);
+ } else {
+ this.useSpecificConfig = loadConfig(path.resolve(this.options.cwd, useConfig));
+ }
}
}
-}
-/**
- * Build a config object merging the base config (conf/eslint.json), the
- * environments config (conf/environments.js) and eventually the user config.
- * @param {string} filePath a file in whose directory we start looking for a local config
- * @returns {Object} config object
- */
-Config.prototype.getConfig = function(filePath) {
- const directory = filePath ? path.dirname(filePath) : this.options.cwd;
- let config,
- userConfig;
+ /**
+ * Build a config object merging the base config (conf/eslint.json), the
+ * environments config (conf/environments.js) and eventually the user config.
+ * @param {string} filePath a file in whose directory we start looking for a local config
+ * @returns {Object} config object
+ */
+ getConfig(filePath) {
+ const directory = filePath ? path.dirname(filePath) : this.options.cwd;
+ let config,
+ userConfig;
- debug(`Constructing config for ${filePath ? filePath : "text"}`);
+ debug(`Constructing config for ${filePath ? filePath : "text"}`);
- config = this.cache[directory];
+ config = this.cache[directory];
- if (config) {
- debug("Using config from cache");
- return config;
- }
+ if (config) {
+ debug("Using config from cache");
+ return config;
+ }
- // Step 1: Determine user-specified config from .eslintrc.* and package.json files
- if (this.useEslintrc) {
- debug("Using .eslintrc and package.json files");
- userConfig = getLocalConfig(this, directory);
- } else {
- debug("Not using .eslintrc or package.json files");
- userConfig = {};
- }
+ // Step 1: Determine user-specified config from .eslintrc.* and package.json files
+ if (this.useEslintrc) {
+ debug("Using .eslintrc and package.json files");
+ userConfig = getLocalConfig(this, directory);
+ } else {
+ debug("Not using .eslintrc or package.json files");
+ userConfig = {};
+ }
- // Step 2: Create a copy of the baseConfig
- config = ConfigOps.merge({}, this.baseConfig);
+ // Step 2: Create a copy of the baseConfig
+ config = ConfigOps.merge({}, this.baseConfig);
- // Step 3: Merge in the user-specified configuration from .eslintrc and package.json
- config = ConfigOps.merge(config, userConfig);
+ // Step 3: Merge in the user-specified configuration from .eslintrc and package.json
+ config = ConfigOps.merge(config, userConfig);
- // Step 4: Merge in command line config file
- if (this.useSpecificConfig) {
- debug("Merging command line config file");
+ // Step 4: Merge in command line config file
+ if (this.useSpecificConfig) {
+ debug("Merging command line config file");
- config = ConfigOps.merge(config, this.useSpecificConfig);
- }
+ config = ConfigOps.merge(config, this.useSpecificConfig);
+ }
- // Step 5: Merge in command line environments
- debug("Merging command line environment settings");
- config = ConfigOps.merge(config, { env: this.env });
+ // Step 5: Merge in command line environments
+ debug("Merging command line environment settings");
+ config = ConfigOps.merge(config, { env: this.env });
- // Step 6: Merge in command line rules
- if (this.options.rules) {
- debug("Merging command line rules");
- config = ConfigOps.merge(config, { rules: this.options.rules });
- }
+ // Step 6: Merge in command line rules
+ if (this.options.rules) {
+ debug("Merging command line rules");
+ config = ConfigOps.merge(config, { rules: this.options.rules });
+ }
- // Step 7: Merge in command line globals
- config = ConfigOps.merge(config, { globals: this.globals });
+ // Step 7: Merge in command line globals
+ config = ConfigOps.merge(config, { globals: this.globals });
- // Only override parser if it is passed explicitly through the command line or if it's not
- // defined yet (because the final object will at least have the parser key)
- if (this.parser || !config.parser) {
- config = ConfigOps.merge(config, {
- parser: this.parser
- });
- }
+ // Only override parser if it is passed explicitly through the command line or if it's not
+ // defined yet (because the final object will at least have the parser key)
+ if (this.parser || !config.parser) {
+ config = ConfigOps.merge(config, {
+ parser: this.parser
+ });
+ }
- if (this.parserOptions) {
- config = ConfigOps.merge(config, {
- parserOptions: this.parserOptions
- });
- }
+ if (this.parserOptions) {
+ config = ConfigOps.merge(config, {
+ parserOptions: this.parserOptions
+ });
+ }
- // Step 8: Merge in command line plugins
- if (this.options.plugins) {
- debug("Merging command line plugins");
- Plugins.loadAll(this.options.plugins);
- config = ConfigOps.merge(config, { plugins: this.options.plugins });
- }
+ // Step 8: Merge in command line plugins
+ if (this.options.plugins) {
+ debug("Merging command line plugins");
+ Plugins.loadAll(this.options.plugins);
+ config = ConfigOps.merge(config, { plugins: this.options.plugins });
+ }
- // Step 9: Apply environments to the config if present
- if (config.env) {
- config = ConfigOps.applyEnvironments(config);
- }
+ // Step 9: Apply environments to the config if present
+ if (config.env) {
+ config = ConfigOps.applyEnvironments(config);
+ }
- this.cache[directory] = config;
+ this.cache[directory] = config;
- return config;
-};
+ return config;
+ }
-/**
- * Find local config files from directory and parent directories.
- * @param {string} directory The directory to start searching from.
- * @returns {string[]} The paths of local config files found.
- */
-Config.prototype.findLocalConfigFiles = function(directory) {
+ /**
+ * Find local config files from directory and parent directories.
+ * @param {string} directory The directory to start searching from.
+ * @returns {string[]} The paths of local config files found.
+ */
+ findLocalConfigFiles(directory) {
- if (!this.localConfigFinder) {
- this.localConfigFinder = new FileFinder(ConfigFile.CONFIG_FILES, this.options.cwd);
- }
+ if (!this.localConfigFinder) {
+ this.localConfigFinder = new FileFinder(ConfigFile.CONFIG_FILES, this.options.cwd);
+ }
- return this.localConfigFinder.findAllInDirectoryAndParents(directory);
-};
+ return this.localConfigFinder.findAllInDirectoryAndParents(directory);
+ }
+}
module.exports = Config;
diff --git a/tools/eslint/lib/config/autoconfig.js b/tools/eslint/lib/config/autoconfig.js
index dd25bcd491..23fdbe6980 100644
--- a/tools/eslint/lib/config/autoconfig.js
+++ b/tools/eslint/lib/config/autoconfig.js
@@ -49,14 +49,12 @@ const MAX_CONFIG_COMBINATIONS = 17, // 16 combinations + 1 for severity only
* @returns {Object} registryItems for each rule in provided rulesConfig
*/
function makeRegistryItems(rulesConfig) {
- return Object.keys(rulesConfig).reduce(function(accumulator, ruleId) {
- accumulator[ruleId] = rulesConfig[ruleId].map(function(config) {
- return {
- config,
- specificity: config.length || 1,
- errorCount: void 0
- };
- });
+ return Object.keys(rulesConfig).reduce((accumulator, ruleId) => {
+ accumulator[ruleId] = rulesConfig[ruleId].map(config => ({
+ config,
+ specificity: config.length || 1,
+ errorCount: void 0
+ }));
return accumulator;
}, {});
}
@@ -173,10 +171,8 @@ Registry.prototype = {
newRegistry = new Registry();
newRegistry.rules = Object.assign({}, this.rules);
- ruleIds.forEach(function(ruleId) {
- const errorFreeItems = newRegistry.rules[ruleId].filter(function(registryItem) {
- return (registryItem.errorCount === 0);
- });
+ ruleIds.forEach(ruleId => {
+ const errorFreeItems = newRegistry.rules[ruleId].filter(registryItem => (registryItem.errorCount === 0));
if (errorFreeItems.length > 0) {
newRegistry.rules[ruleId] = errorFreeItems;
@@ -198,10 +194,8 @@ Registry.prototype = {
newRegistry = new Registry();
newRegistry.rules = Object.assign({}, this.rules);
- ruleIds.forEach(function(ruleId) {
- newRegistry.rules[ruleId] = newRegistry.rules[ruleId].filter(function(registryItem) {
- return (typeof registryItem.errorCount !== "undefined");
- });
+ ruleIds.forEach(ruleId => {
+ newRegistry.rules[ruleId] = newRegistry.rules[ruleId].filter(registryItem => (typeof registryItem.errorCount !== "undefined"));
});
return newRegistry;
@@ -218,15 +212,13 @@ Registry.prototype = {
const ruleIds = Object.keys(this.rules),
failingRegistry = new Registry();
- ruleIds.forEach(function(ruleId) {
- const failingConfigs = this.rules[ruleId].filter(function(registryItem) {
- return (registryItem.errorCount > 0);
- });
+ ruleIds.forEach(ruleId => {
+ const failingConfigs = this.rules[ruleId].filter(registryItem => (registryItem.errorCount > 0));
if (failingConfigs && failingConfigs.length === this.rules[ruleId].length) {
failingRegistry.rules[ruleId] = failingConfigs;
}
- }.bind(this));
+ });
return failingRegistry;
},
@@ -239,13 +231,13 @@ Registry.prototype = {
*/
createConfig() {
const ruleIds = Object.keys(this.rules),
- config = {rules: {}};
+ config = { rules: {} };
- ruleIds.forEach(function(ruleId) {
+ ruleIds.forEach(ruleId => {
if (this.rules[ruleId].length === 1) {
config.rules[ruleId] = this.rules[ruleId][0].config;
}
- }.bind(this));
+ });
return config;
},
@@ -261,11 +253,9 @@ Registry.prototype = {
newRegistry = new Registry();
newRegistry.rules = Object.assign({}, this.rules);
- ruleIds.forEach(function(ruleId) {
- newRegistry.rules[ruleId] = this.rules[ruleId].filter(function(registryItem) {
- return (registryItem.specificity === specificity);
- });
- }.bind(this));
+ ruleIds.forEach(ruleId => {
+ newRegistry.rules[ruleId] = this.rules[ruleId].filter(registryItem => (registryItem.specificity === specificity));
+ });
return newRegistry;
},
@@ -294,16 +284,16 @@ Registry.prototype = {
const filenames = Object.keys(sourceCodes);
const totalFilesLinting = filenames.length * ruleSets.length;
- filenames.forEach(function(filename) {
+ filenames.forEach(filename => {
debug(`Linting file: ${filename}`);
ruleSetIdx = 0;
- ruleSets.forEach(function(ruleSet) {
- const lintConfig = Object.assign({}, config, {rules: ruleSet});
+ ruleSets.forEach(ruleSet => {
+ const lintConfig = Object.assign({}, config, { rules: ruleSet });
const lintResults = eslint.verify(sourceCodes[filename], lintConfig);
- lintResults.forEach(function(result) {
+ lintResults.forEach(result => {
// It is possible that the error is from a configuration comment
// in a linted file, in which case there may not be a config
@@ -342,11 +332,9 @@ function extendFromRecommended(config) {
ConfigOps.normalizeToStrings(newConfig);
- const recRules = Object.keys(recConfig.rules).filter(function(ruleId) {
- return ConfigOps.isErrorSeverity(recConfig.rules[ruleId]);
- });
+ const recRules = Object.keys(recConfig.rules).filter(ruleId => ConfigOps.isErrorSeverity(recConfig.rules[ruleId]));
- recRules.forEach(function(ruleId) {
+ recRules.forEach(ruleId => {
if (lodash.isEqual(recConfig.rules[ruleId], newConfig.rules[ruleId])) {
delete newConfig.rules[ruleId];
}
diff --git a/tools/eslint/lib/config/config-file.js b/tools/eslint/lib/config/config-file.js
index c11a55fad8..90015097a3 100644
--- a/tools/eslint/lib/config/config-file.js
+++ b/tools/eslint/lib/config/config-file.js
@@ -235,7 +235,7 @@ function loadConfigFile(file) {
function writeJSONConfigFile(config, filePath) {
debug(`Writing JSON config file: ${filePath}`);
- const content = stringify(config, {cmp: sortByKey, space: 4});
+ const content = stringify(config, { cmp: sortByKey, space: 4 });
fs.writeFileSync(filePath, content, "utf8");
}
@@ -253,7 +253,7 @@ function writeYAMLConfigFile(config, filePath) {
// lazy load YAML to improve performance when not used
const yaml = require("js-yaml");
- const content = yaml.safeDump(config, {sortKeys: true});
+ const content = yaml.safeDump(config, { sortKeys: true });
fs.writeFileSync(filePath, content, "utf8");
}
@@ -268,7 +268,7 @@ function writeYAMLConfigFile(config, filePath) {
function writeJSConfigFile(config, filePath) {
debug(`Writing JS config file: ${filePath}`);
- const content = `module.exports = ${stringify(config, {cmp: sortByKey, space: 4})};`;
+ const content = `module.exports = ${stringify(config, { cmp: sortByKey, space: 4 })};`;
fs.writeFileSync(filePath, content, "utf8");
}
@@ -359,7 +359,7 @@ function applyExtends(config, filePath, relativeTo) {
}
// Make the last element in an array take the highest precedence
- config = configExtends.reduceRight(function(previousValue, parentPath) {
+ config = configExtends.reduceRight((previousValue, parentPath) => {
if (parentPath === "eslint:recommended") {
@@ -430,7 +430,7 @@ function normalizePackageName(name, prefix) {
* it's a scoped package
* package name is "eslint-config", or just a username
*/
- const scopedPackageShortcutRegex = new RegExp(`^(@[^\/]+)(?:\/(?:${prefix})?)?$`),
+ const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`),
scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`);
if (scopedPackageShortcutRegex.test(name)) {
@@ -441,7 +441,7 @@ function normalizePackageName(name, prefix) {
* for scoped packages, insert the eslint-config after the first / unless
* the path is already @scope/eslint or @scope/eslint-config-xxx
*/
- name = name.replace(/^@([^\/]+)\/(.*)$/, `@$1/${prefix}-$2`);
+ name = name.replace(/^@([^/]+)\/(.*)$/, `@$1/${prefix}-$2`);
}
} else if (name.indexOf(`${prefix}-`) !== 0) {
name = `${prefix}-${name}`;
diff --git a/tools/eslint/lib/config/config-initializer.js b/tools/eslint/lib/config/config-initializer.js
index e3aef07bae..502a73bd6c 100644
--- a/tools/eslint/lib/config/config-initializer.js
+++ b/tools/eslint/lib/config/config-initializer.js
@@ -44,10 +44,14 @@ function writeFile(config, format) {
extname = ".json";
}
+ const installedESLint = config.installedESLint;
+
+ delete config.installedESLint;
+
ConfigFile.write(config, `./.eslintrc${extname}`);
log.info(`Successfully created .eslintrc${extname} file in ${process.cwd()}`);
- if (config.installedESLint) {
+ if (installedESLint) {
log.info("ESLint was installed locally. We recommend using this local copy instead of your globally-installed copy.");
}
}
@@ -62,9 +66,7 @@ function installModules(config) {
// Create a list of modules which should be installed based on config
if (config.plugins) {
- modules = modules.concat(config.plugins.map(function(name) {
- return `eslint-plugin-${name}`;
- }));
+ modules = modules.concat(config.plugins.map(name => `eslint-plugin-${name}`));
}
if (config.extends && config.extends.indexOf("eslint:") === -1) {
modules.push(`eslint-config-${config.extends}`);
@@ -81,7 +83,7 @@ function installModules(config) {
const installStatus = npmUtil.checkDevDeps(modules);
// Install packages which aren't already installed
- const modulesToInstall = Object.keys(installStatus).filter(function(module) {
+ const modulesToInstall = Object.keys(installStatus).filter(module => {
const notInstalled = installStatus[module] === false;
if (module === "eslint" && notInstalled) {
@@ -128,7 +130,7 @@ function configureRules(answers, config) {
const patterns = answers.patterns.split(/[\s]+/);
try {
- sourceCodes = getSourceCodeOfFiles(patterns, { baseConfig: newConfig, useEslintrc: false }, function(total) {
+ sourceCodes = getSourceCodeOfFiles(patterns, { baseConfig: newConfig, useEslintrc: false }, total => {
bar.tick((BAR_SOURCE_CODE_TOTAL / total));
});
} catch (e) {
@@ -147,20 +149,18 @@ function configureRules(answers, config) {
registry.populateFromCoreRules();
// Lint all files with each rule config in the registry
- registry = registry.lintSourceCode(sourceCodes, newConfig, function(total) {
+ registry = registry.lintSourceCode(sourceCodes, newConfig, total => {
bar.tick((BAR_TOTAL - BAR_SOURCE_CODE_TOTAL) / total); // Subtract out ticks used at beginning
});
- debug(`\nRegistry: ${util.inspect(registry.rules, {depth: null})}`);
+ debug(`\nRegistry: ${util.inspect(registry.rules, { depth: null })}`);
// Create a list of recommended rules, because we don't want to disable them
- const recRules = Object.keys(recConfig.rules).filter(function(ruleId) {
- return ConfigOps.isErrorSeverity(recConfig.rules[ruleId]);
- });
+ const recRules = Object.keys(recConfig.rules).filter(ruleId => ConfigOps.isErrorSeverity(recConfig.rules[ruleId]));
// Find and disable rules which had no error-free configuration
const failingRegistry = registry.getFailingRulesRegistry();
- Object.keys(failingRegistry.rules).forEach(function(ruleId) {
+ Object.keys(failingRegistry.rules).forEach(ruleId => {
// If the rule is recommended, set it to error, otherwise disable it
disabledConfigs[ruleId] = (recRules.indexOf(ruleId) !== -1) ? 2 : 0;
@@ -194,9 +194,7 @@ function configureRules(answers, config) {
// Log out some stats to let the user know what happened
const finalRuleIds = Object.keys(newConfig.rules);
const totalRules = finalRuleIds.length;
- const enabledRules = finalRuleIds.filter(function(ruleId) {
- return (newConfig.rules[ruleId] !== 0);
- }).length;
+ const enabledRules = finalRuleIds.filter(ruleId => (newConfig.rules[ruleId] !== 0)).length;
const resultMessage = [
`\nEnabled ${enabledRules} out of ${totalRules}`,
`rules based on ${fileQty}`,
@@ -215,7 +213,7 @@ function configureRules(answers, config) {
* @returns {Object} config object
*/
function processAnswers(answers) {
- let config = {rules: {}, env: {}};
+ let config = { rules: {}, env: {} };
if (answers.es6) {
config.env.es6 = true;
@@ -227,7 +225,7 @@ function processAnswers(answers) {
if (answers.commonjs) {
config.env.commonjs = true;
}
- answers.env.forEach(function(env) {
+ answers.env.forEach(env => {
config.env[env] = true;
});
if (answers.jsx) {
@@ -266,9 +264,10 @@ function processAnswers(answers) {
*/
function getConfigForStyleGuide(guide) {
const guides = {
- google: {extends: "google"},
- airbnb: {extends: "airbnb", plugins: ["react", "jsx-a11y", "import"]},
- standard: {extends: "standard", plugins: ["standard", "promise"]}
+ google: { extends: "google" },
+ airbnb: { extends: "airbnb", plugins: ["react", "jsx-a11y", "import"] },
+ "airbnb-base": { extends: "airbnb-base", plugins: ["import"] },
+ standard: { extends: "standard", plugins: ["standard", "promise"] }
};
if (!guides[guide]) {
@@ -296,22 +295,31 @@ function promptUser(callback) {
message: "How would you like to configure ESLint?",
default: "prompt",
choices: [
- {name: "Answer questions about your style", value: "prompt"},
- {name: "Use a popular style guide", value: "guide"},
- {name: "Inspect your JavaScript file(s)", value: "auto"}
+ { name: "Answer questions about your style", value: "prompt" },
+ { name: "Use a popular style guide", value: "guide" },
+ { name: "Inspect your JavaScript file(s)", value: "auto" }
]
},
{
type: "list",
name: "styleguide",
message: "Which style guide do you want to follow?",
- choices: [{name: "Google", value: "google"}, {name: "Airbnb", value: "airbnb"}, {name: "Standard", value: "standard"}],
+ choices: [{ name: "Google", value: "google" }, { name: "Airbnb", value: "airbnb" }, { name: "Standard", value: "standard" }],
when(answers) {
answers.packageJsonExists = npmUtil.checkPackageJson();
return answers.source === "guide" && answers.packageJsonExists;
}
},
{
+ type: "confirm",
+ name: "airbnbReact",
+ message: "Do you use React?",
+ default: false,
+ when(answers) {
+ return answers.styleguide === "airbnb";
+ },
+ },
+ {
type: "input",
name: "patterns",
message: "Which file(s), path(s), or glob(s) should be examined?",
@@ -335,7 +343,7 @@ function promptUser(callback) {
return ((answers.source === "guide" && answers.packageJsonExists) || answers.source === "auto");
}
}
- ], function(earlyAnswers) {
+ ], earlyAnswers => {
// early exit if you are using a style guide
if (earlyAnswers.source === "guide") {
@@ -343,7 +351,9 @@ function promptUser(callback) {
log.info("A package.json is necessary to install plugins such as style guides. Run `npm init` to create a package.json file and try again.");
return;
}
-
+ if (earlyAnswers.styleguide === "airbnb" && !earlyAnswers.airbnbReact) {
+ earlyAnswers.styleguide = "airbnb-base";
+ }
try {
config = getConfigForStyleGuide(earlyAnswers.styleguide);
writeFile(config, earlyAnswers.format);
@@ -376,7 +386,7 @@ function promptUser(callback) {
name: "env",
message: "Where will your code run?",
default: ["browser"],
- choices: [{name: "Browser", value: "browser"}, {name: "Node", value: "node"}]
+ choices: [{ name: "Browser", value: "browser" }, { name: "Node", value: "node" }]
},
{
type: "confirm",
@@ -384,9 +394,7 @@ function promptUser(callback) {
message: "Do you use CommonJS?",
default: false,
when(answers) {
- return answers.env.some(function(env) {
- return env === "browser";
- });
+ return answers.env.some(env => env === "browser");
}
},
{
@@ -398,13 +406,13 @@ function promptUser(callback) {
{
type: "confirm",
name: "react",
- message: "Do you use React",
+ message: "Do you use React?",
default: false,
when(answers) {
return answers.jsx;
}
}
- ], function(secondAnswers) {
+ ], secondAnswers => {
// early exit if you are using automatic style generation
if (earlyAnswers.source === "auto") {
@@ -428,21 +436,21 @@ function promptUser(callback) {
name: "indent",
message: "What style of indentation do you use?",
default: "tab",
- choices: [{name: "Tabs", value: "tab"}, {name: "Spaces", value: 4}]
+ choices: [{ name: "Tabs", value: "tab" }, { name: "Spaces", value: 4 }]
},
{
type: "list",
name: "quotes",
message: "What quotes do you use for strings?",
default: "double",
- choices: [{name: "Double", value: "double"}, {name: "Single", value: "single"}]
+ choices: [{ name: "Double", value: "double" }, { name: "Single", value: "single" }]
},
{
type: "list",
name: "linebreak",
message: "What line endings do you use?",
default: "unix",
- choices: [{name: "Unix", value: "unix"}, {name: "Windows", value: "windows"}]
+ choices: [{ name: "Unix", value: "unix" }, { name: "Windows", value: "windows" }]
},
{
type: "confirm",
@@ -457,7 +465,7 @@ function promptUser(callback) {
default: "JavaScript",
choices: ["JavaScript", "YAML", "JSON"]
}
- ], function(answers) {
+ ], answers => {
try {
const totalAnswers = Object.assign({}, earlyAnswers, secondAnswers, answers);
@@ -465,10 +473,8 @@ function promptUser(callback) {
installModules(config);
writeFile(config, answers.format);
} catch (err) {
- callback(err);
- return;
+ callback(err); // eslint-disable-line callback-return
}
- return;
});
});
});
diff --git a/tools/eslint/lib/config/config-ops.js b/tools/eslint/lib/config/config-ops.js
index 42b0fe81b9..52dea1a106 100644
--- a/tools/eslint/lib/config/config-ops.js
+++ b/tools/eslint/lib/config/config-ops.js
@@ -18,7 +18,7 @@ const debug = require("debug")("eslint:config-ops");
//------------------------------------------------------------------------------
const RULE_SEVERITY_STRINGS = ["off", "warn", "error"],
- RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce(function(map, value, index) {
+ RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {
map[value] = index;
return map;
}, {}),
@@ -57,9 +57,7 @@ module.exports = {
envConfig.env = env;
- Object.keys(env).filter(function(name) {
- return env[name];
- }).forEach(function(name) {
+ Object.keys(env).filter(name => env[name]).forEach(name => {
const environment = Environments.get(name);
if (environment) {
@@ -149,7 +147,7 @@ module.exports = {
if (typeof src !== "object" && !Array.isArray(src)) {
src = [src];
}
- Object.keys(src).forEach(function(e, i) {
+ Object.keys(src).forEach((e, i) => {
e = src[i];
if (typeof dst[i] === "undefined") {
dst[i] = e;
@@ -171,11 +169,11 @@ module.exports = {
});
} else {
if (target && typeof target === "object") {
- Object.keys(target).forEach(function(key) {
+ Object.keys(target).forEach(key => {
dst[key] = target[key];
});
}
- Object.keys(src).forEach(function(key) {
+ Object.keys(src).forEach(key => {
if (Array.isArray(src[key]) || Array.isArray(target[key])) {
dst[key] = deepmerge(target[key], src[key], key === "plugins", isRule);
} else if (typeof src[key] !== "object" || !src[key] || key === "exported" || key === "astGlobals") {
@@ -199,7 +197,7 @@ module.exports = {
normalize(config) {
if (config.rules) {
- Object.keys(config.rules).forEach(function(ruleId) {
+ Object.keys(config.rules).forEach(ruleId => {
const ruleConfig = config.rules[ruleId];
if (typeof ruleConfig === "string") {
@@ -221,7 +219,7 @@ module.exports = {
normalizeToStrings(config) {
if (config.rules) {
- Object.keys(config.rules).forEach(function(ruleId) {
+ Object.keys(config.rules).forEach(ruleId => {
const ruleConfig = config.rules[ruleId];
if (typeof ruleConfig === "number") {
@@ -269,8 +267,6 @@ module.exports = {
* @returns {boolean} `true` if the configuration has valid severity.
*/
isEverySeverityValid(config) {
- return Object.keys(config).every(function(ruleId) {
- return this.isValidSeverity(config[ruleId]);
- }, this);
+ return Object.keys(config).every(ruleId => this.isValidSeverity(config[ruleId]));
}
};
diff --git a/tools/eslint/lib/config/config-rule.js b/tools/eslint/lib/config/config-rule.js
index eb5c23fe8c..d495198aed 100644
--- a/tools/eslint/lib/config/config-rule.js
+++ b/tools/eslint/lib/config/config-rule.js
@@ -23,7 +23,7 @@ const rules = require("../rules"),
* @returns {Array[]} An array of arrays.
*/
function explodeArray(xs) {
- return xs.reduce(function(accumulator, x) {
+ return xs.reduce((accumulator, x) => {
accumulator.push([x]);
return accumulator;
}, []);
@@ -49,8 +49,8 @@ function combineArrays(arr1, arr2) {
if (arr2.length === 0) {
return explodeArray(arr1);
}
- arr1.forEach(function(x1) {
- arr2.forEach(function(x2) {
+ arr1.forEach(x1 => {
+ arr2.forEach(x2 => {
res.push([].concat(x1, x2));
});
});
@@ -78,16 +78,14 @@ function combineArrays(arr1, arr2) {
* @returns {Array[]} Array of arrays of objects grouped by property
*/
function groupByProperty(objects) {
- const groupedObj = objects.reduce(function(accumulator, obj) {
+ const groupedObj = objects.reduce((accumulator, obj) => {
const prop = Object.keys(obj)[0];
accumulator[prop] = accumulator[prop] ? accumulator[prop].concat(obj) : [obj];
return accumulator;
}, {});
- return Object.keys(groupedObj).map(function(prop) {
- return groupedObj[prop];
- });
+ return Object.keys(groupedObj).map(prop => groupedObj[prop]);
}
@@ -152,16 +150,16 @@ function combinePropertyObjects(objArr1, objArr2) {
if (objArr2.length === 0) {
return objArr1;
}
- objArr1.forEach(function(obj1) {
- objArr2.forEach(function(obj2) {
+ objArr1.forEach(obj1 => {
+ objArr2.forEach(obj2 => {
const combinedObj = {};
const obj1Props = Object.keys(obj1);
const obj2Props = Object.keys(obj2);
- obj1Props.forEach(function(prop1) {
+ obj1Props.forEach(prop1 => {
combinedObj[prop1] = obj1[prop1];
});
- obj2Props.forEach(function(prop2) {
+ obj2Props.forEach(prop2 => {
combinedObj[prop2] = obj2[prop2];
});
res.push(combinedObj);
@@ -205,7 +203,7 @@ RuleConfigSet.prototype = {
addErrorSeverity(severity) {
severity = severity || 2;
- this.ruleConfigs = this.ruleConfigs.map(function(config) {
+ this.ruleConfigs = this.ruleConfigs.map(config => {
config.unshift(severity);
return config;
});
@@ -241,9 +239,7 @@ RuleConfigSet.prototype = {
},
combine() {
- this.objectConfigs = groupByProperty(this.objectConfigs).reduce(function(accumulator, objArr) {
- return combinePropertyObjects(accumulator, objArr);
- }, []);
+ this.objectConfigs = groupByProperty(this.objectConfigs).reduce((accumulator, objArr) => combinePropertyObjects(accumulator, objArr), []);
}
};
@@ -251,7 +247,7 @@ RuleConfigSet.prototype = {
* The object schema could have multiple independent properties.
* If any contain enums or booleans, they can be added and then combined
*/
- Object.keys(obj.properties).forEach(function(prop) {
+ Object.keys(obj.properties).forEach(prop => {
if (obj.properties[prop].enum) {
objectConfigSet.add(prop, obj.properties[prop].enum);
}
@@ -276,7 +272,7 @@ function generateConfigsFromSchema(schema) {
const configSet = new RuleConfigSet();
if (Array.isArray(schema)) {
- schema.forEach(function(opt) {
+ schema.forEach(opt => {
if (opt.enum) {
configSet.addEnums(opt.enum);
}
@@ -302,7 +298,7 @@ function generateConfigsFromSchema(schema) {
function createCoreRuleConfigs() {
const ruleList = loadRules();
- return Object.keys(ruleList).reduce(function(accumulator, id) {
+ return Object.keys(ruleList).reduce((accumulator, id) => {
const rule = rules.get(id);
const schema = (typeof rule === "function") ? rule.schema : rule.meta.schema;
diff --git a/tools/eslint/lib/config/config-validator.js b/tools/eslint/lib/config/config-validator.js
index ef285eae4e..c5268169b9 100644
--- a/tools/eslint/lib/config/config-validator.js
+++ b/tools/eslint/lib/config/config-validator.js
@@ -54,65 +54,59 @@ function getRuleOptionsSchema(id) {
}
/**
- * Validates a rule's options against its schema.
- * @param {string} id The rule's unique name.
- * @param {array|number} options The given options for the rule.
- * @param {string} source The name of the configuration source.
- * @returns {void}
- */
-function validateRuleOptions(id, options, source) {
- const schema = getRuleOptionsSchema(id);
- let validateRule = validators.rules[id],
- severity,
- localOptions,
- validSeverity = true;
-
- if (!validateRule && schema) {
- validateRule = schemaValidator(schema, { verbose: true });
- validators.rules[id] = validateRule;
+* Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.
+* @param {options} options The given options for the rule.
+* @returns {number|string} The rule's severity value
+*/
+function validateRuleSeverity(options) {
+ const severity = Array.isArray(options) ? options[0] : options;
+
+ if (severity !== 0 && severity !== 1 && severity !== 2 && !(typeof severity === "string" && /^(?:off|warn|error)$/i.test(severity))) {
+ throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/g, "\"").replace(/\n/g, "")}').\n`);
}
- // if it's not an array, it should be just a severity
- if (Array.isArray(options)) {
- localOptions = options.concat(); // clone
- severity = localOptions.shift();
- } else {
- severity = options;
- localOptions = [];
+ return severity;
+}
+
+/**
+* Validates the non-severity options passed to a rule, based on its schema.
+* @param {string} id The rule's unique name
+* @param {array} localOptions The options for the rule, excluding severity
+* @returns {void}
+*/
+function validateRuleSchema(id, localOptions) {
+ const schema = getRuleOptionsSchema(id);
+
+ if (!validators.rules[id] && schema) {
+ validators.rules[id] = schemaValidator(schema, { verbose: true });
}
- validSeverity = (
- severity === 0 || severity === 1 || severity === 2 ||
- (typeof severity === "string" && /^(?:off|warn|error)$/i.test(severity))
- );
+ const validateRule = validators.rules[id];
if (validateRule) {
validateRule(localOptions);
+ if (validateRule.errors) {
+ throw new Error(validateRule.errors.map(error => `\tValue "${error.value}" ${error.message}.\n`).join(""));
+ }
}
+}
- if ((validateRule && validateRule.errors) || !validSeverity) {
- const message = [
- source, ":\n",
- "\tConfiguration for rule \"", id, "\" is invalid:\n"
- ];
-
- if (!validSeverity) {
- message.push(
- "\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '",
- util.inspect(severity).replace(/'/g, "\"").replace(/\n/g, ""),
- "').\n"
- );
- }
+/**
+ * Validates a rule's options against its schema.
+ * @param {string} id The rule's unique name.
+ * @param {array|number} options The given options for the rule.
+ * @param {string} source The name of the configuration source.
+ * @returns {void}
+ */
+function validateRuleOptions(id, options, source) {
+ try {
+ const severity = validateRuleSeverity(options);
- if (validateRule && validateRule.errors) {
- validateRule.errors.forEach(function(error) {
- message.push(
- "\tValue \"", error.value, "\" ", error.message, ".\n"
- );
- });
+ if (severity !== 0 && !(typeof severity === "string" && severity.toLowerCase() === "off")) {
+ validateRuleSchema(id, Array.isArray(options) ? options.slice(1) : []);
}
-
- throw new Error(message.join(""));
+ } catch (err) {
+ throw new Error(`${source}:\n\tConfiguration for rule "${id}" is invalid:\n${err.message}`);
}
}
@@ -134,7 +128,7 @@ function validateEnvironment(environment, source) {
}
if (typeof environment === "object") {
- Object.keys(environment).forEach(function(env) {
+ Object.keys(environment).forEach(env => {
if (!Environments.get(env)) {
const message = [
source, ":\n",
@@ -158,7 +152,7 @@ function validateEnvironment(environment, source) {
function validate(config, source) {
if (typeof config.rules === "object") {
- Object.keys(config.rules).forEach(function(id) {
+ Object.keys(config.rules).forEach(id => {
validateRuleOptions(id, config.rules[id], source);
});
}
diff --git a/tools/eslint/lib/config/environments.js b/tools/eslint/lib/config/environments.js
index 36b989068f..5c34da9328 100644
--- a/tools/eslint/lib/config/environments.js
+++ b/tools/eslint/lib/config/environments.js
@@ -22,7 +22,7 @@ let environments = new Map();
* @private
*/
function load() {
- Object.keys(envs).forEach(function(envName) {
+ Object.keys(envs).forEach(envName => {
environments.set(envName, envs[envName]);
});
}
@@ -65,9 +65,9 @@ module.exports = {
*/
importPlugin(plugin, pluginName) {
if (plugin.environments) {
- Object.keys(plugin.environments).forEach(function(envName) {
+ Object.keys(plugin.environments).forEach(envName => {
this.define(`${pluginName}/${envName}`, plugin.environments[envName]);
- }, this);
+ });
}
},
diff --git a/tools/eslint/lib/eslint.js b/tools/eslint/lib/eslint.js
index fd7685f492..3ae7cfe9c6 100755
--- a/tools/eslint/lib/eslint.js
+++ b/tools/eslint/lib/eslint.js
@@ -26,7 +26,22 @@ const assert = require("assert"),
Traverser = require("./util/traverser"),
RuleContext = require("./rule-context"),
rules = require("./rules"),
- timing = require("./timing");
+ timing = require("./timing"),
+
+ pkg = require("../package.json");
+
+
+//------------------------------------------------------------------------------
+// Typedefs
+//------------------------------------------------------------------------------
+
+/**
+ * The result of a parsing operation from parseForESLint()
+ * @typedef {Object} CustomParseResult
+ * @property {ASTNode} ast The ESTree AST Program node.
+ * @property {Object} services An object containing additional services related
+ * to the parser.
+ */
//------------------------------------------------------------------------------
// Helpers
@@ -45,7 +60,7 @@ function parseBooleanConfig(string, comment) {
// Collapse whitespace around `:` and `,` to make parsing easier
string = string.replace(/\s*([:,])\s*/g, "$1");
- string.split(/\s|,+/).forEach(function(name) {
+ string.split(/\s|,+/).forEach(name => {
if (!name) {
return;
}
@@ -95,7 +110,7 @@ function parseJsonConfig(string, location, messages) {
// Optionator cannot parse commaless notations.
// But we are supporting that. So this is a fallback for that.
items = {};
- string = string.replace(/([a-zA-Z0-9\-\/]+):/g, "\"$1\":").replace(/(\]|[0-9])\s+(?=")/, "$1,");
+ string = string.replace(/([a-zA-Z0-9\-/]+):/g, "\"$1\":").replace(/(]|[0-9])\s+(?=")/, "$1,");
try {
items = JSON.parse(`{${string}}`);
} catch (ex) {
@@ -126,7 +141,7 @@ function parseListConfig(string) {
// Collapse whitespace around ,
string = string.replace(/\s*,\s*/g, ",");
- string.split(/,+/).forEach(function(name) {
+ string.split(/,+/).forEach(name => {
name = name.trim();
if (!name) {
return;
@@ -153,7 +168,7 @@ function addDeclaredGlobals(program, globalScope, config) {
Object.assign(declaredGlobals, builtin);
- Object.keys(config.env).forEach(function(name) {
+ Object.keys(config.env).forEach(name => {
if (config.env[name]) {
const env = Environments.get(name),
environmentGlobals = env && env.globals;
@@ -168,7 +183,7 @@ function addDeclaredGlobals(program, globalScope, config) {
Object.assign(declaredGlobals, config.globals);
Object.assign(explicitGlobals, config.astGlobals);
- Object.keys(declaredGlobals).forEach(function(name) {
+ Object.keys(declaredGlobals).forEach(name => {
let variable = globalScope.set.get(name);
if (!variable) {
@@ -180,7 +195,7 @@ function addDeclaredGlobals(program, globalScope, config) {
variable.writeable = declaredGlobals[name];
});
- Object.keys(explicitGlobals).forEach(function(name) {
+ Object.keys(explicitGlobals).forEach(name => {
let variable = globalScope.set.get(name);
if (!variable) {
@@ -194,7 +209,7 @@ function addDeclaredGlobals(program, globalScope, config) {
});
// mark all exported variables as such
- Object.keys(exportedGlobals).forEach(function(name) {
+ Object.keys(exportedGlobals).forEach(name => {
const variable = globalScope.set.get(name);
if (variable) {
@@ -207,7 +222,7 @@ function addDeclaredGlobals(program, globalScope, config) {
* Since we augment the global scope using configuration, we need to update
* references and remove the ones that were added by configuration.
*/
- globalScope.through = globalScope.through.filter(function(reference) {
+ globalScope.through = globalScope.through.filter(reference => {
const name = reference.identifier.name;
const variable = globalScope.set.get(name);
@@ -238,7 +253,7 @@ function addDeclaredGlobals(program, globalScope, config) {
function disableReporting(reportingConfig, start, rulesToDisable) {
if (rulesToDisable.length) {
- rulesToDisable.forEach(function(rule) {
+ rulesToDisable.forEach(rule => {
reportingConfig.push({
start,
end: null,
@@ -266,7 +281,7 @@ function enableReporting(reportingConfig, start, rulesToEnable) {
let i;
if (rulesToEnable.length) {
- rulesToEnable.forEach(function(rule) {
+ rulesToEnable.forEach(rule => {
for (i = reportingConfig.length - 1; i >= 0; i--) {
if (!reportingConfig[i].end && reportingConfig[i].rule === rule) {
reportingConfig[i].end = start;
@@ -313,7 +328,7 @@ function modifyConfigsFromComments(filename, ast, config, reportingConfig, messa
};
const commentRules = {};
- ast.comments.forEach(function(comment) {
+ ast.comments.forEach(comment => {
let value = comment.value.trim();
const match = /^(eslint(-\w+){0,3}|exported|globals?)(\s|$)/.exec(value);
@@ -347,7 +362,7 @@ function modifyConfigsFromComments(filename, ast, config, reportingConfig, messa
case "eslint": {
const items = parseJsonConfig(value, comment.loc, messages);
- Object.keys(items).forEach(function(name) {
+ Object.keys(items).forEach(name => {
const ruleValue = items[name];
validator.validateRuleOptions(name, ruleValue, `${filename} line ${comment.loc.start.line}`);
@@ -371,7 +386,7 @@ function modifyConfigsFromComments(filename, ast, config, reportingConfig, messa
});
// apply environment configs
- Object.keys(commentConfig.env).forEach(function(name) {
+ Object.keys(commentConfig.env).forEach(name => {
const env = Environments.get(name);
if (env) {
@@ -442,11 +457,11 @@ function prepareConfig(config) {
let parserOptions = {};
if (typeof config.rules === "object") {
- Object.keys(config.rules).forEach(function(k) {
+ Object.keys(config.rules).forEach(k => {
const rule = config.rules[k];
if (rule === null) {
- throw new Error(`Invalid config for rule '${k}'\.`);
+ throw new Error(`Invalid config for rule '${k}'.`);
}
if (Array.isArray(rule)) {
copiedRules[k] = rule.slice();
@@ -458,7 +473,7 @@ function prepareConfig(config) {
// merge in environment parserOptions
if (typeof config.env === "object") {
- Object.keys(config.env).forEach(function(envName) {
+ Object.keys(config.env).forEach(envName => {
const env = Environments.get(envName);
if (config.env[envName] && env && env.parserOptions) {
@@ -598,7 +613,8 @@ module.exports = (function() {
* @param {string} text The text to parse.
* @param {Object} config The ESLint configuration object.
* @param {string} filePath The path to the file being parsed.
- * @returns {ASTNode} The AST if successful or null if not.
+ * @returns {ASTNode|CustomParseResult} The AST or parse result if successful,
+ * or null if not.
* @private
*/
function parse(text, config, filePath) {
@@ -642,7 +658,11 @@ module.exports = (function() {
* problem that ESLint identified just like any other.
*/
try {
- return parser.parse(text, parserOptions);
+ if (typeof parser.parseForESLint === "function") {
+ return parser.parseForESLint(text, parserOptions);
+ } else {
+ return parser.parse(text, parserOptions);
+ }
} catch (ex) {
// If the message includes a leading line number, strip it:
@@ -738,6 +758,7 @@ module.exports = (function() {
api.verify = function(textOrSourceCode, config, filenameOrOptions, saveState) {
const text = (typeof textOrSourceCode === "string") ? textOrSourceCode : null;
let ast,
+ parseResult,
shebang,
allowInlineConfig;
@@ -759,7 +780,7 @@ module.exports = (function() {
if (envInFile) {
if (!config || !config.env) {
- config = Object.assign({}, config || {}, {env: envInFile});
+ config = Object.assign({}, config || {}, { env: envInFile });
} else {
config = Object.assign({}, config);
config.env = Object.assign({}, config.env, envInFile);
@@ -778,8 +799,8 @@ module.exports = (function() {
return messages;
}
- ast = parse(
- stripUnicodeBOM(text).replace(/^#!([^\r\n]+)/, function(match, captured) {
+ parseResult = parse(
+ stripUnicodeBOM(text).replace(/^#!([^\r\n]+)/, (match, captured) => {
shebang = captured;
return `//${captured}`;
}),
@@ -787,6 +808,14 @@ module.exports = (function() {
currentFilename
);
+ // if this result is from a parseForESLint() method, normalize
+ if (parseResult && parseResult.ast) {
+ ast = parseResult.ast;
+ } else {
+ ast = parseResult;
+ parseResult = null;
+ }
+
if (ast) {
sourceCode = new SourceCode(text, ast);
}
@@ -808,9 +837,7 @@ module.exports = (function() {
ConfigOps.normalize(config);
// enable appropriate rules
- Object.keys(config.rules).filter(function(key) {
- return getRuleSeverity(config.rules[key]) > 0;
- }).forEach(function(key) {
+ Object.keys(config.rules).filter(key => getRuleSeverity(config.rules[key]) > 0).forEach(key => {
let ruleCreator;
ruleCreator = rules.get(key);
@@ -832,13 +859,16 @@ module.exports = (function() {
try {
const ruleContext = new RuleContext(
key, api, severity, options,
- config.settings, config.parserOptions, config.parser, ruleCreator.meta);
+ config.settings, config.parserOptions, config.parser,
+ ruleCreator.meta,
+ (parseResult && parseResult.services ? parseResult.services : {})
+ );
const rule = ruleCreator.create ? ruleCreator.create(ruleContext) :
ruleCreator(ruleContext);
// add all the node types as listeners
- Object.keys(rule).forEach(function(nodeType) {
+ Object.keys(rule).forEach(nodeType => {
api.on(nodeType, timing.enabled
? timing.time(key, rule[nodeType])
: rule[nodeType]
@@ -904,7 +934,7 @@ module.exports = (function() {
}
// sort by line and column
- messages.sort(function(a, b) {
+ messages.sort((a, b) => {
const lineDiff = a.line - b.line;
if (lineDiff === 0) {
@@ -957,7 +987,7 @@ module.exports = (function() {
}
if (opts) {
- message = message.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, function(fullMatch, term) {
+ message = message.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (fullMatch, term) => {
if (term in opts) {
return opts[term];
}
@@ -1027,7 +1057,7 @@ module.exports = (function() {
};
// copy over methods
- Object.keys(externalMethods).forEach(function(methodName) {
+ Object.keys(externalMethods).forEach(methodName => {
const exMethodName = externalMethods[methodName];
// All functions expected to have less arguments than 5.
@@ -1152,7 +1182,7 @@ module.exports = (function() {
* @returns {void}
*/
api.defineRules = function(rulesToDefine) {
- Object.getOwnPropertyNames(rulesToDefine).forEach(function(ruleId) {
+ Object.getOwnPropertyNames(rulesToDefine).forEach(ruleId => {
defineRule(ruleId, rulesToDefine[ruleId]);
});
};
@@ -1166,6 +1196,16 @@ module.exports = (function() {
};
/**
+ * Gets an object with all loaded rules.
+ * @returns {Map} All loaded rules
+ */
+ api.getRules = function() {
+ return rules.getAllLoadedRules();
+ };
+
+ api.version = pkg.version;
+
+ /**
* Gets variables that are declared by a specified node.
*
* The variables are its `defs[].node` or `defs[].parent` is same as the specified node.
diff --git a/tools/eslint/lib/file-finder.js b/tools/eslint/lib/file-finder.js
index 18f3b65133..acb886c9d1 100644
--- a/tools/eslint/lib/file-finder.js
+++ b/tools/eslint/lib/file-finder.js
@@ -31,22 +31,6 @@ function getDirectoryEntries(directory) {
}
}
-//------------------------------------------------------------------------------
-// API
-//------------------------------------------------------------------------------
-
-/**
- * FileFinder
- * @constructor
- * @param {string[]} files The basename(s) of the file(s) to find.
- * @param {stirng} cwd Current working directory
- */
-function FileFinder(files, cwd) {
- this.fileNames = Array.isArray(files) ? files : [files];
- this.cwd = cwd || process.cwd();
- this.cache = {};
-}
-
/**
* Create a hash of filenames from a directory listing
* @param {string[]} entries Array of directory entries.
@@ -57,7 +41,7 @@ function FileFinder(files, cwd) {
function normalizeDirectoryEntries(entries, directory, supportedConfigs) {
const fileHash = {};
- entries.forEach(function(entry) {
+ entries.forEach(entry => {
if (supportedConfigs.indexOf(entry) >= 0) {
const resolvedEntry = path.resolve(directory, entry);
@@ -69,69 +53,89 @@ function normalizeDirectoryEntries(entries, directory, supportedConfigs) {
return fileHash;
}
+//------------------------------------------------------------------------------
+// API
+//------------------------------------------------------------------------------
+
/**
- * Find all instances of files with the specified file names, in directory and
- * parent directories. Cache the results.
- * Does not check if a matching directory entry is a file.
- * Searches for all the file names in this.fileNames.
- * Is currently used by lib/config.js to find .eslintrc and package.json files.
- * @param {string} directory The directory to start the search from.
- * @returns {string[]} The file paths found.
+ * FileFinder class
*/
-FileFinder.prototype.findAllInDirectoryAndParents = function(directory) {
- const cache = this.cache;
-
- if (directory) {
- directory = path.resolve(this.cwd, directory);
- } else {
- directory = this.cwd;
+class FileFinder {
+
+ /**
+ * @param {string[]} files The basename(s) of the file(s) to find.
+ * @param {stirng} cwd Current working directory
+ */
+ constructor(files, cwd) {
+ this.fileNames = Array.isArray(files) ? files : [files];
+ this.cwd = cwd || process.cwd();
+ this.cache = {};
}
- if (cache.hasOwnProperty(directory)) {
- return cache[directory];
- }
+ /**
+ * Find all instances of files with the specified file names, in directory and
+ * parent directories. Cache the results.
+ * Does not check if a matching directory entry is a file.
+ * Searches for all the file names in this.fileNames.
+ * Is currently used by lib/config.js to find .eslintrc and package.json files.
+ * @param {string} directory The directory to start the search from.
+ * @returns {string[]} The file paths found.
+ */
+ findAllInDirectoryAndParents(directory) {
+ const cache = this.cache;
+
+ if (directory) {
+ directory = path.resolve(this.cwd, directory);
+ } else {
+ directory = this.cwd;
+ }
- const dirs = [];
- const fileNames = this.fileNames;
- let searched = 0;
+ if (cache.hasOwnProperty(directory)) {
+ return cache[directory];
+ }
- do {
- dirs[searched++] = directory;
- cache[directory] = [];
+ const dirs = [];
+ const fileNames = this.fileNames;
+ let searched = 0;
- const filesMap = normalizeDirectoryEntries(getDirectoryEntries(directory), directory, fileNames);
+ do {
+ dirs[searched++] = directory;
+ cache[directory] = [];
- if (Object.keys(filesMap).length) {
- for (let k = 0; k < fileNames.length; k++) {
+ const filesMap = normalizeDirectoryEntries(getDirectoryEntries(directory), directory, fileNames);
- if (filesMap[fileNames[k]]) {
- const filePath = filesMap[fileNames[k]];
+ if (Object.keys(filesMap).length) {
+ for (let k = 0; k < fileNames.length; k++) {
- // Add the file path to the cache of each directory searched.
- for (let j = 0; j < searched; j++) {
- cache[dirs[j]].push(filePath);
- }
+ if (filesMap[fileNames[k]]) {
+ const filePath = filesMap[fileNames[k]];
+
+ // Add the file path to the cache of each directory searched.
+ for (let j = 0; j < searched; j++) {
+ cache[dirs[j]].push(filePath);
+ }
- break;
+ break;
+ }
}
}
- }
- const child = directory;
+ const child = directory;
+
+ // Assign parent directory to directory.
+ directory = path.dirname(directory);
- // Assign parent directory to directory.
- directory = path.dirname(directory);
+ if (directory === child) {
+ return cache[dirs[0]];
+ }
+ } while (!cache.hasOwnProperty(directory));
- if (directory === child) {
- return cache[dirs[0]];
+ // Add what has been cached previously to the cache of each directory searched.
+ for (let i = 0; i < searched; i++) {
+ dirs.push.apply(cache[dirs[i]], cache[directory]);
}
- } while (!cache.hasOwnProperty(directory));
- // Add what has been cached previously to the cache of each directory searched.
- for (let i = 0; i < searched; i++) {
- dirs.push.apply(cache[dirs[i]], cache[directory]);
+ return cache[dirs[0]];
}
-
- return cache[dirs[0]];
-};
+}
module.exports = FileFinder;
diff --git a/tools/eslint/lib/formatters/checkstyle.js b/tools/eslint/lib/formatters/checkstyle.js
index 0beedcf689..5985ad0eff 100644
--- a/tools/eslint/lib/formatters/checkstyle.js
+++ b/tools/eslint/lib/formatters/checkstyle.js
@@ -35,12 +35,12 @@ module.exports = function(results) {
output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
output += "<checkstyle version=\"4.3\">";
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
output += `<file name="${xmlEscape(result.filePath)}">`;
- messages.forEach(function(message) {
+ messages.forEach(message => {
output += [
`<error line="${xmlEscape(message.line)}"`,
`column="${xmlEscape(message.column)}"`,
diff --git a/tools/eslint/lib/formatters/codeframe.js b/tools/eslint/lib/formatters/codeframe.js
new file mode 100644
index 0000000000..e8cd59bb94
--- /dev/null
+++ b/tools/eslint/lib/formatters/codeframe.js
@@ -0,0 +1,121 @@
+/**
+ * @fileoverview Codeframe reporter
+ * @author Vitor Balocco
+ */
+"use strict";
+
+const chalk = require("chalk");
+const codeFrame = require("babel-code-frame");
+const path = require("path");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Given a word and a count, append an s if count is not one.
+ * @param {string} word A word in its singular form.
+ * @param {number} count A number controlling whether word should be pluralized.
+ * @returns {string} The original word with an s on the end if count is not one.
+ */
+function pluralize(word, count) {
+ return (count === 1 ? word : `${word}s`);
+}
+
+/**
+ * Gets a formatted relative file path from an absolute path and a line/column in the file.
+ * @param {string} filePath The absolute file path to format.
+ * @param {number} line The line from the file to use for formatting.
+ * @param {number} column The column from the file to use for formatting.
+ * @returns {string} The formatted file path.
+ */
+function formatFilePath(filePath, line, column) {
+ let relPath = path.relative(process.cwd(), filePath);
+
+ if (line && column) {
+ relPath += `:${line}:${column}`;
+ }
+
+ return chalk.green(relPath);
+}
+
+/**
+ * Gets the formatted output for a given message.
+ * @param {Object} message The object that represents this message.
+ * @param {Object} parentResult The result object that this message belongs to.
+ * @returns {string} The formatted output.
+ */
+function formatMessage(message, parentResult) {
+ const type = (message.fatal || message.severity === 2) ? chalk.red("error") : chalk.yellow("warning");
+ const msg = `${chalk.bold(message.message.replace(/\.$/, ""))}`;
+ const ruleId = message.fatal ? "" : chalk.dim(`(${message.ruleId})`);
+ const filePath = formatFilePath(parentResult.filePath, message.line, message.column);
+ const sourceCode = parentResult.output ? parentResult.output : parentResult.source;
+
+ const firstLine = [
+ `${type}:`,
+ `${msg}`,
+ ruleId ? `${ruleId}` : "",
+ sourceCode ? `at ${filePath}:` : `at ${filePath}`,
+ ].filter(String).join(" ");
+
+ const result = [firstLine];
+
+ if (sourceCode) {
+ result.push(
+ codeFrame(sourceCode, message.line, message.column, { highlightCode: false })
+ );
+ }
+
+ return result.join("\n");
+}
+
+/**
+ * Gets the formatted output summary for a given number of errors and warnings.
+ * @param {number} errors The number of errors.
+ * @param {number} warnings The number of warnings.
+ * @returns {string} The formatted output summary.
+ */
+function formatSummary(errors, warnings) {
+ const summaryColor = errors > 0 ? "red" : "yellow";
+ const summary = [];
+
+ if (errors > 0) {
+ summary.push(`${errors} ${pluralize("error", errors)}`);
+ }
+
+ if (warnings > 0) {
+ summary.push(`${warnings} ${pluralize("warning", warnings)}`);
+ }
+
+ return chalk[summaryColor].bold(`${summary.join(" and ")} found.`);
+}
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+module.exports = function(results) {
+ let errors = 0;
+ let warnings = 0;
+ const resultsWithMessages = results.filter(result => result.messages.length > 0);
+
+ let output = resultsWithMessages.reduce((resultsOutput, result) => {
+ const messages = result.messages.map(message => {
+ if (message.fatal || message.severity === 2) {
+ errors++;
+ } else {
+ warnings++;
+ }
+
+ return `${formatMessage(message, result)}\n\n`;
+ });
+
+ return resultsOutput.concat(messages);
+ }, []).join("\n");
+
+ output += "\n";
+ output += formatSummary(errors, warnings);
+
+ return (errors + warnings) > 0 ? output : "";
+};
diff --git a/tools/eslint/lib/formatters/compact.js b/tools/eslint/lib/formatters/compact.js
index 9c7aeb87d7..c641039ff2 100644
--- a/tools/eslint/lib/formatters/compact.js
+++ b/tools/eslint/lib/formatters/compact.js
@@ -32,13 +32,13 @@ module.exports = function(results) {
let output = "",
total = 0;
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
total += messages.length;
- messages.forEach(function(message) {
+ messages.forEach(message => {
output += `${result.filePath}: `;
output += `line ${message.line || 0}`;
diff --git a/tools/eslint/lib/formatters/html.js b/tools/eslint/lib/formatters/html.js
index 66e89d372c..e61fdea6a9 100644
--- a/tools/eslint/lib/formatters/html.js
+++ b/tools/eslint/lib/formatters/html.js
@@ -70,7 +70,7 @@ function renderMessages(messages, parentIndex) {
* @param {Object} message Message.
* @returns {string} HTML (table row) describing a message.
*/
- return lodash.map(messages, function(message) {
+ return lodash.map(messages, message => {
const lineNumber = message.line || 0;
const columnNumber = message.column || 0;
@@ -91,15 +91,13 @@ function renderMessages(messages, parentIndex) {
* @returns {string} HTML string describing the results.
*/
function renderResults(results) {
- return lodash.map(results, function(result, index) {
- return resultTemplate({
- index,
- color: renderColor(result.errorCount, result.warningCount),
- filePath: result.filePath,
- summary: renderSummary(result.errorCount, result.warningCount)
-
- }) + renderMessages(result.messages, index);
- }).join("\n");
+ return lodash.map(results, (result, index) => resultTemplate({
+ index,
+ color: renderColor(result.errorCount, result.warningCount),
+ filePath: result.filePath,
+ summary: renderSummary(result.errorCount, result.warningCount)
+
+ }) + renderMessages(result.messages, index)).join("\n");
}
//------------------------------------------------------------------------------
@@ -114,7 +112,7 @@ module.exports = function(results) {
totalWarnings = 0;
// Iterate over results to get totals
- results.forEach(function(result) {
+ results.forEach(result => {
totalErrors += result.errorCount;
totalWarnings += result.warningCount;
});
diff --git a/tools/eslint/lib/formatters/jslint-xml.js b/tools/eslint/lib/formatters/jslint-xml.js
index 7cfa893d32..14743430d8 100644
--- a/tools/eslint/lib/formatters/jslint-xml.js
+++ b/tools/eslint/lib/formatters/jslint-xml.js
@@ -17,12 +17,12 @@ module.exports = function(results) {
output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
output += "<jslint>";
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
output += `<file name="${result.filePath}">`;
- messages.forEach(function(message) {
+ messages.forEach(message => {
output += [
`<issue line="${message.line}"`,
`char="${message.column}"`,
diff --git a/tools/eslint/lib/formatters/junit.js b/tools/eslint/lib/formatters/junit.js
index 0c29a72c46..35b03bf9ff 100644
--- a/tools/eslint/lib/formatters/junit.js
+++ b/tools/eslint/lib/formatters/junit.js
@@ -35,7 +35,7 @@ module.exports = function(results) {
output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
output += "<testsuites>\n";
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
@@ -43,7 +43,7 @@ module.exports = function(results) {
output += `<testsuite package="org.eslint" time="0" tests="${messages.length}" errors="${messages.length}" name="${result.filePath}">\n`;
}
- messages.forEach(function(message) {
+ messages.forEach(message => {
const type = message.fatal ? "error" : "failure";
output += `<testcase time="0" name="org.eslint.${message.ruleId || "unknown"}">`;
diff --git a/tools/eslint/lib/formatters/stylish.js b/tools/eslint/lib/formatters/stylish.js
index 578a146c01..a176d03ab8 100644
--- a/tools/eslint/lib/formatters/stylish.js
+++ b/tools/eslint/lib/formatters/stylish.js
@@ -33,7 +33,7 @@ module.exports = function(results) {
warnings = 0,
summaryColor = "yellow";
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
if (messages.length === 0) {
@@ -44,7 +44,7 @@ module.exports = function(results) {
output += `${chalk.underline(result.filePath)}\n`;
output += `${table(
- messages.map(function(message) {
+ messages.map(message => {
let messageType;
if (message.fatal || message.severity === 2) {
@@ -71,11 +71,7 @@ module.exports = function(results) {
return chalk.stripColor(str).length;
}
}
- ).split("\n").map(function(el) {
- return el.replace(/(\d+)\s+(\d+)/, function(m, p1, p2) {
- return chalk.dim(`${p1}:${p2}`);
- });
- }).join("\n")}\n\n`;
+ ).split("\n").map(el => el.replace(/(\d+)\s+(\d+)/, (m, p1, p2) => chalk.dim(`${p1}:${p2}`))).join("\n")}\n\n`;
});
if (total > 0) {
diff --git a/tools/eslint/lib/formatters/table.js b/tools/eslint/lib/formatters/table.js
index cd09626cc7..b4859154ba 100644
--- a/tools/eslint/lib/formatters/table.js
+++ b/tools/eslint/lib/formatters/table.js
@@ -36,7 +36,7 @@ function drawTable(messages) {
chalk.bold("Rule ID")
]);
- messages.forEach(function(message) {
+ messages.forEach(message => {
let messageType;
if (message.fatal || message.severity === 2) {
@@ -92,7 +92,7 @@ function drawTable(messages) {
function drawReport(results) {
let files;
- files = results.map(function(result) {
+ files = results.map(result => {
if (!result.messages.length) {
return "";
}
@@ -100,9 +100,7 @@ function drawReport(results) {
return `\n${result.filePath}\n\n${drawTable(result.messages)}`;
});
- files = files.filter(function(content) {
- return content.trim();
- });
+ files = files.filter(content => content.trim());
return files.join("");
}
@@ -120,7 +118,7 @@ module.exports = function(report) {
errorCount = 0;
warningCount = 0;
- report.forEach(function(fileReport) {
+ report.forEach(fileReport => {
errorCount += fileReport.errorCount;
warningCount += fileReport.warningCount;
});
diff --git a/tools/eslint/lib/formatters/tap.js b/tools/eslint/lib/formatters/tap.js
index 568ac1e8b6..27825d0ba9 100644
--- a/tools/eslint/lib/formatters/tap.js
+++ b/tools/eslint/lib/formatters/tap.js
@@ -44,7 +44,7 @@ function outputDiagnostics(diagnostic) {
module.exports = function(results) {
let output = `TAP version 13\n1..${results.length}\n`;
- results.forEach(function(result, id) {
+ results.forEach((result, id) => {
const messages = result.messages;
let testResult = "ok";
let diagnostics = {};
@@ -52,7 +52,7 @@ module.exports = function(results) {
if (messages.length > 0) {
testResult = "not ok";
- messages.forEach(function(message) {
+ messages.forEach(message => {
const diagnostic = {
message: message.message,
severity: getMessageType(message),
diff --git a/tools/eslint/lib/formatters/unix.js b/tools/eslint/lib/formatters/unix.js
index 867bbd5b49..a5635278bc 100644
--- a/tools/eslint/lib/formatters/unix.js
+++ b/tools/eslint/lib/formatters/unix.js
@@ -31,13 +31,13 @@ module.exports = function(results) {
let output = "",
total = 0;
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
total += messages.length;
- messages.forEach(function(message) {
+ messages.forEach(message => {
output += `${result.filePath}:`;
output += `${message.line || 0}:`;
diff --git a/tools/eslint/lib/formatters/visualstudio.js b/tools/eslint/lib/formatters/visualstudio.js
index 134a04a513..feb7fb4bef 100644
--- a/tools/eslint/lib/formatters/visualstudio.js
+++ b/tools/eslint/lib/formatters/visualstudio.js
@@ -33,13 +33,13 @@ module.exports = function(results) {
let output = "",
total = 0;
- results.forEach(function(result) {
+ results.forEach(result => {
const messages = result.messages;
total += messages.length;
- messages.forEach(function(message) {
+ messages.forEach(message => {
output += result.filePath;
output += `(${message.line || 0}`;
diff --git a/tools/eslint/lib/ignored-paths.js b/tools/eslint/lib/ignored-paths.js
index bc2db8aaac..bace73db6a 100644
--- a/tools/eslint/lib/ignored-paths.js
+++ b/tools/eslint/lib/ignored-paths.js
@@ -72,160 +72,161 @@ function mergeDefaultOptions(options) {
//------------------------------------------------------------------------------
/**
- * IgnoredPaths
- * @constructor
- * @class IgnoredPaths
- * @param {Object} options object containing 'ignore', 'ignorePath' and 'patterns' properties
+ * IgnoredPaths class
*/
-function IgnoredPaths(options) {
-
- options = mergeDefaultOptions(options);
-
- /**
- * add pattern to node-ignore instance
- * @param {Object} ig, instance of node-ignore
- * @param {string} pattern, pattern do add to ig
- * @returns {array} raw ignore rules
- */
- function addPattern(ig, pattern) {
- return ig.addPattern(pattern);
- }
+class IgnoredPaths {
/**
- * add ignore file to node-ignore instance
- * @param {Object} ig, instance of node-ignore
- * @param {string} filepath, file to add to ig
- * @returns {array} raw ignore rules
+ * @param {Object} options object containing 'ignore', 'ignorePath' and 'patterns' properties
*/
- function addIgnoreFile(ig, filepath) {
- ig.ignoreFiles.push(filepath);
- return ig.add(fs.readFileSync(filepath, "utf8"));
- }
-
- this.defaultPatterns = [].concat(DEFAULT_IGNORE_DIRS, options.patterns || []);
- this.baseDir = options.cwd;
-
- this.ig = {
- custom: ignore(),
- default: ignore()
- };
+ constructor(options) {
+ options = mergeDefaultOptions(options);
+
+ /**
+ * add pattern to node-ignore instance
+ * @param {Object} ig, instance of node-ignore
+ * @param {string} pattern, pattern do add to ig
+ * @returns {array} raw ignore rules
+ */
+ function addPattern(ig, pattern) {
+ return ig.addPattern(pattern);
+ }
- // Add a way to keep track of ignored files. This was present in node-ignore
- // 2.x, but dropped for now as of 3.0.10.
- this.ig.custom.ignoreFiles = [];
- this.ig.default.ignoreFiles = [];
+ /**
+ * add ignore file to node-ignore instance
+ * @param {Object} ig, instance of node-ignore
+ * @param {string} filepath, file to add to ig
+ * @returns {array} raw ignore rules
+ */
+ function addIgnoreFile(ig, filepath) {
+ ig.ignoreFiles.push(filepath);
+ return ig.add(fs.readFileSync(filepath, "utf8"));
+ }
- if (options.dotfiles !== true) {
+ this.defaultPatterns = [].concat(DEFAULT_IGNORE_DIRS, options.patterns || []);
+ this.baseDir = options.cwd;
- /*
- * ignore files beginning with a dot, but not files in a parent or
- * ancestor directory (which in relative format will begin with `../`).
- */
- addPattern(this.ig.default, [".*", "!../"]);
- }
+ this.ig = {
+ custom: ignore(),
+ default: ignore()
+ };
- addPattern(this.ig.default, this.defaultPatterns);
+ // Add a way to keep track of ignored files. This was present in node-ignore
+ // 2.x, but dropped for now as of 3.0.10.
+ this.ig.custom.ignoreFiles = [];
+ this.ig.default.ignoreFiles = [];
- if (options.ignore !== false) {
- let ignorePath;
+ if (options.dotfiles !== true) {
- if (options.ignorePath) {
- debug("Using specific ignore file");
+ /*
+ * ignore files beginning with a dot, but not files in a parent or
+ * ancestor directory (which in relative format will begin with `../`).
+ */
+ addPattern(this.ig.default, [".*", "!../"]);
+ }
- try {
- fs.statSync(options.ignorePath);
- ignorePath = options.ignorePath;
- } catch (e) {
- e.message = `Cannot read ignore file: ${options.ignorePath}\nError: ${e.message}`;
- throw e;
+ addPattern(this.ig.default, this.defaultPatterns);
+
+ if (options.ignore !== false) {
+ let ignorePath;
+
+ if (options.ignorePath) {
+ debug("Using specific ignore file");
+
+ try {
+ fs.statSync(options.ignorePath);
+ ignorePath = options.ignorePath;
+ } catch (e) {
+ e.message = `Cannot read ignore file: ${options.ignorePath}\nError: ${e.message}`;
+ throw e;
+ }
+ } else {
+ debug(`Looking for ignore file in ${options.cwd}`);
+ ignorePath = findIgnoreFile(options.cwd);
+
+ try {
+ fs.statSync(ignorePath);
+ debug(`Loaded ignore file ${ignorePath}`);
+ } catch (e) {
+ debug("Could not find ignore file in cwd");
+ this.options = options;
+ }
}
- } else {
- debug(`Looking for ignore file in ${options.cwd}`);
- ignorePath = findIgnoreFile(options.cwd);
-
- try {
- fs.statSync(ignorePath);
- debug(`Loaded ignore file ${ignorePath}`);
- } catch (e) {
- debug("Could not find ignore file in cwd");
- this.options = options;
+
+ if (ignorePath) {
+ debug(`Adding ${ignorePath}`);
+ this.baseDir = path.dirname(path.resolve(options.cwd, ignorePath));
+ addIgnoreFile(this.ig.custom, ignorePath);
+ addIgnoreFile(this.ig.default, ignorePath);
}
- }
- if (ignorePath) {
- debug(`Adding ${ignorePath}`);
- this.baseDir = path.dirname(path.resolve(options.cwd, ignorePath));
- addIgnoreFile(this.ig.custom, ignorePath);
- addIgnoreFile(this.ig.default, ignorePath);
+ if (options.ignorePattern) {
+ addPattern(this.ig.custom, options.ignorePattern);
+ addPattern(this.ig.default, options.ignorePattern);
+ }
}
- if (options.ignorePattern) {
- addPattern(this.ig.custom, options.ignorePattern);
- addPattern(this.ig.default, options.ignorePattern);
- }
+ this.options = options;
}
- this.options = options;
+ /**
+ * Determine whether a file path is included in the default or custom ignore patterns
+ * @param {string} filepath Path to check
+ * @param {string} [category=null] check 'default', 'custom' or both (null)
+ * @returns {boolean} true if the file path matches one or more patterns, false otherwise
+ */
+ contains(filepath, category) {
-}
+ let result = false;
+ const absolutePath = path.resolve(this.options.cwd, filepath);
+ const relativePath = pathUtil.getRelativePath(absolutePath, this.options.cwd);
-/**
- * Determine whether a file path is included in the default or custom ignore patterns
- * @param {string} filepath Path to check
- * @param {string} [category=null] check 'default', 'custom' or both (null)
- * @returns {boolean} true if the file path matches one or more patterns, false otherwise
- */
-IgnoredPaths.prototype.contains = function(filepath, category) {
+ if ((typeof category === "undefined") || (category === "default")) {
+ result = result || (this.ig.default.filter([relativePath]).length === 0);
+ }
- let result = false;
- const absolutePath = path.resolve(this.options.cwd, filepath);
- const relativePath = pathUtil.getRelativePath(absolutePath, this.options.cwd);
+ if ((typeof category === "undefined") || (category === "custom")) {
+ result = result || (this.ig.custom.filter([relativePath]).length === 0);
+ }
- if ((typeof category === "undefined") || (category === "default")) {
- result = result || (this.ig.default.filter([relativePath]).length === 0);
- }
+ return result;
- if ((typeof category === "undefined") || (category === "custom")) {
- result = result || (this.ig.custom.filter([relativePath]).length === 0);
}
- return result;
-
-};
-
-/**
- * Returns a list of dir patterns for glob to ignore
- * @returns {function()} method to check whether a folder should be ignored by glob.
- */
-IgnoredPaths.prototype.getIgnoredFoldersGlobChecker = function() {
+ /**
+ * Returns a list of dir patterns for glob to ignore
+ * @returns {function()} method to check whether a folder should be ignored by glob.
+ */
+ getIgnoredFoldersGlobChecker() {
- const ig = ignore().add(DEFAULT_IGNORE_DIRS);
+ const ig = ignore().add(DEFAULT_IGNORE_DIRS);
- if (this.options.ignore) {
- ig.add(this.ig.custom);
- }
+ if (this.options.ignore) {
+ ig.add(this.ig.custom);
+ }
- const filter = ig.createFilter();
+ const filter = ig.createFilter();
- /**
- * TODO
- * 1.
- * Actually, it should be `this.options.baseDir`, which is the base dir of `ignore-path`,
- * as well as Line 177.
- * But doing this leads to a breaking change and fails tests.
- * Related to #6759
- */
- const base = this.options.cwd;
+ /**
+ * TODO
+ * 1.
+ * Actually, it should be `this.options.baseDir`, which is the base dir of `ignore-path`,
+ * as well as Line 177.
+ * But doing this leads to a breaking change and fails tests.
+ * Related to #6759
+ */
+ const base = this.options.cwd;
- return function(absolutePath) {
- const relative = pathUtil.getRelativePath(absolutePath, base);
+ return function(absolutePath) {
+ const relative = pathUtil.getRelativePath(absolutePath, base);
- if (!relative) {
- return false;
- }
+ if (!relative) {
+ return false;
+ }
- return !filter(relative);
- };
-};
+ return !filter(relative);
+ };
+ }
+}
module.exports = IgnoredPaths;
diff --git a/tools/eslint/lib/internal-rules/internal-consistent-docs-description.js b/tools/eslint/lib/internal-rules/internal-consistent-docs-description.js
index 3e4671aa7b..a4a5dca03f 100644
--- a/tools/eslint/lib/internal-rules/internal-consistent-docs-description.js
+++ b/tools/eslint/lib/internal-rules/internal-consistent-docs-description.js
@@ -95,7 +95,6 @@ function checkMetaDocsDescription(context, exportsNode) {
firstWord
}
});
- return;
}
}
diff --git a/tools/eslint/lib/internal-rules/internal-no-invalid-meta.js b/tools/eslint/lib/internal-rules/internal-no-invalid-meta.js
index 783a1109e7..d1c78efa61 100644
--- a/tools/eslint/lib/internal-rules/internal-no-invalid-meta.js
+++ b/tools/eslint/lib/internal-rules/internal-no-invalid-meta.js
@@ -147,7 +147,6 @@ function checkMetaValidity(context, exportsNode, ruleIsFixable) {
if (ruleIsFixable && !hasMetaFixable(metaProperty)) {
context.report(metaProperty, "Rule is fixable, but is missing a meta.fixable property.");
- return;
}
}
@@ -216,7 +215,7 @@ module.exports = {
"Program:exit"() {
if (!isCorrectExportsFormat(exportsNode)) {
- context.report(exportsNode, "Rule does not export an Object. Make sure the rule follows the new rule format.");
+ context.report({ node: exportsNode, message: "Rule does not export an Object. Make sure the rule follows the new rule format." });
return;
}
diff --git a/tools/eslint/lib/load-rules.js b/tools/eslint/lib/load-rules.js
index c698faa5e1..92fb7bf20a 100644
--- a/tools/eslint/lib/load-rules.js
+++ b/tools/eslint/lib/load-rules.js
@@ -31,7 +31,7 @@ module.exports = function(rulesDir, cwd) {
const rules = Object.create(null);
- fs.readdirSync(rulesDir).forEach(function(file) {
+ fs.readdirSync(rulesDir).forEach(file => {
if (path.extname(file) !== ".js") {
return;
}
diff --git a/tools/eslint/lib/rule-context.js b/tools/eslint/lib/rule-context.js
index ded5dab962..9c80d2e1a3 100644
--- a/tools/eslint/lib/rule-context.js
+++ b/tools/eslint/lib/rule-context.js
@@ -61,36 +61,41 @@ const PASSTHROUGHS = [
//------------------------------------------------------------------------------
/**
+ * Rule context class
* Acts as an abstraction layer between rules and the main eslint object.
- * @constructor
- * @param {string} ruleId The ID of the rule using this object.
- * @param {eslint} eslint The eslint object.
- * @param {number} severity The configured severity level of the rule.
- * @param {Array} options The configuration information to be added to the rule.
- * @param {Object} settings The configuration settings passed from the config file.
- * @param {Object} parserOptions The parserOptions settings passed from the config file.
- * @param {Object} parserPath The parser setting passed from the config file.
- * @param {Object} meta The metadata of the rule
*/
-function RuleContext(ruleId, eslint, severity, options, settings, parserOptions, parserPath, meta) {
+class RuleContext {
- // public.
- this.id = ruleId;
- this.options = options;
- this.settings = settings;
- this.parserOptions = parserOptions;
- this.parserPath = parserPath;
- this.meta = meta;
+ /**
+ * @param {string} ruleId The ID of the rule using this object.
+ * @param {eslint} eslint The eslint object.
+ * @param {number} severity The configured severity level of the rule.
+ * @param {Array} options The configuration information to be added to the rule.
+ * @param {Object} settings The configuration settings passed from the config file.
+ * @param {Object} parserOptions The parserOptions settings passed from the config file.
+ * @param {Object} parserPath The parser setting passed from the config file.
+ * @param {Object} meta The metadata of the rule
+ * @param {Object} parserServices The parser services for the rule.
+ */
+ constructor(ruleId, eslint, severity, options, settings, parserOptions, parserPath, meta, parserServices) {
- // private.
- this.eslint = eslint;
- this.severity = severity;
+ // public.
+ this.id = ruleId;
+ this.options = options;
+ this.settings = settings;
+ this.parserOptions = parserOptions;
+ this.parserPath = parserPath;
+ this.meta = meta;
- Object.freeze(this);
-}
+ // create a separate copy and freeze it (it's not nice to freeze other people's objects)
+ this.parserServices = Object.freeze(Object.assign({}, parserServices));
-RuleContext.prototype = {
- constructor: RuleContext,
+ // private.
+ this.eslint = eslint;
+ this.severity = severity;
+
+ Object.freeze(this);
+ }
/**
* Passthrough to eslint.getSourceCode().
@@ -98,7 +103,7 @@ RuleContext.prototype = {
*/
getSourceCode() {
return this.eslint.getSourceCode();
- },
+ }
/**
* Passthrough to eslint.report() that automatically assigns the rule ID and severity.
@@ -147,7 +152,7 @@ RuleContext.prototype = {
this.meta
);
}
-};
+}
// Copy over passthrough methods. All functions will have 5 or fewer parameters.
PASSTHROUGHS.forEach(function(name) {
diff --git a/tools/eslint/lib/rules.js b/tools/eslint/lib/rules.js
index 128a6bcd15..80f83882d3 100644
--- a/tools/eslint/lib/rules.js
+++ b/tools/eslint/lib/rules.js
@@ -40,7 +40,7 @@ function define(ruleId, ruleModule) {
function load(rulesDir, cwd) {
const newRules = loadRules(rulesDir, cwd);
- Object.keys(newRules).forEach(function(ruleId) {
+ Object.keys(newRules).forEach(ruleId => {
define(ruleId, newRules[ruleId]);
});
}
@@ -53,7 +53,7 @@ function load(rulesDir, cwd) {
*/
function importPlugin(plugin, pluginName) {
if (plugin.rules) {
- Object.keys(plugin.rules).forEach(function(ruleId) {
+ Object.keys(plugin.rules).forEach(ruleId => {
const qualifiedRuleId = `${pluginName}/${ruleId}`,
rule = plugin.rules[ruleId];
@@ -76,6 +76,21 @@ function getHandler(ruleId) {
}
/**
+ * Get an object with all currently loaded rules
+ * @returns {Map} All loaded rules
+ */
+function getAllLoadedRules() {
+ const allRules = new Map();
+
+ Object.keys(rules).forEach(name => {
+ const rule = getHandler(name);
+
+ allRules.set(name, rule);
+ });
+ return allRules;
+}
+
+/**
* Reset rules storage.
* Should be used only in tests.
* @returns {void}
@@ -89,6 +104,7 @@ module.exports = {
load,
importPlugin,
get: getHandler,
+ getAllLoadedRules,
testClear,
/**
diff --git a/tools/eslint/lib/rules/accessor-pairs.js b/tools/eslint/lib/rules/accessor-pairs.js
index 7e8870edc8..4afdc7136c 100644
--- a/tools/eslint/lib/rules/accessor-pairs.js
+++ b/tools/eslint/lib/rules/accessor-pairs.js
@@ -139,9 +139,9 @@ module.exports = {
}
if (checkSetWithoutGet && isSetPresent && !isGetPresent) {
- context.report(node, "Getter is not present.");
+ context.report({ node, message: "Getter is not present." });
} else if (checkGetWithoutSet && isGetPresent && !isSetPresent) {
- context.report(node, "Setter is not present.");
+ context.report({ node, message: "Setter is not present." });
}
}
diff --git a/tools/eslint/lib/rules/array-bracket-spacing.js b/tools/eslint/lib/rules/array-bracket-spacing.js
index 9bd7e94495..73cfbdc3c1 100644
--- a/tools/eslint/lib/rules/array-bracket-spacing.js
+++ b/tools/eslint/lib/rules/array-bracket-spacing.js
@@ -179,8 +179,10 @@ module.exports = {
const first = sourceCode.getFirstToken(node),
second = sourceCode.getFirstToken(node, 1),
- penultimate = sourceCode.getLastToken(node, 1),
- last = sourceCode.getLastToken(node),
+ last = node.typeAnnotation
+ ? sourceCode.getTokenBefore(node.typeAnnotation)
+ : sourceCode.getLastToken(node),
+ penultimate = sourceCode.getTokenBefore(last),
firstElement = node.elements[0],
lastElement = node.elements[node.elements.length - 1];
diff --git a/tools/eslint/lib/rules/arrow-body-style.js b/tools/eslint/lib/rules/arrow-body-style.js
index 038aeeb5af..9778a6776f 100644
--- a/tools/eslint/lib/rules/arrow-body-style.js
+++ b/tools/eslint/lib/rules/arrow-body-style.js
@@ -37,7 +37,7 @@ module.exports = {
{
type: "object",
properties: {
- requireReturnForObjectLiteral: {type: "boolean"}
+ requireReturnForObjectLiteral: { type: "boolean" }
},
additionalProperties: false
}
@@ -46,7 +46,9 @@ module.exports = {
maxItems: 2
}
]
- }
+ },
+
+ fixable: "code"
},
create(context) {
@@ -55,6 +57,7 @@ module.exports = {
const asNeeded = !options[0] || options[0] === "as-needed";
const never = options[0] === "never";
const requireReturnForObjectLiteral = options[1] && options[1].requireReturnForObjectLiteral;
+ const sourceCode = context.getSourceCode();
/**
* Determines whether a arrow function body needs braces
@@ -65,38 +68,85 @@ module.exports = {
const arrowBody = node.body;
if (arrowBody.type === "BlockStatement") {
- if (never) {
+ const blockBody = arrowBody.body;
+
+ if (blockBody.length !== 1 && !never) {
+ return;
+ }
+
+ if (asNeeded && requireReturnForObjectLiteral && blockBody[0].type === "ReturnStatement" &&
+ blockBody[0].argument && blockBody[0].argument.type === "ObjectExpression") {
+ return;
+ }
+
+ if (never || asNeeded && blockBody[0].type === "ReturnStatement") {
context.report({
node,
loc: arrowBody.loc.start,
- message: "Unexpected block statement surrounding arrow body."
+ message: "Unexpected block statement surrounding arrow body.",
+ fix(fixer) {
+ if (blockBody.length !== 1 || blockBody[0].type !== "ReturnStatement" || !blockBody[0].argument) {
+ return null;
+ }
+
+ const sourceText = sourceCode.getText();
+ const returnKeyword = sourceCode.getFirstToken(blockBody[0]);
+ const firstValueToken = sourceCode.getTokenAfter(returnKeyword);
+ let lastValueToken = sourceCode.getLastToken(blockBody[0]);
+
+ if (lastValueToken.type === "Punctuator" && lastValueToken.value === ";") {
+
+ /* The last token of the returned value is the last token of the ReturnExpression (if
+ * the ReturnExpression has no semicolon), or the second-to-last token (if the ReturnExpression
+ * has a semicolon).
+ */
+ lastValueToken = sourceCode.getTokenBefore(lastValueToken);
+ }
+
+ const tokenAfterArrowBody = sourceCode.getTokenAfter(arrowBody);
+
+ if (tokenAfterArrowBody && tokenAfterArrowBody.type === "Punctuator" && /^[([/`+-]/.test(tokenAfterArrowBody.value)) {
+
+ // Don't do a fix if the next token would cause ASI issues when preceded by the returned value.
+ return null;
+ }
+
+ const textBeforeReturn = sourceText.slice(arrowBody.range[0] + 1, returnKeyword.range[0]);
+ const textBetweenReturnAndValue = sourceText.slice(returnKeyword.range[1], firstValueToken.range[0]);
+ const rawReturnValueText = sourceText.slice(firstValueToken.range[0], lastValueToken.range[1]);
+ const returnValueText = firstValueToken.value === "{" ? `(${rawReturnValueText})` : rawReturnValueText;
+ const textAfterValue = sourceText.slice(lastValueToken.range[1], blockBody[0].range[1] - 1);
+ const textAfterReturnStatement = sourceText.slice(blockBody[0].range[1], arrowBody.range[1] - 1);
+
+ /*
+ * For fixes that only contain spaces around the return value, remove the extra spaces.
+ * This avoids ugly fixes that end up with extra spaces after the arrow, e.g. `() => 0 ;`
+ */
+ return fixer.replaceText(
+ arrowBody,
+ (textBeforeReturn + textBetweenReturnAndValue).replace(/^\s*$/, "") + returnValueText + (textAfterValue + textAfterReturnStatement).replace(/^\s*$/, "")
+ );
+ }
});
- } else {
- const blockBody = arrowBody.body;
-
- if (blockBody.length !== 1) {
- return;
- }
-
- if (asNeeded && requireReturnForObjectLiteral && blockBody[0].type === "ReturnStatement" &&
- blockBody[0].argument.type === "ObjectExpression") {
- return;
- }
-
- if (asNeeded && blockBody[0].type === "ReturnStatement") {
- context.report({
- node,
- loc: arrowBody.loc.start,
- message: "Unexpected block statement surrounding arrow body."
- });
- }
}
} else {
if (always || (asNeeded && requireReturnForObjectLiteral && arrowBody.type === "ObjectExpression")) {
context.report({
node,
loc: arrowBody.loc.start,
- message: "Expected block statement surrounding arrow body."
+ message: "Expected block statement surrounding arrow body.",
+ fix(fixer) {
+ const lastTokenBeforeBody = sourceCode.getTokensBetween(sourceCode.getFirstToken(node), arrowBody)
+ .reverse()
+ .find(token => token.value !== "(");
+
+ const firstBodyToken = sourceCode.getTokenAfter(lastTokenBeforeBody);
+
+ return fixer.replaceTextRange(
+ [firstBodyToken.range[0], node.range[1]],
+ `{return ${sourceCode.getText().slice(firstBodyToken.range[0], node.range[1])}}`
+ );
+ }
});
}
}
diff --git a/tools/eslint/lib/rules/arrow-parens.js b/tools/eslint/lib/rules/arrow-parens.js
index 67bfdf541c..e069e307eb 100644
--- a/tools/eslint/lib/rules/arrow-parens.js
+++ b/tools/eslint/lib/rules/arrow-parens.js
@@ -58,7 +58,9 @@ module.exports = {
requireForBlockBody &&
node.params.length === 1 &&
node.params[0].type === "Identifier" &&
- node.body.type !== "BlockStatement"
+ !node.params[0].typeAnnotation &&
+ node.body.type !== "BlockStatement" &&
+ !node.returnType
) {
if (token.type === "Punctuator" && token.value === "(") {
context.report({
@@ -95,7 +97,12 @@ module.exports = {
}
// "as-needed": x => x
- if (asNeeded && node.params.length === 1 && node.params[0].type === "Identifier") {
+ if (asNeeded &&
+ node.params.length === 1 &&
+ node.params[0].type === "Identifier" &&
+ !node.params[0].typeAnnotation &&
+ !node.returnType
+ ) {
if (token.type === "Punctuator" && token.value === "(") {
context.report({
node,
diff --git a/tools/eslint/lib/rules/block-scoped-var.js b/tools/eslint/lib/rules/block-scoped-var.js
index 0f4705a1f1..bb0931a3ce 100644
--- a/tools/eslint/lib/rules/block-scoped-var.js
+++ b/tools/eslint/lib/rules/block-scoped-var.js
@@ -47,10 +47,7 @@ module.exports = {
function report(reference) {
const identifier = reference.identifier;
- context.report(
- identifier,
- "'{{name}}' used outside of binding context.",
- {name: identifier.name});
+ context.report({ node: identifier, message: "'{{name}}' used outside of binding context.", data: { name: identifier.name } });
}
/**
diff --git a/tools/eslint/lib/rules/block-spacing.js b/tools/eslint/lib/rules/block-spacing.js
index f18b3cceba..9c0a7f388b 100644
--- a/tools/eslint/lib/rules/block-spacing.js
+++ b/tools/eslint/lib/rules/block-spacing.js
@@ -22,7 +22,7 @@ module.exports = {
fixable: "whitespace",
schema: [
- {enum: ["always", "never"]}
+ { enum: ["always", "never"] }
]
},
diff --git a/tools/eslint/lib/rules/brace-style.js b/tools/eslint/lib/rules/brace-style.js
index 6bd8a8f4c8..197767b07c 100644
--- a/tools/eslint/lib/rules/brace-style.js
+++ b/tools/eslint/lib/rules/brace-style.js
@@ -30,7 +30,9 @@ module.exports = {
},
additionalProperties: false
}
- ]
+ ],
+
+ fixable: "whitespace"
},
create(context) {
@@ -70,6 +72,28 @@ module.exports = {
}
/**
+ * Reports a place where a newline unexpectedly appears
+ * @param {ASTNode} node The node to report
+ * @param {string} message The message to report
+ * @param {Token} firstToken The token before the unexpected newline
+ * @returns {void}
+ */
+ function reportExtraNewline(node, message, firstToken) {
+ context.report({
+ node,
+ message,
+ fix(fixer) {
+ const secondToken = sourceCode.getTokenAfter(firstToken);
+ const textBetween = sourceCode.getText().slice(firstToken.range[1], secondToken.range[0]);
+ const NEWLINE_REGEX = /\r\n|\r|\n|\u2028|\u2029/g;
+
+ // Don't do a fix if there is a comment between the tokens.
+ return textBetween.trim() ? null : fixer.replaceTextRange([firstToken.range[1], secondToken.range[0]], textBetween.replace(NEWLINE_REGEX, ""));
+ }
+ });
+ }
+
+ /**
* Binds a list of properties to a function that verifies that the opening
* curly brace is on the same line as its controlling statement of a given
* node.
@@ -81,7 +105,7 @@ module.exports = {
const blockProperties = arguments;
return function(node) {
- Array.prototype.forEach.call(blockProperties, function(blockProp) {
+ Array.prototype.forEach.call(blockProperties, blockProp => {
const block = node[blockProp];
if (!isBlock(block)) {
@@ -98,9 +122,13 @@ module.exports = {
}
if (style !== "allman" && previousToken.loc.start.line !== curlyToken.loc.start.line) {
- context.report(node, OPEN_MESSAGE);
+ reportExtraNewline(node, OPEN_MESSAGE, previousToken);
} else if (style === "allman" && previousToken.loc.start.line === curlyToken.loc.start.line) {
- context.report(node, OPEN_MESSAGE_ALLMAN);
+ context.report({
+ node,
+ message: OPEN_MESSAGE_ALLMAN,
+ fix: fixer => fixer.insertTextBefore(curlyToken, "\n")
+ });
}
if (!block.body.length) {
@@ -108,11 +136,19 @@ module.exports = {
}
if (curlyToken.loc.start.line === block.body[0].loc.start.line) {
- context.report(block.body[0], BODY_MESSAGE);
+ context.report({
+ node: block.body[0],
+ message: BODY_MESSAGE,
+ fix: fixer => fixer.insertTextAfter(curlyToken, "\n")
+ });
}
- if (curlyTokenEnd.loc.start.line === block.body[block.body.length - 1].loc.start.line) {
- context.report(block.body[block.body.length - 1], CLOSE_MESSAGE_SINGLE);
+ if (curlyTokenEnd.loc.start.line === block.body[block.body.length - 1].loc.end.line) {
+ context.report({
+ node: block.body[block.body.length - 1],
+ message: CLOSE_MESSAGE_SINGLE,
+ fix: fixer => fixer.insertTextBefore(curlyTokenEnd, "\n")
+ });
}
});
};
@@ -135,10 +171,14 @@ module.exports = {
if (tokens[0].loc.start.line !== tokens[1].loc.start.line &&
node.consequent.type === "BlockStatement" &&
isCurlyPunctuator(tokens[0])) {
- context.report(node.alternate, CLOSE_MESSAGE);
+ reportExtraNewline(node.alternate, CLOSE_MESSAGE, tokens[0]);
}
} else if (tokens[0].loc.start.line === tokens[1].loc.start.line) {
- context.report(node.alternate, CLOSE_MESSAGE_STROUSTRUP_ALLMAN);
+ context.report({
+ node: node.alternate,
+ message: CLOSE_MESSAGE_STROUSTRUP_ALLMAN,
+ fix: fixer => fixer.insertTextAfter(tokens[0], "\n")
+ });
}
}
@@ -158,10 +198,14 @@ module.exports = {
if (style === "1tbs") {
if (tokens[0].loc.start.line !== tokens[1].loc.start.line) {
- context.report(node.finalizer, CLOSE_MESSAGE);
+ reportExtraNewline(node.finalizer, CLOSE_MESSAGE, tokens[0]);
}
} else if (tokens[0].loc.start.line === tokens[1].loc.start.line) {
- context.report(node.finalizer, CLOSE_MESSAGE_STROUSTRUP_ALLMAN);
+ context.report({
+ node: node.finalizer,
+ message: CLOSE_MESSAGE_STROUSTRUP_ALLMAN,
+ fix: fixer => fixer.insertTextAfter(tokens[0], "\n")
+ });
}
}
}
@@ -181,11 +225,15 @@ module.exports = {
if (isBlock(node.body)) {
if (style === "1tbs") {
if (previousToken.loc.start.line !== firstToken.loc.start.line) {
- context.report(node, CLOSE_MESSAGE);
+ reportExtraNewline(node, CLOSE_MESSAGE, previousToken);
}
} else {
if (previousToken.loc.start.line === firstToken.loc.start.line) {
- context.report(node, CLOSE_MESSAGE_STROUSTRUP_ALLMAN);
+ context.report({
+ node,
+ message: CLOSE_MESSAGE_STROUSTRUP_ALLMAN,
+ fix: fixer => fixer.insertTextAfter(previousToken, "\n")
+ });
}
}
}
@@ -207,9 +255,13 @@ module.exports = {
}
if (style !== "allman" && tokens[0].loc.start.line !== tokens[1].loc.start.line) {
- context.report(node, OPEN_MESSAGE);
+ reportExtraNewline(node, OPEN_MESSAGE, tokens[0]);
} else if (style === "allman" && tokens[0].loc.start.line === tokens[1].loc.start.line) {
- context.report(node, OPEN_MESSAGE_ALLMAN);
+ context.report({
+ node,
+ message: OPEN_MESSAGE_ALLMAN,
+ fix: fixer => fixer.insertTextBefore(tokens[1], "\n")
+ });
}
}
diff --git a/tools/eslint/lib/rules/callback-return.js b/tools/eslint/lib/rules/callback-return.js
index 242ef666d2..08600c01e5 100644
--- a/tools/eslint/lib/rules/callback-return.js
+++ b/tools/eslint/lib/rules/callback-return.js
@@ -164,7 +164,7 @@ module.exports = {
// as long as you're the child of a function at this point you should be asked to return
if (findClosestParentOfType(node, ["FunctionDeclaration", "FunctionExpression", "ArrowFunctionExpression"])) {
- context.report(node, "Expected return with your callback function.");
+ context.report({ node, message: "Expected return with your callback function." });
}
}
diff --git a/tools/eslint/lib/rules/camelcase.js b/tools/eslint/lib/rules/camelcase.js
index 1b22c25e67..6fb1475b21 100644
--- a/tools/eslint/lib/rules/camelcase.js
+++ b/tools/eslint/lib/rules/camelcase.js
@@ -38,6 +38,7 @@ module.exports = {
// contains reported nodes to avoid reporting twice on destructuring with shorthand notation
const reported = [];
+ const ALLOWED_PARENT_TYPES = new Set(["CallExpression", "NewExpression"]);
/**
* Checks if a string contains an underscore and isn't all upper-case
@@ -60,7 +61,7 @@ module.exports = {
function report(node) {
if (reported.indexOf(node) < 0) {
reported.push(node);
- context.report(node, "Identifier '{{name}}' is not in camel case.", { name: node.name });
+ context.report({ node, message: "Identifier '{{name}}' is not in camel case.", data: { name: node.name } });
}
}
@@ -118,7 +119,7 @@ module.exports = {
return;
}
- if (isUnderscored(name) && effectiveParent.type !== "CallExpression") {
+ if (isUnderscored(name) && !ALLOWED_PARENT_TYPES.has(effectiveParent.type)) {
report(node);
}
@@ -131,7 +132,7 @@ module.exports = {
}
// Report anything that is underscored that isn't a CallExpression
- } else if (isUnderscored(name) && effectiveParent.type !== "CallExpression") {
+ } else if (isUnderscored(name) && !ALLOWED_PARENT_TYPES.has(effectiveParent.type)) {
report(node);
}
}
diff --git a/tools/eslint/lib/rules/capitalized-comments.js b/tools/eslint/lib/rules/capitalized-comments.js
new file mode 100644
index 0000000000..29cff4450b
--- /dev/null
+++ b/tools/eslint/lib/rules/capitalized-comments.js
@@ -0,0 +1,301 @@
+/**
+ * @fileoverview enforce or disallow capitalization of the first letter of a comment
+ * @author Kevin Partington
+ */
+"use strict";
+
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const LETTER_PATTERN = require("../util/patterns/letters");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+const ALWAYS_MESSAGE = "Comments should not begin with a lowercase character",
+ NEVER_MESSAGE = "Comments should not begin with an uppercase character",
+ DEFAULT_IGNORE_PATTERN = /^\s*(?:eslint|istanbul|jscs|jshint|globals?|exported)\b/,
+ WHITESPACE = /\s/g,
+ MAYBE_URL = /^\s*[^:/?#\s]+:\/\/[^?#]/, // TODO: Combine w/ max-len pattern?
+ DEFAULTS = {
+ ignorePattern: null,
+ ignoreInlineComments: false,
+ ignoreConsecutiveComments: false
+ };
+
+/*
+ * Base schema body for defining the basic capitalization rule, ignorePattern,
+ * and ignoreInlineComments values.
+ * This can be used in a few different ways in the actual schema.
+ */
+const SCHEMA_BODY = {
+ type: "object",
+ properties: {
+ ignorePattern: {
+ type: "string"
+ },
+ ignoreInlineComments: {
+ type: "boolean"
+ },
+ ignoreConsecutiveComments: {
+ type: "boolean"
+ }
+ },
+ additionalProperties: false
+};
+
+/**
+ * Get normalized options for either block or line comments from the given
+ * user-provided options.
+ * - If the user-provided options is just a string, returns a normalized
+ * set of options using default values for all other options.
+ * - If the user-provided options is an object, then a normalized option
+ * set is returned. Options specified in overrides will take priority
+ * over options specified in the main options object, which will in
+ * turn take priority over the rule's defaults.
+ *
+ * @param {Object|string} rawOptions The user-provided options.
+ * @param {string} which Either "line" or "block".
+ * @returns {Object} The normalized options.
+ */
+function getNormalizedOptions(rawOptions, which) {
+ if (!rawOptions) {
+ return Object.assign({}, DEFAULTS);
+ }
+
+ return Object.assign({}, DEFAULTS, rawOptions[which] || rawOptions);
+}
+
+/**
+ * Get normalized options for block and line comments.
+ *
+ * @param {Object|string} rawOptions The user-provided options.
+ * @returns {Object} An object with "Line" and "Block" keys and corresponding
+ * normalized options objects.
+ */
+function getAllNormalizedOptions(rawOptions) {
+ return {
+ Line: getNormalizedOptions(rawOptions, "line"),
+ Block: getNormalizedOptions(rawOptions, "block")
+ };
+}
+
+/**
+ * Creates a regular expression for each ignorePattern defined in the rule
+ * options.
+ *
+ * This is done in order to avoid invoking the RegExp constructor repeatedly.
+ *
+ * @param {Object} normalizedOptions The normalized rule options.
+ * @returns {void}
+ */
+function createRegExpForIgnorePatterns(normalizedOptions) {
+ Object.keys(normalizedOptions).forEach(key => {
+ const ignorePatternStr = normalizedOptions[key].ignorePattern;
+
+ if (ignorePatternStr) {
+ const regExp = RegExp(`^\\s*(?:${ignorePatternStr})`);
+
+ normalizedOptions[key].ignorePatternRegExp = regExp;
+ }
+ });
+}
+
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "enforce or disallow capitalization of the first letter of a comment",
+ category: "Stylistic Issues",
+ recommended: false
+ },
+ fixable: "code",
+ schema: [
+ { enum: ["always", "never"] },
+ {
+ oneOf: [
+ SCHEMA_BODY,
+ {
+ type: "object",
+ properties: {
+ line: SCHEMA_BODY,
+ block: SCHEMA_BODY
+ },
+ additionalProperties: false
+ }
+ ]
+ }
+ ]
+ },
+
+ create(context) {
+
+ const capitalize = context.options[0] || "always",
+ normalizedOptions = getAllNormalizedOptions(context.options[1]),
+ sourceCode = context.getSourceCode();
+
+ createRegExpForIgnorePatterns(normalizedOptions);
+
+ //----------------------------------------------------------------------
+ // Helpers
+ //----------------------------------------------------------------------
+
+ /**
+ * Checks whether a comment is an inline comment.
+ *
+ * For the purpose of this rule, a comment is inline if:
+ * 1. The comment is preceded by a token on the same line; and
+ * 2. The command is followed by a token on the same line.
+ *
+ * Note that the comment itself need not be single-line!
+ *
+ * Also, it follows from this definition that only block comments can
+ * be considered as possibly inline. This is because line comments
+ * would consume any following tokens on the same line as the comment.
+ *
+ * @param {ASTNode} comment The comment node to check.
+ * @returns {boolean} True if the comment is an inline comment, false
+ * otherwise.
+ */
+ function isInlineComment(comment) {
+ const previousToken = sourceCode.getTokenOrCommentBefore(comment),
+ nextToken = sourceCode.getTokenOrCommentAfter(comment);
+
+ return Boolean(
+ previousToken &&
+ nextToken &&
+ comment.loc.start.line === previousToken.loc.end.line &&
+ comment.loc.end.line === nextToken.loc.start.line
+ );
+ }
+
+ /**
+ * Determine if a comment follows another comment.
+ *
+ * @param {ASTNode} comment The comment to check.
+ * @returns {boolean} True if the comment follows a valid comment.
+ */
+ function isConsecutiveComment(comment) {
+ const previousTokenOrComment = sourceCode.getTokenOrCommentBefore(comment);
+
+ return Boolean(
+ previousTokenOrComment &&
+ ["Block", "Line"].indexOf(previousTokenOrComment.type) !== -1
+ );
+ }
+
+ /**
+ * Check a comment to determine if it is valid for this rule.
+ *
+ * @param {ASTNode} comment The comment node to process.
+ * @param {Object} options The options for checking this comment.
+ * @returns {boolean} True if the comment is valid, false otherwise.
+ */
+ function isCommentValid(comment, options) {
+
+ // 1. Check for default ignore pattern.
+ if (DEFAULT_IGNORE_PATTERN.test(comment.value)) {
+ return true;
+ }
+
+ // 2. Check for custom ignore pattern.
+ const commentWithoutAsterisks = comment.value
+ .replace(/\*/g, "");
+
+ if (options.ignorePatternRegExp && options.ignorePatternRegExp.test(commentWithoutAsterisks)) {
+ return true;
+ }
+
+ // 3. Check for inline comments.
+ if (options.ignoreInlineComments && isInlineComment(comment)) {
+ return true;
+ }
+
+ // 4. Is this a consecutive comment (and are we tolerating those)?
+ if (options.ignoreConsecutiveComments && isConsecutiveComment(comment)) {
+ return true;
+ }
+
+ // 5. Does the comment start with a possible URL?
+ if (MAYBE_URL.test(commentWithoutAsterisks)) {
+ return true;
+ }
+
+ // 6. Is the initial word character a letter?
+ const commentWordCharsOnly = commentWithoutAsterisks
+ .replace(WHITESPACE, "");
+
+ if (commentWordCharsOnly.length === 0) {
+ return true;
+ }
+
+ const firstWordChar = commentWordCharsOnly[0];
+
+ if (!LETTER_PATTERN.test(firstWordChar)) {
+ return true;
+ }
+
+ // 7. Check the case of the initial word character.
+ const isUppercase = firstWordChar !== firstWordChar.toLocaleLowerCase(),
+ isLowercase = firstWordChar !== firstWordChar.toLocaleUpperCase();
+
+ if (capitalize === "always" && isLowercase) {
+ return false;
+ } else if (capitalize === "never" && isUppercase) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Process a comment to determine if it needs to be reported.
+ *
+ * @param {ASTNode} comment The comment node to process.
+ * @returns {void}
+ */
+ function processComment(comment) {
+ const options = normalizedOptions[comment.type],
+ commentValid = isCommentValid(comment, options);
+
+ if (!commentValid) {
+ const message = capitalize === "always" ?
+ ALWAYS_MESSAGE :
+ NEVER_MESSAGE;
+
+ context.report({
+ node: null, // Intentionally using loc instead
+ loc: comment.loc,
+ message,
+ fix(fixer) {
+ const match = comment.value.match(LETTER_PATTERN);
+
+ return fixer.replaceTextRange(
+
+ // Offset match.index by 2 to account for the first 2 characters that start the comment (// or /*)
+ [comment.range[0] + match.index + 2, comment.range[0] + match.index + 3],
+ capitalize === "always" ? match[0].toLocaleUpperCase() : match[0].toLocaleLowerCase()
+ );
+ }
+ });
+ }
+ }
+
+ //----------------------------------------------------------------------
+ // Public
+ //----------------------------------------------------------------------
+
+ return {
+ Program() {
+ const comments = sourceCode.getAllComments();
+
+ comments.forEach(processComment);
+ }
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/comma-dangle.js b/tools/eslint/lib/rules/comma-dangle.js
index 763ee89fd5..af7ab2767f 100644
--- a/tools/eslint/lib/rules/comma-dangle.js
+++ b/tools/eslint/lib/rules/comma-dangle.js
@@ -112,11 +112,11 @@ module.exports = {
{
type: "object",
properties: {
- arrays: {$refs: "#/defs/valueWithIgnore"},
- objects: {$refs: "#/defs/valueWithIgnore"},
- imports: {$refs: "#/defs/valueWithIgnore"},
- exports: {$refs: "#/defs/valueWithIgnore"},
- functions: {$refs: "#/defs/valueWithIgnore"}
+ arrays: { $refs: "#/defs/valueWithIgnore" },
+ objects: { $refs: "#/defs/valueWithIgnore" },
+ imports: { $refs: "#/defs/valueWithIgnore" },
+ exports: { $refs: "#/defs/valueWithIgnore" },
+ functions: { $refs: "#/defs/valueWithIgnore" }
},
additionalProperties: false
}
@@ -171,15 +171,10 @@ module.exports = {
function getTrailingToken(node, lastItem) {
switch (node.type) {
case "ObjectExpression":
- case "ObjectPattern":
case "ArrayExpression":
- case "ArrayPattern":
case "CallExpression":
case "NewExpression":
return sourceCode.getLastToken(node, 1);
- case "FunctionDeclaration":
- case "FunctionExpression":
- return sourceCode.getTokenBefore(node.body, 1);
default: {
const nextToken = sourceCode.getTokenAfter(lastItem);
diff --git a/tools/eslint/lib/rules/comma-spacing.js b/tools/eslint/lib/rules/comma-spacing.js
index 72b5bad6ba..f571cfa199 100644
--- a/tools/eslint/lib/rules/comma-spacing.js
+++ b/tools/eslint/lib/rules/comma-spacing.js
@@ -141,7 +141,7 @@ module.exports = {
function addNullElementsToIgnoreList(node) {
let previousToken = sourceCode.getFirstToken(node);
- node.elements.forEach(function(element) {
+ node.elements.forEach(element => {
let token;
if (element === null) {
@@ -164,7 +164,7 @@ module.exports = {
return {
"Program:exit"() {
- tokensAndComments.forEach(function(token, i) {
+ tokensAndComments.forEach((token, i) => {
if (!isComma(token)) {
return;
diff --git a/tools/eslint/lib/rules/comma-style.js b/tools/eslint/lib/rules/comma-style.js
index f707ce8055..bb290f90b9 100644
--- a/tools/eslint/lib/rules/comma-style.js
+++ b/tools/eslint/lib/rules/comma-style.js
@@ -41,10 +41,22 @@ module.exports = {
create(context) {
const style = context.options[0] || "last",
sourceCode = context.getSourceCode();
- let exceptions = {};
+ const exceptions = {
+ ArrayPattern: true,
+ ArrowFunctionExpression: true,
+ CallExpression: true,
+ FunctionDeclaration: true,
+ FunctionExpression: true,
+ ImportDeclaration: true,
+ ObjectPattern: true,
+ };
if (context.options.length === 2 && context.options[1].hasOwnProperty("exceptions")) {
- exceptions = context.options[1].exceptions;
+ const keys = Object.keys(context.options[1].exceptions);
+
+ for (let i = 0; i < keys.length; i++) {
+ exceptions[keys[i]] = context.options[1].exceptions[keys[i]];
+ }
}
//--------------------------------------------------------------------------
@@ -119,7 +131,7 @@ module.exports = {
if (astUtils.isTokenOnSameLine(commaToken, currentItemToken) &&
astUtils.isTokenOnSameLine(previousItemToken, commaToken)) {
- return;
+ // do nothing.
} else if (!astUtils.isTokenOnSameLine(commaToken, currentItemToken) &&
!astUtils.isTokenOnSameLine(previousItemToken, commaToken)) {
@@ -166,14 +178,14 @@ module.exports = {
*/
function validateComma(node, property) {
const items = node[property],
- arrayLiteral = (node.type === "ArrayExpression");
+ arrayLiteral = (node.type === "ArrayExpression" || node.type === "ArrayPattern");
if (items.length > 1 || arrayLiteral) {
// seed as opening [
let previousItemToken = sourceCode.getFirstToken(node);
- items.forEach(function(item) {
+ items.forEach(item => {
const commaToken = item ? sourceCode.getTokenBefore(item) : previousItemToken,
currentItemToken = item ? sourceCode.getFirstToken(item) : sourceCode.getTokenAfter(commaToken),
reportItem = item || currentItemToken,
@@ -245,11 +257,46 @@ module.exports = {
validateComma(node, "properties");
};
}
+ if (!exceptions.ObjectPattern) {
+ nodes.ObjectPattern = function(node) {
+ validateComma(node, "properties");
+ };
+ }
if (!exceptions.ArrayExpression) {
nodes.ArrayExpression = function(node) {
validateComma(node, "elements");
};
}
+ if (!exceptions.ArrayPattern) {
+ nodes.ArrayPattern = function(node) {
+ validateComma(node, "elements");
+ };
+ }
+ if (!exceptions.FunctionDeclaration) {
+ nodes.FunctionDeclaration = function(node) {
+ validateComma(node, "params");
+ };
+ }
+ if (!exceptions.FunctionExpression) {
+ nodes.FunctionExpression = function(node) {
+ validateComma(node, "params");
+ };
+ }
+ if (!exceptions.ArrowFunctionExpression) {
+ nodes.ArrowFunctionExpression = function(node) {
+ validateComma(node, "params");
+ };
+ }
+ if (!exceptions.CallExpression) {
+ nodes.CallExpression = function(node) {
+ validateComma(node, "arguments");
+ };
+ }
+ if (!exceptions.ImportDeclaration) {
+ nodes.ImportDeclaration = function(node) {
+ validateComma(node, "specifiers");
+ };
+ }
return nodes;
}
diff --git a/tools/eslint/lib/rules/complexity.js b/tools/eslint/lib/rules/complexity.js
index 0d837e74d3..2f3e404079 100644
--- a/tools/eslint/lib/rules/complexity.js
+++ b/tools/eslint/lib/rules/complexity.js
@@ -91,7 +91,7 @@ module.exports = {
}
if (complexity > THRESHOLD) {
- context.report(node, "Function '{{name}}' has a complexity of {{complexity}}.", { name, complexity });
+ context.report({ node, message: "Function '{{name}}' has a complexity of {{complexity}}.", data: { name, complexity } });
}
}
diff --git a/tools/eslint/lib/rules/consistent-return.js b/tools/eslint/lib/rules/consistent-return.js
index eed69c2cb7..0c1a6a7493 100644
--- a/tools/eslint/lib/rules/consistent-return.js
+++ b/tools/eslint/lib/rules/consistent-return.js
@@ -33,6 +33,18 @@ function isUnreachable(segment) {
return !segment.reachable;
}
+/**
+* Checks whether a given node is a `constructor` method in an ES6 class
+* @param {ASTNode} node A node to check
+* @returns {boolean} `true` if the node is a `constructor` method
+*/
+function isClassConstructor(node) {
+ return node.type === "FunctionExpression" &&
+ node.parent &&
+ node.parent.type === "MethodDefinition" &&
+ node.parent.kind === "constructor";
+}
+
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
@@ -77,7 +89,8 @@ module.exports = {
*/
if (!funcInfo.hasReturnValue ||
funcInfo.codePath.currentSegments.every(isUnreachable) ||
- astUtils.isES5Constructor(node)
+ astUtils.isES5Constructor(node) ||
+ isClassConstructor(node)
) {
return;
}
@@ -86,7 +99,7 @@ module.exports = {
if (node.type === "Program") {
// The head of program.
- loc = {line: 1, column: 0};
+ loc = { line: 1, column: 0 };
type = "program";
} else if (node.type === "ArrowFunctionExpression") {
@@ -113,7 +126,7 @@ module.exports = {
node,
loc,
message: "Expected to return a value at the end of this {{type}}.",
- data: {type}
+ data: { type }
});
}
diff --git a/tools/eslint/lib/rules/consistent-this.js b/tools/eslint/lib/rules/consistent-this.js
index 2a068ed1fc..35c2d56272 100644
--- a/tools/eslint/lib/rules/consistent-this.js
+++ b/tools/eslint/lib/rules/consistent-this.js
@@ -43,9 +43,7 @@ module.exports = {
* @returns {void}
*/
function reportBadAssignment(node, alias) {
- context.report(node,
- "Designated alias '{{alias}}' is not assigned to 'this'.",
- { alias });
+ context.report({ node, message: "Designated alias '{{alias}}' is not assigned to 'this'.", data: { alias } });
}
/**
@@ -64,8 +62,7 @@ module.exports = {
reportBadAssignment(node, name);
}
} else if (isThis) {
- context.report(node,
- "Unexpected alias '{{name}}' for 'this'.", { name });
+ context.report({ node, message: "Unexpected alias '{{name}}' for 'this'.", data: { name } });
}
}
@@ -84,16 +81,14 @@ module.exports = {
return;
}
- if (variable.defs.some(function(def) {
- return def.node.type === "VariableDeclarator" &&
- def.node.init !== null;
- })) {
+ if (variable.defs.some(def => def.node.type === "VariableDeclarator" &&
+ def.node.init !== null)) {
return;
}
// The alias has been declared and not assigned: check it was
// assigned later in the same scope.
- if (!variable.references.some(function(reference) {
+ if (!variable.references.some(reference => {
const write = reference.writeExpr;
return (
@@ -102,9 +97,7 @@ module.exports = {
write.parent.operator === "="
);
})) {
- variable.defs.map(function(def) {
- return def.node;
- }).forEach(function(node) {
+ variable.defs.map(def => def.node).forEach(node => {
reportBadAssignment(node, alias);
});
}
@@ -117,7 +110,7 @@ module.exports = {
function ensureWasAssigned() {
const scope = context.getScope();
- aliases.forEach(function(alias) {
+ aliases.forEach(alias => {
checkWasAssigned(alias, scope);
});
}
diff --git a/tools/eslint/lib/rules/constructor-super.js b/tools/eslint/lib/rules/constructor-super.js
index 49271cee58..e84df7e81d 100644
--- a/tools/eslint/lib/rules/constructor-super.js
+++ b/tools/eslint/lib/rules/constructor-super.js
@@ -261,8 +261,8 @@ module.exports = {
const isRealLoop = toSegment.prevSegments.length >= 2;
funcInfo.codePath.traverseSegments(
- {first: toSegment, last: fromSegment},
- function(segment) {
+ { first: toSegment, last: fromSegment },
+ segment => {
const info = segInfoMap[segment.id];
const prevSegments = segment.prevSegments;
diff --git a/tools/eslint/lib/rules/curly.js b/tools/eslint/lib/rules/curly.js
index 02d74a1e03..801552d69e 100644
--- a/tools/eslint/lib/rules/curly.js
+++ b/tools/eslint/lib/rules/curly.js
@@ -74,10 +74,11 @@ module.exports = {
* @private
*/
function isCollapsedOneLiner(node) {
- const before = sourceCode.getTokenBefore(node),
- last = sourceCode.getLastToken(node);
+ const before = sourceCode.getTokenBefore(node);
+ const last = sourceCode.getLastToken(node);
+ const lastExcludingSemicolon = last.type === "Punctuator" && last.value === ";" ? sourceCode.getTokenBefore(last) : last;
- return before.loc.start.line === last.loc.end.line;
+ return before.loc.start.line === lastExcludingSemicolon.loc.end.line;
}
/**
@@ -195,7 +196,7 @@ module.exports = {
return true;
}
- if (/^[(\[\/`+-]/.test(tokenAfter.value)) {
+ if (/^[([/`+-]/.test(tokenAfter.value)) {
// If the next token starts with a character that would disrupt ASI, insert a semicolon.
return true;
@@ -289,7 +290,9 @@ module.exports = {
}
} else if (multiOrNest) {
if (hasBlock && body.body.length === 1 && isOneLiner(body.body[0])) {
- expected = false;
+ const leadingComments = sourceCode.getComments(body.body[0]).leading;
+
+ expected = leadingComments.length > 0;
} else if (!isOneLiner(body)) {
expected = true;
}
@@ -337,14 +340,14 @@ module.exports = {
* all have braces.
* If all nodes shouldn't have braces, make sure they don't.
*/
- const expected = preparedChecks.some(function(preparedCheck) {
+ const expected = preparedChecks.some(preparedCheck => {
if (preparedCheck.expected !== null) {
return preparedCheck.expected;
}
return preparedCheck.actual;
});
- preparedChecks.forEach(function(preparedCheck) {
+ preparedChecks.forEach(preparedCheck => {
preparedCheck.expected = expected;
});
}
@@ -359,7 +362,7 @@ module.exports = {
return {
IfStatement(node) {
if (node.parent.type !== "IfStatement") {
- prepareIfChecks(node).forEach(function(preparedCheck) {
+ prepareIfChecks(node).forEach(preparedCheck => {
preparedCheck.check();
});
}
diff --git a/tools/eslint/lib/rules/default-case.js b/tools/eslint/lib/rules/default-case.js
index e062798db2..070ff3c7a9 100644
--- a/tools/eslint/lib/rules/default-case.js
+++ b/tools/eslint/lib/rules/default-case.js
@@ -4,7 +4,7 @@
*/
"use strict";
-const DEFAULT_COMMENT_PATTERN = /^no default$/;
+const DEFAULT_COMMENT_PATTERN = /^no default$/i;
//------------------------------------------------------------------------------
// Rule Definition
@@ -67,9 +67,7 @@ module.exports = {
return;
}
- const hasDefault = node.cases.some(function(v) {
- return v.test === null;
- });
+ const hasDefault = node.cases.some(v => v.test === null);
if (!hasDefault) {
@@ -83,7 +81,7 @@ module.exports = {
}
if (!comment || !commentPattern.test(comment.value.trim())) {
- context.report(node, "Expected a default case.");
+ context.report({ node, message: "Expected a default case." });
}
}
}
diff --git a/tools/eslint/lib/rules/eqeqeq.js b/tools/eslint/lib/rules/eqeqeq.js
index 4d61399f20..d77607afb5 100644
--- a/tools/eslint/lib/rules/eqeqeq.js
+++ b/tools/eslint/lib/rules/eqeqeq.js
@@ -47,7 +47,9 @@ module.exports = {
additionalItems: false
}
]
- }
+ },
+
+ fixable: "code"
},
create(context) {
@@ -112,22 +114,32 @@ module.exports = {
function getOperatorLocation(node) {
const opToken = sourceCode.getTokenAfter(node.left);
- return {line: opToken.loc.start.line, column: opToken.loc.start.column};
+ return { line: opToken.loc.start.line, column: opToken.loc.start.column };
}
/**
* Reports a message for this rule.
* @param {ASTNode} node The binary expression node that was checked
- * @param {string} message The message to report
+ * @param {string} expectedOperator The operator that was expected (either '==', '!=', '===', or '!==')
* @returns {void}
* @private
*/
- function report(node, message) {
+ function report(node, expectedOperator) {
context.report({
node,
loc: getOperatorLocation(node),
- message,
- data: { op: node.operator.charAt(0) }
+ message: "Expected '{{expectedOperator}}' and instead saw '{{actualOperator}}'.",
+ data: { expectedOperator, actualOperator: node.operator },
+ fix(fixer) {
+
+ // If the comparison is a `typeof` comparison or both sides are literals with the same type, then it's safe to fix.
+ if (isTypeOfBinary(node) || areLiteralsAndSameType(node)) {
+ const operatorToken = sourceCode.getTokensBetween(node.left, node.right).find(token => token.value === node.operator);
+
+ return fixer.replaceText(operatorToken, expectedOperator);
+ }
+ return null;
+ }
});
}
@@ -137,7 +149,7 @@ module.exports = {
if (node.operator !== "==" && node.operator !== "!=") {
if (enforceInverseRuleForNull && isNull) {
- report(node, "Expected '{{op}}=' and instead saw '{{op}}=='.");
+ report(node, node.operator.slice(0, -1));
}
return;
}
@@ -151,7 +163,7 @@ module.exports = {
return;
}
- report(node, "Expected '{{op}}==' and instead saw '{{op}}='.");
+ report(node, `${node.operator}=`);
}
};
diff --git a/tools/eslint/lib/rules/func-call-spacing.js b/tools/eslint/lib/rules/func-call-spacing.js
index 417f2bdf31..5c416f0373 100644
--- a/tools/eslint/lib/rules/func-call-spacing.js
+++ b/tools/eslint/lib/rules/func-call-spacing.js
@@ -120,7 +120,14 @@ module.exports = {
loc: lastCalleeToken.loc.start,
message: "Unexpected space between function name and paren.",
fix(fixer) {
- return fixer.removeRange([prevToken.range[1], parenToken.range[0]]);
+
+ // Only autofix if there is no newline
+ // https://github.com/eslint/eslint/issues/7787
+ if (!hasNewline) {
+ return fixer.removeRange([prevToken.range[1], parenToken.range[0]]);
+ }
+
+ return null;
}
});
} else if (!never && !hasWhitespace) {
diff --git a/tools/eslint/lib/rules/func-name-matching.js b/tools/eslint/lib/rules/func-name-matching.js
index d4d760cbe4..4eed7a68ea 100644
--- a/tools/eslint/lib/rules/func-name-matching.js
+++ b/tools/eslint/lib/rules/func-name-matching.js
@@ -54,6 +54,17 @@ function isIdentifier(name, ecmaVersion) {
// Rule Definition
//------------------------------------------------------------------------------
+const alwaysOrNever = { enum: ["always", "never"] };
+const optionsObject = {
+ type: "object",
+ properties: {
+ includeCommonJSModuleExports: {
+ type: "boolean"
+ }
+ },
+ additionalProperties: false
+};
+
module.exports = {
meta: {
docs: {
@@ -62,25 +73,36 @@ module.exports = {
recommended: false
},
- schema: [
- {
- type: "object",
- properties: {
- includeCommonJSModuleExports: {
- type: "boolean"
- }
- },
- additionalProperties: false
- }
- ]
+ schema: {
+ anyOf: [{
+ type: "array",
+ additionalItems: false,
+ items: [alwaysOrNever, optionsObject]
+ }, {
+ type: "array",
+ additionalItems: false,
+ items: [optionsObject]
+ }]
+ }
},
create(context) {
-
- const includeModuleExports = context.options[0] && context.options[0].includeCommonJSModuleExports;
+ const options = (typeof context.options[0] === "object" ? context.options[0] : context.options[1]) || {};
+ const nameMatches = typeof context.options[0] === "string" ? context.options[0] : "always";
+ const includeModuleExports = options.includeCommonJSModuleExports;
const ecmaVersion = context.parserOptions && context.parserOptions.ecmaVersion ? context.parserOptions.ecmaVersion : 5;
/**
+ * Compares identifiers based on the nameMatches option
+ * @param {string} x the first identifier
+ * @param {string} y the second identifier
+ * @returns {boolean} whether the two identifiers should warn.
+ */
+ function shouldWarn(x, y) {
+ return (nameMatches === "always" && x !== y) || (nameMatches === "never" && x === y);
+ }
+
+ /**
* Reports
* @param {ASTNode} node The node to report
* @param {string} name The variable or property name
@@ -89,10 +111,20 @@ module.exports = {
* @returns {void}
*/
function report(node, name, funcName, isProp) {
+ let message;
+
+ if (nameMatches === "always" && isProp) {
+ message = "Function name `{{funcName}}` should match property name `{{name}}`";
+ } else if (nameMatches === "always") {
+ message = "Function name `{{funcName}}` should match variable name `{{name}}`";
+ } else if (isProp) {
+ message = "Function name `{{funcName}}` should not match property name `{{name}}`";
+ } else {
+ message = "Function name `{{funcName}}` should not match variable name `{{name}}`";
+ }
context.report({
node,
- message: isProp ? "Function name `{{funcName}}` should match property name `{{name}}`"
- : "Function name `{{funcName}}` should match variable name `{{name}}`",
+ message,
data: {
name,
funcName
@@ -110,7 +142,7 @@ module.exports = {
if (!node.init || node.init.type !== "FunctionExpression") {
return;
}
- if (node.init.id && node.id.name !== node.init.id.name) {
+ if (node.init.id && shouldWarn(node.id.name, node.init.id.name)) {
report(node, node.id.name, node.init.id.name, false);
}
},
@@ -126,7 +158,7 @@ module.exports = {
const isProp = node.left.type === "MemberExpression" ? true : false;
const name = isProp ? astUtils.getStaticPropertyName(node.left) : node.left.name;
- if (node.right.id && isIdentifier(name) && name !== node.right.id.name) {
+ if (node.right.id && isIdentifier(name) && shouldWarn(name, node.right.id.name)) {
report(node, name, node.right.id.name, isProp);
}
},
@@ -135,12 +167,13 @@ module.exports = {
if (node.value.type !== "FunctionExpression" || !node.value.id || node.computed && node.key.type !== "Literal") {
return;
}
- if (node.key.type === "Identifier" && node.key.name !== node.value.id.name) {
+ if (node.key.type === "Identifier" && shouldWarn(node.key.name, node.value.id.name)) {
report(node, node.key.name, node.value.id.name, true);
- } else if (node.key.type === "Literal" &&
- isIdentifier(node.key.value, ecmaVersion) &&
- node.key.value !== node.value.id.name
- ) {
+ } else if (
+ node.key.type === "Literal" &&
+ isIdentifier(node.key.value, ecmaVersion) &&
+ shouldWarn(node.key.value, node.value.id.name)
+ ) {
report(node, node.key.value, node.value.id.name, true);
}
}
diff --git a/tools/eslint/lib/rules/func-names.js b/tools/eslint/lib/rules/func-names.js
index 397ef37e91..0d85671494 100644
--- a/tools/eslint/lib/rules/func-names.js
+++ b/tools/eslint/lib/rules/func-names.js
@@ -28,21 +28,23 @@ module.exports = {
schema: [
{
- enum: ["always", "never"]
+ enum: ["always", "as-needed", "never"]
}
]
},
create(context) {
const never = context.options[0] === "never";
+ const asNeeded = context.options[0] === "as-needed";
/**
* Determines whether the current FunctionExpression node is a get, set, or
* shorthand method in an object literal or a class.
+ * @param {ASTNode} node - A node to check.
* @returns {boolean} True if the node is a get, set, or shorthand method.
*/
- function isObjectOrClassMethod() {
- const parent = context.getAncestors().pop();
+ function isObjectOrClassMethod(node) {
+ const parent = node.parent;
return (parent.type === "MethodDefinition" || (
parent.type === "Property" && (
@@ -53,6 +55,23 @@ module.exports = {
));
}
+ /**
+ * Determines whether the current FunctionExpression node has a name that would be
+ * inferred from context in a conforming ES6 environment.
+ * @param {ASTNode} node - A node to check.
+ * @returns {boolean} True if the node would have a name assigned automatically.
+ */
+ function hasInferredName(node) {
+ const parent = node.parent;
+
+ return isObjectOrClassMethod(node) ||
+ (parent.type === "VariableDeclarator" && parent.id.type === "Identifier" && parent.init === node) ||
+ (parent.type === "Property" && parent.value === node) ||
+ (parent.type === "AssignmentExpression" && parent.left.type === "Identifier" && parent.right === node) ||
+ (parent.type === "ExportDefaultDeclaration" && parent.declaration === node) ||
+ (parent.type === "AssignmentPattern" && parent.right === node);
+ }
+
return {
"FunctionExpression:exit"(node) {
@@ -67,11 +86,11 @@ module.exports = {
if (never) {
if (name) {
- context.report(node, "Unexpected function expression name.");
+ context.report({ node, message: "Unexpected function expression name." });
}
} else {
- if (!name && !isObjectOrClassMethod()) {
- context.report(node, "Missing function expression name.");
+ if (!name && (asNeeded ? !hasInferredName(node) : !isObjectOrClassMethod(node))) {
+ context.report({ node, message: "Missing function expression name." });
}
}
}
diff --git a/tools/eslint/lib/rules/func-style.js b/tools/eslint/lib/rules/func-style.js
index e0974209c4..123eae3d8a 100644
--- a/tools/eslint/lib/rules/func-style.js
+++ b/tools/eslint/lib/rules/func-style.js
@@ -44,7 +44,7 @@ module.exports = {
stack.push(false);
if (!enforceDeclarations && node.parent.type !== "ExportDefaultDeclaration") {
- context.report(node, "Expected a function expression.");
+ context.report({ node, message: "Expected a function expression." });
}
},
"FunctionDeclaration:exit"() {
@@ -55,7 +55,7 @@ module.exports = {
stack.push(false);
if (enforceDeclarations && node.parent.type === "VariableDeclarator") {
- context.report(node.parent, "Expected a function declaration.");
+ context.report({ node: node.parent, message: "Expected a function declaration." });
}
},
"FunctionExpression:exit"() {
@@ -78,7 +78,7 @@ module.exports = {
const hasThisExpr = stack.pop();
if (enforceDeclarations && !hasThisExpr && node.parent.type === "VariableDeclarator") {
- context.report(node.parent, "Expected a function declaration.");
+ context.report({ node: node.parent, message: "Expected a function declaration." });
}
};
}
diff --git a/tools/eslint/lib/rules/generator-star-spacing.js b/tools/eslint/lib/rules/generator-star-spacing.js
index f9ec3a4af5..fc676d0cbb 100644
--- a/tools/eslint/lib/rules/generator-star-spacing.js
+++ b/tools/eslint/lib/rules/generator-star-spacing.js
@@ -28,8 +28,8 @@ module.exports = {
{
type: "object",
properties: {
- before: {type: "boolean"},
- after: {type: "boolean"}
+ before: { type: "boolean" },
+ after: { type: "boolean" }
},
additionalProperties: false
}
diff --git a/tools/eslint/lib/rules/global-require.js b/tools/eslint/lib/rules/global-require.js
index 3d6492cfde..bfd0143395 100644
--- a/tools/eslint/lib/rules/global-require.js
+++ b/tools/eslint/lib/rules/global-require.js
@@ -23,10 +23,8 @@ const ACCEPTABLE_PARENTS = [
* @returns {Reference|null} Returns the found reference or null if none were found.
*/
function findReference(scope, node) {
- const references = scope.references.filter(function(reference) {
- return reference.identifier.range[0] === node.range[0] &&
- reference.identifier.range[1] === node.range[1];
- });
+ const references = scope.references.filter(reference => reference.identifier.range[0] === node.range[0] &&
+ reference.identifier.range[1] === node.range[1]);
/* istanbul ignore else: correctly returns null */
if (references.length === 1) {
@@ -65,12 +63,10 @@ module.exports = {
const currentScope = context.getScope();
if (node.callee.name === "require" && !isShadowed(currentScope, node.callee)) {
- const isGoodRequire = context.getAncestors().every(function(parent) {
- return ACCEPTABLE_PARENTS.indexOf(parent.type) > -1;
- });
+ const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.indexOf(parent.type) > -1);
if (!isGoodRequire) {
- context.report(node, "Unexpected require().");
+ context.report({ node, message: "Unexpected require()." });
}
}
}
diff --git a/tools/eslint/lib/rules/guard-for-in.js b/tools/eslint/lib/rules/guard-for-in.js
index 7ccfec90c1..754830f6a6 100644
--- a/tools/eslint/lib/rules/guard-for-in.js
+++ b/tools/eslint/lib/rules/guard-for-in.js
@@ -33,7 +33,7 @@ module.exports = {
const body = node.body.type === "BlockStatement" ? node.body.body[0] : node.body;
if (body && body.type !== "IfStatement") {
- context.report(node, "The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype.");
+ context.report({ node, message: "The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype." });
}
}
};
diff --git a/tools/eslint/lib/rules/handle-callback-err.js b/tools/eslint/lib/rules/handle-callback-err.js
index e8c6d1b3b8..de36a0c1b0 100644
--- a/tools/eslint/lib/rules/handle-callback-err.js
+++ b/tools/eslint/lib/rules/handle-callback-err.js
@@ -59,9 +59,7 @@ module.exports = {
* @returns {array} All parameters of the given scope.
*/
function getParameters(scope) {
- return scope.variables.filter(function(variable) {
- return variable.defs[0] && variable.defs[0].type === "Parameter";
- });
+ return scope.variables.filter(variable => variable.defs[0] && variable.defs[0].type === "Parameter");
}
/**
@@ -76,7 +74,7 @@ module.exports = {
if (firstParameter && matchesConfiguredErrorName(firstParameter.name)) {
if (firstParameter.references.length === 0) {
- context.report(node, "Expected error to be handled.");
+ context.report({ node, message: "Expected error to be handled." });
}
}
}
diff --git a/tools/eslint/lib/rules/id-blacklist.js b/tools/eslint/lib/rules/id-blacklist.js
index 8795cfc6be..f94f6d0a46 100644
--- a/tools/eslint/lib/rules/id-blacklist.js
+++ b/tools/eslint/lib/rules/id-blacklist.js
@@ -67,9 +67,9 @@ module.exports = {
* @private
*/
function report(node) {
- context.report(node, "Identifier '{{name}}' is blacklisted.", {
+ context.report({ node, message: "Identifier '{{name}}' is blacklisted.", data: {
name: node.name
- });
+ } });
}
return {
diff --git a/tools/eslint/lib/rules/id-length.js b/tools/eslint/lib/rules/id-length.js
index 1747552707..6a6c69d101 100644
--- a/tools/eslint/lib/rules/id-length.js
+++ b/tools/eslint/lib/rules/id-length.js
@@ -50,7 +50,7 @@ module.exports = {
const maxLength = typeof options.max !== "undefined" ? options.max : Infinity;
const properties = options.properties !== "never";
const exceptions = (options.exceptions ? options.exceptions : [])
- .reduce(function(obj, item) {
+ .reduce((obj, item) => {
obj[item] = true;
return obj;
@@ -102,13 +102,13 @@ module.exports = {
const isValidExpression = SUPPORTED_EXPRESSIONS[parent.type];
if (isValidExpression && (isValidExpression === true || isValidExpression(parent, node))) {
- context.report(
+ context.report({
node,
- isShort ?
+ message: isShort ?
"Identifier name '{{name}}' is too short (< {{min}})." :
"Identifier name '{{name}}' is too long (> {{max}}).",
- { name, min: minLength, max: maxLength }
- );
+ data: { name, min: minLength, max: maxLength }
+ });
}
}
};
diff --git a/tools/eslint/lib/rules/id-match.js b/tools/eslint/lib/rules/id-match.js
index 961a185904..29d06c3602 100644
--- a/tools/eslint/lib/rules/id-match.js
+++ b/tools/eslint/lib/rules/id-match.js
@@ -75,10 +75,10 @@ module.exports = {
* @private
*/
function report(node) {
- context.report(node, "Identifier '{{name}}' does not match the pattern '{{pattern}}'.", {
+ context.report({ node, message: "Identifier '{{name}}' does not match the pattern '{{pattern}}'.", data: {
name: node.name,
pattern
- });
+ } });
}
return {
diff --git a/tools/eslint/lib/rules/indent.js b/tools/eslint/lib/rules/indent.js
index 2b069011f9..6c3c27c8e1 100644
--- a/tools/eslint/lib/rules/indent.js
+++ b/tools/eslint/lib/rules/indent.js
@@ -113,6 +113,44 @@ module.exports = {
minimum: 0
}
}
+ },
+ CallExpression: {
+ type: "object",
+ properties: {
+ parameters: {
+ oneOf: [
+ {
+ type: "integer",
+ minimum: 0
+ },
+ {
+ enum: ["first"]
+ }
+ ]
+ }
+ }
+ },
+ ArrayExpression: {
+ oneOf: [
+ {
+ type: "integer",
+ minimum: 0
+ },
+ {
+ enum: ["first"]
+ }
+ ]
+ },
+ ObjectExpression: {
+ oneOf: [
+ {
+ type: "integer",
+ minimum: 0
+ },
+ {
+ enum: ["first"]
+ }
+ ]
}
},
additionalProperties: false
@@ -142,7 +180,12 @@ module.exports = {
FunctionExpression: {
parameters: DEFAULT_PARAMETER_INDENT,
body: DEFAULT_FUNCTION_BODY_INDENT
- }
+ },
+ CallExpression: {
+ arguments: DEFAULT_PARAMETER_INDENT
+ },
+ ArrayExpression: 1,
+ ObjectExpression: 1
};
const sourceCode = context.getSourceCode();
@@ -187,6 +230,18 @@ module.exports = {
if (typeof opts.FunctionExpression === "object") {
Object.assign(options.FunctionExpression, opts.FunctionExpression);
}
+
+ if (typeof opts.CallExpression === "object") {
+ Object.assign(options.CallExpression, opts.CallExpression);
+ }
+
+ if (typeof opts.ArrayExpression === "number" || typeof opts.ArrayExpression === "string") {
+ options.ArrayExpression = opts.ArrayExpression;
+ }
+
+ if (typeof opts.ObjectExpression === "number" || typeof opts.ObjectExpression === "string") {
+ options.ObjectExpression = opts.ObjectExpression;
+ }
}
}
@@ -229,10 +284,10 @@ module.exports = {
* @param {int} gottenTabs Indentation tab count in the actual node/code
* @param {Object=} loc Error line and column location
* @param {boolean} isLastNodeCheck Is the error for last node check
+ * @param {int} lastNodeCheckEndOffset Number of charecters to skip from the end
* @returns {void}
*/
function report(node, needed, gottenSpaces, gottenTabs, loc, isLastNodeCheck) {
-
if (gottenSpaces && gottenTabs) {
// To avoid conflicts with `no-mixed-spaces-and-tabs`, don't report lines that have both spaces and tabs.
@@ -242,8 +297,8 @@ module.exports = {
const desiredIndent = (indentType === "space" ? " " : "\t").repeat(needed);
const textRange = isLastNodeCheck
- ? [node.range[1] - gottenSpaces - gottenTabs - 1, node.range[1] - 1]
- : [node.range[0] - gottenSpaces - gottenTabs, node.range[0]];
+ ? [node.range[1] - node.loc.end.column, node.range[1] - node.loc.end.column + gottenSpaces + gottenTabs]
+ : [node.range[0] - node.loc.start.column, node.range[0] - node.loc.start.column + gottenSpaces + gottenTabs];
context.report({
node,
@@ -319,6 +374,24 @@ module.exports = {
checkNodeIndent(node.alternate, neededIndent);
}
}
+
+ if (node.type === "TryStatement" && node.handler) {
+ const catchToken = sourceCode.getFirstToken(node.handler);
+
+ checkNodeIndent(catchToken, neededIndent);
+ }
+
+ if (node.type === "TryStatement" && node.finalizer) {
+ const finallyToken = sourceCode.getTokenBefore(node.finalizer);
+
+ checkNodeIndent(finallyToken, neededIndent);
+ }
+
+ if (node.type === "DoWhileStatement") {
+ const whileToken = sourceCode.getTokenAfter(node.body);
+
+ checkNodeIndent(whileToken, neededIndent);
+ }
}
/**
@@ -355,6 +428,45 @@ module.exports = {
}
/**
+ * Check last node line indent this detects, that block closed correctly
+ * This function for more complicated return statement case, where closing parenthesis may be followed by ';'
+ * @param {ASTNode} node Node to examine
+ * @param {int} firstLineIndent first line needed indent
+ * @returns {void}
+ */
+ function checkLastReturnStatementLineIndent(node, firstLineIndent) {
+ const nodeLastToken = sourceCode.getLastToken(node);
+ let lastToken = nodeLastToken;
+
+ // in case if return statement ends with ');' we have traverse back to ')'
+ // otherwise we'll measure indent for ';' and replace ')'
+ while (lastToken.value !== ")") {
+ lastToken = sourceCode.getTokenBefore(lastToken);
+ }
+
+ const textBeforeClosingParenthesis = sourceCode.getText(lastToken, lastToken.loc.start.column).slice(0, -1);
+
+ if (textBeforeClosingParenthesis.trim()) {
+
+ // There are tokens before the closing paren, don't report this case
+ return;
+ }
+
+ const endIndent = getNodeIndent(lastToken, true);
+
+ if (endIndent.goodChar !== firstLineIndent) {
+ report(
+ node,
+ firstLineIndent,
+ endIndent.space,
+ endIndent.tab,
+ { line: lastToken.loc.start.line, column: lastToken.loc.start.column },
+ true
+ );
+ }
+ }
+
+ /**
* Check first node line indent is correct
* @param {ASTNode} node Node to examine
* @param {int} firstLineIndent needed indent
@@ -379,12 +491,17 @@ module.exports = {
* if not present then return null
* @param {ASTNode} node node to examine
* @param {string} type type that is being looked for
+ * @param {string} stopAtList end points for the evaluating code
* @returns {ASTNode|void} if found then node otherwise null
*/
- function getParentNodeByType(node, type) {
+ function getParentNodeByType(node, type, stopAtList) {
let parent = node.parent;
- while (parent.type !== type && parent.type !== "Program") {
+ if (!stopAtList) {
+ stopAtList = ["Program"];
+ }
+
+ while (parent.type !== type && stopAtList.indexOf(parent.type) === -1 && parent.type !== "Program") {
parent = parent.parent;
}
@@ -402,16 +519,6 @@ module.exports = {
}
/**
- * Returns the ExpressionStatement based on the current node
- * if not present then return null
- * @param {ASTNode} node node to examine
- * @returns {ASTNode|void} if found then node otherwise null
- */
- function getAssignmentExpressionNode(node) {
- return getParentNodeByType(node, "AssignmentExpression");
- }
-
- /**
* Check to see if the node is part of the multi-line variable declaration.
* Also if its on the same line as the varNode
* @param {ASTNode} node node to check
@@ -604,14 +711,7 @@ module.exports = {
let elements = (node.type === "ArrayExpression") ? node.elements : node.properties;
// filter out empty elements example would be [ , 2] so remove first element as espree considers it as null
- elements = elements.filter(function(elem) {
- return elem !== null;
- });
-
- // Skip if first element is in same line with this node
- if (elements.length > 0 && elements[0].loc.start.line === node.loc.start.line) {
- return;
- }
+ elements = elements.filter(elem => elem !== null);
let nodeIndent;
let elementsIndent;
@@ -620,41 +720,59 @@ module.exports = {
// TODO - come up with a better strategy in future
if (isNodeFirstInLine(node)) {
const parent = node.parent;
- let effectiveParent = parent;
- if (parent.type === "MemberExpression") {
- if (isNodeFirstInLine(parent)) {
- effectiveParent = parent.parent.parent;
- } else {
- effectiveParent = parent.parent;
- }
- }
- nodeIndent = getNodeIndent(effectiveParent).goodChar;
- if (parentVarNode && parentVarNode.loc.start.line !== node.loc.start.line) {
+ nodeIndent = getNodeIndent(parent).goodChar;
+ if (!parentVarNode || parentVarNode.loc.start.line !== node.loc.start.line) {
if (parent.type !== "VariableDeclarator" || parentVarNode === parentVarNode.parent.declarations[0]) {
- if (parent.type === "VariableDeclarator" && parentVarNode.loc.start.line === effectiveParent.loc.start.line) {
+ if (parent.type === "VariableDeclarator" && parentVarNode.loc.start.line === parent.loc.start.line) {
nodeIndent = nodeIndent + (indentSize * options.VariableDeclarator[parentVarNode.parent.kind]);
- } else if (
- parent.type === "ObjectExpression" ||
- parent.type === "ArrayExpression" ||
- parent.type === "CallExpression" ||
- parent.type === "ArrowFunctionExpression" ||
- parent.type === "NewExpression" ||
- parent.type === "LogicalExpression"
- ) {
- nodeIndent = nodeIndent + indentSize;
+ } else if (parent.type === "ObjectExpression" || parent.type === "ArrayExpression") {
+ const parentElements = node.parent.type === "ObjectExpression" ? node.parent.properties : node.parent.elements;
+
+ if (parentElements[0].loc.start.line === parent.loc.start.line && parentElements[0].loc.end.line !== parent.loc.start.line) {
+
+ /*
+ * If the first element of the array spans multiple lines, don't increase the expected indentation of the rest.
+ * e.g. [{
+ * foo: 1
+ * },
+ * {
+ * bar: 1
+ * }]
+ * the second object is not indented.
+ */
+ } else if (typeof options[parent.type] === "number") {
+ nodeIndent += options[parent.type] * indentSize;
+ } else {
+ nodeIndent = parentElements[0].loc.start.column;
+ }
+ } else if (parent.type === "CallExpression" || parent.type === "NewExpression") {
+ if (typeof options.CallExpression.arguments === "number") {
+ nodeIndent += options.CallExpression.arguments * indentSize;
+ } else if (options.CallExpression.arguments === "first") {
+ if (parent.arguments.indexOf(node) !== -1) {
+ nodeIndent = parent.arguments[0].loc.start.column;
+ }
+ } else {
+ nodeIndent += indentSize;
+ }
+ } else if (parent.type === "LogicalExpression" || parent.type === "ArrowFunctionExpression") {
+ nodeIndent += indentSize;
}
}
- } else if (!parentVarNode && !isFirstArrayElementOnSameLine(parent) && effectiveParent.type !== "MemberExpression" && effectiveParent.type !== "ExpressionStatement" && effectiveParent.type !== "AssignmentExpression" && effectiveParent.type !== "Property") {
+ } else if (!parentVarNode && !isFirstArrayElementOnSameLine(parent) && parent.type !== "MemberExpression" && parent.type !== "ExpressionStatement" && parent.type !== "AssignmentExpression" && parent.type !== "Property") {
nodeIndent = nodeIndent + indentSize;
}
- elementsIndent = nodeIndent + indentSize;
-
checkFirstNodeLineIndent(node, nodeIndent);
} else {
nodeIndent = getNodeIndent(node).goodChar;
- elementsIndent = nodeIndent + indentSize;
+ }
+
+ if (options[node.type] === "first") {
+ elementsIndent = elements.length ? elements[0].loc.start.column : 0; // If there are no elements, elementsIndent doesn't matter.
+ } else {
+ elementsIndent = nodeIndent + indentSize * options[node.type];
}
/*
@@ -675,7 +793,7 @@ module.exports = {
}
}
- checkLastNodeLineIndent(node, elementsIndent - indentSize);
+ checkLastNodeLineIndent(node, nodeIndent + (isNodeInVarOnTop(node, parentVarNode) ? options.VariableDeclarator[parentVarNode.parent.kind] * indentSize : 0));
}
/**
@@ -717,11 +835,13 @@ module.exports = {
* not from the beginning of the block.
*/
const statementsWithProperties = [
- "IfStatement", "WhileStatement", "ForStatement", "ForInStatement", "ForOfStatement", "DoWhileStatement", "ClassDeclaration"
+ "IfStatement", "WhileStatement", "ForStatement", "ForInStatement", "ForOfStatement", "DoWhileStatement", "ClassDeclaration", "TryStatement"
];
if (node.parent && statementsWithProperties.indexOf(node.parent.type) !== -1 && isNodeBodyBlock(node)) {
indent = getNodeIndent(node.parent).goodChar;
+ } else if (node.parent && node.parent.type === "CatchClause") {
+ indent = getNodeIndent(node.parent.parent).goodChar;
} else {
indent = getNodeIndent(node).goodChar;
}
@@ -750,7 +870,7 @@ module.exports = {
* @returns {ASTNode[]} Filtered elements
*/
function filterOutSameLineVars(node) {
- return node.declarations.reduce(function(finalCollection, elem) {
+ return node.declarations.reduce((finalCollection, elem) => {
const lastElem = finalCollection[finalCollection.length - 1];
if ((elem.loc.start.line !== node.loc.start.line && !lastElem) ||
@@ -832,6 +952,20 @@ module.exports = {
}
}
+ /**
+ * Checks wether a return statement is wrapped in ()
+ * @param {ASTNode} node node to examine
+ * @returns {boolean} the result
+ */
+ function isWrappedInParenthesis(node) {
+ const regex = /^return\s*?\(\s*?\);*?/;
+
+ const statementWithoutArgument = sourceCode.getText(node).replace(
+ sourceCode.getText(node.argument), "");
+
+ return regex.test(statementWithoutArgument);
+ }
+
return {
Program(node) {
if (node.body.length > 0) {
@@ -876,6 +1010,7 @@ module.exports = {
},
MemberExpression(node) {
+
if (typeof options.MemberExpression === "undefined") {
return;
}
@@ -888,11 +1023,11 @@ module.exports = {
// alter the expectation of correct indentation. Skip them.
// TODO: Add appropriate configuration options for variable
// declarations and assignments.
- if (getVariableDeclaratorNode(node)) {
+ if (getParentNodeByType(node, "VariableDeclarator", ["FunctionExpression", "ArrowFunctionExpression"])) {
return;
}
- if (getAssignmentExpressionNode(node)) {
+ if (getParentNodeByType(node, "AssignmentExpression", ["FunctionExpression"])) {
return;
}
@@ -952,7 +1087,34 @@ module.exports = {
} else if (options.FunctionExpression.parameters !== null) {
checkNodesIndent(node.params, getNodeIndent(node).goodChar + indentSize * options.FunctionExpression.parameters);
}
+ },
+
+ ReturnStatement(node) {
+ if (isSingleLineNode(node)) {
+ return;
+ }
+
+ const firstLineIndent = getNodeIndent(node).goodChar;
+
+ // in case if return statement is wrapped in parenthesis
+ if (isWrappedInParenthesis(node)) {
+ checkLastReturnStatementLineIndent(node, firstLineIndent);
+ } else {
+ checkNodeIndent(node, firstLineIndent);
+ }
+ },
+
+ CallExpression(node) {
+ if (isSingleLineNode(node)) {
+ return;
+ }
+ if (options.CallExpression.arguments === "first" && node.arguments.length) {
+ checkNodesIndent(node.arguments.slice(1), node.arguments[0].loc.start.column);
+ } else if (options.CallExpression.arguments !== null) {
+ checkNodesIndent(node.arguments, getNodeIndent(node).goodChar + indentSize * options.CallExpression.arguments);
+ }
}
+
};
}
diff --git a/tools/eslint/lib/rules/jsx-quotes.js b/tools/eslint/lib/rules/jsx-quotes.js
index 2b6a57b961..5653922d94 100644
--- a/tools/eslint/lib/rules/jsx-quotes.js
+++ b/tools/eslint/lib/rules/jsx-quotes.js
@@ -48,7 +48,7 @@ module.exports = {
schema: [
{
- enum: [ "prefer-single", "prefer-double" ]
+ enum: ["prefer-single", "prefer-double"]
}
]
},
diff --git a/tools/eslint/lib/rules/key-spacing.js b/tools/eslint/lib/rules/key-spacing.js
index b195d31d32..8d7564a5bb 100644
--- a/tools/eslint/lib/rules/key-spacing.js
+++ b/tools/eslint/lib/rules/key-spacing.js
@@ -417,8 +417,8 @@ module.exports = {
function report(property, side, whitespace, expected, mode) {
const diff = whitespace.length - expected,
nextColon = getNextColon(property.key),
- tokenBeforeColon = sourceCode.getTokenBefore(nextColon),
- tokenAfterColon = sourceCode.getTokenAfter(nextColon),
+ tokenBeforeColon = sourceCode.getTokenOrCommentBefore(nextColon),
+ tokenAfterColon = sourceCode.getTokenOrCommentAfter(nextColon),
isKeySide = side === "key",
locStart = isKeySide ? tokenBeforeColon.loc.start : tokenAfterColon.loc.start,
isExtra = diff > 0,
@@ -514,7 +514,7 @@ module.exports = {
return [node.properties];
}
- return node.properties.reduce(function(groups, property) {
+ return node.properties.reduce((groups, property) => {
const currentGroup = last(groups),
prev = last(currentGroup);
@@ -579,7 +579,7 @@ module.exports = {
* @returns {void}
*/
function verifyAlignment(node) {
- createGroups(node).forEach(function(group) {
+ createGroups(node).forEach(group => {
verifyGroupAlignment(group.filter(isKeyValueProperty));
});
}
diff --git a/tools/eslint/lib/rules/keyword-spacing.js b/tools/eslint/lib/rules/keyword-spacing.js
index 4a6a024552..1dfc291f6e 100644
--- a/tools/eslint/lib/rules/keyword-spacing.js
+++ b/tools/eslint/lib/rules/keyword-spacing.js
@@ -16,10 +16,10 @@ const astUtils = require("../ast-utils"),
// Constants
//------------------------------------------------------------------------------
-const PREV_TOKEN = /^[\)\]\}>]$/;
-const NEXT_TOKEN = /^(?:[\(\[\{<~!]|\+\+?|--?)$/;
-const PREV_TOKEN_M = /^[\)\]\}>*]$/;
-const NEXT_TOKEN_M = /^[\{*]$/;
+const PREV_TOKEN = /^[)\]}>]$/;
+const NEXT_TOKEN = /^(?:[([{<~!]|\+\+?|--?)$/;
+const PREV_TOKEN_M = /^[)\]}>*]$/;
+const NEXT_TOKEN_M = /^[{*]$/;
const TEMPLATE_OPEN_PAREN = /\$\{$/;
const TEMPLATE_CLOSE_PAREN = /^\}/;
const CHECK_TYPE = /^(?:JSXElement|RegularExpression|String|Template)$/;
@@ -77,16 +77,16 @@ module.exports = {
{
type: "object",
properties: {
- before: {type: "boolean"},
- after: {type: "boolean"},
+ before: { type: "boolean" },
+ after: { type: "boolean" },
overrides: {
type: "object",
- properties: KEYS.reduce(function(retv, key) {
+ properties: KEYS.reduce((retv, key) => {
retv[key] = {
type: "object",
properties: {
- before: {type: "boolean"},
- after: {type: "boolean"}
+ before: { type: "boolean" },
+ after: { type: "boolean" }
},
additionalProperties: false
};
diff --git a/tools/eslint/lib/rules/lines-around-comment.js b/tools/eslint/lib/rules/lines-around-comment.js
index 094fefa74f..83751cd6a5 100644
--- a/tools/eslint/lib/rules/lines-around-comment.js
+++ b/tools/eslint/lib/rules/lines-around-comment.js
@@ -21,16 +21,10 @@ const lodash = require("lodash"),
* @returns {Array} An array of line numbers.
*/
function getEmptyLineNums(lines) {
- const emptyLines = lines.map(function(line, i) {
- return {
- code: line.trim(),
- num: i + 1
- };
- }).filter(function(line) {
- return !line.code;
- }).map(function(line) {
- return line.num;
- });
+ const emptyLines = lines.map((line, i) => ({
+ code: line.trim(),
+ num: i + 1
+ })).filter(line => !line.code).map(line => line.num);
return emptyLines;
}
@@ -43,7 +37,7 @@ function getEmptyLineNums(lines) {
function getCommentLineNums(comments) {
const lines = [];
- comments.forEach(function(token) {
+ comments.forEach(token => {
const start = token.loc.start.line;
const end = token.loc.end.line;
diff --git a/tools/eslint/lib/rules/lines-around-directive.js b/tools/eslint/lib/rules/lines-around-directive.js
index f0f0ebd0b9..b1e54e940b 100644
--- a/tools/eslint/lib/rules/lines-around-directive.js
+++ b/tools/eslint/lib/rules/lines-around-directive.js
@@ -64,14 +64,31 @@ module.exports = {
}
/**
+ * Gets the last token of a node that is on the same line as the rest of the node.
+ * This will usually be the last token of the node, but it will be the second-to-last token if the node has a trailing
+ * semicolon on a different line.
+ * @param {ASTNode} node A directive node
+ * @returns {Token} The last token of the node on the line
+ */
+ function getLastTokenOnLine(node) {
+ const lastToken = sourceCode.getLastToken(node);
+ const secondToLastToken = sourceCode.getTokenBefore(lastToken);
+
+ return lastToken.type === "Punctuator" && lastToken.value === ";" && lastToken.loc.start.line > secondToLastToken.loc.end.line
+ ? secondToLastToken
+ : lastToken;
+ }
+
+ /**
* Check if node is followed by a blank newline.
* @param {ASTNode} node Node to check.
* @returns {boolean} Whether or not the passed in node is followed by a blank newline.
*/
function hasNewlineAfter(node) {
- const tokenAfter = sourceCode.getTokenOrCommentAfter(node);
+ const lastToken = getLastTokenOnLine(node);
+ const tokenAfter = sourceCode.getTokenOrCommentAfter(lastToken);
- return tokenAfter.loc.start.line - node.loc.end.line >= 2;
+ return tokenAfter.loc.start.line - lastToken.loc.end.line >= 2;
}
/**
@@ -91,10 +108,12 @@ module.exports = {
location
},
fix(fixer) {
+ const lastToken = getLastTokenOnLine(node);
+
if (expected) {
- return location === "before" ? fixer.insertTextBefore(node, "\n") : fixer.insertTextAfter(node, "\n");
+ return location === "before" ? fixer.insertTextBefore(node, "\n") : fixer.insertTextAfter(lastToken, "\n");
}
- return fixer.removeRange(location === "before" ? [node.range[0] - 1, node.range[0]] : [node.range[1], node.range[1] + 1]);
+ return fixer.removeRange(location === "before" ? [node.range[0] - 1, node.range[0]] : [lastToken.range[1], lastToken.range[1] + 1]);
}
});
}
diff --git a/tools/eslint/lib/rules/max-depth.js b/tools/eslint/lib/rules/max-depth.js
index 35b7e9ce89..74c13ffa9f 100644
--- a/tools/eslint/lib/rules/max-depth.js
+++ b/tools/eslint/lib/rules/max-depth.js
@@ -91,8 +91,7 @@ module.exports = {
const len = ++functionStack[functionStack.length - 1];
if (len > maxDepth) {
- context.report(node, "Blocks are nested too deeply ({{depth}}).",
- { depth: len });
+ context.report({ node, message: "Blocks are nested too deeply ({{depth}}).", data: { depth: len } });
}
}
diff --git a/tools/eslint/lib/rules/max-len.js b/tools/eslint/lib/rules/max-len.js
index d1f6df2996..dd5a4e1ef6 100644
--- a/tools/eslint/lib/rules/max-len.js
+++ b/tools/eslint/lib/rules/max-len.js
@@ -39,6 +39,9 @@ const OPTIONS_SCHEMA = {
ignoreTemplateLiterals: {
type: "boolean"
},
+ ignoreRegExpLiterals: {
+ type: "boolean"
+ },
ignoreTrailingComments: {
type: "boolean"
}
@@ -100,7 +103,7 @@ module.exports = {
function computeLineLength(line, tabWidth) {
let extraCharacterCount = 0;
- line.replace(/\t/g, function(match, offset) {
+ line.replace(/\t/g, (match, offset) => {
const totalOffset = offset + extraCharacterCount,
previousTabStopOffset = tabWidth ? totalOffset % tabWidth : 0,
spaceCount = tabWidth - previousTabStopOffset;
@@ -129,6 +132,7 @@ module.exports = {
ignoreComments = options.ignoreComments || false,
ignoreStrings = options.ignoreStrings || false,
ignoreTemplateLiterals = options.ignoreTemplateLiterals || false,
+ ignoreRegExpLiterals = options.ignoreRegExpLiterals || false,
ignoreTrailingComments = options.ignoreTrailingComments || options.ignoreComments || false,
ignoreUrls = options.ignoreUrls || false,
maxCommentLength = options.comments;
@@ -209,9 +213,7 @@ module.exports = {
* @returns {ASTNode[]} An array of string nodes.
*/
function getAllStrings() {
- return sourceCode.ast.tokens.filter(function(token) {
- return token.type === "String";
- });
+ return sourceCode.ast.tokens.filter(token => token.type === "String");
}
/**
@@ -220,9 +222,17 @@ module.exports = {
* @returns {ASTNode[]} An array of template literal nodes.
*/
function getAllTemplateLiterals() {
- return sourceCode.ast.tokens.filter(function(token) {
- return token.type === "Template";
- });
+ return sourceCode.ast.tokens.filter(token => token.type === "Template");
+ }
+
+
+ /**
+ * Retrieves an array containing all RegExp literals in the source code.
+ *
+ * @returns {ASTNode[]} An array of RegExp literal nodes.
+ */
+ function getAllRegExpLiterals() {
+ return sourceCode.ast.tokens.filter(token => token.type === "RegularExpression");
}
@@ -264,7 +274,10 @@ module.exports = {
const templateLiterals = getAllTemplateLiterals(sourceCode);
const templateLiteralsByLine = templateLiterals.reduce(groupByLineNumber, {});
- lines.forEach(function(line, i) {
+ const regExpLiterals = getAllRegExpLiterals(sourceCode);
+ const regExpLiteralsByLine = regExpLiterals.reduce(groupByLineNumber, {});
+
+ lines.forEach((line, i) => {
// i is zero-indexed, line numbers are one-indexed
const lineNumber = i + 1;
@@ -299,7 +312,8 @@ module.exports = {
if (ignorePattern && ignorePattern.test(line) ||
ignoreUrls && URL_REGEXP.test(line) ||
ignoreStrings && stringsByLine[lineNumber] ||
- ignoreTemplateLiterals && templateLiteralsByLine[lineNumber]
+ ignoreTemplateLiterals && templateLiteralsByLine[lineNumber] ||
+ ignoreRegExpLiterals && regExpLiteralsByLine[lineNumber]
) {
// ignore this line
diff --git a/tools/eslint/lib/rules/max-lines.js b/tools/eslint/lib/rules/max-lines.js
index a54ad9e353..08cf9f6084 100644
--- a/tools/eslint/lib/rules/max-lines.js
+++ b/tools/eslint/lib/rules/max-lines.js
@@ -114,26 +114,18 @@ module.exports = {
return {
"Program:exit"() {
- let lines = sourceCode.lines.map(function(text, i) {
- return { lineNumber: i + 1, text };
- });
+ let lines = sourceCode.lines.map((text, i) => ({ lineNumber: i + 1, text }));
if (skipBlankLines) {
- lines = lines.filter(function(l) {
- return l.text.trim() !== "";
- });
+ lines = lines.filter(l => l.text.trim() !== "");
}
if (skipComments) {
const comments = sourceCode.getAllComments();
- const commentLines = lodash.flatten(comments.map(function(comment) {
- return getLinesWithoutCode(comment);
- }));
+ const commentLines = lodash.flatten(comments.map(comment => getLinesWithoutCode(comment)));
- lines = lines.filter(function(l) {
- return !lodash.includes(commentLines, l.lineNumber);
- });
+ lines = lines.filter(l => !lodash.includes(commentLines, l.lineNumber));
}
if (lines.length > max) {
diff --git a/tools/eslint/lib/rules/max-nested-callbacks.js b/tools/eslint/lib/rules/max-nested-callbacks.js
index 7e0c3d2473..a89f49ae02 100644
--- a/tools/eslint/lib/rules/max-nested-callbacks.js
+++ b/tools/eslint/lib/rules/max-nested-callbacks.js
@@ -81,9 +81,9 @@ module.exports = {
}
if (callbackStack.length > THRESHOLD) {
- const opts = {num: callbackStack.length, max: THRESHOLD};
+ const opts = { num: callbackStack.length, max: THRESHOLD };
- context.report(node, "Too many nested callbacks ({{num}}). Maximum allowed is {{max}}.", opts);
+ context.report({ node, message: "Too many nested callbacks ({{num}}). Maximum allowed is {{max}}.", data: opts });
}
}
diff --git a/tools/eslint/lib/rules/max-params.js b/tools/eslint/lib/rules/max-params.js
index fc84efcd40..bbf087092e 100644
--- a/tools/eslint/lib/rules/max-params.js
+++ b/tools/eslint/lib/rules/max-params.js
@@ -66,10 +66,10 @@ module.exports = {
*/
function checkFunction(node) {
if (node.params.length > numParams) {
- context.report(node, "This function has too many parameters ({{count}}). Maximum allowed is {{max}}.", {
+ context.report({ node, message: "This function has too many parameters ({{count}}). Maximum allowed is {{max}}.", data: {
count: node.params.length,
max: numParams
- });
+ } });
}
}
diff --git a/tools/eslint/lib/rules/max-statements.js b/tools/eslint/lib/rules/max-statements.js
index 1232930c6e..63d51fa571 100644
--- a/tools/eslint/lib/rules/max-statements.js
+++ b/tools/eslint/lib/rules/max-statements.js
@@ -84,10 +84,20 @@ module.exports = {
*/
function reportIfTooManyStatements(node, count, max) {
if (count > max) {
- context.report(
+ const messageEnd = " has too many statements ({{count}}). Maximum allowed is {{max}}.";
+ let name = "This function";
+
+ if (node.id) {
+ name = `Function '${node.id.name}'`;
+ } else if (node.parent.type === "MethodDefinition" || node.parent.type === "Property") {
+ name = `Function '${context.getSource(node.parent.key)}'`;
+ }
+
+ context.report({
node,
- "This function has too many statements ({{count}}). Maximum allowed is {{max}}.",
- { count, max });
+ message: name + messageEnd,
+ data: { count, max }
+ });
}
}
@@ -110,7 +120,7 @@ module.exports = {
const count = functionStack.pop();
if (ignoreTopLevelFunctions && functionStack.length === 0) {
- topLevelFunctions.push({ node, count});
+ topLevelFunctions.push({ node, count });
} else {
reportIfTooManyStatements(node, count, maxStatements);
}
@@ -146,7 +156,7 @@ module.exports = {
return;
}
- topLevelFunctions.forEach(function(element) {
+ topLevelFunctions.forEach(element => {
const count = element.count;
const node = element.node;
diff --git a/tools/eslint/lib/rules/new-cap.js b/tools/eslint/lib/rules/new-cap.js
index 6fcd582a69..e7f7f1ab89 100644
--- a/tools/eslint/lib/rules/new-cap.js
+++ b/tools/eslint/lib/rules/new-cap.js
@@ -227,7 +227,7 @@ module.exports = {
callee = callee.property;
}
- context.report(node, callee.loc.start, message);
+ context.report({ node, loc: callee.loc.start, message });
}
//--------------------------------------------------------------------------
diff --git a/tools/eslint/lib/rules/new-parens.js b/tools/eslint/lib/rules/new-parens.js
index 29f4b5c208..b0fc5ba979 100644
--- a/tools/eslint/lib/rules/new-parens.js
+++ b/tools/eslint/lib/rules/new-parens.js
@@ -29,20 +29,6 @@ function isClosingParen(token) {
return token.type === "Punctuator" && token.value === ")";
}
-/**
- * Checks whether the given node is inside of another given node.
- *
- * @param {ASTNode|Token} inner - The inner node to check.
- * @param {ASTNode|Token} outer - The outer node to check.
- * @returns {boolean} `true` if the `inner` is in `outer`.
- */
-function isInRange(inner, outer) {
- const ir = inner.range;
- const or = outer.range;
-
- return or[0] <= ir[0] && ir[1] <= or[1];
-}
-
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
@@ -65,14 +51,15 @@ module.exports = {
return {
NewExpression(node) {
- let token = sourceCode.getTokenAfter(node.callee);
-
- // Skip ')'
- while (token && isClosingParen(token)) {
- token = sourceCode.getTokenAfter(token);
+ if (node.arguments.length !== 0) {
+ return; // shortcut: if there are arguments, there have to be parens
}
- if (!(token && isOpeningParen(token) && isInRange(token, node))) {
+ const lastToken = sourceCode.getLastToken(node);
+ const hasLastParen = lastToken && isClosingParen(lastToken);
+ const hasParens = hasLastParen && isOpeningParen(sourceCode.getTokenBefore(lastToken));
+
+ if (!hasParens) {
context.report({
node,
message: "Missing '()' invoking a constructor.",
diff --git a/tools/eslint/lib/rules/newline-after-var.js b/tools/eslint/lib/rules/newline-after-var.js
index 440652b1c1..51130e23db 100644
--- a/tools/eslint/lib/rules/newline-after-var.js
+++ b/tools/eslint/lib/rules/newline-after-var.js
@@ -21,7 +21,9 @@ module.exports = {
{
enum: ["never", "always"]
}
- ]
+ ],
+
+ fixable: "whitespace"
},
create(context) {
@@ -35,7 +37,7 @@ module.exports = {
const mode = context.options[0] === "never" ? "never" : "always";
// Cache starting and ending line numbers of comments for faster lookup
- const commentEndLine = sourceCode.getAllComments().reduce(function(result, token) {
+ const commentEndLine = sourceCode.getAllComments().reduce((result, token) => {
result[token.loc.start.line] = token.loc.end.line;
return result;
}, {});
@@ -120,20 +122,24 @@ module.exports = {
}
/**
+ * Gets the last line of a group of consecutive comments
+ * @param {number} commentStartLine The starting line of the group
+ * @returns {number} The number of the last comment line of the group
+ */
+ function getLastCommentLineOfBlock(commentStartLine) {
+ const currentCommentEnd = commentEndLine[commentStartLine];
+
+ return commentEndLine[currentCommentEnd + 1] ? getLastCommentLineOfBlock(currentCommentEnd + 1) : currentCommentEnd;
+ }
+
+ /**
* Determine if a token starts more than one line after a comment ends
* @param {token} token The token being checked
* @param {integer} commentStartLine The line number on which the comment starts
* @returns {boolean} True if `token` does not start immediately after a comment
*/
function hasBlankLineAfterComment(token, commentStartLine) {
- const commentEnd = commentEndLine[commentStartLine];
-
- // If there's another comment, repeat check for blank line
- if (commentEndLine[commentEnd + 1]) {
- return hasBlankLineAfterComment(token, commentEnd + 1);
- }
-
- return (token.loc.start.line > commentEndLine[commentStartLine] + 1);
+ return token.loc.start.line > getLastCommentLineOfBlock(commentStartLine) + 1;
}
/**
@@ -145,8 +151,18 @@ module.exports = {
* @returns {void}
*/
function checkForBlankLine(node) {
+
+ /*
+ * lastToken is the last token on the node's line. It will usually also be the last token of the node, but it will
+ * sometimes be second-last if there is a semicolon on a different line.
+ */
const lastToken = getLastToken(node),
- nextToken = sourceCode.getTokenAfter(node),
+
+ /*
+ * If lastToken is the last token of the node, nextToken should be the token after the node. Otherwise, nextToken
+ * is the last token of the node.
+ */
+ nextToken = lastToken === sourceCode.getLastToken(node) ? sourceCode.getTokenAfter(node) : sourceCode.getLastToken(node),
nextLineNum = lastToken.loc.end.line + 1;
// Ignore if there is no following statement
@@ -180,7 +196,17 @@ module.exports = {
const hasNextLineComment = (typeof commentEndLine[nextLineNum] !== "undefined");
if (mode === "never" && noNextLineToken && !hasNextLineComment) {
- context.report(node, NEVER_MESSAGE, { identifier: node.name });
+ context.report({
+ node,
+ message: NEVER_MESSAGE,
+ data: { identifier: node.name },
+ fix(fixer) {
+ const NEWLINE_REGEX = /\r\n|\r|\n|\u2028|\u2029/;
+ const linesBetween = sourceCode.getText().slice(lastToken.range[1], nextToken.range[0]).split(NEWLINE_REGEX);
+
+ return fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], `${linesBetween.slice(0, -1).join("")}\n${linesBetween[linesBetween.length - 1]}`);
+ }
+ });
}
// Token on the next line, or comment without blank line
@@ -190,7 +216,18 @@ module.exports = {
hasNextLineComment && !hasBlankLineAfterComment(nextToken, nextLineNum)
)
) {
- context.report(node, ALWAYS_MESSAGE, { identifier: node.name });
+ context.report({
+ node,
+ message: ALWAYS_MESSAGE,
+ data: { identifier: node.name },
+ fix(fixer) {
+ if ((noNextLineToken ? getLastCommentLineOfBlock(nextLineNum) : lastToken.loc.end.line) === nextToken.loc.start.line) {
+ return fixer.insertTextBefore(nextToken, "\n\n");
+ }
+
+ return fixer.insertTextBeforeRange([nextToken.range[0] - nextToken.loc.start.column, nextToken.range[1]], "\n");
+ }
+ });
}
}
diff --git a/tools/eslint/lib/rules/newline-before-return.js b/tools/eslint/lib/rules/newline-before-return.js
index 7d297fd003..e8cd74b2c7 100644
--- a/tools/eslint/lib/rules/newline-before-return.js
+++ b/tools/eslint/lib/rules/newline-before-return.js
@@ -36,9 +36,7 @@ module.exports = {
function isPrecededByTokens(node, testTokens) {
const tokenBefore = sourceCode.getTokenBefore(node);
- return testTokens.some(function(token) {
- return tokenBefore.value === token;
- });
+ return testTokens.some(token => tokenBefore.value === token);
}
/**
@@ -82,7 +80,7 @@ module.exports = {
return numLinesComments;
}
- comments.forEach(function(comment) {
+ comments.forEach(comment => {
numLinesComments++;
if (comment.type === "Block") {
diff --git a/tools/eslint/lib/rules/no-alert.js b/tools/eslint/lib/rules/no-alert.js
index 96b5d64c6c..f2cfc3a877 100644
--- a/tools/eslint/lib/rules/no-alert.js
+++ b/tools/eslint/lib/rules/no-alert.js
@@ -41,10 +41,8 @@ function report(context, node, identifierName) {
* @returns {Reference|null} Returns the found reference or null if none were found.
*/
function findReference(scope, node) {
- const references = scope.references.filter(function(reference) {
- return reference.identifier.range[0] === node.range[0] &&
- reference.identifier.range[1] === node.range[1];
- });
+ const references = scope.references.filter(reference => reference.identifier.range[0] === node.range[0] &&
+ reference.identifier.range[1] === node.range[1]);
if (references.length === 1) {
return references[0];
diff --git a/tools/eslint/lib/rules/no-array-constructor.js b/tools/eslint/lib/rules/no-array-constructor.js
index 2c29217d72..70dc8b4cd5 100644
--- a/tools/eslint/lib/rules/no-array-constructor.js
+++ b/tools/eslint/lib/rules/no-array-constructor.js
@@ -34,7 +34,7 @@ module.exports = {
node.callee.type === "Identifier" &&
node.callee.name === "Array"
) {
- context.report(node, "The array literal notation [] is preferrable.");
+ context.report({ node, message: "The array literal notation [] is preferrable." });
}
}
diff --git a/tools/eslint/lib/rules/no-await-in-loop.js b/tools/eslint/lib/rules/no-await-in-loop.js
new file mode 100644
index 0000000000..a75f7f2934
--- /dev/null
+++ b/tools/eslint/lib/rules/no-await-in-loop.js
@@ -0,0 +1,75 @@
+/**
+ * @fileoverview Rule to disallow uses of await inside of loops.
+ * @author Nat Mote (nmote)
+ */
+"use strict";
+
+// Node types which are considered loops.
+const loopTypes = new Set([
+ "ForStatement",
+ "ForOfStatement",
+ "ForInStatement",
+ "WhileStatement",
+ "DoWhileStatement",
+]);
+
+// Node types at which we should stop looking for loops. For example, it is fine to declare an async
+// function within a loop, and use await inside of that.
+const boundaryTypes = new Set([
+ "FunctionDeclaration",
+ "FunctionExpression",
+ "ArrowFunctionExpression",
+]);
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "disallow `await` inside of loops",
+ category: "Possible Errors",
+ recommended: false,
+ },
+ schema: [],
+ },
+ create(context) {
+ return {
+ AwaitExpression(node) {
+ const ancestors = context.getAncestors();
+
+ // Reverse so that we can traverse from the deepest node upwards.
+ ancestors.reverse();
+
+ // Create a set of all the ancestors plus this node so that we can check
+ // if this use of await appears in the body of the loop as opposed to
+ // the right-hand side of a for...of, for example.
+ const ancestorSet = new Set(ancestors).add(node);
+
+ for (let i = 0; i < ancestors.length; i++) {
+ const ancestor = ancestors[i];
+
+ if (boundaryTypes.has(ancestor.type)) {
+
+ // Short-circuit out if we encounter a boundary type. Loops above
+ // this do not matter.
+ return;
+ }
+ if (loopTypes.has(ancestor.type)) {
+
+ // Only report if we are actually in the body or another part that gets executed on
+ // every iteration.
+ if (
+ ancestorSet.has(ancestor.body) ||
+ ancestorSet.has(ancestor.test) ||
+ ancestorSet.has(ancestor.update)
+ ) {
+ context.report({
+ node,
+ message: "Unexpected `await` inside a loop."
+ });
+ return;
+ }
+ }
+ }
+ },
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/no-bitwise.js b/tools/eslint/lib/rules/no-bitwise.js
index 2c6456912f..28028028ca 100644
--- a/tools/eslint/lib/rules/no-bitwise.js
+++ b/tools/eslint/lib/rules/no-bitwise.js
@@ -57,7 +57,7 @@ module.exports = {
* @returns {void}
*/
function report(node) {
- context.report(node, "Unexpected use of '{{operator}}'.", { operator: node.operator });
+ context.report({ node, message: "Unexpected use of '{{operator}}'.", data: { operator: node.operator } });
}
/**
diff --git a/tools/eslint/lib/rules/no-caller.js b/tools/eslint/lib/rules/no-caller.js
index 16c5fa414b..55a37b7d86 100644
--- a/tools/eslint/lib/rules/no-caller.js
+++ b/tools/eslint/lib/rules/no-caller.js
@@ -29,7 +29,7 @@ module.exports = {
propertyName = node.property.name;
if (objectName === "arguments" && !node.computed && propertyName && propertyName.match(/^calle[er]$/)) {
- context.report(node, "Avoid arguments.{{property}}.", { property: propertyName });
+ context.report({ node, message: "Avoid arguments.{{property}}.", data: { property: propertyName } });
}
}
diff --git a/tools/eslint/lib/rules/no-catch-shadow.js b/tools/eslint/lib/rules/no-catch-shadow.js
index 7f25233332..7cffae3b99 100644
--- a/tools/eslint/lib/rules/no-catch-shadow.js
+++ b/tools/eslint/lib/rules/no-catch-shadow.js
@@ -58,8 +58,7 @@ module.exports = {
}
if (paramIsShadowing(scope, node.param.name)) {
- context.report(node, "Value of '{{name}}' may be overwritten in IE 8 and earlier.",
- { name: node.param.name });
+ context.report({ node, message: "Value of '{{name}}' may be overwritten in IE 8 and earlier.", data: { name: node.param.name } });
}
}
};
diff --git a/tools/eslint/lib/rules/no-class-assign.js b/tools/eslint/lib/rules/no-class-assign.js
index cbd4b1da81..4b0443abc7 100644
--- a/tools/eslint/lib/rules/no-class-assign.js
+++ b/tools/eslint/lib/rules/no-class-assign.js
@@ -30,11 +30,8 @@ module.exports = {
* @returns {void}
*/
function checkVariable(variable) {
- astUtils.getModifyingReferences(variable.references).forEach(function(reference) {
- context.report(
- reference.identifier,
- "'{{name}}' is a class.",
- {name: reference.identifier.name});
+ astUtils.getModifyingReferences(variable.references).forEach(reference => {
+ context.report({ node: reference.identifier, message: "'{{name}}' is a class.", data: { name: reference.identifier.name } });
});
}
diff --git a/tools/eslint/lib/rules/no-cond-assign.js b/tools/eslint/lib/rules/no-cond-assign.js
index 2d66f55a5b..3e94d12a53 100644
--- a/tools/eslint/lib/rules/no-cond-assign.js
+++ b/tools/eslint/lib/rules/no-cond-assign.js
@@ -125,9 +125,9 @@ module.exports = {
const ancestor = findConditionalAncestor(node);
if (ancestor) {
- context.report(ancestor, "Unexpected assignment within {{type}}.", {
+ context.report({ node: ancestor, message: "Unexpected assignment within {{type}}.", data: {
type: NODE_DESCRIPTIONS[ancestor.type] || ancestor.type
- });
+ } });
}
}
diff --git a/tools/eslint/lib/rules/no-confusing-arrow.js b/tools/eslint/lib/rules/no-confusing-arrow.js
index 5e1b051423..d6edbcc810 100644
--- a/tools/eslint/lib/rules/no-confusing-arrow.js
+++ b/tools/eslint/lib/rules/no-confusing-arrow.js
@@ -36,7 +36,7 @@ module.exports = {
schema: [{
type: "object",
properties: {
- allowParens: {type: "boolean"}
+ allowParens: { type: "boolean" }
},
additionalProperties: false
}]
@@ -55,7 +55,7 @@ module.exports = {
const body = node.body;
if (isConditional(body) && !(config.allowParens && astUtils.isParenthesised(sourceCode, body))) {
- context.report(node, "Arrow function used ambiguously with a conditional expression.");
+ context.report({ node, message: "Arrow function used ambiguously with a conditional expression." });
}
}
diff --git a/tools/eslint/lib/rules/no-const-assign.js b/tools/eslint/lib/rules/no-const-assign.js
index 232e9446fd..db1848a981 100644
--- a/tools/eslint/lib/rules/no-const-assign.js
+++ b/tools/eslint/lib/rules/no-const-assign.js
@@ -30,11 +30,8 @@ module.exports = {
* @returns {void}
*/
function checkVariable(variable) {
- astUtils.getModifyingReferences(variable.references).forEach(function(reference) {
- context.report(
- reference.identifier,
- "'{{name}}' is constant.",
- {name: reference.identifier.name});
+ astUtils.getModifyingReferences(variable.references).forEach(reference => {
+ context.report({ node: reference.identifier, message: "'{{name}}' is constant.", data: { name: reference.identifier.name } });
});
}
diff --git a/tools/eslint/lib/rules/no-constant-condition.js b/tools/eslint/lib/rules/no-constant-condition.js
index f78ddbc2e9..7178d5dbec 100644
--- a/tools/eslint/lib/rules/no-constant-condition.js
+++ b/tools/eslint/lib/rules/no-constant-condition.js
@@ -122,7 +122,7 @@ module.exports = {
*/
function checkConstantCondition(node) {
if (node.test && isConstant(node.test, true)) {
- context.report(node, "Unexpected constant condition.");
+ context.report({ node, message: "Unexpected constant condition." });
}
}
diff --git a/tools/eslint/lib/rules/no-continue.js b/tools/eslint/lib/rules/no-continue.js
index b8956da4b7..2615fba13e 100644
--- a/tools/eslint/lib/rules/no-continue.js
+++ b/tools/eslint/lib/rules/no-continue.js
@@ -24,7 +24,7 @@ module.exports = {
return {
ContinueStatement(node) {
- context.report(node, "Unexpected use of continue statement.");
+ context.report({ node, message: "Unexpected use of continue statement." });
}
};
diff --git a/tools/eslint/lib/rules/no-control-regex.js b/tools/eslint/lib/rules/no-control-regex.js
index 466f5666ac..1ebf980000 100644
--- a/tools/eslint/lib/rules/no-control-regex.js
+++ b/tools/eslint/lib/rules/no-control-regex.js
@@ -85,7 +85,7 @@ module.exports = {
stringControlChars = regexStr.slice(subStrIndex, -1)
.split(consecutiveSlashes)
.filter(Boolean)
- .map(function(x) {
+ .map(x => {
const match = x.match(stringControlCharWithoutSlash) || [x];
return `\\${match[0]}`;
@@ -93,7 +93,7 @@ module.exports = {
}
}
- return controlChars.map(function(x) {
+ return controlChars.map(x => {
const hexCode = `0${x.charCodeAt(0).toString(16)}`.slice(-2);
return `\\x${hexCode}`;
diff --git a/tools/eslint/lib/rules/no-debugger.js b/tools/eslint/lib/rules/no-debugger.js
index 6356d5269b..897b3dbb60 100644
--- a/tools/eslint/lib/rules/no-debugger.js
+++ b/tools/eslint/lib/rules/no-debugger.js
@@ -24,7 +24,7 @@ module.exports = {
return {
DebuggerStatement(node) {
- context.report(node, "Unexpected 'debugger' statement.");
+ context.report({ node, message: "Unexpected 'debugger' statement." });
}
};
diff --git a/tools/eslint/lib/rules/no-delete-var.js b/tools/eslint/lib/rules/no-delete-var.js
index dce202dc83..adc1b5bb9c 100644
--- a/tools/eslint/lib/rules/no-delete-var.js
+++ b/tools/eslint/lib/rules/no-delete-var.js
@@ -26,7 +26,7 @@ module.exports = {
UnaryExpression(node) {
if (node.operator === "delete" && node.argument.type === "Identifier") {
- context.report(node, "Variables should not be deleted.");
+ context.report({ node, message: "Variables should not be deleted." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-div-regex.js b/tools/eslint/lib/rules/no-div-regex.js
index c5ffa7ce7e..84a9b9a3aa 100644
--- a/tools/eslint/lib/rules/no-div-regex.js
+++ b/tools/eslint/lib/rules/no-div-regex.js
@@ -29,7 +29,7 @@ module.exports = {
const token = sourceCode.getFirstToken(node);
if (token.type === "RegularExpression" && token.value[1] === "=") {
- context.report(node, "A regular expression literal can be confused with '/='.");
+ context.report({ node, message: "A regular expression literal can be confused with '/='." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-dupe-args.js b/tools/eslint/lib/rules/no-dupe-args.js
index 0d420eb92a..cdb38035c0 100644
--- a/tools/eslint/lib/rules/no-dupe-args.js
+++ b/tools/eslint/lib/rules/no-dupe-args.js
@@ -54,7 +54,7 @@ module.exports = {
context.report({
node,
message: "Duplicate param '{{name}}'.",
- data: {name: variable.name}
+ data: { name: variable.name }
});
}
}
diff --git a/tools/eslint/lib/rules/no-dupe-class-members.js b/tools/eslint/lib/rules/no-dupe-class-members.js
index 3b857a67fb..07b999fab1 100644
--- a/tools/eslint/lib/rules/no-dupe-class-members.js
+++ b/tools/eslint/lib/rules/no-dupe-class-members.js
@@ -38,8 +38,8 @@ module.exports = {
if (!stateMap[key]) {
stateMap[key] = {
- nonStatic: {init: false, get: false, set: false},
- static: {init: false, get: false, set: false}
+ nonStatic: { init: false, get: false, set: false },
+ static: { init: false, get: false, set: false }
};
}
@@ -101,7 +101,7 @@ module.exports = {
}
if (isDuplicate) {
- context.report(node, "Duplicate name '{{name}}'.", {name});
+ context.report({ node, message: "Duplicate name '{{name}}'.", data: { name } });
}
}
};
diff --git a/tools/eslint/lib/rules/no-dupe-keys.js b/tools/eslint/lib/rules/no-dupe-keys.js
index f34c323f1e..f056b1fcbe 100644
--- a/tools/eslint/lib/rules/no-dupe-keys.js
+++ b/tools/eslint/lib/rules/no-dupe-keys.js
@@ -42,7 +42,7 @@ class ObjectInfo {
const name = astUtils.getStaticPropertyName(node);
if (!this.properties.has(name)) {
- this.properties.set(name, {get: false, set: false});
+ this.properties.set(name, { get: false, set: false });
}
return this.properties.get(name);
}
@@ -123,7 +123,7 @@ module.exports = {
node: info.node,
loc: node.key.loc,
message: "Duplicate key '{{name}}'.",
- data: {name},
+ data: { name },
});
}
diff --git a/tools/eslint/lib/rules/no-duplicate-case.js b/tools/eslint/lib/rules/no-duplicate-case.js
index 5b20fc3d58..07823f284c 100644
--- a/tools/eslint/lib/rules/no-duplicate-case.js
+++ b/tools/eslint/lib/rules/no-duplicate-case.js
@@ -28,11 +28,11 @@ module.exports = {
SwitchStatement(node) {
const mapping = {};
- node.cases.forEach(function(switchCase) {
+ node.cases.forEach(switchCase => {
const key = sourceCode.getText(switchCase.test);
if (mapping[key]) {
- context.report(switchCase, "Duplicate case label.");
+ context.report({ node: switchCase, message: "Duplicate case label." });
} else {
mapping[key] = switchCase;
}
diff --git a/tools/eslint/lib/rules/no-else-return.js b/tools/eslint/lib/rules/no-else-return.js
index 07b596238c..43564346b0 100644
--- a/tools/eslint/lib/rules/no-else-return.js
+++ b/tools/eslint/lib/rules/no-else-return.js
@@ -33,7 +33,7 @@ module.exports = {
* @returns {void}
*/
function displayReport(node) {
- context.report(node, "Unnecessary 'else' after 'return'.");
+ context.report({ node, message: "Unnecessary 'else' after 'return'." });
}
/**
diff --git a/tools/eslint/lib/rules/no-empty-character-class.js b/tools/eslint/lib/rules/no-empty-character-class.js
index 723cebc945..f36c6c9f0d 100644
--- a/tools/eslint/lib/rules/no-empty-character-class.js
+++ b/tools/eslint/lib/rules/no-empty-character-class.js
@@ -21,7 +21,7 @@ plain-English description of the following regexp:
4. `[gimuy]*`: optional regexp flags
5. `$`: fix the match at the end of the string
*/
-const regex = /^\/([^\\[]|\\.|\[([^\\\]]|\\.)+\])*\/[gimuy]*$/;
+const regex = /^\/([^\\[]|\\.|\[([^\\\]]|\\.)+])*\/[gimuy]*$/;
//------------------------------------------------------------------------------
// Rule Definition
@@ -47,7 +47,7 @@ module.exports = {
const token = sourceCode.getFirstToken(node);
if (token.type === "RegularExpression" && !regex.test(token.value)) {
- context.report(node, "Empty class.");
+ context.report({ node, message: "Empty class." });
}
}
diff --git a/tools/eslint/lib/rules/no-empty-function.js b/tools/eslint/lib/rules/no-empty-function.js
index 8299f40685..65f9c9e151 100644
--- a/tools/eslint/lib/rules/no-empty-function.js
+++ b/tools/eslint/lib/rules/no-empty-function.js
@@ -108,7 +108,7 @@ module.exports = {
properties: {
allow: {
type: "array",
- items: {enum: ALLOW_OPTIONS},
+ items: { enum: ALLOW_OPTIONS },
uniqueItems: true
}
},
diff --git a/tools/eslint/lib/rules/no-empty-pattern.js b/tools/eslint/lib/rules/no-empty-pattern.js
index 77302fc8d7..11f50b5414 100644
--- a/tools/eslint/lib/rules/no-empty-pattern.js
+++ b/tools/eslint/lib/rules/no-empty-pattern.js
@@ -23,12 +23,12 @@ module.exports = {
return {
ObjectPattern(node) {
if (node.properties.length === 0) {
- context.report(node, "Unexpected empty object pattern.");
+ context.report({ node, message: "Unexpected empty object pattern." });
}
},
ArrayPattern(node) {
if (node.elements.length === 0) {
- context.report(node, "Unexpected empty array pattern.");
+ context.report({ node, message: "Unexpected empty array pattern." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-empty.js b/tools/eslint/lib/rules/no-empty.js
index 8514b9cf89..a9b0776c93 100644
--- a/tools/eslint/lib/rules/no-empty.js
+++ b/tools/eslint/lib/rules/no-empty.js
@@ -63,13 +63,13 @@ module.exports = {
return;
}
- context.report(node, "Empty block statement.");
+ context.report({ node, message: "Empty block statement." });
},
SwitchStatement(node) {
if (typeof node.cases === "undefined" || node.cases.length === 0) {
- context.report(node, "Empty switch statement.");
+ context.report({ node, message: "Empty switch statement." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-eq-null.js b/tools/eslint/lib/rules/no-eq-null.js
index 62215d05f1..7e915a8c72 100644
--- a/tools/eslint/lib/rules/no-eq-null.js
+++ b/tools/eslint/lib/rules/no-eq-null.js
@@ -30,7 +30,7 @@ module.exports = {
if (node.right.type === "Literal" && node.right.raw === "null" && badOperator ||
node.left.type === "Literal" && node.left.raw === "null" && badOperator) {
- context.report(node, "Use ‘===’ to compare with ‘null’.");
+ context.report({ node, message: "Use ‘===’ to compare with ‘null’." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-eval.js b/tools/eslint/lib/rules/no-eval.js
index af87e4289f..fe1456cba0 100644
--- a/tools/eslint/lib/rules/no-eval.js
+++ b/tools/eslint/lib/rules/no-eval.js
@@ -86,7 +86,7 @@ module.exports = {
{
type: "object",
properties: {
- allowIndirect: {type: "boolean"}
+ allowIndirect: { type: "boolean" }
},
additionalProperties: false
}
diff --git a/tools/eslint/lib/rules/no-ex-assign.js b/tools/eslint/lib/rules/no-ex-assign.js
index 6ffa840867..20869d5cd1 100644
--- a/tools/eslint/lib/rules/no-ex-assign.js
+++ b/tools/eslint/lib/rules/no-ex-assign.js
@@ -30,10 +30,8 @@ module.exports = {
* @returns {void}
*/
function checkVariable(variable) {
- astUtils.getModifyingReferences(variable.references).forEach(function(reference) {
- context.report(
- reference.identifier,
- "Do not assign to the exception parameter.");
+ astUtils.getModifyingReferences(variable.references).forEach(reference => {
+ context.report({ node: reference.identifier, message: "Do not assign to the exception parameter." });
});
}
diff --git a/tools/eslint/lib/rules/no-extend-native.js b/tools/eslint/lib/rules/no-extend-native.js
index 27de9b5bd3..c44a2e8946 100644
--- a/tools/eslint/lib/rules/no-extend-native.js
+++ b/tools/eslint/lib/rules/no-extend-native.js
@@ -44,14 +44,10 @@ module.exports = {
const config = context.options[0] || {};
const exceptions = config.exceptions || [];
- let modifiedBuiltins = Object.keys(globals.builtin).filter(function(builtin) {
- return builtin[0].toUpperCase() === builtin[0];
- });
+ let modifiedBuiltins = Object.keys(globals.builtin).filter(builtin => builtin[0].toUpperCase() === builtin[0]);
if (exceptions.length) {
- modifiedBuiltins = modifiedBuiltins.filter(function(builtIn) {
- return exceptions.indexOf(builtIn) === -1;
- });
+ modifiedBuiltins = modifiedBuiltins.filter(builtIn => exceptions.indexOf(builtIn) === -1);
}
return {
@@ -72,7 +68,7 @@ module.exports = {
return;
}
- modifiedBuiltins.forEach(function(builtin) {
+ modifiedBuiltins.forEach(builtin => {
if (lhs.object.object.name === builtin) {
context.report({
node,
diff --git a/tools/eslint/lib/rules/no-extra-boolean-cast.js b/tools/eslint/lib/rules/no-extra-boolean-cast.js
index 89a193b2d1..123a7cacc5 100644
--- a/tools/eslint/lib/rules/no-extra-boolean-cast.js
+++ b/tools/eslint/lib/rules/no-extra-boolean-cast.js
@@ -17,10 +17,13 @@ module.exports = {
recommended: true
},
- schema: []
+ schema: [],
+
+ fixable: "code"
},
create(context) {
+ const sourceCode = context.getSourceCode();
// Node types which have a test which will coerce values to booleans.
const BOOLEAN_NODE_TYPES = [
@@ -70,7 +73,11 @@ module.exports = {
grandparent.callee.type === "Identifier" &&
grandparent.callee.name === "Boolean")
) {
- context.report(node, "Redundant double negation.");
+ context.report({
+ node,
+ message: "Redundant double negation.",
+ fix: fixer => fixer.replaceText(parent, sourceCode.getText(node.argument))
+ });
}
},
CallExpression(node) {
@@ -81,7 +88,11 @@ module.exports = {
}
if (isInBooleanContext(node, parent)) {
- context.report(node, "Redundant Boolean call.");
+ context.report({
+ node,
+ message: "Redundant Boolean call.",
+ fix: fixer => fixer.replaceText(node, sourceCode.getText(node.arguments[0]))
+ });
}
}
};
diff --git a/tools/eslint/lib/rules/no-extra-label.js b/tools/eslint/lib/rules/no-extra-label.js
index b34e075163..22afbf405b 100644
--- a/tools/eslint/lib/rules/no-extra-label.js
+++ b/tools/eslint/lib/rules/no-extra-label.js
@@ -23,10 +23,13 @@ module.exports = {
recommended: false
},
- schema: []
+ schema: [],
+
+ fixable: "code"
},
create(context) {
+ const sourceCode = context.getSourceCode();
let scopeInfo = null;
/**
@@ -37,7 +40,7 @@ module.exports = {
*/
function enterBreakableStatement(node) {
scopeInfo = {
- label: astUtils.getLabel(node),
+ label: node.parent.type === "LabeledStatement" ? node.parent.label : null,
breakable: true,
upper: scopeInfo
};
@@ -64,7 +67,7 @@ module.exports = {
function enterLabeledStatement(node) {
if (!astUtils.isBreakableStatement(node.body)) {
scopeInfo = {
- label: node.label.name,
+ label: node.label,
breakable: false,
upper: scopeInfo
};
@@ -99,22 +102,24 @@ module.exports = {
}
const labelNode = node.label;
- const label = labelNode.name;
- let info = scopeInfo;
- while (info) {
- if (info.breakable || info.label === label) {
- if (info.breakable && info.label === label) {
+ for (let info = scopeInfo; info !== null; info = info.upper) {
+ if (info.breakable || info.label && info.label.name === labelNode.name) {
+ if (info.breakable && info.label && info.label.name === labelNode.name) {
context.report({
node: labelNode,
message: "This label '{{name}}' is unnecessary.",
- data: labelNode
+ data: labelNode,
+ fix(fixer) {
+ return fixer.replaceTextRange(
+ [info.label.range[0], labelNode.range[1]],
+ sourceCode.text.slice(info.label.parent.body.range[0], sourceCode.getFirstToken(node).range[1])
+ );
+ }
});
}
return;
}
-
- info = info.upper;
}
}
diff --git a/tools/eslint/lib/rules/no-extra-parens.js b/tools/eslint/lib/rules/no-extra-parens.js
index efa3d53bbd..004d431701 100644
--- a/tools/eslint/lib/rules/no-extra-parens.js
+++ b/tools/eslint/lib/rules/no-extra-parens.js
@@ -42,9 +42,9 @@ module.exports = {
{
type: "object",
properties: {
- conditionalAssign: {type: "boolean"},
- nestedBinaryExpressions: {type: "boolean"},
- returnAssign: {type: "boolean"}
+ conditionalAssign: { type: "boolean" },
+ nestedBinaryExpressions: { type: "boolean" },
+ returnAssign: { type: "boolean" }
},
additionalProperties: false
}
@@ -348,12 +348,12 @@ module.exports = {
report(node.callee);
}
if (node.arguments.length === 1) {
- if (hasDoubleExcessParens(node.arguments[0]) && precedence(node.arguments[0]) >= precedence({type: "AssignmentExpression"})) {
+ if (hasDoubleExcessParens(node.arguments[0]) && precedence(node.arguments[0]) >= precedence({ type: "AssignmentExpression" })) {
report(node.arguments[0]);
}
} else {
- [].forEach.call(node.arguments, function(arg) {
- if (hasExcessParens(arg) && precedence(arg) >= precedence({type: "AssignmentExpression"})) {
+ [].forEach.call(node.arguments, arg => {
+ if (hasExcessParens(arg) && precedence(arg) >= precedence({ type: "AssignmentExpression" })) {
report(arg);
}
});
@@ -381,8 +381,8 @@ module.exports = {
return {
ArrayExpression(node) {
- [].forEach.call(node.elements, function(e) {
- if (e && hasExcessParens(e) && precedence(e) >= precedence({type: "AssignmentExpression"})) {
+ [].forEach.call(node.elements, e => {
+ if (e && hasExcessParens(e) && precedence(e) >= precedence({ type: "AssignmentExpression" })) {
report(e);
}
});
@@ -394,7 +394,7 @@ module.exports = {
}
if (node.body.type !== "BlockStatement") {
- if (sourceCode.getFirstToken(node.body).value !== "{" && hasExcessParens(node.body) && precedence(node.body) >= precedence({type: "AssignmentExpression"})) {
+ if (sourceCode.getFirstToken(node.body).value !== "{" && hasExcessParens(node.body) && precedence(node.body) >= precedence({ type: "AssignmentExpression" })) {
report(node.body);
return;
}
@@ -402,7 +402,6 @@ module.exports = {
// Object literals *must* be parenthesised
if (node.body.type === "ObjectExpression" && hasDoubleExcessParens(node.body)) {
report(node.body);
- return;
}
}
},
@@ -425,15 +424,15 @@ module.exports = {
return;
}
- if (hasExcessParens(node.test) && precedence(node.test) >= precedence({type: "LogicalExpression", operator: "||"})) {
+ if (hasExcessParens(node.test) && precedence(node.test) >= precedence({ type: "LogicalExpression", operator: "||" })) {
report(node.test);
}
- if (hasExcessParens(node.consequent) && precedence(node.consequent) >= precedence({type: "AssignmentExpression"})) {
+ if (hasExcessParens(node.consequent) && precedence(node.consequent) >= precedence({ type: "AssignmentExpression" })) {
report(node.consequent);
}
- if (hasExcessParens(node.alternate) && precedence(node.alternate) >= precedence({type: "AssignmentExpression"})) {
+ if (hasExcessParens(node.alternate) && precedence(node.alternate) >= precedence({ type: "AssignmentExpression" })) {
report(node.alternate);
}
},
@@ -509,7 +508,7 @@ module.exports = {
!(
(node.object.type === "Literal" &&
typeof node.object.value === "number" &&
- /^[0-9]+$/.test(sourceCode.getFirstToken(node.object).value))
+ astUtils.isDecimalInteger(node.object))
||
// RegExp literal is allowed to have parens (#1589)
@@ -532,10 +531,10 @@ module.exports = {
NewExpression: dryCallNew,
ObjectExpression(node) {
- [].forEach.call(node.properties, function(e) {
+ [].forEach.call(node.properties, e => {
const v = e.value;
- if (v && hasExcessParens(v) && precedence(v) >= precedence({type: "AssignmentExpression"})) {
+ if (v && hasExcessParens(v) && precedence(v) >= precedence({ type: "AssignmentExpression" })) {
report(v);
}
});
@@ -558,7 +557,7 @@ module.exports = {
},
SequenceExpression(node) {
- [].forEach.call(node.expressions, function(e) {
+ [].forEach.call(node.expressions, e => {
if (hasExcessParens(e) && precedence(e) >= precedence(node)) {
report(e);
}
@@ -591,7 +590,7 @@ module.exports = {
VariableDeclarator(node) {
if (node.init && hasExcessParens(node.init) &&
- precedence(node.init) >= precedence({type: "AssignmentExpression"}) &&
+ precedence(node.init) >= precedence({ type: "AssignmentExpression" }) &&
// RegExp literal is allowed to have parens (#1589)
!(node.init.type === "Literal" && node.init.regex)) {
diff --git a/tools/eslint/lib/rules/no-fallthrough.js b/tools/eslint/lib/rules/no-fallthrough.js
index 380a53634b..30d13da06d 100644
--- a/tools/eslint/lib/rules/no-fallthrough.js
+++ b/tools/eslint/lib/rules/no-fallthrough.js
@@ -109,7 +109,7 @@ module.exports = {
if (fallthroughCase && !hasFallthroughComment(node, context, fallthroughCommentPattern)) {
context.report({
message: "Expected a 'break' statement before '{{type}}'.",
- data: {type: node.test ? "case" : "default"},
+ data: { type: node.test ? "case" : "default" },
node
});
}
diff --git a/tools/eslint/lib/rules/no-func-assign.js b/tools/eslint/lib/rules/no-func-assign.js
index daa6fa52ba..ea86365b29 100644
--- a/tools/eslint/lib/rules/no-func-assign.js
+++ b/tools/eslint/lib/rules/no-func-assign.js
@@ -30,11 +30,8 @@ module.exports = {
* @returns {void}
*/
function checkReference(references) {
- astUtils.getModifyingReferences(references).forEach(function(reference) {
- context.report(
- reference.identifier,
- "'{{name}}' is a function.",
- {name: reference.identifier.name});
+ astUtils.getModifyingReferences(references).forEach(reference => {
+ context.report({ node: reference.identifier, message: "'{{name}}' is a function.", data: { name: reference.identifier.name } });
});
}
diff --git a/tools/eslint/lib/rules/no-global-assign.js b/tools/eslint/lib/rules/no-global-assign.js
index 2bc38cb5d7..caf2500231 100644
--- a/tools/eslint/lib/rules/no-global-assign.js
+++ b/tools/eslint/lib/rules/no-global-assign.js
@@ -23,7 +23,7 @@ module.exports = {
properties: {
exceptions: {
type: "array",
- items: {type: "string"},
+ items: { type: "string" },
uniqueItems: true
}
},
diff --git a/tools/eslint/lib/rules/no-implicit-globals.js b/tools/eslint/lib/rules/no-implicit-globals.js
index fd49f0c5ac..f0962cdc7a 100644
--- a/tools/eslint/lib/rules/no-implicit-globals.js
+++ b/tools/eslint/lib/rules/no-implicit-globals.js
@@ -25,27 +25,27 @@ module.exports = {
Program() {
const scope = context.getScope();
- scope.variables.forEach(function(variable) {
+ scope.variables.forEach(variable => {
if (variable.writeable) {
return;
}
- variable.defs.forEach(function(def) {
+ variable.defs.forEach(def => {
if (def.type === "FunctionName" || (def.type === "Variable" && def.parent.kind === "var")) {
- context.report(def.node, "Implicit global variable, assign as global property instead.");
+ context.report({ node: def.node, message: "Implicit global variable, assign as global property instead." });
}
});
});
- scope.implicit.variables.forEach(function(variable) {
+ scope.implicit.variables.forEach(variable => {
const scopeVariable = scope.set.get(variable.name);
if (scopeVariable && scopeVariable.writeable) {
return;
}
- variable.defs.forEach(function(def) {
- context.report(def.node, "Implicit global variable, assign as global property instead.");
+ variable.defs.forEach(def => {
+ context.report({ node: def.node, message: "Implicit global variable, assign as global property instead." });
});
});
}
diff --git a/tools/eslint/lib/rules/no-implied-eval.js b/tools/eslint/lib/rules/no-implied-eval.js
index 9b48e89682..4daadd8fb8 100644
--- a/tools/eslint/lib/rules/no-implied-eval.js
+++ b/tools/eslint/lib/rules/no-implied-eval.js
@@ -21,7 +21,7 @@ module.exports = {
},
create(context) {
- const CALLEE_RE = /set(?:Timeout|Interval)|execScript/;
+ const CALLEE_RE = /^(setTimeout|setInterval|execScript)$/;
/*
* Figures out if we should inspect a given binary expression. Is a stack
@@ -105,7 +105,7 @@ module.exports = {
// remove the entire substack, to avoid duplicate reports
const substack = impliedEvalAncestorsStack.pop();
- context.report(substack[0], "Implied eval. Consider passing a function instead of a string.");
+ context.report({ node: substack[0], message: "Implied eval. Consider passing a function instead of a string." });
}
}
diff --git a/tools/eslint/lib/rules/no-inline-comments.js b/tools/eslint/lib/rules/no-inline-comments.js
index d51a59a183..46815d1541 100644
--- a/tools/eslint/lib/rules/no-inline-comments.js
+++ b/tools/eslint/lib/rules/no-inline-comments.js
@@ -46,7 +46,7 @@ module.exports = {
// Should be empty if there was only whitespace around the comment
if (!isDirective && (preamble || postamble)) {
- context.report(node, "Unexpected comment inline with code.");
+ context.report({ node, message: "Unexpected comment inline with code." });
}
}
diff --git a/tools/eslint/lib/rules/no-inner-declarations.js b/tools/eslint/lib/rules/no-inner-declarations.js
index e5a186133c..01cc67863f 100644
--- a/tools/eslint/lib/rules/no-inner-declarations.js
+++ b/tools/eslint/lib/rules/no-inner-declarations.js
@@ -36,8 +36,8 @@ module.exports = {
generation = 1;
while (ancestor && ["Program", "FunctionDeclaration",
- "FunctionExpression", "ArrowFunctionExpression"
- ].indexOf(ancestor.type) < 0) {
+ "FunctionExpression", "ArrowFunctionExpression"
+ ].indexOf(ancestor.type) < 0) {
generation += 1;
ancestor = ancestors.pop();
}
@@ -63,14 +63,12 @@ module.exports = {
body.distance === 2);
if (!valid) {
- context.report(node, "Move {{type}} declaration to {{body}} root.",
- {
- type: (node.type === "FunctionDeclaration" ?
+ context.report({ node, message: "Move {{type}} declaration to {{body}} root.", data: {
+ type: (node.type === "FunctionDeclaration" ?
"function" : "variable"),
- body: (body.type === "Program" ?
+ body: (body.type === "Program" ?
"program" : "function body")
- }
- );
+ } });
}
}
diff --git a/tools/eslint/lib/rules/no-invalid-this.js b/tools/eslint/lib/rules/no-invalid-this.js
index fe2bc3a1ba..64ef4882e2 100644
--- a/tools/eslint/lib/rules/no-invalid-this.js
+++ b/tools/eslint/lib/rules/no-invalid-this.js
@@ -114,7 +114,7 @@ module.exports = {
const current = stack.getCurrent();
if (current && !current.valid) {
- context.report(node, "Unexpected 'this'.");
+ context.report({ node, message: "Unexpected 'this'." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-irregular-whitespace.js b/tools/eslint/lib/rules/no-irregular-whitespace.js
index 74a3c10fed..b1949fbc73 100644
--- a/tools/eslint/lib/rules/no-irregular-whitespace.js
+++ b/tools/eslint/lib/rules/no-irregular-whitespace.js
@@ -76,7 +76,7 @@ module.exports = {
const locStart = node.loc.start;
const locEnd = node.loc.end;
- errors = errors.filter(function(error) {
+ errors = errors.filter(error => {
const errorLoc = error[1];
if (errorLoc.line >= locStart.line && errorLoc.line <= locEnd.line) {
@@ -142,7 +142,7 @@ module.exports = {
function checkForIrregularWhitespace(node) {
const sourceLines = sourceCode.lines;
- sourceLines.forEach(function(sourceLine, lineIndex) {
+ sourceLines.forEach((sourceLine, lineIndex) => {
const lineNumber = lineIndex + 1;
let match;
@@ -233,7 +233,7 @@ module.exports = {
}
// If we have any errors remaining report on them
- errors.forEach(function(error) {
+ errors.forEach(error => {
context.report.apply(context, error);
});
};
diff --git a/tools/eslint/lib/rules/no-iterator.js b/tools/eslint/lib/rules/no-iterator.js
index faa5153335..3677dd94d9 100644
--- a/tools/eslint/lib/rules/no-iterator.js
+++ b/tools/eslint/lib/rules/no-iterator.js
@@ -29,7 +29,7 @@ module.exports = {
if (node.property &&
(node.property.type === "Identifier" && node.property.name === "__iterator__" && !node.computed) ||
(node.property.type === "Literal" && node.property.value === "__iterator__")) {
- context.report(node, "Reserved name '__iterator__'.");
+ context.report({ node, message: "Reserved name '__iterator__'." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-label-var.js b/tools/eslint/lib/rules/no-label-var.js
index 450c9a91fc..0013368561 100644
--- a/tools/eslint/lib/rules/no-label-var.js
+++ b/tools/eslint/lib/rules/no-label-var.js
@@ -57,7 +57,7 @@ module.exports = {
// Recursively find the identifier walking up the scope, starting
// with the innermost scope.
if (findIdentifier(scope, node.label.name)) {
- context.report(node, "Found identifier with same name as label.");
+ context.report({ node, message: "Found identifier with same name as label." });
}
}
diff --git a/tools/eslint/lib/rules/no-lone-blocks.js b/tools/eslint/lib/rules/no-lone-blocks.js
index 9945147129..9528421ca5 100644
--- a/tools/eslint/lib/rules/no-lone-blocks.js
+++ b/tools/eslint/lib/rules/no-lone-blocks.js
@@ -34,10 +34,10 @@ module.exports = {
function report(node) {
const parent = context.getAncestors().pop();
- context.report(node, parent.type === "Program" ?
+ context.report({ node, message: parent.type === "Program" ?
"Block is redundant." :
"Nested block is redundant."
- );
+ });
}
/**
diff --git a/tools/eslint/lib/rules/no-lonely-if.js b/tools/eslint/lib/rules/no-lonely-if.js
index 19517bc3dc..31f47b90e0 100644
--- a/tools/eslint/lib/rules/no-lonely-if.js
+++ b/tools/eslint/lib/rules/no-lonely-if.js
@@ -55,7 +55,7 @@ module.exports = {
node.consequent.type !== "BlockStatement" && lastIfToken.value !== ";" && tokenAfterElseBlock &&
(
node.consequent.loc.end.line === tokenAfterElseBlock.loc.start.line ||
- /^[(\[\/+`-]/.test(tokenAfterElseBlock.value) ||
+ /^[([/+`-]/.test(tokenAfterElseBlock.value) ||
lastIfToken.value === "++" ||
lastIfToken.value === "--"
)
diff --git a/tools/eslint/lib/rules/no-loop-func.js b/tools/eslint/lib/rules/no-loop-func.js
index 6db7a95f7c..b8bed95865 100644
--- a/tools/eslint/lib/rules/no-loop-func.js
+++ b/tools/eslint/lib/rules/no-loop-func.js
@@ -185,7 +185,7 @@ module.exports = {
if (references.length > 0 &&
!references.every(isSafe.bind(null, node, loopNode))
) {
- context.report(node, "Don't make functions within a loop.");
+ context.report({ node, message: "Don't make functions within a loop." });
}
}
diff --git a/tools/eslint/lib/rules/no-mixed-operators.js b/tools/eslint/lib/rules/no-mixed-operators.js
index 12779f8e73..b066d74a0c 100644
--- a/tools/eslint/lib/rules/no-mixed-operators.js
+++ b/tools/eslint/lib/rules/no-mixed-operators.js
@@ -62,9 +62,7 @@ function normalizeOptions(options) {
* @returns {boolean} `true` if such group existed.
*/
function includesBothInAGroup(groups, left, right) {
- return groups.some(function(group) {
- return group.indexOf(left) !== -1 && group.indexOf(right) !== -1;
- });
+ return groups.some(group => group.indexOf(left) !== -1 && group.indexOf(right) !== -1);
}
//------------------------------------------------------------------------------
@@ -86,7 +84,7 @@ module.exports = {
type: "array",
items: {
type: "array",
- items: {enum: ALL_OPERATORS},
+ items: { enum: ALL_OPERATORS },
minItems: 2,
uniqueItems: true
},
diff --git a/tools/eslint/lib/rules/no-mixed-requires.js b/tools/eslint/lib/rules/no-mixed-requires.js
index 89ba345c24..4d51d3ab3a 100644
--- a/tools/eslint/lib/rules/no-mixed-requires.js
+++ b/tools/eslint/lib/rules/no-mixed-requires.js
@@ -169,7 +169,7 @@ module.exports = {
function isMixed(declarations) {
const contains = {};
- declarations.forEach(function(declaration) {
+ declarations.forEach(declaration => {
const type = getDeclarationType(declaration.init);
contains[type] = true;
@@ -190,7 +190,7 @@ module.exports = {
function isGrouped(declarations) {
const found = {};
- declarations.forEach(function(declaration) {
+ declarations.forEach(declaration => {
if (getDeclarationType(declaration.init) === DECL_REQUIRE) {
found[inferModuleType(declaration.init)] = true;
}
@@ -205,15 +205,9 @@ module.exports = {
VariableDeclaration(node) {
if (isMixed(node.declarations)) {
- context.report(
- node,
- "Do not mix 'require' and other declarations."
- );
+ context.report({ node, message: "Do not mix 'require' and other declarations." });
} else if (grouping && !isGrouped(node.declarations)) {
- context.report(
- node,
- "Do not mix core, module, file and computed requires."
- );
+ context.report({ node, message: "Do not mix core, module, file and computed requires." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-mixed-spaces-and-tabs.js b/tools/eslint/lib/rules/no-mixed-spaces-and-tabs.js
index 0e2dcb1b8a..2b8e89d3c8 100644
--- a/tools/eslint/lib/rules/no-mixed-spaces-and-tabs.js
+++ b/tools/eslint/lib/rules/no-mixed-spaces-and-tabs.js
@@ -89,11 +89,11 @@ module.exports = {
const lines = sourceCode.lines,
comments = sourceCode.getAllComments();
- comments.forEach(function(comment) {
+ comments.forEach(comment => {
ignoredLocs.push(comment.loc);
});
- ignoredLocs.sort(function(first, second) {
+ ignoredLocs.sort((first, second) => {
if (beforeLoc(first, second.start.line, second.start.column)) {
return 1;
}
@@ -114,7 +114,7 @@ module.exports = {
regex = /^(?=[\t ]* \t)/;
}
- lines.forEach(function(line, i) {
+ lines.forEach((line, i) => {
const match = regex.exec(line);
if (match) {
@@ -132,7 +132,7 @@ module.exports = {
return;
}
- context.report(node, { line: lineNumber, column }, "Mixed spaces and tabs.");
+ context.report({ node, loc: { line: lineNumber, column }, message: "Mixed spaces and tabs." });
}
});
}
diff --git a/tools/eslint/lib/rules/no-multi-spaces.js b/tools/eslint/lib/rules/no-multi-spaces.js
index 43e26a4415..64eeebec55 100644
--- a/tools/eslint/lib/rules/no-multi-spaces.js
+++ b/tools/eslint/lib/rules/no-multi-spaces.js
@@ -47,7 +47,7 @@ module.exports = {
lastCommentIndex = 0;
if (options && options.exceptions) {
- Object.keys(options.exceptions).forEach(function(key) {
+ Object.keys(options.exceptions).forEach(key => {
if (options.exceptions[key]) {
exceptions[key] = true;
} else {
diff --git a/tools/eslint/lib/rules/no-multi-str.js b/tools/eslint/lib/rules/no-multi-str.js
index 092226f7ca..6cf5840e30 100644
--- a/tools/eslint/lib/rules/no-multi-str.js
+++ b/tools/eslint/lib/rules/no-multi-str.js
@@ -42,7 +42,7 @@ module.exports = {
const lineBreak = /\n/;
if (lineBreak.test(node.raw) && !isJSXElement(node.parent)) {
- context.report(node, "Multiline support is limited to browsers supporting ES5 only.");
+ context.report({ node, message: "Multiline support is limited to browsers supporting ES5 only." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-multiple-empty-lines.js b/tools/eslint/lib/rules/no-multiple-empty-lines.js
index 9d44064d23..c45c7aa167 100644
--- a/tools/eslint/lib/rules/no-multiple-empty-lines.js
+++ b/tools/eslint/lib/rules/no-multiple-empty-lines.js
@@ -5,6 +5,8 @@
*/
"use strict";
+const astUtils = require("../ast-utils");
+
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
@@ -56,8 +58,6 @@ module.exports = {
}
const sourceCode = context.getSourceCode();
- const fullLines = sourceCode.text.match(/.*(\r\n|\r|\n|\u2028|\u2029)/g) || [];
- const lineStartLocations = fullLines.reduce((startIndices, nextLine) => startIndices.concat(startIndices[startIndices.length - 1] + nextLine.length), [0]);
// Swallow the final newline, as some editors add it automatically and we don't want it to cause an issue
const allLines = sourceCode.lines[sourceCode.lines.length - 1] === "" ? sourceCode.lines.slice(0, -1) : sourceCode.lines;
@@ -81,7 +81,12 @@ module.exports = {
return allLines
// Given a list of lines, first get a list of line numbers that are non-empty.
- .reduce((nonEmptyLineNumbers, line, index) => nonEmptyLineNumbers.concat(line.trim() || templateLiteralLines.has(index + 1) ? [index + 1] : []), [])
+ .reduce((nonEmptyLineNumbers, line, index) => {
+ if (line.trim() || templateLiteralLines.has(index + 1)) {
+ nonEmptyLineNumbers.push(index + 1);
+ }
+ return nonEmptyLineNumbers;
+ }, [])
// Add a value at the end to allow trailing empty lines to be checked.
.concat(allLines.length + 1)
@@ -104,10 +109,15 @@ module.exports = {
if (lineNumber - lastLineNumber - 1 > maxAllowed) {
context.report({
node,
- loc: {start: {line: lastLineNumber + 1, column: 0}, end: {line: lineNumber, column: 0}},
+ loc: { start: { line: lastLineNumber + 1, column: 0 }, end: { line: lineNumber, column: 0 } },
message,
- data: {max: maxAllowed, pluralizedLines: maxAllowed === 1 ? "line" : "lines"},
- fix: fixer => fixer.removeRange([lineStartLocations[lastLineNumber], lineStartLocations[lineNumber - maxAllowed - 1]])
+ data: { max: maxAllowed, pluralizedLines: maxAllowed === 1 ? "line" : "lines" },
+ fix(fixer) {
+ return fixer.removeRange([
+ astUtils.getRangeIndexFromLocation(sourceCode, { line: lastLineNumber + 1, column: 0 }),
+ astUtils.getRangeIndexFromLocation(sourceCode, { line: lineNumber - maxAllowed, column: 0 })
+ ]);
+ }
});
}
diff --git a/tools/eslint/lib/rules/no-native-reassign.js b/tools/eslint/lib/rules/no-native-reassign.js
index 2b1c41b2d1..f721fc278f 100644
--- a/tools/eslint/lib/rules/no-native-reassign.js
+++ b/tools/eslint/lib/rules/no-native-reassign.js
@@ -27,7 +27,7 @@ module.exports = {
properties: {
exceptions: {
type: "array",
- items: {type: "string"},
+ items: { type: "string" },
uniqueItems: true
}
},
diff --git a/tools/eslint/lib/rules/no-negated-condition.js b/tools/eslint/lib/rules/no-negated-condition.js
index ea8b121077..8ea8559ea1 100644
--- a/tools/eslint/lib/rules/no-negated-condition.js
+++ b/tools/eslint/lib/rules/no-negated-condition.js
@@ -69,12 +69,12 @@ module.exports = {
}
if (isNegatedIf(node)) {
- context.report(node, "Unexpected negated condition.");
+ context.report({ node, message: "Unexpected negated condition." });
}
},
ConditionalExpression(node) {
if (isNegatedIf(node)) {
- context.report(node, "Unexpected negated condition.");
+ context.report({ node, message: "Unexpected negated condition." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-negated-in-lhs.js b/tools/eslint/lib/rules/no-negated-in-lhs.js
index 6631336ea7..143518060b 100644
--- a/tools/eslint/lib/rules/no-negated-in-lhs.js
+++ b/tools/eslint/lib/rules/no-negated-in-lhs.js
@@ -29,7 +29,7 @@ module.exports = {
BinaryExpression(node) {
if (node.operator === "in" && node.left.type === "UnaryExpression" && node.left.operator === "!") {
- context.report(node, "The 'in' expression's left operand is negated.");
+ context.report({ node, message: "The 'in' expression's left operand is negated." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-nested-ternary.js b/tools/eslint/lib/rules/no-nested-ternary.js
index 50265913b0..4fe49fc9c0 100644
--- a/tools/eslint/lib/rules/no-nested-ternary.js
+++ b/tools/eslint/lib/rules/no-nested-ternary.js
@@ -26,7 +26,7 @@ module.exports = {
ConditionalExpression(node) {
if (node.alternate.type === "ConditionalExpression" ||
node.consequent.type === "ConditionalExpression") {
- context.report(node, "Do not nest ternary expressions.");
+ context.report({ node, message: "Do not nest ternary expressions." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-new-func.js b/tools/eslint/lib/rules/no-new-func.js
index e78bcc0772..17ca7c9f03 100644
--- a/tools/eslint/lib/rules/no-new-func.js
+++ b/tools/eslint/lib/rules/no-new-func.js
@@ -34,7 +34,7 @@ module.exports = {
*/
function validateCallee(node) {
if (node.callee.name === "Function") {
- context.report(node, "The Function constructor is eval.");
+ context.report({ node, message: "The Function constructor is eval." });
}
}
diff --git a/tools/eslint/lib/rules/no-new-object.js b/tools/eslint/lib/rules/no-new-object.js
index d11a2ebc61..d4d77b5514 100644
--- a/tools/eslint/lib/rules/no-new-object.js
+++ b/tools/eslint/lib/rules/no-new-object.js
@@ -26,7 +26,7 @@ module.exports = {
NewExpression(node) {
if (node.callee.name === "Object") {
- context.report(node, "The object literal notation {} is preferrable.");
+ context.report({ node, message: "The object literal notation {} is preferrable." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-new-require.js b/tools/eslint/lib/rules/no-new-require.js
index eed2028de3..f9ea1f84bf 100644
--- a/tools/eslint/lib/rules/no-new-require.js
+++ b/tools/eslint/lib/rules/no-new-require.js
@@ -26,7 +26,7 @@ module.exports = {
NewExpression(node) {
if (node.callee.type === "Identifier" && node.callee.name === "require") {
- context.report(node, "Unexpected use of new with require.");
+ context.report({ node, message: "Unexpected use of new with require." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-new-symbol.js b/tools/eslint/lib/rules/no-new-symbol.js
index c65e7c9df9..5743a4748a 100644
--- a/tools/eslint/lib/rules/no-new-symbol.js
+++ b/tools/eslint/lib/rules/no-new-symbol.js
@@ -28,11 +28,11 @@ module.exports = {
const variable = globalScope.set.get("Symbol");
if (variable && variable.defs.length === 0) {
- variable.references.forEach(function(ref) {
+ variable.references.forEach(ref => {
const node = ref.identifier;
if (node.parent && node.parent.type === "NewExpression") {
- context.report(node, "`Symbol` cannot be called as a constructor.");
+ context.report({ node, message: "`Symbol` cannot be called as a constructor." });
}
});
}
diff --git a/tools/eslint/lib/rules/no-new-wrappers.js b/tools/eslint/lib/rules/no-new-wrappers.js
index 67e69ee0fe..65bf79b87c 100644
--- a/tools/eslint/lib/rules/no-new-wrappers.js
+++ b/tools/eslint/lib/rules/no-new-wrappers.js
@@ -28,7 +28,7 @@ module.exports = {
const wrapperObjects = ["String", "Number", "Boolean", "Math", "JSON"];
if (wrapperObjects.indexOf(node.callee.name) > -1) {
- context.report(node, "Do not use {{fn}} as a constructor.", { fn: node.callee.name });
+ context.report({ node, message: "Do not use {{fn}} as a constructor.", data: { fn: node.callee.name } });
}
}
};
diff --git a/tools/eslint/lib/rules/no-new.js b/tools/eslint/lib/rules/no-new.js
index 639ae22685..e0f45de1bd 100644
--- a/tools/eslint/lib/rules/no-new.js
+++ b/tools/eslint/lib/rules/no-new.js
@@ -28,7 +28,7 @@ module.exports = {
ExpressionStatement(node) {
if (node.expression.type === "NewExpression") {
- context.report(node, "Do not use 'new' for side effects.");
+ context.report({ node, message: "Do not use 'new' for side effects." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-obj-calls.js b/tools/eslint/lib/rules/no-obj-calls.js
index bd9b6ee4f0..0ca8a5effb 100644
--- a/tools/eslint/lib/rules/no-obj-calls.js
+++ b/tools/eslint/lib/rules/no-obj-calls.js
@@ -28,8 +28,8 @@ module.exports = {
if (node.callee.type === "Identifier") {
const name = node.callee.name;
- if (name === "Math" || name === "JSON") {
- context.report(node, "'{{name}}' is not a function.", { name });
+ if (name === "Math" || name === "JSON" || name === "Reflect") {
+ context.report({ node, message: "'{{name}}' is not a function.", data: { name } });
}
}
}
diff --git a/tools/eslint/lib/rules/no-octal-escape.js b/tools/eslint/lib/rules/no-octal-escape.js
index 25a5b022e9..04bfb6aae3 100644
--- a/tools/eslint/lib/rules/no-octal-escape.js
+++ b/tools/eslint/lib/rules/no-octal-escape.js
@@ -36,8 +36,7 @@ module.exports = {
// \0 is actually not considered an octal
if (match[2] !== "0" || typeof match[3] !== "undefined") {
- context.report(node, "Don't use octal: '\\{{octalDigit}}'. Use '\\u....' instead.",
- { octalDigit });
+ context.report({ node, message: "Don't use octal: '\\{{octalDigit}}'. Use '\\u....' instead.", data: { octalDigit } });
}
}
}
diff --git a/tools/eslint/lib/rules/no-octal.js b/tools/eslint/lib/rules/no-octal.js
index ebc5e3252d..58082d0d1c 100644
--- a/tools/eslint/lib/rules/no-octal.js
+++ b/tools/eslint/lib/rules/no-octal.js
@@ -26,7 +26,7 @@ module.exports = {
Literal(node) {
if (typeof node.value === "number" && /^0[0-7]/.test(node.raw)) {
- context.report(node, "Octal literals should not be used.");
+ context.report({ node, message: "Octal literals should not be used." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-param-reassign.js b/tools/eslint/lib/rules/no-param-reassign.js
index c20f340d7a..31f5be3cb2 100644
--- a/tools/eslint/lib/rules/no-param-reassign.js
+++ b/tools/eslint/lib/rules/no-param-reassign.js
@@ -22,7 +22,7 @@ module.exports = {
{
type: "object",
properties: {
- props: {type: "boolean"}
+ props: { type: "boolean" }
},
additionalProperties: false
}
@@ -102,15 +102,9 @@ module.exports = {
(index === 0 || references[index - 1].identifier !== identifier)
) {
if (reference.isWrite()) {
- context.report(
- identifier,
- "Assignment to function parameter '{{name}}'.",
- {name: identifier.name});
+ context.report({ node: identifier, message: "Assignment to function parameter '{{name}}'.", data: { name: identifier.name } });
} else if (props && isModifyingProp(reference)) {
- context.report(
- identifier,
- "Assignment to property of function parameter '{{name}}'.",
- {name: identifier.name});
+ context.report({ node: identifier, message: "Assignment to property of function parameter '{{name}}'.", data: { name: identifier.name } });
}
}
}
diff --git a/tools/eslint/lib/rules/no-path-concat.js b/tools/eslint/lib/rules/no-path-concat.js
index 6b27678aed..1e153a43b6 100644
--- a/tools/eslint/lib/rules/no-path-concat.js
+++ b/tools/eslint/lib/rules/no-path-concat.js
@@ -39,7 +39,7 @@ module.exports = {
(right.type === "Identifier" && MATCHER.test(right.name)))
) {
- context.report(node, "Use path.join() or path.resolve() instead of + to create paths.");
+ context.report({ node, message: "Use path.join() or path.resolve() instead of + to create paths." });
}
}
diff --git a/tools/eslint/lib/rules/no-process-env.js b/tools/eslint/lib/rules/no-process-env.js
index a2ae1fd408..ef58b38e3c 100644
--- a/tools/eslint/lib/rules/no-process-env.js
+++ b/tools/eslint/lib/rules/no-process-env.js
@@ -28,7 +28,7 @@ module.exports = {
propertyName = node.property.name;
if (objectName === "process" && !node.computed && propertyName && propertyName === "env") {
- context.report(node, "Unexpected use of process.env.");
+ context.report({ node, message: "Unexpected use of process.env." });
}
}
diff --git a/tools/eslint/lib/rules/no-process-exit.js b/tools/eslint/lib/rules/no-process-exit.js
index 69023e58e1..c0c2455545 100644
--- a/tools/eslint/lib/rules/no-process-exit.js
+++ b/tools/eslint/lib/rules/no-process-exit.js
@@ -33,7 +33,7 @@ module.exports = {
if (callee.type === "MemberExpression" && callee.object.name === "process" &&
callee.property.name === "exit"
) {
- context.report(node, "Don't use process.exit(); throw an error instead.");
+ context.report({ node, message: "Don't use process.exit(); throw an error instead." });
}
}
diff --git a/tools/eslint/lib/rules/no-proto.js b/tools/eslint/lib/rules/no-proto.js
index 03eb88273c..933746f559 100644
--- a/tools/eslint/lib/rules/no-proto.js
+++ b/tools/eslint/lib/rules/no-proto.js
@@ -29,7 +29,7 @@ module.exports = {
if (node.property &&
(node.property.type === "Identifier" && node.property.name === "__proto__" && !node.computed) ||
(node.property.type === "Literal" && node.property.value === "__proto__")) {
- context.report(node, "The '__proto__' property is deprecated.");
+ context.report({ node, message: "The '__proto__' property is deprecated." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-prototype-builtins.js b/tools/eslint/lib/rules/no-prototype-builtins.js
index e9f4688159..b9f040eaf6 100644
--- a/tools/eslint/lib/rules/no-prototype-builtins.js
+++ b/tools/eslint/lib/rules/no-prototype-builtins.js
@@ -41,7 +41,7 @@ module.exports = {
context.report({
message: "Do not access Object.prototype method '{{prop}}' from target object.",
loc: node.callee.property.loc.start,
- data: {prop: propName},
+ data: { prop: propName },
node
});
}
diff --git a/tools/eslint/lib/rules/no-redeclare.js b/tools/eslint/lib/rules/no-redeclare.js
index fcd4943460..deb896289b 100644
--- a/tools/eslint/lib/rules/no-redeclare.js
+++ b/tools/eslint/lib/rules/no-redeclare.js
@@ -21,7 +21,7 @@ module.exports = {
{
type: "object",
properties: {
- builtinGlobals: {type: "boolean"}
+ builtinGlobals: { type: "boolean" }
},
additionalProperties: false
}
@@ -40,20 +40,15 @@ module.exports = {
* @private
*/
function findVariablesInScope(scope) {
- scope.variables.forEach(function(variable) {
+ scope.variables.forEach(variable => {
const hasBuiltin = options.builtinGlobals && "writeable" in variable;
const count = (hasBuiltin ? 1 : 0) + variable.identifiers.length;
if (count >= 2) {
- variable.identifiers.sort(function(a, b) {
- return a.range[1] - b.range[1];
- });
+ variable.identifiers.sort((a, b) => a.range[1] - b.range[1]);
for (let i = (hasBuiltin ? 0 : 1), l = variable.identifiers.length; i < l; i++) {
- context.report(
- variable.identifiers[i],
- "'{{a}}' is already defined.",
- {a: variable.name});
+ context.report({ node: variable.identifiers[i], message: "'{{a}}' is already defined.", data: { a: variable.name } });
}
}
});
diff --git a/tools/eslint/lib/rules/no-regex-spaces.js b/tools/eslint/lib/rules/no-regex-spaces.js
index c6e26ac398..05ac86e87a 100644
--- a/tools/eslint/lib/rules/no-regex-spaces.js
+++ b/tools/eslint/lib/rules/no-regex-spaces.js
@@ -46,7 +46,7 @@ module.exports = {
context.report({
node,
message: "Spaces are hard to count. Use {{{count}}}.",
- data: {count},
+ data: { count },
fix(fixer) {
return fixer.replaceTextRange(
[valueStart + regexResults.index, valueStart + regexResults.index + count],
diff --git a/tools/eslint/lib/rules/no-restricted-globals.js b/tools/eslint/lib/rules/no-restricted-globals.js
index 07ff8b532d..603a6b2d37 100644
--- a/tools/eslint/lib/rules/no-restricted-globals.js
+++ b/tools/eslint/lib/rules/no-restricted-globals.js
@@ -40,9 +40,9 @@ module.exports = {
* @private
*/
function reportReference(reference) {
- context.report(reference.identifier, "Unexpected use of '{{name}}'.", {
+ context.report({ node: reference.identifier, message: "Unexpected use of '{{name}}'.", data: {
name: reference.identifier.name
- });
+ } });
}
/**
@@ -60,14 +60,14 @@ module.exports = {
const scope = context.getScope();
// Report variables declared elsewhere (ex: variables defined as "global" by eslint)
- scope.variables.forEach(function(variable) {
+ scope.variables.forEach(variable => {
if (!variable.defs.length && isRestricted(variable.name)) {
variable.references.forEach(reportReference);
}
});
// Report variables not declared at all
- scope.through.forEach(function(reference) {
+ scope.through.forEach(reference => {
if (isRestricted(reference.identifier.name)) {
reportReference(reference);
}
diff --git a/tools/eslint/lib/rules/no-restricted-imports.js b/tools/eslint/lib/rules/no-restricted-imports.js
index 87f9af2a64..c245f22a0a 100644
--- a/tools/eslint/lib/rules/no-restricted-imports.js
+++ b/tools/eslint/lib/rules/no-restricted-imports.js
@@ -8,6 +8,16 @@
// Rule Definition
//------------------------------------------------------------------------------
+const ignore = require("ignore");
+
+const arrayOfStrings = {
+ type: "array",
+ items: {
+ type: "string"
+ },
+ uniqueItems: true
+};
+
module.exports = {
meta: {
docs: {
@@ -17,31 +27,55 @@ module.exports = {
},
schema: {
- type: "array",
- items: {
- type: "string"
- },
- uniqueItems: true
+ anyOf: [
+ arrayOfStrings,
+ {
+ type: "array",
+ items: [{
+ type: "object",
+ properties: {
+ paths: arrayOfStrings,
+ patterns: arrayOfStrings
+ },
+ additionalProperties: false
+ }],
+ additionalItems: false
+ }
+ ]
}
},
create(context) {
- const restrictedImports = context.options;
+ const options = Array.isArray(context.options) ? context.options : [];
+ const isStringArray = typeof options[0] !== "object";
+ const restrictedPaths = new Set(isStringArray ? context.options : options[0].paths || []);
+ const restrictedPatterns = isStringArray ? [] : options[0].patterns || [];
// if no imports are restricted we don"t need to check
- if (restrictedImports.length === 0) {
+ if (restrictedPaths.size === 0 && restrictedPatterns.length === 0) {
return {};
}
+ const ig = ignore().add(restrictedPatterns);
+
return {
ImportDeclaration(node) {
if (node && node.source && node.source.value) {
- const value = node.source.value.trim();
+ const importName = node.source.value.trim();
- if (restrictedImports.indexOf(value) !== -1) {
- context.report(node, "'{{importName}}' import is restricted from being used.", {
- importName: value
+ if (restrictedPaths.has(importName)) {
+ context.report({
+ node,
+ message: "'{{importName}}' import is restricted from being used.",
+ data: { importName }
+ });
+ }
+ if (restrictedPatterns.length > 0 && ig.ignores(importName)) {
+ context.report({
+ node,
+ message: "'{{importName}}' import is restricted from being used by a pattern.",
+ data: { importName }
});
}
}
diff --git a/tools/eslint/lib/rules/no-restricted-modules.js b/tools/eslint/lib/rules/no-restricted-modules.js
index 1a46c40a81..3a9634de9e 100644
--- a/tools/eslint/lib/rules/no-restricted-modules.js
+++ b/tools/eslint/lib/rules/no-restricted-modules.js
@@ -8,6 +8,16 @@
// Rule Definition
//------------------------------------------------------------------------------
+const ignore = require("ignore");
+
+const arrayOfStrings = {
+ type: "array",
+ items: {
+ type: "string"
+ },
+ uniqueItems: true
+};
+
module.exports = {
meta: {
docs: {
@@ -17,24 +27,37 @@ module.exports = {
},
schema: {
- type: "array",
- items: {
- type: "string"
- },
- uniqueItems: true
+ anyOf: [
+ arrayOfStrings,
+ {
+ type: "array",
+ items: [{
+ type: "object",
+ properties: {
+ paths: arrayOfStrings,
+ patterns: arrayOfStrings
+ },
+ additionalProperties: false
+ }],
+ additionalItems: false
+ }
+ ]
}
},
create(context) {
+ const options = Array.isArray(context.options) ? context.options : [];
+ const isStringArray = typeof options[0] !== "object";
+ const restrictedPaths = new Set(isStringArray ? context.options : options[0].paths || []);
+ const restrictedPatterns = isStringArray ? [] : options[0].patterns || [];
- // trim restricted module names
- const restrictedModules = context.options;
-
- // if no modules are restricted we don't need to check the CallExpressions
- if (restrictedModules.length === 0) {
+ // if no imports are restricted we don"t need to check
+ if (restrictedPaths.size === 0 && restrictedPatterns.length === 0) {
return {};
}
+ const ig = ignore().add(restrictedPatterns);
+
/**
* Function to check if a node is a string literal.
* @param {ASTNode} node The node to check.
@@ -53,36 +76,30 @@ module.exports = {
return node.callee.type === "Identifier" && node.callee.name === "require";
}
- /**
- * Function to check if a node has an argument that is an restricted module and return its name.
- * @param {ASTNode} node The node to check
- * @returns {undefined|string} restricted module name or undefined if node argument isn't restricted.
- */
- function getRestrictedModuleName(node) {
- let moduleName;
-
- // node has arguments and first argument is string
- if (node.arguments.length && isString(node.arguments[0])) {
- const argumentValue = node.arguments[0].value.trim();
-
- // check if argument value is in restricted modules array
- if (restrictedModules.indexOf(argumentValue) !== -1) {
- moduleName = argumentValue;
- }
- }
-
- return moduleName;
- }
-
return {
CallExpression(node) {
if (isRequireCall(node)) {
- const restrictedModuleName = getRestrictedModuleName(node);
- if (restrictedModuleName) {
- context.report(node, "'{{moduleName}}' module is restricted from being used.", {
- moduleName: restrictedModuleName
- });
+ // node has arguments and first argument is string
+ if (node.arguments.length && isString(node.arguments[0])) {
+ const moduleName = node.arguments[0].value.trim();
+
+ // check if argument value is in restricted modules array
+ if (restrictedPaths.has(moduleName)) {
+ context.report({
+ node,
+ message: "'{{moduleName}}' module is restricted from being used.",
+ data: { moduleName }
+ });
+ }
+
+ if (restrictedPatterns.length > 0 && ig.ignores(moduleName)) {
+ context.report({
+ node,
+ message: "'{{moduleName}}' module is restricted from being used by a pattern.",
+ data: { moduleName }
+ });
+ }
}
}
}
diff --git a/tools/eslint/lib/rules/no-restricted-properties.js b/tools/eslint/lib/rules/no-restricted-properties.js
index f8bd47ba4b..b6c584c57e 100644
--- a/tools/eslint/lib/rules/no-restricted-properties.js
+++ b/tools/eslint/lib/rules/no-restricted-properties.js
@@ -77,9 +77,9 @@ module.exports = {
const propertyName = option.property;
if (typeof objectName === "undefined") {
- globallyRestrictedProperties.set(propertyName, {message: option.message});
+ globallyRestrictedProperties.set(propertyName, { message: option.message });
} else if (typeof propertyName === "undefined") {
- globallyRestrictedObjects.set(objectName, {message: option.message});
+ globallyRestrictedObjects.set(objectName, { message: option.message });
} else {
if (!restrictedProperties.has(objectName)) {
restrictedProperties.set(objectName, new Map());
@@ -109,18 +109,18 @@ module.exports = {
if (matchedObjectProperty) {
const message = matchedObjectProperty.message ? ` ${matchedObjectProperty.message}` : "";
- context.report(node, "'{{objectName}}.{{propertyName}}' is restricted from being used.{{message}}", {
+ context.report({ node, message: "'{{objectName}}.{{propertyName}}' is restricted from being used.{{message}}", data: {
objectName,
propertyName,
message
- });
+ } });
} else if (globalMatchedProperty) {
const message = globalMatchedProperty.message ? ` ${globalMatchedProperty.message}` : "";
- context.report(node, "'{{propertyName}}' is restricted from being used.{{message}}", {
+ context.report({ node, message: "'{{propertyName}}' is restricted from being used.{{message}}", data: {
propertyName,
message
- });
+ } });
}
}
diff --git a/tools/eslint/lib/rules/no-restricted-syntax.js b/tools/eslint/lib/rules/no-restricted-syntax.js
index ab6c36923a..830452d995 100644
--- a/tools/eslint/lib/rules/no-restricted-syntax.js
+++ b/tools/eslint/lib/rules/no-restricted-syntax.js
@@ -22,9 +22,7 @@ module.exports = {
type: "array",
items: [
{
- enum: Object.keys(nodeTypes).map(function(k) {
- return nodeTypes[k];
- })
+ enum: Object.keys(nodeTypes).map(k => nodeTypes[k])
}
],
uniqueItems: true,
@@ -40,10 +38,10 @@ module.exports = {
* @returns {void}
*/
function warn(node) {
- context.report(node, "Using '{{type}}' is not allowed.", node);
+ context.report({ node, message: "Using '{{type}}' is not allowed.", data: node });
}
- return context.options.reduce(function(result, nodeType) {
+ return context.options.reduce((result, nodeType) => {
result[nodeType] = warn;
return result;
diff --git a/tools/eslint/lib/rules/no-return-await.js b/tools/eslint/lib/rules/no-return-await.js
new file mode 100644
index 0000000000..bc0498cb04
--- /dev/null
+++ b/tools/eslint/lib/rules/no-return-await.js
@@ -0,0 +1,94 @@
+/**
+ * @fileoverview Disallows unnecessary `return await`
+ * @author Jordan Harband
+ */
+"use strict";
+
+const astUtils = require("../ast-utils");
+
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+const message = "Redundant use of `await` on a return value.";
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "disallow unnecessary `return await`",
+ category: "Best Practices",
+ recommended: false // TODO: set to true
+ },
+ fixable: false,
+ schema: [
+ ]
+ },
+
+ create(context) {
+
+ /**
+ * Reports a found unnecessary `await` expression.
+ * @param {ASTNode} node The node representing the `await` expression to report
+ * @returns {void}
+ */
+ function reportUnnecessaryAwait(node) {
+ context.report({
+ node: context.getSourceCode().getFirstToken(node),
+ loc: node.loc,
+ message,
+ });
+ }
+
+ /**
+ * Determines whether a thrown error from this node will be caught/handled within this function rather than immediately halting
+ * this function. For example, a statement in a `try` block will always have an error handler. A statement in
+ * a `catch` block will only have an error handler if there is also a `finally` block.
+ * @param {ASTNode} node A node representing a location where an could be thrown
+ * @returns {boolean} `true` if a thrown error will be caught/handled in this function
+ */
+ function hasErrorHandler(node) {
+ let ancestor = node;
+
+ while (!astUtils.isFunction(ancestor) && ancestor.type !== "Program") {
+ if (ancestor.parent.type === "TryStatement" && (ancestor === ancestor.parent.block || ancestor === ancestor.parent.handler && ancestor.parent.finalizer)) {
+ return true;
+ }
+ ancestor = ancestor.parent;
+ }
+ return false;
+ }
+
+ /**
+ * Checks if a node is placed in tail call position. Once `return` arguments (or arrow function expressions) can be a complex expression,
+ * an `await` expression could or could not be unnecessary by the definition of this rule. So we're looking for `await` expressions that are in tail position.
+ * @param {ASTNode} node A node representing the `await` expression to check
+ * @returns {boolean} The checking result
+ */
+ function isInTailCallPosition(node) {
+ if (node.parent.type === "ArrowFunctionExpression") {
+ return true;
+ }
+ if (node.parent.type === "ReturnStatement") {
+ return !hasErrorHandler(node.parent);
+ }
+ if (node.parent.type === "ConditionalExpression" && (node === node.parent.consequent || node === node.parent.alternate)) {
+ return isInTailCallPosition(node.parent);
+ }
+ if (node.parent.type === "LogicalExpression" && node === node.parent.right) {
+ return isInTailCallPosition(node.parent);
+ }
+ if (node.parent.type === "SequenceExpression" && node === node.parent.expressions[node.parent.expressions.length - 1]) {
+ return isInTailCallPosition(node.parent);
+ }
+ return false;
+ }
+
+ return {
+ AwaitExpression(node) {
+ if (isInTailCallPosition(node) && !hasErrorHandler(node)) {
+ reportUnnecessaryAwait(node);
+ }
+ },
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/no-script-url.js b/tools/eslint/lib/rules/no-script-url.js
index fd2f1e8c3e..98f988ff1a 100644
--- a/tools/eslint/lib/rules/no-script-url.js
+++ b/tools/eslint/lib/rules/no-script-url.js
@@ -31,7 +31,7 @@ module.exports = {
const value = node.value.toLowerCase();
if (value.indexOf("javascript:") === 0) {
- context.report(node, "Script URL is a form of eval.");
+ context.report({ node, message: "Script URL is a form of eval." });
}
}
}
diff --git a/tools/eslint/lib/rules/no-self-compare.js b/tools/eslint/lib/rules/no-self-compare.js
index 17ce77a939..54f907f594 100644
--- a/tools/eslint/lib/rules/no-self-compare.js
+++ b/tools/eslint/lib/rules/no-self-compare.js
@@ -31,7 +31,7 @@ module.exports = {
if (operators.indexOf(node.operator) > -1 &&
(node.left.type === "Identifier" && node.right.type === "Identifier" && node.left.name === node.right.name ||
node.left.type === "Literal" && node.right.type === "Literal" && node.left.value === node.right.value)) {
- context.report(node, "Comparing to itself is potentially pointless.");
+ context.report({ node, message: "Comparing to itself is potentially pointless." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-sequences.js b/tools/eslint/lib/rules/no-sequences.js
index 49f20ea43f..67f9d8212f 100644
--- a/tools/eslint/lib/rules/no-sequences.js
+++ b/tools/eslint/lib/rules/no-sequences.js
@@ -101,7 +101,7 @@ module.exports = {
const child = sourceCode.getTokenAfter(node.expressions[0]);
- context.report(node, child.loc.start, "Unexpected use of comma operator.");
+ context.report({ node, loc: child.loc.start, message: "Unexpected use of comma operator." });
}
};
diff --git a/tools/eslint/lib/rules/no-shadow.js b/tools/eslint/lib/rules/no-shadow.js
index 27ea10ef92..e093d48c81 100644
--- a/tools/eslint/lib/rules/no-shadow.js
+++ b/tools/eslint/lib/rules/no-shadow.js
@@ -27,8 +27,8 @@ module.exports = {
{
type: "object",
properties: {
- builtinGlobals: {type: "boolean"},
- hoist: {enum: ["all", "functions", "never"]},
+ builtinGlobals: { type: "boolean" },
+ hoist: { enum: ["all", "functions", "never"] },
allow: {
type: "array",
items: {
diff --git a/tools/eslint/lib/rules/no-sparse-arrays.js b/tools/eslint/lib/rules/no-sparse-arrays.js
index 31bd6f2bbf..3044896c61 100644
--- a/tools/eslint/lib/rules/no-sparse-arrays.js
+++ b/tools/eslint/lib/rules/no-sparse-arrays.js
@@ -33,7 +33,7 @@ module.exports = {
const emptySpot = node.elements.indexOf(null) > -1;
if (emptySpot) {
- context.report(node, "Unexpected comma in middle of array.");
+ context.report({ node, message: "Unexpected comma in middle of array." });
}
}
diff --git a/tools/eslint/lib/rules/no-tabs.js b/tools/eslint/lib/rules/no-tabs.js
index d57ac324c1..19983c57ba 100644
--- a/tools/eslint/lib/rules/no-tabs.js
+++ b/tools/eslint/lib/rules/no-tabs.js
@@ -17,7 +17,7 @@ const regex = /\t/;
module.exports = {
meta: {
docs: {
- description: "disallow tabs in file",
+ description: "disallow all tabs",
category: "Stylistic Issues",
recommended: false
},
@@ -31,14 +31,10 @@ module.exports = {
const match = regex.exec(line);
if (match) {
- context.report(
- node,
- {
- line: index + 1,
- column: match.index + 1
- },
- "Unexpected tab character."
- );
+ context.report({ node, loc: {
+ line: index + 1,
+ column: match.index + 1
+ }, message: "Unexpected tab character." });
}
});
}
diff --git a/tools/eslint/lib/rules/no-ternary.js b/tools/eslint/lib/rules/no-ternary.js
index 2408cd9c39..3e254f6812 100644
--- a/tools/eslint/lib/rules/no-ternary.js
+++ b/tools/eslint/lib/rules/no-ternary.js
@@ -25,7 +25,7 @@ module.exports = {
return {
ConditionalExpression(node) {
- context.report(node, "Ternary operator used.");
+ context.report({ node, message: "Ternary operator used." });
}
};
diff --git a/tools/eslint/lib/rules/no-this-before-super.js b/tools/eslint/lib/rules/no-this-before-super.js
index 80a769a481..c8d5dc4698 100644
--- a/tools/eslint/lib/rules/no-this-before-super.js
+++ b/tools/eslint/lib/rules/no-this-before-super.js
@@ -179,7 +179,7 @@ module.exports = {
return;
}
- codePath.traverseSegments(function(segment, controller) {
+ codePath.traverseSegments((segment, controller) => {
const info = segInfoMap[segment.id];
for (let i = 0; i < info.invalidNodes.length; ++i) {
@@ -236,8 +236,8 @@ module.exports = {
// Update information inside of the loop.
funcInfo.codePath.traverseSegments(
- {first: toSegment, last: fromSegment},
- function(segment, controller) {
+ { first: toSegment, last: fromSegment },
+ (segment, controller) => {
const info = segInfoMap[segment.id];
if (info.superCalled) {
diff --git a/tools/eslint/lib/rules/no-throw-literal.js b/tools/eslint/lib/rules/no-throw-literal.js
index 034361c7a6..0d1f42985f 100644
--- a/tools/eslint/lib/rules/no-throw-literal.js
+++ b/tools/eslint/lib/rules/no-throw-literal.js
@@ -65,10 +65,10 @@ module.exports = {
ThrowStatement(node) {
if (!couldBeError(node.argument)) {
- context.report(node, "Expected an object to be thrown.");
+ context.report({ node, message: "Expected an object to be thrown." });
} else if (node.argument.type === "Identifier") {
if (node.argument.name === "undefined") {
- context.report(node, "Do not throw undefined.");
+ context.report({ node, message: "Do not throw undefined." });
}
}
diff --git a/tools/eslint/lib/rules/no-undef-init.js b/tools/eslint/lib/rules/no-undef-init.js
index ca9f0272ba..9df40e9ceb 100644
--- a/tools/eslint/lib/rules/no-undef-init.js
+++ b/tools/eslint/lib/rules/no-undef-init.js
@@ -41,7 +41,7 @@ module.exports = {
context.report({
node,
message: "It's not necessary to initialize '{{name}}' to undefined.",
- data: {name},
+ data: { name },
fix(fixer) {
if (node.id.type === "ArrayPattern" || node.id.type === "ObjectPattern") {
diff --git a/tools/eslint/lib/rules/no-undef.js b/tools/eslint/lib/rules/no-undef.js
index 2cd2980f84..74a33dd997 100644
--- a/tools/eslint/lib/rules/no-undef.js
+++ b/tools/eslint/lib/rules/no-undef.js
@@ -52,7 +52,7 @@ module.exports = {
"Program:exit"(/* node */) {
const globalScope = context.getScope();
- globalScope.through.forEach(function(ref) {
+ globalScope.through.forEach(ref => {
const identifier = ref.identifier;
if (!considerTypeOf && hasTypeOfOperator(identifier)) {
diff --git a/tools/eslint/lib/rules/no-undefined.js b/tools/eslint/lib/rules/no-undefined.js
index 2aad3d0d1f..18e1d98641 100644
--- a/tools/eslint/lib/rules/no-undefined.js
+++ b/tools/eslint/lib/rules/no-undefined.js
@@ -28,7 +28,7 @@ module.exports = {
const parent = context.getAncestors().pop();
if (!parent || parent.type !== "MemberExpression" || node !== parent.property || parent.computed) {
- context.report(node, "Unexpected use of undefined.");
+ context.report({ node, message: "Unexpected use of undefined." });
}
}
}
diff --git a/tools/eslint/lib/rules/no-underscore-dangle.js b/tools/eslint/lib/rules/no-underscore-dangle.js
index abc5967b53..6803cc68fc 100644
--- a/tools/eslint/lib/rules/no-underscore-dangle.js
+++ b/tools/eslint/lib/rules/no-underscore-dangle.js
@@ -57,9 +57,7 @@ module.exports = {
* @private
*/
function isAllowed(identifier) {
- return ALLOWED_VARIABLES.some(function(ident) {
- return ident === identifier;
- });
+ return ALLOWED_VARIABLES.some(ident => ident === identifier);
}
/**
diff --git a/tools/eslint/lib/rules/no-unexpected-multiline.js b/tools/eslint/lib/rules/no-unexpected-multiline.js
index 5208813dad..bae4833983 100644
--- a/tools/eslint/lib/rules/no-unexpected-multiline.js
+++ b/tools/eslint/lib/rules/no-unexpected-multiline.js
@@ -45,7 +45,7 @@ module.exports = {
}
if (openParen.loc.start.line !== nodeExpressionEnd.loc.end.line) {
- context.report(node, openParen.loc.start, msg, { char: openParen.value });
+ context.report({ node, loc: openParen.loc.start, message: msg, data: { char: openParen.value } });
}
}
@@ -66,7 +66,7 @@ module.exports = {
if (node.tag.loc.end.line === node.quasi.loc.start.line) {
return;
}
- context.report(node, node.loc.start, TAGGED_TEMPLATE_MESSAGE);
+ context.report({ node, loc: node.loc.start, message: TAGGED_TEMPLATE_MESSAGE });
},
CallExpression(node) {
diff --git a/tools/eslint/lib/rules/no-unneeded-ternary.js b/tools/eslint/lib/rules/no-unneeded-ternary.js
index c755f5f4b4..cba83ea481 100644
--- a/tools/eslint/lib/rules/no-unneeded-ternary.js
+++ b/tools/eslint/lib/rules/no-unneeded-ternary.js
@@ -5,6 +5,19 @@
"use strict";
+const astUtils = require("../ast-utils");
+
+// Operators that always result in a boolean value
+const BOOLEAN_OPERATORS = new Set(["==", "===", "!=", "!==", ">", ">=", "<", "<=", "in", "instanceof"]);
+const OPERATOR_INVERSES = {
+ "==": "!=",
+ "!=": "==",
+ "===": "!==",
+ "!==": "==="
+
+ // Operators like < and >= are not true inverses, since both will return false with NaN.
+};
+
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
@@ -27,12 +40,15 @@ module.exports = {
},
additionalProperties: false
}
- ]
+ ],
+
+ fixable: "code"
},
create(context) {
const options = context.options[0] || {};
const defaultAssignment = options.defaultAssignment !== false;
+ const sourceCode = context.getSourceCode();
/**
* Test if the node is a boolean literal
@@ -45,6 +61,34 @@ module.exports = {
}
/**
+ * Creates an expression that represents the boolean inverse of the expression represented by the original node
+ * @param {ASTNode} node A node representing an expression
+ * @returns {string} A string representing an inverted expression
+ */
+ function invertExpression(node) {
+ if (node.type === "BinaryExpression" && Object.prototype.hasOwnProperty.call(OPERATOR_INVERSES, node.operator)) {
+ const operatorToken = sourceCode.getTokensBetween(node.left, node.right).find(token => token.value === node.operator);
+
+ return sourceCode.getText().slice(node.range[0], operatorToken.range[0]) + OPERATOR_INVERSES[node.operator] + sourceCode.getText().slice(operatorToken.range[1], node.range[1]);
+ }
+
+ if (astUtils.getPrecedence(node) < astUtils.getPrecedence({ type: "UnaryExpression" })) {
+ return `!(${astUtils.getParenthesisedText(sourceCode, node)})`;
+ }
+ return `!${astUtils.getParenthesisedText(sourceCode, node)}`;
+ }
+
+ /**
+ * Tests if a given node always evaluates to a boolean value
+ * @param {ASTNode} node - An expression node
+ * @returns {boolean} True if it is determined that the node will always evaluate to a boolean value
+ */
+ function isBooleanExpression(node) {
+ return node.type === "BinaryExpression" && BOOLEAN_OPERATORS.has(node.operator) ||
+ node.type === "UnaryExpression" && node.operator === "!";
+ }
+
+ /**
* Test if the node matches the pattern id ? id : expression
* @param {ASTNode} node - The ConditionalExpression to check.
* @returns {boolean} True if the pattern is matched, and false otherwise
@@ -60,9 +104,34 @@ module.exports = {
ConditionalExpression(node) {
if (isBooleanLiteral(node.alternate) && isBooleanLiteral(node.consequent)) {
- context.report(node, node.consequent.loc.start, "Unnecessary use of boolean literals in conditional expression.");
+ context.report({
+ node,
+ loc: node.consequent.loc.start,
+ message: "Unnecessary use of boolean literals in conditional expression.",
+ fix(fixer) {
+ if (node.consequent.value === node.alternate.value) {
+
+ // Replace `foo ? true : true` with just `true`, but don't replace `foo() ? true : true`
+ return node.test.type === "Identifier" ? fixer.replaceText(node, node.consequent.value.toString()) : null;
+ }
+ if (node.alternate.value) {
+
+ // Replace `foo() ? false : true` with `!(foo())`
+ return fixer.replaceText(node, invertExpression(node.test));
+ }
+
+ // Replace `foo ? true : false` with `foo` if `foo` is guaranteed to be a boolean, or `!!foo` otherwise.
+
+ return fixer.replaceText(node, isBooleanExpression(node.test) ? astUtils.getParenthesisedText(sourceCode, node.test) : `!${invertExpression(node.test)}`);
+ }
+ });
} else if (!defaultAssignment && matchesDefaultAssignment(node)) {
- context.report(node, node.consequent.loc.start, "Unnecessary use of conditional expression for default assignment.");
+ context.report({
+ node,
+ loc: node.consequent.loc.start,
+ message: "Unnecessary use of conditional expression for default assignment.",
+ fix: fixer => fixer.replaceText(node, `${astUtils.getParenthesisedText(sourceCode, node.test)} || ${astUtils.getParenthesisedText(sourceCode, node.alternate)}`)
+ });
}
}
};
diff --git a/tools/eslint/lib/rules/no-unused-expressions.js b/tools/eslint/lib/rules/no-unused-expressions.js
index cdabca204a..548e02f463 100644
--- a/tools/eslint/lib/rules/no-unused-expressions.js
+++ b/tools/eslint/lib/rules/no-unused-expressions.js
@@ -108,7 +108,7 @@ module.exports = {
return {
ExpressionStatement(node) {
if (!isValidExpression(node.expression) && !isDirective(node, context.getAncestors())) {
- context.report(node, "Expected an assignment or function call and instead saw an expression.");
+ context.report({ node, message: "Expected an assignment or function call and instead saw an expression." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-unused-vars.js b/tools/eslint/lib/rules/no-unused-vars.js
index 683176e944..ac8f2ed1c0 100644
--- a/tools/eslint/lib/rules/no-unused-vars.js
+++ b/tools/eslint/lib/rules/no-unused-vars.js
@@ -157,28 +157,6 @@ module.exports = {
}
/**
- * Checks whether a given node is inside of a loop or not.
- *
- * @param {ASTNode} node - A node to check.
- * @returns {boolean} `true` if the node is inside of a loop.
- * @private
- */
- function isInsideOfLoop(node) {
- while (node) {
- if (astUtils.isLoop(node)) {
- return true;
- }
- if (astUtils.isFunction(node)) {
- return false;
- }
-
- node = node.parent;
- }
-
- return false;
- }
-
- /**
* Checks the position of given nodes.
*
* @param {ASTNode} inner - A node which is expected as inside.
@@ -215,7 +193,7 @@ module.exports = {
const granpa = parent.parent;
const refScope = ref.from.variableScope;
const varScope = ref.resolved.scope.variableScope;
- const canBeUsedLater = refScope !== varScope || isInsideOfLoop(id);
+ const canBeUsedLater = refScope !== varScope || astUtils.isInLoop(id);
/*
* Inherits the previous node if this reference is in the node.
@@ -390,15 +368,11 @@ module.exports = {
* @private
*/
function isUsedVariable(variable) {
- const functionNodes = variable.defs.filter(function(def) {
- return def.type === "FunctionName";
- }).map(function(def) {
- return def.node;
- }),
+ const functionNodes = variable.defs.filter(def => def.type === "FunctionName").map(def => def.node),
isFunctionDefinition = functionNodes.length > 0;
let rhsNode = null;
- return variable.references.some(function(ref) {
+ return variable.references.some(ref => {
if (isForInRef(ref)) {
return true;
}
diff --git a/tools/eslint/lib/rules/no-use-before-define.js b/tools/eslint/lib/rules/no-use-before-define.js
index 01c899ca39..ea1cf301f2 100644
--- a/tools/eslint/lib/rules/no-use-before-define.js
+++ b/tools/eslint/lib/rules/no-use-before-define.js
@@ -29,7 +29,7 @@ function parseOptions(options) {
classes = options.classes !== false;
}
- return {functions, classes};
+ return { functions, classes };
}
/**
@@ -154,8 +154,8 @@ module.exports = {
{
type: "object",
properties: {
- functions: {type: "boolean"},
- classes: {type: "boolean"}
+ functions: { type: "boolean" },
+ classes: { type: "boolean" }
},
additionalProperties: false
}
@@ -187,7 +187,7 @@ module.exports = {
* @private
*/
function findVariablesInScope(scope) {
- scope.references.forEach(function(reference) {
+ scope.references.forEach(reference => {
const variable = reference.resolved;
// Skips when the reference is:
diff --git a/tools/eslint/lib/rules/no-useless-call.js b/tools/eslint/lib/rules/no-useless-call.js
index 2be665992a..eb67bcb3b2 100644
--- a/tools/eslint/lib/rules/no-useless-call.js
+++ b/tools/eslint/lib/rules/no-useless-call.js
@@ -96,10 +96,7 @@ module.exports = {
const thisArg = node.arguments[0];
if (isValidThisArg(expectedThis, thisArg, sourceCode)) {
- context.report(
- node,
- "unnecessary '.{{name}}()'.",
- {name: node.callee.property.name});
+ context.report({ node, message: "unnecessary '.{{name}}()'.", data: { name: node.callee.property.name } });
}
}
};
diff --git a/tools/eslint/lib/rules/no-useless-concat.js b/tools/eslint/lib/rules/no-useless-concat.js
index d9cf6a2c35..ed0ef66a24 100644
--- a/tools/eslint/lib/rules/no-useless-concat.js
+++ b/tools/eslint/lib/rules/no-useless-concat.js
@@ -93,10 +93,11 @@ module.exports = {
operatorToken = sourceCode.getTokenAfter(operatorToken);
}
- context.report(
+ context.report({
node,
- operatorToken.loc.start,
- "Unexpected string concatenation of literals.");
+ loc: operatorToken.loc.start,
+ message: "Unexpected string concatenation of literals."
+ });
}
}
};
diff --git a/tools/eslint/lib/rules/no-useless-escape.js b/tools/eslint/lib/rules/no-useless-escape.js
index 629a52a7ec..b9266bbbaf 100644
--- a/tools/eslint/lib/rules/no-useless-escape.js
+++ b/tools/eslint/lib/rules/no-useless-escape.js
@@ -5,57 +5,70 @@
"use strict";
+const astUtils = require("../ast-utils");
+
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
-const VALID_STRING_ESCAPES = [
- "\\",
- "n",
- "r",
- "v",
- "t",
- "b",
- "f",
- "u",
- "x",
- "\n",
- "\r"
-];
-
-const VALID_REGEX_ESCAPES = [
- "\\",
- ".",
- "-",
- "^",
- "$",
- "*",
- "+",
- "?",
- "{",
- "}",
- "[",
- "]",
- "|",
- "(",
- ")",
- "b",
- "B",
- "c",
- "d",
- "D",
- "f",
- "n",
- "r",
- "s",
- "S",
- "t",
- "v",
- "w",
- "W",
- "x",
- "u"
-];
+/**
+* Returns the union of two sets.
+* @param {Set} setA The first set
+* @param {Set} setB The second set
+* @returns {Set} The union of the two sets
+*/
+function union(setA, setB) {
+ return new Set(function *() {
+ yield* setA;
+ yield* setB;
+ }());
+}
+
+const VALID_STRING_ESCAPES = new Set("\\nrvtbfux\n\r\u2028\u2029");
+const REGEX_GENERAL_ESCAPES = new Set("\\bcdDfnrsStvwWxu0123456789]");
+const REGEX_NON_CHARCLASS_ESCAPES = union(REGEX_GENERAL_ESCAPES, new Set("^/.$*+?[{}|()B"));
+
+/**
+* Parses a regular expression into a list of characters with character class info.
+* @param {string} regExpText The raw text used to create the regular expression
+* @returns {Object[]} A list of characters, each with info on escaping and whether they're in a character class.
+* @example
+*
+* parseRegExp('a\\b[cd-]')
+*
+* returns:
+* [
+* {text: 'a', index: 0, escaped: false, inCharClass: false, startsCharClass: false, endsCharClass: false},
+* {text: 'b', index: 2, escaped: true, inCharClass: false, startsCharClass: false, endsCharClass: false},
+* {text: 'c', index: 4, escaped: false, inCharClass: true, startsCharClass: true, endsCharClass: false},
+* {text: 'd', index: 5, escaped: false, inCharClass: true, startsCharClass: false, endsCharClass: false},
+* {text: '-', index: 6, escaped: false, inCharClass: true, startsCharClass: false, endsCharClass: false}
+* ]
+*/
+function parseRegExp(regExpText) {
+ const charList = [];
+
+ regExpText.split("").reduce((state, char, index) => {
+ if (!state.escapeNextChar) {
+ if (char === "\\") {
+ return Object.assign(state, { escapeNextChar: true });
+ }
+ if (char === "[" && !state.inCharClass) {
+ return Object.assign(state, { inCharClass: true, startingCharClass: true });
+ }
+ if (char === "]" && state.inCharClass) {
+ if (charList.length && charList[charList.length - 1].inCharClass) {
+ charList[charList.length - 1].endsCharClass = true;
+ }
+ return Object.assign(state, { inCharClass: false, startingCharClass: false });
+ }
+ }
+ charList.push({ text: char, index, escaped: state.escapeNextChar, inCharClass: state.inCharClass, startsCharClass: state.startingCharClass, endsCharClass: false });
+ return Object.assign(state, { escapeNextChar: false, startingCharClass: false });
+ }, { escapeNextChar: false, inCharClass: false, startingCharClass: false });
+
+ return charList;
+}
module.exports = {
meta: {
@@ -69,20 +82,36 @@ module.exports = {
},
create(context) {
+ const sourceCode = context.getSourceCode();
+
+ /**
+ * Reports a node
+ * @param {ASTNode} node The node to report
+ * @param {number} startOffset The backslash's offset from the start of the node
+ * @param {string} character The uselessly escaped character (not including the backslash)
+ * @returns {void}
+ */
+ function report(node, startOffset, character) {
+ context.report({
+ node,
+ loc: astUtils.getLocationFromRangeIndex(sourceCode, astUtils.getRangeIndexFromLocation(sourceCode, node.loc.start) + startOffset),
+ message: "Unnecessary escape character: \\{{character}}.",
+ data: { character }
+ });
+ }
/**
- * Checks if the escape character in given slice is unnecessary.
+ * Checks if the escape character in given string slice is unnecessary.
*
* @private
- * @param {string[]} escapes - list of valid escapes
* @param {ASTNode} node - node to validate.
* @param {string} match - string slice to validate.
* @returns {void}
*/
- function validate(escapes, node, match) {
+ function validateString(node, match) {
const isTemplateElement = node.type === "TemplateElement";
const escapedChar = match[0][1];
- let isUnnecessaryEscape = escapes.indexOf(escapedChar) === -1;
+ let isUnnecessaryEscape = !VALID_STRING_ESCAPES.has(escapedChar);
let isQuoteEscape;
if (isTemplateElement) {
@@ -105,17 +134,7 @@ module.exports = {
}
if (isUnnecessaryEscape && !isQuoteEscape) {
- context.report({
- node,
- loc: {
- line: node.loc.start.line,
- column: node.loc.start.column + match.index
- },
- message: "Unnecessary escape character: {{character}}.",
- data: {
- character: match[0]
- }
- });
+ report(node, match.index + 1, match[0].slice(1));
}
}
@@ -127,10 +146,12 @@ module.exports = {
*/
function check(node) {
const isTemplateElement = node.type === "TemplateElement";
- const value = isTemplateElement ? node.value.raw : node.raw;
- const pattern = /\\[^\d]/g;
- let nodeEscapes,
- match;
+
+ if (isTemplateElement && node.parent && node.parent.parent && node.parent.parent.type === "TaggedTemplateExpression") {
+
+ // Don't report tagged template literals, because the backslash character is accessible to the tag function.
+ return;
+ }
if (typeof node.value === "string" || isTemplateElement) {
@@ -138,20 +159,46 @@ module.exports = {
* JSXAttribute doesn't have any escape sequence: https://facebook.github.io/jsx/.
* In addition, backticks are not supported by JSX yet: https://github.com/facebook/jsx/issues/25.
*/
- if (node.parent.type === "JSXAttribute") {
+ if (node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement") {
return;
}
- nodeEscapes = VALID_STRING_ESCAPES;
+ const value = isTemplateElement ? node.value.raw : node.raw.slice(1, -1);
+ const pattern = /\\[^\d]/g;
+ let match;
+
+ while ((match = pattern.exec(value))) {
+ validateString(node, match);
+ }
} else if (node.regex) {
- nodeEscapes = VALID_REGEX_ESCAPES;
- } else {
- return;
- }
+ parseRegExp(node.regex.pattern)
- while ((match = pattern.exec(value))) {
- validate(nodeEscapes, node, match);
+ /*
+ * The '-' character is a special case, because it's only valid to escape it if it's in a character
+ * class, and is not at either edge of the character class. To account for this, don't consider '-'
+ * characters to be valid in general, and filter out '-' characters that appear in the middle of a
+ * character class.
+ */
+ .filter(charInfo => !(charInfo.text === "-" && charInfo.inCharClass && !charInfo.startsCharClass && !charInfo.endsCharClass))
+
+ /*
+ * The '^' character is also a special case; it must always be escaped outside of character classes, but
+ * it only needs to be escaped in character classes if it's at the beginning of the character class. To
+ * account for this, consider it to be a valid escape character outside of character classes, and filter
+ * out '^' characters that appear at the start of a character class.
+ */
+ .filter(charInfo => !(charInfo.text === "^" && charInfo.startsCharClass))
+
+ // Filter out characters that aren't escaped.
+ .filter(charInfo => charInfo.escaped)
+
+ // Filter out characters that are valid to escape, based on their position in the regular expression.
+ .filter(charInfo => !(charInfo.inCharClass ? REGEX_GENERAL_ESCAPES : REGEX_NON_CHARCLASS_ESCAPES).has(charInfo.text))
+
+ // Report all the remaining characters.
+ .forEach(charInfo => report(node, charInfo.index, charInfo.text));
}
+
}
return {
diff --git a/tools/eslint/lib/rules/no-useless-return.js b/tools/eslint/lib/rules/no-useless-return.js
new file mode 100644
index 0000000000..e2a6da0318
--- /dev/null
+++ b/tools/eslint/lib/rules/no-useless-return.js
@@ -0,0 +1,293 @@
+/**
+ * @fileoverview Disallow redundant return statements
+ * @author Teddy Katz
+ */
+"use strict";
+
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = require("../ast-utils");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Adds all elements of 2nd argument into 1st argument.
+ *
+ * @param {Array} array - The destination array to add.
+ * @param {Array} elements - The source array to add.
+ * @returns {void}
+ */
+const pushAll = Function.apply.bind(Array.prototype.push);
+
+/**
+ * Removes the given element from the array.
+ *
+ * @param {Array} array - The source array to remove.
+ * @param {any} element - The target item to remove.
+ * @returns {void}
+ */
+function remove(array, element) {
+ const index = array.indexOf(element);
+
+ if (index !== -1) {
+ array.splice(index, 1);
+ }
+}
+
+/**
+ * Checks whether it can remove the given return statement or not.
+ *
+ * @param {ASTNode} node - The return statement node to check.
+ * @returns {boolean} `true` if the node is removeable.
+ */
+function isRemovable(node) {
+ const parent = node.parent;
+
+ return (
+ parent.type === "Program" ||
+ parent.type === "BlockStatement" ||
+ parent.type === "SwitchCase"
+ );
+}
+
+/**
+ * Checks whether the given return statement is in a `finally` block or not.
+ *
+ * @param {ASTNode} node - The return statement node to check.
+ * @returns {boolean} `true` if the node is in a `finally` block.
+ */
+function isInFinally(node) {
+ while (node && node.parent && !astUtils.isFunction(node)) {
+ if (node.parent.type === "TryStatement" && node.parent.finalizer === node) {
+ return true;
+ }
+
+ node = node.parent;
+ }
+
+ return false;
+}
+
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "disallow redundant return statements",
+ category: "Best Practices",
+ recommended: false
+ },
+ fixable: "code",
+ schema: []
+ },
+
+ create(context) {
+ const segmentInfoMap = new WeakMap();
+ const usedUnreachableSegments = new WeakSet();
+ let scopeInfo = null;
+
+ /**
+ * Checks whether the given segment is terminated by a return statement or not.
+ *
+ * @param {CodePathSegment} segment - The segment to check.
+ * @returns {boolean} `true` if the segment is terminated by a return statement, or if it's still a part of unreachable.
+ */
+ function isReturned(segment) {
+ const info = segmentInfoMap.get(segment);
+
+ return !info || info.returned;
+ }
+
+ /**
+ * Collects useless return statements from the given previous segments.
+ *
+ * A previous segment may be an unreachable segment.
+ * In that case, the information object of the unreachable segment is not
+ * initialized because `onCodePathSegmentStart` event is not notified for
+ * unreachable segments.
+ * This goes to the previous segments of the unreachable segment recursively
+ * if the unreachable segment was generated by a return statement. Otherwise,
+ * this ignores the unreachable segment.
+ *
+ * This behavior would simulate code paths for the case that the return
+ * statement does not exist.
+ *
+ * @param {ASTNode[]} uselessReturns - The collected return statements.
+ * @param {CodePathSegment[]} prevSegments - The previous segments to traverse.
+ * @param {WeakSet<CodePathSegment>} [traversedSegments] A set of segments that have already been traversed in this call
+ * @returns {ASTNode[]} `uselessReturns`.
+ */
+ function getUselessReturns(uselessReturns, prevSegments, traversedSegments) {
+ if (!traversedSegments) {
+ traversedSegments = new WeakSet();
+ }
+ for (const segment of prevSegments) {
+ if (!segment.reachable) {
+ if (!traversedSegments.has(segment)) {
+ traversedSegments.add(segment);
+ getUselessReturns(
+ uselessReturns,
+ segment.allPrevSegments.filter(isReturned),
+ traversedSegments
+ );
+ }
+ continue;
+ }
+
+ pushAll(uselessReturns, segmentInfoMap.get(segment).uselessReturns);
+ }
+
+ return uselessReturns;
+ }
+
+ /**
+ * Removes the return statements on the given segment from the useless return
+ * statement list.
+ *
+ * This segment may be an unreachable segment.
+ * In that case, the information object of the unreachable segment is not
+ * initialized because `onCodePathSegmentStart` event is not notified for
+ * unreachable segments.
+ * This goes to the previous segments of the unreachable segment recursively
+ * if the unreachable segment was generated by a return statement. Otherwise,
+ * this ignores the unreachable segment.
+ *
+ * This behavior would simulate code paths for the case that the return
+ * statement does not exist.
+ *
+ * @param {CodePathSegment} segment - The segment to get return statements.
+ * @returns {void}
+ */
+ function markReturnStatementsOnSegmentAsUsed(segment) {
+ if (!segment.reachable) {
+ usedUnreachableSegments.add(segment);
+ segment.allPrevSegments
+ .filter(isReturned)
+ .filter(prevSegment => !usedUnreachableSegments.has(prevSegment))
+ .forEach(markReturnStatementsOnSegmentAsUsed);
+ return;
+ }
+
+ const info = segmentInfoMap.get(segment);
+
+ for (const node of info.uselessReturns) {
+ remove(scopeInfo.uselessReturns, node);
+ }
+ info.uselessReturns = [];
+ }
+
+ /**
+ * Removes the return statements on the current segments from the useless
+ * return statement list.
+ *
+ * This function will be called at every statement except FunctionDeclaration,
+ * BlockStatement, and BreakStatement.
+ *
+ * - FunctionDeclarations are always executed whether it's returned or not.
+ * - BlockStatements do nothing.
+ * - BreakStatements go the next merely.
+ *
+ * @returns {void}
+ */
+ function markReturnStatementsOnCurrentSegmentsAsUsed() {
+ scopeInfo
+ .codePath
+ .currentSegments
+ .forEach(markReturnStatementsOnSegmentAsUsed);
+ }
+
+ //----------------------------------------------------------------------
+ // Public
+ //----------------------------------------------------------------------
+
+ return {
+
+ // Makes and pushs a new scope information.
+ onCodePathStart(codePath) {
+ scopeInfo = {
+ upper: scopeInfo,
+ uselessReturns: [],
+ codePath,
+ };
+ },
+
+ // Reports useless return statements if exist.
+ onCodePathEnd() {
+ for (const node of scopeInfo.uselessReturns) {
+ context.report({
+ node,
+ loc: node.loc,
+ message: "Unnecessary return statement.",
+ fix(fixer) {
+ return isRemovable(node) ? fixer.remove(node) : null;
+ },
+ });
+ }
+
+ scopeInfo = scopeInfo.upper;
+ },
+
+ // Initializes segments.
+ // NOTE: This event is notified for only reachable segments.
+ onCodePathSegmentStart(segment) {
+ const info = {
+ uselessReturns: getUselessReturns([], segment.allPrevSegments),
+ returned: false,
+ };
+
+ // Stores the info.
+ segmentInfoMap.set(segment, info);
+ },
+
+ // Adds ReturnStatement node to check whether it's useless or not.
+ ReturnStatement(node) {
+ if (node.argument) {
+ markReturnStatementsOnCurrentSegmentsAsUsed();
+ }
+ if (node.argument || astUtils.isInLoop(node) || isInFinally(node)) {
+ return;
+ }
+
+ for (const segment of scopeInfo.codePath.currentSegments) {
+ const info = segmentInfoMap.get(segment);
+
+ if (info) {
+ info.uselessReturns.push(node);
+ info.returned = true;
+ }
+ }
+ scopeInfo.uselessReturns.push(node);
+ },
+
+ // Registers for all statement nodes except FunctionDeclaration, BlockStatement, BreakStatement.
+ // Removes return statements of the current segments from the useless return statement list.
+ ClassDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ContinueStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ DebuggerStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ DoWhileStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ EmptyStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ExpressionStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ForInStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ForOfStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ForStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ IfStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ImportDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ LabeledStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ SwitchStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ThrowStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ TryStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ VariableDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ WhileStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ WithStatement: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ExportNamedDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ExportDefaultDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ ExportAllDeclaration: markReturnStatementsOnCurrentSegmentsAsUsed,
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/no-var.js b/tools/eslint/lib/rules/no-var.js
index 0e98170e65..3c22f009c6 100644
--- a/tools/eslint/lib/rules/no-var.js
+++ b/tools/eslint/lib/rules/no-var.js
@@ -6,9 +6,66 @@
"use strict";
//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = require("../ast-utils");
+
+//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
+/**
+ * Finds the nearest function scope or global scope walking up the scope
+ * hierarchy.
+ *
+ * @param {escope.Scope} scope - The scope to traverse.
+ * @returns {escope.Scope} a function scope or global scope containing the given
+ * scope.
+ */
+function getEnclosingFunctionScope(scope) {
+ while (scope.type !== "function" && scope.type !== "global") {
+ scope = scope.upper;
+ }
+ return scope;
+}
+
+/**
+ * Checks whether the given variable has any references from a more specific
+ * function expression (i.e. a closure).
+ *
+ * @param {escope.Variable} variable - A variable to check.
+ * @returns {boolean} `true` if the variable is used from a closure.
+ */
+function isReferencedInClosure(variable) {
+ const enclosingFunctionScope = getEnclosingFunctionScope(variable.scope);
+
+ return variable.references.some(reference =>
+ getEnclosingFunctionScope(reference.from) !== enclosingFunctionScope);
+}
+
+/**
+ * Checks whether the given node is the assignee of a loop.
+ *
+ * @param {ASTNode} node - A VariableDeclaration node to check.
+ * @returns {boolean} `true` if the declaration is assigned as part of loop
+ * iteration.
+ */
+function isLoopAssignee(node) {
+ return (node.parent.type === "ForOfStatement" || node.parent.type === "ForInStatement") &&
+ node === node.parent.left;
+}
+
+/**
+ * Checks whether the given variable declaration is immediately initialized.
+ *
+ * @param {ASTNode} node - A VariableDeclaration node to check.
+ * @returns {boolean} `true` if the declaration has an initializer.
+ */
+function isDeclarationInitialized(node) {
+ return node.declarations.every(declarator => declarator.init !== null);
+}
+
const SCOPE_NODE_TYPE = /^(?:Program|BlockStatement|SwitchStatement|ForStatement|ForInStatement|ForOfStatement)$/;
/**
@@ -97,6 +154,8 @@ module.exports = {
* - A variable is declared on a SwitchCase node.
* - A variable is redeclared.
* - A variable is used from outside the scope.
+ * - A variable is used from a closure within a loop.
+ * - A variable might be used before it is assigned within a loop.
*
* ## A variable is declared on a SwitchCase node.
*
@@ -115,6 +174,25 @@ module.exports = {
* The language spec disallows accesses from outside of the scope for
* `let` declarations. Those variables would cause reference errors.
*
+ * ## A variable is used from a closure within a loop.
+ *
+ * A `var` declaration within a loop shares the same variable instance
+ * across all loop iterations, while a `let` declaration creates a new
+ * instance for each iteration. This means if a variable in a loop is
+ * referenced by any closure, changing it from `var` to `let` would
+ * change the behavior in a way that is generally unsafe.
+ *
+ * ## A variable might be used before it is assigned within a loop.
+ *
+ * Within a loop, a `let` declaration without an initializer will be
+ * initialized to null, while a `var` declaration will retain its value
+ * from the previous iteration, so it is only safe to change `var` to
+ * `let` if we can statically determine that the variable is always
+ * assigned a value before its first access in the loop body. To keep
+ * the implementation simple, we only convert `var` to `let` within
+ * loops when the variable is a loop assignee or the declaration has an
+ * initializer.
+ *
* @param {ASTNode} node - A variable declaration node to check.
* @returns {boolean} `true` if it can fix the node.
*/
@@ -122,11 +200,22 @@ module.exports = {
const variables = context.getDeclaredVariables(node);
const scopeNode = getScopeNode(node);
- return !(
- node.parent.type === "SwitchCase" ||
- variables.some(isRedeclared) ||
- variables.some(isUsedFromOutsideOf(scopeNode))
- );
+ if (node.parent.type === "SwitchCase" ||
+ variables.some(isRedeclared) ||
+ variables.some(isUsedFromOutsideOf(scopeNode))) {
+ return false;
+ }
+
+ if (astUtils.isInLoop(node)) {
+ if (variables.some(isReferencedInClosure)) {
+ return false;
+ }
+ if (!isLoopAssignee(node) && !isDeclarationInitialized(node)) {
+ return false;
+ }
+ }
+
+ return true;
}
/**
diff --git a/tools/eslint/lib/rules/no-void.js b/tools/eslint/lib/rules/no-void.js
index 16a36fb3a5..5202fa49a8 100644
--- a/tools/eslint/lib/rules/no-void.js
+++ b/tools/eslint/lib/rules/no-void.js
@@ -28,7 +28,7 @@ module.exports = {
return {
UnaryExpression(node) {
if (node.operator === "void") {
- context.report(node, "Expected 'undefined' and instead saw 'void'.");
+ context.report({ node, message: "Expected 'undefined' and instead saw 'void'." });
}
}
};
diff --git a/tools/eslint/lib/rules/no-warning-comments.js b/tools/eslint/lib/rules/no-warning-comments.js
index 511bd9bb48..bda4308686 100644
--- a/tools/eslint/lib/rules/no-warning-comments.js
+++ b/tools/eslint/lib/rules/no-warning-comments.js
@@ -54,7 +54,7 @@ module.exports = {
* @returns {RegExp} The term converted to a RegExp
*/
function convertToRegExp(term) {
- const escaped = term.replace(/[-\/\\$\^*+?.()|\[\]{}]/g, "\\$&");
+ const escaped = term.replace(/[-/\\$^*+?.()|[\]{}]/g, "\\$&");
let prefix;
/*
@@ -95,7 +95,7 @@ module.exports = {
function commentContainsWarningTerm(comment) {
const matches = [];
- warningRegExps.forEach(function(regex, index) {
+ warningRegExps.forEach((regex, index) => {
if (regex.test(comment)) {
matches.push(warningTerms[index]);
}
@@ -116,7 +116,7 @@ module.exports = {
const matches = commentContainsWarningTerm(node.value);
- matches.forEach(function(matchedTerm) {
+ matches.forEach(matchedTerm => {
context.report({
node,
message: "Unexpected '{{matchedTerm}}' comment.",
diff --git a/tools/eslint/lib/rules/no-with.js b/tools/eslint/lib/rules/no-with.js
index 6d5bfd8e61..be9e346360 100644
--- a/tools/eslint/lib/rules/no-with.js
+++ b/tools/eslint/lib/rules/no-with.js
@@ -24,7 +24,7 @@ module.exports = {
return {
WithStatement(node) {
- context.report(node, "Unexpected use of 'with' statement.");
+ context.report({ node, message: "Unexpected use of 'with' statement." });
}
};
diff --git a/tools/eslint/lib/rules/object-curly-newline.js b/tools/eslint/lib/rules/object-curly-newline.js
index 3ba786a6f1..88fc79463c 100644
--- a/tools/eslint/lib/rules/object-curly-newline.js
+++ b/tools/eslint/lib/rules/object-curly-newline.js
@@ -61,7 +61,7 @@ function normalizeOptionValue(value) {
multiline = true;
}
- return {multiline, minProperties};
+ return { multiline, minProperties };
}
/**
@@ -80,7 +80,7 @@ function normalizeOptions(options) {
const value = normalizeOptionValue(options);
- return {ObjectExpression: value, ObjectPattern: value};
+ return { ObjectExpression: value, ObjectPattern: value };
}
//------------------------------------------------------------------------------
diff --git a/tools/eslint/lib/rules/object-property-newline.js b/tools/eslint/lib/rules/object-property-newline.js
index f06cb41843..a64420be93 100644
--- a/tools/eslint/lib/rules/object-property-newline.js
+++ b/tools/eslint/lib/rules/object-property-newline.js
@@ -27,7 +27,9 @@ module.exports = {
},
additionalProperties: false
}
- ]
+ ],
+
+ fixable: "whitespace"
},
create(context) {
@@ -61,7 +63,18 @@ module.exports = {
context.report({
node,
loc: firstTokenOfCurrentProperty.loc.start,
- message: errorMessage
+ message: errorMessage,
+ fix(fixer) {
+ const comma = sourceCode.getTokenBefore(firstTokenOfCurrentProperty);
+ const rangeAfterComma = [comma.range[1], firstTokenOfCurrentProperty.range[0]];
+
+ // Don't perform a fix if there are any comments between the comma and the next property.
+ if (sourceCode.text.slice(rangeAfterComma[0], rangeAfterComma[1]).trim()) {
+ return null;
+ }
+
+ return fixer.replaceTextRange(rangeAfterComma, "\n");
+ }
});
}
}
diff --git a/tools/eslint/lib/rules/object-shorthand.js b/tools/eslint/lib/rules/object-shorthand.js
index 3ef782461a..43997f9069 100644
--- a/tools/eslint/lib/rules/object-shorthand.js
+++ b/tools/eslint/lib/rules/object-shorthand.js
@@ -77,6 +77,9 @@ module.exports = {
},
avoidQuotes: {
type: "boolean"
+ },
+ avoidExplicitReturnArrows: {
+ type: "boolean"
}
},
additionalProperties: false
@@ -100,6 +103,8 @@ module.exports = {
const PARAMS = context.options[1] || {};
const IGNORE_CONSTRUCTORS = PARAMS.ignoreConstructors;
const AVOID_QUOTES = PARAMS.avoidQuotes;
+ const AVOID_EXPLICIT_RETURN_ARROWS = !!PARAMS.avoidExplicitReturnArrows;
+ const sourceCode = context.getSourceCode();
//--------------------------------------------------------------------------
// Helpers
@@ -188,7 +193,7 @@ module.exports = {
// We have at least 1 shorthand property
if (shorthandProperties.length > 0) {
- context.report(node, "Unexpected mix of shorthand and non-shorthand properties.");
+ context.report({ node, message: "Unexpected mix of shorthand and non-shorthand properties." });
} else if (checkRedundancy) {
// If all properties of the object contain a method or value with a name matching it's key,
@@ -196,18 +201,143 @@ module.exports = {
const canAlwaysUseShorthand = properties.every(isRedundant);
if (canAlwaysUseShorthand) {
- context.report(node, "Expected shorthand for all properties.");
+ context.report({ node, message: "Expected shorthand for all properties." });
}
}
}
}
}
+ /**
+ * Fixes a FunctionExpression node by making it into a shorthand property.
+ * @param {SourceCodeFixer} fixer The fixer object
+ * @param {ASTNode} node A `Property` node that has a `FunctionExpression` or `ArrowFunctionExpression` as its value
+ * @returns {Object} A fix for this node
+ */
+ function makeFunctionShorthand(fixer, node) {
+ const firstKeyToken = node.computed ? sourceCode.getTokens(node).find(token => token.value === "[") : sourceCode.getFirstToken(node.key);
+ const lastKeyToken = node.computed ? sourceCode.getTokensBetween(node.key, node.value).find(token => token.value === "]") : sourceCode.getLastToken(node.key);
+ const keyText = sourceCode.text.slice(firstKeyToken.range[0], lastKeyToken.range[1]);
+ let keyPrefix = "";
+
+ if (node.value.generator) {
+ keyPrefix = "*";
+ } else if (node.value.async) {
+ keyPrefix = "async ";
+ }
+
+ if (node.value.type === "FunctionExpression") {
+ const functionToken = sourceCode.getTokens(node.value).find(token => token.type === "Keyword" && token.value === "function");
+ const tokenBeforeParams = node.value.generator ? sourceCode.getTokenAfter(functionToken) : functionToken;
+
+ return fixer.replaceTextRange([firstKeyToken.range[0], tokenBeforeParams.range[1]], keyPrefix + keyText);
+ } else {
+ const arrowToken = sourceCode.getTokens(node.value).find(token => token.value === "=>");
+ const tokenBeforeArrow = sourceCode.getTokenBefore(arrowToken);
+ const hasParensAroundParameters = tokenBeforeArrow.type === "Punctuator" && tokenBeforeArrow.value === ")";
+ const oldParamText = sourceCode.text.slice(sourceCode.getFirstToken(node.value, node.value.async ? 1 : 0).range[0], tokenBeforeArrow.range[1]);
+ const newParamText = hasParensAroundParameters ? oldParamText : `(${oldParamText})`;
+
+ return fixer.replaceTextRange([firstKeyToken.range[0], arrowToken.range[1]], keyPrefix + keyText + newParamText);
+ }
+ }
+
+ /**
+ * Fixes a FunctionExpression node by making it into a longform property.
+ * @param {SourceCodeFixer} fixer The fixer object
+ * @param {ASTNode} node A `Property` node that has a `FunctionExpression` as its value
+ * @returns {Object} A fix for this node
+ */
+ function makeFunctionLongform(fixer, node) {
+ const firstKeyToken = node.computed ? sourceCode.getTokens(node).find(token => token.value === "[") : sourceCode.getFirstToken(node.key);
+ const lastKeyToken = node.computed ? sourceCode.getTokensBetween(node.key, node.value).find(token => token.value === "]") : sourceCode.getLastToken(node.key);
+ const keyText = sourceCode.text.slice(firstKeyToken.range[0], lastKeyToken.range[1]);
+ let functionHeader = "function";
+
+ if (node.value.generator) {
+ functionHeader = "function*";
+ } else if (node.value.async) {
+ functionHeader = "async function";
+ }
+
+ return fixer.replaceTextRange([node.range[0], lastKeyToken.range[1]], `${keyText}: ${functionHeader}`);
+ }
+
+ /*
+ * To determine whether a given arrow function has a lexical identifier (`this`, `arguments`, `super`, or `new.target`),
+ * create a stack of functions that define these identifiers (i.e. all functions except arrow functions) as the AST is
+ * traversed. Whenever a new function is encountered, create a new entry on the stack (corresponding to a different lexical
+ * scope of `this`), and whenever a function is exited, pop that entry off the stack. When an arrow function is entered,
+ * keep a reference to it on the current stack entry, and remove that reference when the arrow function is exited.
+ * When a lexical identifier is encountered, mark all the arrow functions on the current stack entry by adding them
+ * to an `arrowsWithLexicalIdentifiers` set. Any arrow function in that set will not be reported by this rule,
+ * because converting it into a method would change the value of one of the lexical identifiers.
+ */
+ const lexicalScopeStack = [];
+ const arrowsWithLexicalIdentifiers = new WeakSet();
+ const argumentsIdentifiers = new WeakSet();
+
+ /**
+ * Enters a function. This creates a new lexical identifier scope, so a new Set of arrow functions is pushed onto the stack.
+ * Also, this marks all `arguments` identifiers so that they can be detected later.
+ * @returns {void}
+ */
+ function enterFunction() {
+ lexicalScopeStack.unshift(new Set());
+ context.getScope().variables.filter(variable => variable.name === "arguments").forEach(variable => {
+ variable.references.map(ref => ref.identifier).forEach(identifier => argumentsIdentifiers.add(identifier));
+ });
+ }
+
+ /**
+ * Exits a function. This pops the current set of arrow functions off the lexical scope stack.
+ * @returns {void}
+ */
+ function exitFunction() {
+ lexicalScopeStack.shift();
+ }
+
+ /**
+ * Marks the current function as having a lexical keyword. This implies that all arrow functions
+ * in the current lexical scope contain a reference to this lexical keyword.
+ * @returns {void}
+ */
+ function reportLexicalIdentifier() {
+ lexicalScopeStack[0].forEach(arrowFunction => arrowsWithLexicalIdentifiers.add(arrowFunction));
+ }
+
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
return {
+ Program: enterFunction,
+ FunctionDeclaration: enterFunction,
+ FunctionExpression: enterFunction,
+ "Program:exit": exitFunction,
+ "FunctionDeclaration:exit": exitFunction,
+ "FunctionExpression:exit": exitFunction,
+
+ ArrowFunctionExpression(node) {
+ lexicalScopeStack[0].add(node);
+ },
+ "ArrowFunctionExpression:exit"(node) {
+ lexicalScopeStack[0].delete(node);
+ },
+
+ ThisExpression: reportLexicalIdentifier,
+ Super: reportLexicalIdentifier,
+ MetaProperty(node) {
+ if (node.meta.name === "new" && node.property.name === "target") {
+ reportLexicalIdentifier();
+ }
+ },
+ Identifier(node) {
+ if (argumentsIdentifiers.has(node)) {
+ reportLexicalIdentifier();
+ }
+ },
+
ObjectExpression(node) {
if (APPLY_CONSISTENT) {
checkConsistency(node, false);
@@ -216,7 +346,7 @@ module.exports = {
}
},
- Property(node) {
+ "Property:exit"(node) {
const isConciseProperty = node.method || node.shorthand;
// Ignore destructuring assignment
@@ -230,59 +360,31 @@ module.exports = {
}
// only computed methods can fail the following checks
- if (node.computed && node.value.type !== "FunctionExpression") {
+ if (node.computed && node.value.type !== "FunctionExpression" && node.value.type !== "ArrowFunctionExpression") {
return;
}
//--------------------------------------------------------------
// Checks for property/method shorthand.
if (isConciseProperty) {
+ if (node.method && (APPLY_NEVER || AVOID_QUOTES && isStringLiteral(node.key))) {
- // if we're "never" and concise we should warn now
- if (APPLY_NEVER) {
- const type = node.method ? "method" : "property";
-
+ // { x() {} } should be written as { x: function() {} }
context.report({
node,
- message: "Expected longform {{type}} syntax.",
- data: {
- type
- },
- fix(fixer) {
- if (node.method) {
- if (node.value.generator) {
- return fixer.replaceTextRange([node.range[0], node.key.range[1]], `${node.key.name}: function*`);
- }
-
- return fixer.insertTextAfter(node.key, ": function");
- }
-
- return fixer.insertTextAfter(node.key, `: ${node.key.name}`);
- }
+ message: `Expected longform method syntax${APPLY_NEVER ? "" : " for string literal keys"}.`,
+ fix: fixer => makeFunctionLongform(fixer, node)
});
- }
+ } else if (APPLY_NEVER) {
- // {'xyz'() {}} should be written as {'xyz': function() {}}
- if (AVOID_QUOTES && isStringLiteral(node.key)) {
+ // { x } should be written as { x: x }
context.report({
node,
- message: "Expected longform method syntax for string literal keys.",
- fix(fixer) {
- if (node.computed) {
- return fixer.insertTextAfterRange([node.key.range[0], node.key.range[1] + 1], ": function");
- }
-
- return fixer.insertTextAfter(node.key, ": function");
- }
+ message: "Expected longform property syntax.",
+ fix: fixer => fixer.insertTextAfter(node.key, `: ${node.key.name}`)
});
}
-
- return;
- }
-
- //--------------------------------------------------------------
- // Checks for longform properties.
- if (node.value.type === "FunctionExpression" && !node.value.id && APPLY_TO_METHODS) {
+ } else if (APPLY_TO_METHODS && !node.value.id && (node.value.type === "FunctionExpression" || node.value.type === "ArrowFunctionExpression")) {
if (IGNORE_CONSTRUCTORS && isConstructor(node.key.name)) {
return;
}
@@ -291,39 +393,18 @@ module.exports = {
}
// {[x]: function(){}} should be written as {[x]() {}}
- if (node.computed) {
+ if (node.value.type === "FunctionExpression" ||
+ node.value.type === "ArrowFunctionExpression" &&
+ node.value.body.type === "BlockStatement" &&
+ AVOID_EXPLICIT_RETURN_ARROWS &&
+ !arrowsWithLexicalIdentifiers.has(node.value)
+ ) {
context.report({
node,
message: "Expected method shorthand.",
- fix(fixer) {
- if (node.value.generator) {
- return fixer.replaceTextRange(
- [node.key.range[0], node.value.range[0] + "function*".length],
- `*[${node.key.name}]`
- );
- }
-
- return fixer.removeRange([node.key.range[1] + 1, node.value.range[0] + "function".length]);
- }
+ fix: fixer => makeFunctionShorthand(fixer, node)
});
- return;
}
-
- // {x: function(){}} should be written as {x() {}}
- context.report({
- node,
- message: "Expected method shorthand.",
- fix(fixer) {
- if (node.value.generator) {
- return fixer.replaceTextRange(
- [node.key.range[0], node.value.range[0] + "function*".length],
- `*${node.key.name}`
- );
- }
-
- return fixer.removeRange([node.key.range[1], node.value.range[0] + "function".length]);
- }
- });
} else if (node.value.type === "Identifier" && node.key.name === node.value.name && APPLY_TO_PROPS) {
// {x: x} should be written as {x}
diff --git a/tools/eslint/lib/rules/one-var-declaration-per-line.js b/tools/eslint/lib/rules/one-var-declaration-per-line.js
index eb0d5c3bf1..61b505c82d 100644
--- a/tools/eslint/lib/rules/one-var-declaration-per-line.js
+++ b/tools/eslint/lib/rules/one-var-declaration-per-line.js
@@ -59,7 +59,7 @@ module.exports = {
const declarations = node.declarations;
let prev;
- declarations.forEach(function(current) {
+ declarations.forEach(current => {
if (prev && prev.loc.end.line === current.loc.start.line) {
if (always || prev.init || current.init) {
context.report({
diff --git a/tools/eslint/lib/rules/one-var.js b/tools/eslint/lib/rules/one-var.js
index 2716655971..9e40d4ea6f 100644
--- a/tools/eslint/lib/rules/one-var.js
+++ b/tools/eslint/lib/rules/one-var.js
@@ -66,18 +66,18 @@ module.exports = {
};
if (typeof mode === "string") { // simple options configuration with just a string
- options.var = { uninitialized: mode, initialized: mode};
- options.let = { uninitialized: mode, initialized: mode};
- options.const = { uninitialized: mode, initialized: mode};
+ options.var = { uninitialized: mode, initialized: mode };
+ options.let = { uninitialized: mode, initialized: mode };
+ options.const = { uninitialized: mode, initialized: mode };
} else if (typeof mode === "object") { // options configuration is an object
if (mode.hasOwnProperty("var") && typeof mode.var === "string") {
- options.var = { uninitialized: mode.var, initialized: mode.var};
+ options.var = { uninitialized: mode.var, initialized: mode.var };
}
if (mode.hasOwnProperty("let") && typeof mode.let === "string") {
- options.let = { uninitialized: mode.let, initialized: mode.let};
+ options.let = { uninitialized: mode.let, initialized: mode.let };
}
if (mode.hasOwnProperty("const") && typeof mode.const === "string") {
- options.const = { uninitialized: mode.const, initialized: mode.const};
+ options.const = { uninitialized: mode.const, initialized: mode.const };
}
if (mode.hasOwnProperty("uninitialized")) {
if (!options.var) {
@@ -123,8 +123,8 @@ module.exports = {
*/
function startBlock() {
blockStack.push({
- let: {initialized: false, uninitialized: false},
- const: {initialized: false, uninitialized: false}
+ let: { initialized: false, uninitialized: false },
+ const: { initialized: false, uninitialized: false }
});
}
@@ -134,7 +134,7 @@ module.exports = {
* @private
*/
function startFunction() {
- functionStack.push({initialized: false, uninitialized: false});
+ functionStack.push({ initialized: false, uninitialized: false });
startBlock();
}
diff --git a/tools/eslint/lib/rules/operator-assignment.js b/tools/eslint/lib/rules/operator-assignment.js
index 5e1dd97b99..e003478c7b 100644
--- a/tools/eslint/lib/rules/operator-assignment.js
+++ b/tools/eslint/lib/rules/operator-assignment.js
@@ -70,6 +70,17 @@ function same(a, b) {
}
}
+/**
+* Determines if the left side of a node can be safely fixed (i.e. if it activates the same getters/setters and)
+* toString calls regardless of whether assignment shorthand is used)
+* @param {ASTNode} node The node on the left side of the expression
+* @returns {boolean} `true` if the node can be fixed
+*/
+function canBeFixed(node) {
+ return node.type === "Identifier" ||
+ node.type === "MemberExpression" && node.object.type === "Identifier" && (!node.computed || node.property.type === "Literal");
+}
+
module.exports = {
meta: {
docs: {
@@ -82,11 +93,24 @@ module.exports = {
{
enum: ["always", "never"]
}
- ]
+ ],
+
+ fixable: "code"
},
create(context) {
+ const sourceCode = context.getSourceCode();
+
+ /**
+ * Returns the operator token of an AssignmentExpression or BinaryExpression
+ * @param {ASTNode} node An AssignmentExpression or BinaryExpression node
+ * @returns {Token} The operator token in the node
+ */
+ function getOperatorToken(node) {
+ return sourceCode.getTokensBetween(node.left, node.right).find(token => token.value === node.operator);
+ }
+
/**
* Ensures that an assignment uses the shorthand form where possible.
* @param {ASTNode} node An AssignmentExpression node.
@@ -101,13 +125,34 @@ module.exports = {
const expr = node.right;
const operator = expr.operator;
- if (isCommutativeOperatorWithShorthand(operator)) {
- if (same(left, expr.left) || same(left, expr.right)) {
- context.report(node, "Assignment can be replaced with operator assignment.");
- }
- } else if (isNonCommutativeOperatorWithShorthand(operator)) {
+ if (isCommutativeOperatorWithShorthand(operator) || isNonCommutativeOperatorWithShorthand(operator)) {
if (same(left, expr.left)) {
- context.report(node, "Assignment can be replaced with operator assignment.");
+ context.report({
+ node,
+ message: "Assignment can be replaced with operator assignment.",
+ fix(fixer) {
+ if (canBeFixed(left)) {
+ const equalsToken = getOperatorToken(node);
+ const operatorToken = getOperatorToken(expr);
+ const leftText = sourceCode.getText().slice(node.range[0], equalsToken.range[0]);
+ const rightText = sourceCode.getText().slice(operatorToken.range[1], node.range[1]);
+
+ return fixer.replaceText(node, `${leftText}${expr.operator}=${rightText}`);
+ }
+ return null;
+ }
+ });
+ } else if (same(left, expr.right) && isCommutativeOperatorWithShorthand(operator)) {
+
+ /*
+ * This case can't be fixed safely.
+ * If `a` and `b` both have custom valueOf() behavior, then fixing `a = b * a` to `a *= b` would
+ * change the execution order of the valueOf() functions.
+ */
+ context.report({
+ node,
+ message: "Assignment can be replaced with operator assignment."
+ });
}
}
}
@@ -119,7 +164,20 @@ module.exports = {
*/
function prohibit(node) {
if (node.operator !== "=") {
- context.report(node, "Unexpected operator assignment shorthand.");
+ context.report({
+ node,
+ message: "Unexpected operator assignment shorthand.",
+ fix(fixer) {
+ if (canBeFixed(node.left)) {
+ const operatorToken = getOperatorToken(node);
+ const leftText = sourceCode.getText().slice(node.range[0], operatorToken.range[0]);
+ const rightText = sourceCode.getText().slice(operatorToken.range[1], node.range[1]);
+
+ return fixer.replaceText(node, `${leftText}= ${leftText}${node.operator.slice(0, -1)}${rightText}`);
+ }
+ return null;
+ }
+ });
}
}
diff --git a/tools/eslint/lib/rules/operator-linebreak.js b/tools/eslint/lib/rules/operator-linebreak.js
index ce222526e1..c8f2b2818e 100644
--- a/tools/eslint/lib/rules/operator-linebreak.js
+++ b/tools/eslint/lib/rules/operator-linebreak.js
@@ -11,6 +11,8 @@ const astUtils = require("../ast-utils");
// Rule Definition
//------------------------------------------------------------------------------
+const LINEBREAK_REGEX = /\r\n|\r|\n|\u2028|\u2029/g;
+
module.exports = {
meta: {
docs: {
@@ -38,7 +40,9 @@ module.exports = {
},
additionalProperties: false
}
- ]
+ ],
+
+ fixable: "code"
},
create(context) {
@@ -63,6 +67,61 @@ module.exports = {
//--------------------------------------------------------------------------
/**
+ * Gets a fixer function to fix rule issues
+ * @param {Token} operatorToken The operator token of an expression
+ * @param {string} desiredStyle The style for the rule. One of 'before', 'after', 'none'
+ * @returns {Function} A fixer function
+ */
+ function getFixer(operatorToken, desiredStyle) {
+ return fixer => {
+ const tokenBefore = sourceCode.getTokenBefore(operatorToken);
+ const tokenAfter = sourceCode.getTokenAfter(operatorToken);
+ const textBefore = sourceCode.text.slice(tokenBefore.range[1], operatorToken.range[0]);
+ const textAfter = sourceCode.text.slice(operatorToken.range[1], tokenAfter.range[0]);
+ const hasLinebreakBefore = !astUtils.isTokenOnSameLine(tokenBefore, operatorToken);
+ const hasLinebreakAfter = !astUtils.isTokenOnSameLine(operatorToken, tokenAfter);
+ let newTextBefore, newTextAfter;
+
+ if (hasLinebreakBefore !== hasLinebreakAfter && desiredStyle !== "none") {
+
+ // If there is a comment before and after the operator, don't do a fix.
+ if (sourceCode.getTokenOrCommentBefore(operatorToken) !== tokenBefore && sourceCode.getTokenOrCommentAfter(operatorToken) !== tokenAfter) {
+ return null;
+ }
+
+ /*
+ * If there is only one linebreak and it's on the wrong side of the operator, swap the text before and after the operator.
+ * foo &&
+ * bar
+ * would get fixed to
+ * foo
+ * && bar
+ */
+ newTextBefore = textAfter;
+ newTextAfter = textBefore;
+ } else {
+
+ // Otherwise, if no linebreak is desired and no comments interfere, replace the linebreaks with empty strings.
+ newTextBefore = desiredStyle === "before" || textBefore.trim() ? textBefore : textBefore.replace(LINEBREAK_REGEX, "");
+ newTextAfter = desiredStyle === "after" || textAfter.trim() ? textAfter : textAfter.replace(LINEBREAK_REGEX, "");
+
+ // If there was no change (due to interfering comments), don't output a fix.
+ if (newTextBefore === textBefore && newTextAfter === textAfter) {
+ return null;
+ }
+ }
+
+ if (newTextAfter === "" && tokenAfter.type === "Punctuator" && "+-".includes(operatorToken.value) && tokenAfter.value === operatorToken.value) {
+
+ // To avoid accidentally creating a ++ or -- operator, insert a space if the operator is a +/- and the following token is a unary +/-.
+ newTextAfter += " ";
+ }
+
+ return fixer.replaceTextRange([tokenBefore.range[1], tokenAfter.range[0]], newTextBefore + operatorToken.value + newTextAfter);
+ };
+ }
+
+ /**
* Checks the operator placement
* @param {ASTNode} node The node to check
* @param {ASTNode} leftSide The node that comes before the operator in `node`
@@ -87,12 +146,13 @@ module.exports = {
const operator = operatorToken.value;
const operatorStyleOverride = styleOverrides[operator];
const style = operatorStyleOverride || globalStyle;
+ const fix = getFixer(operatorToken, style);
// if single line
if (astUtils.isTokenOnSameLine(leftToken, operatorToken) &&
astUtils.isTokenOnSameLine(operatorToken, rightToken)) {
- return;
+ // do nothing.
} else if (operatorStyleOverride !== "ignore" && !astUtils.isTokenOnSameLine(leftToken, operatorToken) &&
!astUtils.isTokenOnSameLine(operatorToken, rightToken)) {
@@ -107,7 +167,8 @@ module.exports = {
message: "Bad line breaking before and after '{{operator}}'.",
data: {
operator
- }
+ },
+ fix
});
} else if (style === "before" && astUtils.isTokenOnSameLine(leftToken, operatorToken)) {
@@ -121,7 +182,8 @@ module.exports = {
message: "'{{operator}}' should be placed at the beginning of the line.",
data: {
operator
- }
+ },
+ fix
});
} else if (style === "after" && astUtils.isTokenOnSameLine(operatorToken, rightToken)) {
@@ -135,7 +197,8 @@ module.exports = {
message: "'{{operator}}' should be placed at the end of the line.",
data: {
operator
- }
+ },
+ fix
});
} else if (style === "none") {
@@ -149,7 +212,8 @@ module.exports = {
message: "There should be no line break before or after '{{operator}}'.",
data: {
operator
- }
+ },
+ fix
});
}
diff --git a/tools/eslint/lib/rules/padded-blocks.js b/tools/eslint/lib/rules/padded-blocks.js
index a24d421b0f..2b4da39b36 100644
--- a/tools/eslint/lib/rules/padded-blocks.js
+++ b/tools/eslint/lib/rules/padded-blocks.js
@@ -173,7 +173,7 @@ module.exports = {
if (!blockHasBottomPadding) {
context.report({
node,
- loc: {line: closeBrace.loc.end.line, column: closeBrace.loc.end.column - 1 },
+ loc: { line: closeBrace.loc.end.line, column: closeBrace.loc.end.column - 1 },
fix(fixer) {
return fixer.insertTextBefore(closeBrace, "\n");
},
@@ -199,7 +199,7 @@ module.exports = {
context.report({
node,
- loc: {line: closeBrace.loc.end.line, column: closeBrace.loc.end.column - 1 },
+ loc: { line: closeBrace.loc.end.line, column: closeBrace.loc.end.column - 1 },
message: NEVER_MESSAGE,
fix(fixer) {
return fixer.replaceTextRange([previousToken.end, closeBrace.start - closeBrace.loc.start.column], "\n");
diff --git a/tools/eslint/lib/rules/prefer-arrow-callback.js b/tools/eslint/lib/rules/prefer-arrow-callback.js
index 034112093b..ee385042f1 100644
--- a/tools/eslint/lib/rules/prefer-arrow-callback.js
+++ b/tools/eslint/lib/rules/prefer-arrow-callback.js
@@ -63,7 +63,7 @@ function getVariableOfArguments(scope) {
* {boolean} retv.isLexicalThis - `true` if the node is with `.bind(this)`.
*/
function getCallbackInfo(node) {
- const retv = {isCallback: false, isLexicalThis: false};
+ const retv = { isCallback: false, isLexicalThis: false };
let parent = node.parent;
while (node) {
@@ -176,7 +176,7 @@ module.exports = {
* @returns {void}
*/
function enterScope() {
- stack.push({this: false, super: false, meta: false});
+ stack.push({ this: false, super: false, meta: false });
}
/**
diff --git a/tools/eslint/lib/rules/prefer-const.js b/tools/eslint/lib/rules/prefer-const.js
index 5255f2745c..07d8da82a1 100644
--- a/tools/eslint/lib/rules/prefer-const.js
+++ b/tools/eslint/lib/rules/prefer-const.js
@@ -6,12 +6,6 @@
"use strict";
//------------------------------------------------------------------------------
-// Requirements
-//------------------------------------------------------------------------------
-
-const lodash = require("lodash");
-
-//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
@@ -91,6 +85,17 @@ function getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign) {
return null;
}
+ /*
+ * Due to a bug in acorn, code such as `let foo = 1; let foo = 2;` will not throw a syntax error. As a sanity
+ * check, make sure that the variable only has one declaration. After the parsing bug is fixed, this check
+ * will no longer be necessary, because variables declared with `let` or `const` should always have exactly one
+ * declaration.
+ * https://github.com/ternjs/acorn/issues/487
+ */
+ if (variable.defs.length > 1) {
+ return null;
+ }
+
// Finds the unique WriteReference.
let writer = null;
let isReadBeforeInit = false;
@@ -244,8 +249,8 @@ module.exports = {
{
type: "object",
properties: {
- destructuring: {enum: ["any", "all"]},
- ignoreReadBeforeAssign: {type: "boolean"}
+ destructuring: { enum: ["any", "all"] },
+ ignoreReadBeforeAssign: { type: "boolean" }
},
additionalProperties: false
}
@@ -254,80 +259,10 @@ module.exports = {
create(context) {
const options = context.options[0] || {};
+ const sourceCode = context.getSourceCode();
const checkingMixedDestructuring = options.destructuring !== "all";
const ignoreReadBeforeAssign = options.ignoreReadBeforeAssign === true;
- let variables = null;
-
- /**
- * Reports a given Identifier node.
- *
- * @param {ASTNode} node - An Identifier node to report.
- * @returns {void}
- */
- function report(node) {
- const reportArgs = {
- node,
- message: "'{{name}}' is never reassigned. Use 'const' instead.",
- data: node
- },
- varDeclParent = findUp(node, "VariableDeclaration", function(parentNode) {
- return lodash.endsWith(parentNode.type, "Statement");
- }),
- isNormalVarDecl = (node.parent.parent.parent.type === "ForInStatement" ||
- node.parent.parent.parent.type === "ForOfStatement" ||
- node.parent.init),
-
- isDestructuringVarDecl =
-
- // {let {a} = obj} should be written as {const {a} = obj}
- (node.parent.parent.type === "ObjectPattern" &&
-
- // If options.destucturing is "all", then this warning will not occur unless
- // every assignment in the destructuring should be const. In that case, it's safe
- // to apply the fix. Otherwise, it's safe to apply the fix if there's only one
- // assignment occurring. If there is more than one assignment and options.destructuring
- // is not "all", then it's not clear how the developer would want to resolve the issue,
- // so we should not attempt to do it programmatically.
- (options.destructuring === "all" || node.parent.parent.properties.length === 1)) ||
-
- // {let [a] = [1]} should be written as {const [a] = [1]}
- (node.parent.type === "ArrayPattern" &&
-
- // See note above about fixing multiple warnings at once.
- (options.destructuring === "all" || node.parent.elements.length === 1));
-
- if (varDeclParent &&
- (isNormalVarDecl || isDestructuringVarDecl) &&
-
- // If there are multiple variable declarations, like {let a = 1, b = 2}, then
- // do not attempt to fix if one of the declarations should be `const`. It's
- // too hard to know how the developer would want to automatically resolve the issue.
- varDeclParent.declarations.length === 1) {
-
- reportArgs.fix = function(fixer) {
- return fixer.replaceTextRange(
- [varDeclParent.start, varDeclParent.start + "let".length],
- "const"
- );
- };
- }
-
- context.report(reportArgs);
- }
-
- /**
- * Reports a given variable if the variable should be declared as const.
- *
- * @param {escope.Variable} variable - A variable to report.
- * @returns {void}
- */
- function checkVariable(variable) {
- const node = getIdentifierIfShouldBeConst(variable, ignoreReadBeforeAssign);
-
- if (node) {
- report(node);
- }
- }
+ const variables = [];
/**
* Reports given identifier nodes if all of the nodes should be declared
@@ -344,25 +279,39 @@ module.exports = {
* @returns {void}
*/
function checkGroup(nodes) {
- if (nodes.every(Boolean)) {
- nodes.forEach(report);
+ const nodesToReport = nodes.filter(Boolean);
+
+ if (nodes.length && (checkingMixedDestructuring || nodesToReport.length === nodes.length)) {
+ const varDeclParent = findUp(nodes[0], "VariableDeclaration", parentNode => parentNode.type.endsWith("Statement"));
+ const shouldFix = varDeclParent &&
+
+ // If there are multiple variable declarations, like {let a = 1, b = 2}, then
+ // do not attempt to fix if one of the declarations should be `const`. It's
+ // too hard to know how the developer would want to automatically resolve the issue.
+ varDeclParent.declarations.length === 1 &&
+
+ // Don't do a fix unless the variable is initialized (or it's in a for-in or for-of loop)
+ (varDeclParent.parent.type === "ForInStatement" || varDeclParent.parent.type === "ForOfStatement" || varDeclParent.declarations[0].init) &&
+
+ // If options.destucturing is "all", then this warning will not occur unless
+ // every assignment in the destructuring should be const. In that case, it's safe
+ // to apply the fix.
+ nodesToReport.length === nodes.length;
+
+ nodesToReport.forEach(node => {
+ context.report({
+ node,
+ message: "'{{name}}' is never reassigned. Use 'const' instead.",
+ data: node,
+ fix: shouldFix ? fixer => fixer.replaceText(sourceCode.getFirstToken(varDeclParent), "const") : null
+ });
+ });
}
}
return {
- Program() {
- variables = [];
- },
-
"Program:exit"() {
- if (checkingMixedDestructuring) {
- variables.forEach(checkVariable);
- } else {
- groupByDestructuring(variables, ignoreReadBeforeAssign)
- .forEach(checkGroup);
- }
-
- variables = null;
+ groupByDestructuring(variables, ignoreReadBeforeAssign).forEach(checkGroup);
},
VariableDeclaration(node) {
diff --git a/tools/eslint/lib/rules/prefer-destructuring.js b/tools/eslint/lib/rules/prefer-destructuring.js
new file mode 100644
index 0000000000..c3fbcaa631
--- /dev/null
+++ b/tools/eslint/lib/rules/prefer-destructuring.js
@@ -0,0 +1,173 @@
+/**
+ * @fileoverview Prefer destructuring from arrays and objects
+ * @author Alex LaFroscia
+ */
+"use strict";
+
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "require destructuring from arrays and/or objects",
+ category: "ECMAScript 6",
+ recommended: false
+ },
+
+ schema: [
+ {
+ type: "object",
+ properties: {
+ array: {
+ type: "boolean"
+ },
+ object: {
+ type: "boolean"
+ }
+ },
+ additionalProperties: false
+ },
+ {
+ type: "object",
+ properties: {
+ enforceForRenamedProperties: {
+ type: "boolean"
+ }
+ },
+ additionalProperties: false
+ }
+ ]
+ },
+ create(context) {
+
+ let checkArrays = true;
+ let checkObjects = true;
+ let enforceForRenamedProperties = false;
+ const enabledTypes = context.options[0];
+ const additionalOptions = context.options[1];
+
+ if (enabledTypes) {
+ if (typeof enabledTypes.array !== "undefined") {
+ checkArrays = enabledTypes.array;
+ }
+
+ if (typeof enabledTypes.object !== "undefined") {
+ checkObjects = enabledTypes.object;
+ }
+ }
+
+ if (additionalOptions) {
+ if (typeof additionalOptions.enforceForRenamedProperties !== "undefined") {
+ enforceForRenamedProperties = additionalOptions.enforceForRenamedProperties;
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ // Helpers
+ //--------------------------------------------------------------------------
+
+ /**
+ * Determines if the given node node is accessing an array index
+ *
+ * This is used to differentiate array index access from object property
+ * access.
+ *
+ * @param {ASTNode} node the node to evaluate
+ * @returns {boolean} whether or not the node is an integer
+ */
+ function isArrayIndexAccess(node) {
+ return Number.isInteger(node.property.value);
+ }
+
+ /**
+ * Report that the given node should use destructuring
+ *
+ * @param {ASTNode} reportNode the node to report
+ * @param {string} type the type of destructuring that should have been done
+ * @returns {void}
+ */
+ function report(reportNode, type) {
+ context.report({ node: reportNode, message: `Use ${type} destructuring` });
+ }
+
+ /**
+ * Check that the `prefer-destructuring` rules are followed based on the
+ * given left- and right-hand side of the assignment.
+ *
+ * Pulled out into a separate method so that VariableDeclarators and
+ * AssignmentExpressions can share the same verification logic.
+ *
+ * @param {ASTNode} leftNode the left-hand side of the assignment
+ * @param {ASTNode} rightNode the right-hand side of the assignment
+ * @param {ASTNode} reportNode the node to report the error on
+ * @returns {void}
+ */
+ function performCheck(leftNode, rightNode, reportNode) {
+ if (rightNode.type !== "MemberExpression") {
+ return;
+ }
+
+ if (checkArrays && isArrayIndexAccess(rightNode)) {
+ report(reportNode, "array");
+ return;
+ }
+
+ if (checkObjects && enforceForRenamedProperties) {
+ report(reportNode, "object");
+ return;
+ }
+
+ if (checkObjects) {
+ const property = rightNode.property;
+
+ if ((property.type === "Literal" && leftNode.name === property.value) ||
+ (property.type === "Identifier" && leftNode.name === property.name)) {
+ report(reportNode, "object");
+ }
+ }
+ }
+
+ /**
+ * Check if a given variable declarator is coming from an property access
+ * that should be using destructuring instead
+ *
+ * @param {ASTNode} node the variable declarator to check
+ * @returns {void}
+ */
+ function checkVariableDeclarator(node) {
+
+ // Skip if variable is declared without assignment
+ if (!node.init) {
+ return;
+ }
+
+ // We only care about member expressions past this point
+ if (node.init.type !== "MemberExpression") {
+ return;
+ }
+
+ performCheck(node.id, node.init, node);
+ }
+
+ /**
+ * Run the `prefer-destructuring` check on an AssignmentExpression
+ *
+ * @param {ASTNode} node the AssignmentExpression node
+ * @returns {void}
+ */
+ function checkAssigmentExpression(node) {
+ performCheck(node.left, node.right, node);
+ }
+
+ //--------------------------------------------------------------------------
+ // Public
+ //--------------------------------------------------------------------------
+
+ return {
+ VariableDeclarator: checkVariableDeclarator,
+ AssignmentExpression: checkAssigmentExpression
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/prefer-reflect.js b/tools/eslint/lib/rules/prefer-reflect.js
index 64db836d04..49e20989ec 100644
--- a/tools/eslint/lib/rules/prefer-reflect.js
+++ b/tools/eslint/lib/rules/prefer-reflect.js
@@ -1,6 +1,7 @@
/**
* @fileoverview Rule to suggest using "Reflect" api over Function/Object methods
* @author Keith Cirkel <http://keithcirkel.co.uk>
+ * @deprecated in ESLint v3.9.0
*/
"use strict";
@@ -13,9 +14,12 @@ module.exports = {
docs: {
description: "require `Reflect` methods where applicable",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ replacedBy: []
},
+ deprecated: true,
+
schema: [
{
type: "object",
@@ -79,10 +83,10 @@ module.exports = {
* @returns {void}
*/
function report(node, existing, substitute) {
- context.report(node, "Avoid using {{existing}}, instead use {{substitute}}.", {
+ context.report({ node, message: "Avoid using {{existing}}, instead use {{substitute}}.", data: {
existing,
substitute
- });
+ } });
}
return {
diff --git a/tools/eslint/lib/rules/quote-props.js b/tools/eslint/lib/rules/quote-props.js
index 2129ce6aa9..1dcdd461b5 100644
--- a/tools/eslint/lib/rules/quote-props.js
+++ b/tools/eslint/lib/rules/quote-props.js
@@ -162,7 +162,7 @@ module.exports = {
context.report({
node,
message: MESSAGE_UNNECESSARY,
- data: {property: key.value},
+ data: { property: key.value },
fix: fixer => fixer.replaceText(key, getUnquotedKey(key))
});
}
@@ -170,14 +170,14 @@ module.exports = {
context.report({
node,
message: MESSAGE_RESERVED,
- data: {property: key.name},
+ data: { property: key.name },
fix: fixer => fixer.replaceText(key, getQuotedKey(key))
});
} else if (NUMBERS && key.type === "Literal" && typeof key.value === "number") {
context.report({
node,
message: MESSAGE_NUMERIC,
- data: {property: key.value},
+ data: { property: key.value },
fix: fixer => fixer.replaceText(key, getQuotedKey(key))
});
}
@@ -195,7 +195,7 @@ module.exports = {
context.report({
node,
message: MESSAGE_UNQUOTED,
- data: {property: key.name || key.value},
+ data: { property: key.name || key.value },
fix: fixer => fixer.replaceText(key, getQuotedKey(key))
});
}
@@ -213,7 +213,7 @@ module.exports = {
let keywordKeyName = null,
necessaryQuotes = false;
- node.properties.forEach(function(property) {
+ node.properties.forEach(property => {
const key = property.key;
let tokens;
@@ -257,7 +257,7 @@ module.exports = {
context.report({
node: property,
message: "Properties should be quoted as '{{property}}' is a reserved word.",
- data: {property: keywordKeyName},
+ data: { property: keywordKeyName },
fix: fixer => fixer.replaceText(property.key, getQuotedKey(property.key))
});
});
@@ -266,7 +266,7 @@ module.exports = {
context.report({
node: property,
message: "Inconsistently quoted property '{{key}}' found.",
- data: {key: property.key.name || property.key.value},
+ data: { key: property.key.name || property.key.value },
fix: fixer => fixer.replaceText(property.key, getQuotedKey(property.key))
});
});
diff --git a/tools/eslint/lib/rules/quotes.js b/tools/eslint/lib/rules/quotes.js
index 90e68289e0..5c53c76908 100644
--- a/tools/eslint/lib/rules/quotes.js
+++ b/tools/eslint/lib/rules/quotes.js
@@ -51,7 +51,7 @@ QUOTE_SETTINGS.backtick.convert = function(str) {
if (newQuote === oldQuote) {
return str;
}
- return newQuote + str.slice(1, -1).replace(/\\(\${|\r\n?|\n|.)|["'`]|\${|(\r\n?|\n)/g, function(match, escaped, newline) {
+ return newQuote + str.slice(1, -1).replace(/\\(\${|\r\n?|\n|.)|["'`]|\${|(\r\n?|\n)/g, (match, escaped, newline) => {
if (escaped === oldQuote || oldQuote === "`" && escaped === "${") {
return escaped; // unescape
}
@@ -258,7 +258,11 @@ module.exports = {
return;
}
- const shouldWarn = node.quasis.length === 1 && (node.quasis[0].value.cooked.indexOf("\n") === -1);
+ /*
+ * A warning should be produced if the template literal only has one TemplateElement, and has no unescaped newlines.
+ * An unescaped newline is a newline preceded by an even number of backslashes.
+ */
+ const shouldWarn = node.quasis.length === 1 && !/(^|[^\\])(\\\\)*[\r\n\u2028\u2029]/.test(node.quasis[0].value.raw);
if (shouldWarn) {
context.report({
@@ -268,6 +272,15 @@ module.exports = {
description: settings.description,
},
fix(fixer) {
+ if (isPartOfDirectivePrologue(node)) {
+
+ /*
+ * TemplateLiterals in a directive prologue aren't actually directives, but if they're
+ * in the directive prologue, then fixing them might turn them into directives and change
+ * the behavior of the code.
+ */
+ return null;
+ }
return fixer.replaceText(node, settings.convert(sourceCode.getText(node)));
}
});
diff --git a/tools/eslint/lib/rules/radix.js b/tools/eslint/lib/rules/radix.js
index f36e27d363..0dfa081b6a 100644
--- a/tools/eslint/lib/rules/radix.js
+++ b/tools/eslint/lib/rules/radix.js
@@ -145,7 +145,7 @@ module.exports = {
// Check `parseInt()`
variable = astUtils.getVariableByName(scope, "parseInt");
if (!isShadowed(variable)) {
- variable.references.forEach(function(reference) {
+ variable.references.forEach(reference => {
const node = reference.identifier;
if (astUtils.isCallee(node)) {
@@ -157,7 +157,7 @@ module.exports = {
// Check `Number.parseInt()`
variable = astUtils.getVariableByName(scope, "Number");
if (!isShadowed(variable)) {
- variable.references.forEach(function(reference) {
+ variable.references.forEach(reference => {
const node = reference.identifier.parent;
if (isParseIntMethod(node) && astUtils.isCallee(node)) {
diff --git a/tools/eslint/lib/rules/require-await.js b/tools/eslint/lib/rules/require-await.js
new file mode 100644
index 0000000000..89b24f75b0
--- /dev/null
+++ b/tools/eslint/lib/rules/require-await.js
@@ -0,0 +1,95 @@
+/**
+ * @fileoverview Rule to disallow async functions which have no `await` expression.
+ * @author Toru Nagashima
+ */
+
+"use strict";
+
+//------------------------------------------------------------------------------
+// Requirements
+//------------------------------------------------------------------------------
+
+const astUtils = require("../ast-utils");
+
+//------------------------------------------------------------------------------
+// Helpers
+//------------------------------------------------------------------------------
+
+/**
+ * Capitalize the 1st letter of the given text.
+ *
+ * @param {string} text - The text to capitalize.
+ * @returns {string} The text that the 1st letter was capitalized.
+ */
+function capitalizeFirstLetter(text) {
+ return text[0].toUpperCase() + text.slice(1);
+}
+
+//------------------------------------------------------------------------------
+// Rule Definition
+//------------------------------------------------------------------------------
+
+module.exports = {
+ meta: {
+ docs: {
+ description: "disallow async functions which have no `await` expression",
+ category: "Best Practices",
+ recommended: false
+ },
+ schema: []
+ },
+
+ create(context) {
+ const sourceCode = context.getSourceCode();
+ let scopeInfo = null;
+
+ /**
+ * Push the scope info object to the stack.
+ *
+ * @returns {void}
+ */
+ function enterFunction() {
+ scopeInfo = {
+ upper: scopeInfo,
+ hasAwait: false,
+ };
+ }
+
+ /**
+ * Pop the top scope info object from the stack.
+ * Also, it reports the function if needed.
+ *
+ * @param {ASTNode} node - The node to report.
+ * @returns {void}
+ */
+ function exitFunction(node) {
+ if (node.async && !scopeInfo.hasAwait && !astUtils.isEmptyFunction(node)) {
+ context.report({
+ node,
+ loc: astUtils.getFunctionHeadLoc(node, sourceCode),
+ message: "{{name}} has no 'await' expression.",
+ data: {
+ name: capitalizeFirstLetter(
+ astUtils.getFunctionNameWithKind(node)
+ )
+ }
+ });
+ }
+
+ scopeInfo = scopeInfo.upper;
+ }
+
+ return {
+ FunctionDeclaration: enterFunction,
+ FunctionExpression: enterFunction,
+ ArrowFunctionExpression: enterFunction,
+ "FunctionDeclaration:exit": exitFunction,
+ "FunctionExpression:exit": exitFunction,
+ "ArrowFunctionExpression:exit": exitFunction,
+
+ AwaitExpression() {
+ scopeInfo.hasAwait = true;
+ }
+ };
+ }
+};
diff --git a/tools/eslint/lib/rules/require-jsdoc.js b/tools/eslint/lib/rules/require-jsdoc.js
index 9300fce1ba..f1ecde81f9 100644
--- a/tools/eslint/lib/rules/require-jsdoc.js
+++ b/tools/eslint/lib/rules/require-jsdoc.js
@@ -27,6 +27,9 @@ module.exports = {
},
FunctionDeclaration: {
type: "boolean"
+ },
+ ArrowFunctionExpression: {
+ type: "boolean"
}
},
additionalProperties: false
@@ -52,7 +55,7 @@ module.exports = {
* @returns {void}
*/
function report(node) {
- context.report(node, "Missing JSDoc comment.");
+ context.report({ node, message: "Missing JSDoc comment." });
}
/**
@@ -98,6 +101,11 @@ module.exports = {
if (options.ClassDeclaration) {
checkJsDoc(node);
}
+ },
+ ArrowFunctionExpression(node) {
+ if (options.ArrowFunctionExpression && node.parent.type === "VariableDeclarator") {
+ checkJsDoc(node);
+ }
}
};
}
diff --git a/tools/eslint/lib/rules/require-yield.js b/tools/eslint/lib/rules/require-yield.js
index 36b4ea11a5..5cc2944bc6 100644
--- a/tools/eslint/lib/rules/require-yield.js
+++ b/tools/eslint/lib/rules/require-yield.js
@@ -48,9 +48,7 @@ module.exports = {
const countYield = stack.pop();
if (countYield === 0 && node.body.body.length > 0) {
- context.report(
- node,
- "This generator function does not have 'yield'.");
+ context.report({ node, message: "This generator function does not have 'yield'." });
}
}
diff --git a/tools/eslint/lib/rules/semi.js b/tools/eslint/lib/rules/semi.js
index 2f28f1614d..ee37ab018c 100644
--- a/tools/eslint/lib/rules/semi.js
+++ b/tools/eslint/lib/rules/semi.js
@@ -39,7 +39,7 @@ module.exports = {
{
type: "object",
properties: {
- omitLastInOneLineBlock: {type: "boolean"}
+ omitLastInOneLineBlock: { type: "boolean" }
},
additionalProperties: false
}
@@ -53,7 +53,7 @@ module.exports = {
create(context) {
- const OPT_OUT_PATTERN = /^[-[(\/+]$/; // One of [(/+-, but not ++ or --
+ const OPT_OUT_PATTERN = /^[-[(/+`]/; // One of [(/+-`
const options = context.options[1];
const never = context.options[0] === "never",
exceptOneLine = options && options.omitLastInOneLineBlock === true,
@@ -127,7 +127,7 @@ module.exports = {
const lastTokenLine = lastToken.loc.end.line;
const nextTokenLine = nextToken.loc.start.line;
- const isOptOutToken = OPT_OUT_PATTERN.test(nextToken.value);
+ const isOptOutToken = OPT_OUT_PATTERN.test(nextToken.value) && nextToken.value !== "++" && nextToken.value !== "--";
const isDivider = (nextToken.value === "}" || nextToken.value === ";");
return (lastTokenLine !== nextTokenLine && !isOptOutToken) || isDivider;
diff --git a/tools/eslint/lib/rules/sort-imports.js b/tools/eslint/lib/rules/sort-imports.js
index ae3333c2ac..83f5009902 100644
--- a/tools/eslint/lib/rules/sort-imports.js
+++ b/tools/eslint/lib/rules/sort-imports.js
@@ -39,7 +39,9 @@ module.exports = {
},
additionalProperties: false
}
- ]
+ ],
+
+ fixable: "code"
},
create(context) {
@@ -47,7 +49,8 @@ module.exports = {
const configuration = context.options[0] || {},
ignoreCase = configuration.ignoreCase || false,
ignoreMemberSort = configuration.ignoreMemberSort || false,
- memberSyntaxSortOrder = configuration.memberSyntaxSortOrder || ["none", "all", "multiple", "single"];
+ memberSyntaxSortOrder = configuration.memberSyntaxSortOrder || ["none", "all", "multiple", "single"],
+ sourceCode = context.getSourceCode();
let previousDeclaration = null;
/**
@@ -135,36 +138,49 @@ module.exports = {
}
}
- // Multiple members of an import declaration should also be sorted alphabetically.
- if (!ignoreMemberSort && node.specifiers.length > 1) {
- let previousSpecifier = null;
- let previousSpecifierName = null;
+ if (!ignoreMemberSort) {
+ const importSpecifiers = node.specifiers.filter(specifier => specifier.type === "ImportSpecifier");
+ const getSortableName = ignoreCase ? specifier => specifier.local.name.toLowerCase() : specifier => specifier.local.name;
+ const firstUnsortedIndex = importSpecifiers.map(getSortableName).findIndex((name, index, array) => array[index - 1] > name);
+
+ if (firstUnsortedIndex !== -1) {
+ context.report({
+ node: importSpecifiers[firstUnsortedIndex],
+ message: "Member '{{memberName}}' of the import declaration should be sorted alphabetically.",
+ data: { memberName: importSpecifiers[firstUnsortedIndex].local.name },
+ fix(fixer) {
+ if (importSpecifiers.some(specifier => sourceCode.getComments(specifier).leading.length || sourceCode.getComments(specifier).trailing.length)) {
+
+ // If there are comments in the ImportSpecifier list, don't rearrange the specifiers.
+ return null;
+ }
- for (let i = 0; i < node.specifiers.length; ++i) {
- const currentSpecifier = node.specifiers[i];
+ return fixer.replaceTextRange(
+ [importSpecifiers[0].range[0], importSpecifiers[importSpecifiers.length - 1].range[1]],
+ importSpecifiers
- if (currentSpecifier.type !== "ImportSpecifier") {
- continue;
- }
+ // Clone the importSpecifiers array to avoid mutating it
+ .slice()
- let currentSpecifierName = currentSpecifier.local.name;
+ // Sort the array into the desired order
+ .sort((specifierA, specifierB) => {
+ const aName = getSortableName(specifierA);
+ const bName = getSortableName(specifierB);
- if (ignoreCase) {
- currentSpecifierName = currentSpecifierName.toLowerCase();
- }
+ return aName > bName ? 1 : -1;
+ })
- if (previousSpecifier && currentSpecifierName < previousSpecifierName) {
- context.report({
- node: currentSpecifier,
- message: "Member '{{memberName}}' of the import declaration should be sorted alphabetically.",
- data: {
- memberName: currentSpecifier.local.name
- }
- });
- }
+ // Build a string out of the sorted list of import specifiers and the text between the originals
+ .reduce((sourceText, specifier, index) => {
+ const textAfterSpecifier = index === importSpecifiers.length - 1
+ ? ""
+ : sourceCode.getText().slice(importSpecifiers[index].range[1], importSpecifiers[index + 1].range[0]);
- previousSpecifier = currentSpecifier;
- previousSpecifierName = currentSpecifierName;
+ return sourceText + sourceCode.getText(specifier) + textAfterSpecifier;
+ }, "")
+ );
+ }
+ });
}
}
diff --git a/tools/eslint/lib/rules/sort-vars.js b/tools/eslint/lib/rules/sort-vars.js
index 1e1cf3c959..e18cc320ef 100644
--- a/tools/eslint/lib/rules/sort-vars.js
+++ b/tools/eslint/lib/rules/sort-vars.js
@@ -37,7 +37,7 @@ module.exports = {
return {
VariableDeclaration(node) {
- node.declarations.reduce(function(memo, decl) {
+ node.declarations.reduce((memo, decl) => {
if (decl.id.type === "ObjectPattern" || decl.id.type === "ArrayPattern") {
return memo;
}
@@ -51,7 +51,7 @@ module.exports = {
}
if (currenVariableName < lastVariableName) {
- context.report(decl, "Variables within the same declaration block should be sorted alphabetically.");
+ context.report({ node: decl, message: "Variables within the same declaration block should be sorted alphabetically." });
return memo;
} else {
return decl;
diff --git a/tools/eslint/lib/rules/space-in-parens.js b/tools/eslint/lib/rules/space-in-parens.js
index c01170b2bc..af838dfa9e 100644
--- a/tools/eslint/lib/rules/space-in-parens.js
+++ b/tools/eslint/lib/rules/space-in-parens.js
@@ -220,7 +220,7 @@ module.exports = {
exceptions = getExceptions();
const tokens = sourceCode.tokensAndComments;
- tokens.forEach(function(token, i) {
+ tokens.forEach((token, i) => {
const prevToken = tokens[i - 1];
const nextToken = tokens[i + 1];
diff --git a/tools/eslint/lib/rules/space-infix-ops.js b/tools/eslint/lib/rules/space-infix-ops.js
index 9831e8e2af..d919a1225a 100644
--- a/tools/eslint/lib/rules/space-infix-ops.js
+++ b/tools/eslint/lib/rules/space-infix-ops.js
@@ -57,7 +57,7 @@ module.exports = {
const op = tokens[i];
if (
- op.type === "Punctuator" &&
+ (op.type === "Punctuator" || op.type === "Keyword") &&
OPERATORS.indexOf(op.value) >= 0 &&
(tokens[i - 1].range[1] >= op.range[0] || op.range[1] >= tokens[i + 1].range[0])
) {
diff --git a/tools/eslint/lib/rules/spaced-comment.js b/tools/eslint/lib/rules/spaced-comment.js
index a3dce4fa4e..85abd7360e 100644
--- a/tools/eslint/lib/rules/spaced-comment.js
+++ b/tools/eslint/lib/rules/spaced-comment.js
@@ -240,7 +240,7 @@ module.exports = {
const config = context.options[1] || {};
const balanced = config.block && config.block.balanced;
- const styleRules = ["block", "line"].reduce(function(rule, type) {
+ const styleRules = ["block", "line"].reduce((rule, type) => {
const markers = parseMarkersOption(config[type] && config[type].markers || config.markers);
const exceptions = config[type] && config[type].exceptions || config.exceptions || [];
const endNeverPattern = "[ \t]+$";
diff --git a/tools/eslint/lib/rules/strict.js b/tools/eslint/lib/rules/strict.js
index 1591bd8714..34ed443d92 100644
--- a/tools/eslint/lib/rules/strict.js
+++ b/tools/eslint/lib/rules/strict.js
@@ -135,7 +135,7 @@ module.exports = {
*/
function reportSlice(nodes, start, end, message, fix) {
nodes.slice(start, end).forEach(node => {
- context.report({node, message, fix: fix ? getFixFunction(node) : null});
+ context.report({ node, message, fix: fix ? getFixFunction(node) : null });
});
}
@@ -176,19 +176,19 @@ module.exports = {
if (isStrict) {
if (!isSimpleParameterList(node.params)) {
- context.report(useStrictDirectives[0], messages.nonSimpleParameterList);
+ context.report({ node: useStrictDirectives[0], message: messages.nonSimpleParameterList });
} else if (isParentStrict) {
- context.report({node: useStrictDirectives[0], message: messages.unnecessary, fix: getFixFunction(useStrictDirectives[0])});
+ context.report({ node: useStrictDirectives[0], message: messages.unnecessary, fix: getFixFunction(useStrictDirectives[0]) });
} else if (isInClass) {
- context.report({node: useStrictDirectives[0], message: messages.unnecessaryInClasses, fix: getFixFunction(useStrictDirectives[0])});
+ context.report({ node: useStrictDirectives[0], message: messages.unnecessaryInClasses, fix: getFixFunction(useStrictDirectives[0]) });
}
reportAllExceptFirst(useStrictDirectives, messages.multiple, true);
} else if (isParentGlobal) {
if (isSimpleParameterList(node.params)) {
- context.report(node, messages.function);
+ context.report({ node, message: messages.function });
} else {
- context.report(node, messages.wrap);
+ context.report({ node, message: messages.wrap });
}
}
@@ -221,7 +221,7 @@ module.exports = {
if (isSimpleParameterList(node.params)) {
reportAll(useStrictDirectives, messages[mode], shouldFix(mode));
} else {
- context.report(useStrictDirectives[0], messages.nonSimpleParameterList);
+ context.report({ node: useStrictDirectives[0], message: messages.nonSimpleParameterList });
reportAllExceptFirst(useStrictDirectives, messages.multiple, true);
}
}
@@ -237,7 +237,7 @@ module.exports = {
if (mode === "global") {
if (node.body.length > 0 && useStrictDirectives.length === 0) {
- context.report(node, messages.global);
+ context.report({ node, message: messages.global });
}
reportAllExceptFirst(useStrictDirectives, messages.multiple, true);
} else {
diff --git a/tools/eslint/lib/rules/symbol-description.js b/tools/eslint/lib/rules/symbol-description.js
index 37ac8be727..3f5ffd7463 100644
--- a/tools/eslint/lib/rules/symbol-description.js
+++ b/tools/eslint/lib/rules/symbol-description.js
@@ -51,7 +51,7 @@ module.exports = {
const variable = astUtils.getVariableByName(scope, "Symbol");
if (variable && variable.defs.length === 0) {
- variable.references.forEach(function(reference) {
+ variable.references.forEach(reference => {
const node = reference.identifier;
if (astUtils.isCallee(node)) {
diff --git a/tools/eslint/lib/rules/template-curly-spacing.js b/tools/eslint/lib/rules/template-curly-spacing.js
index 1ac3262fce..1d491a24c9 100644
--- a/tools/eslint/lib/rules/template-curly-spacing.js
+++ b/tools/eslint/lib/rules/template-curly-spacing.js
@@ -33,7 +33,7 @@ module.exports = {
fixable: "whitespace",
schema: [
- {enum: ["always", "never"]}
+ { enum: ["always", "never"] }
]
},
diff --git a/tools/eslint/lib/rules/unicode-bom.js b/tools/eslint/lib/rules/unicode-bom.js
index 82692894d4..2f16a25850 100644
--- a/tools/eslint/lib/rules/unicode-bom.js
+++ b/tools/eslint/lib/rules/unicode-bom.js
@@ -36,7 +36,7 @@ module.exports = {
Program: function checkUnicodeBOM(node) {
const sourceCode = context.getSourceCode(),
- location = {column: 0, line: 1},
+ location = { column: 0, line: 1 },
requireBOM = context.options[0] || "never";
if (!sourceCode.hasBOM && (requireBOM === "always")) {
diff --git a/tools/eslint/lib/rules/use-isnan.js b/tools/eslint/lib/rules/use-isnan.js
index b4a978b5ef..5ec48a0386 100644
--- a/tools/eslint/lib/rules/use-isnan.js
+++ b/tools/eslint/lib/rules/use-isnan.js
@@ -25,7 +25,7 @@ module.exports = {
return {
BinaryExpression(node) {
if (/^(?:[<>]|[!=]=)=?$/.test(node.operator) && (node.left.name === "NaN" || node.right.name === "NaN")) {
- context.report(node, "Use the isNaN function to compare with NaN.");
+ context.report({ node, message: "Use the isNaN function to compare with NaN." });
}
}
};
diff --git a/tools/eslint/lib/rules/valid-jsdoc.js b/tools/eslint/lib/rules/valid-jsdoc.js
index 09fc684719..66ad1f8d45 100644
--- a/tools/eslint/lib/rules/valid-jsdoc.js
+++ b/tools/eslint/lib/rules/valid-jsdoc.js
@@ -202,7 +202,7 @@ module.exports = {
elements.forEach(validateType.bind(null, jsdocNode));
- typesToCheck.forEach(function(typeToCheck) {
+ typesToCheck.forEach(typeToCheck => {
if (typeToCheck.expectedType &&
typeToCheck.expectedType !== typeToCheck.currentType) {
context.report({
@@ -246,15 +246,15 @@ module.exports = {
} catch (ex) {
if (/braces/i.test(ex.message)) {
- context.report(jsdocNode, "JSDoc type missing brace.");
+ context.report({ node: jsdocNode, message: "JSDoc type missing brace." });
} else {
- context.report(jsdocNode, "JSDoc syntax error.");
+ context.report({ node: jsdocNode, message: "JSDoc syntax error." });
}
return;
}
- jsdoc.tags.forEach(function(tag) {
+ jsdoc.tags.forEach(tag => {
switch (tag.title.toLowerCase()) {
@@ -262,15 +262,15 @@ module.exports = {
case "arg":
case "argument":
if (!tag.type) {
- context.report(jsdocNode, "Missing JSDoc parameter type for '{{name}}'.", { name: tag.name });
+ context.report({ node: jsdocNode, message: "Missing JSDoc parameter type for '{{name}}'.", data: { name: tag.name } });
}
if (!tag.description && requireParamDescription) {
- context.report(jsdocNode, "Missing JSDoc parameter description for '{{name}}'.", { name: tag.name });
+ context.report({ node: jsdocNode, message: "Missing JSDoc parameter description for '{{name}}'.", data: { name: tag.name } });
}
if (params[tag.name]) {
- context.report(jsdocNode, "Duplicate JSDoc parameter '{{name}}'.", { name: tag.name });
+ context.report({ node: jsdocNode, message: "Duplicate JSDoc parameter '{{name}}'.", data: { name: tag.name } });
} else if (tag.name.indexOf(".") === -1) {
params[tag.name] = 1;
}
@@ -290,11 +290,11 @@ module.exports = {
});
} else {
if (requireReturnType && !tag.type) {
- context.report(jsdocNode, "Missing JSDoc return type.");
+ context.report({ node: jsdocNode, message: "Missing JSDoc return type." });
}
if (!isValidReturnType(tag) && !tag.description && requireReturnDescription) {
- context.report(jsdocNode, "Missing JSDoc return description.");
+ context.report({ node: jsdocNode, message: "Missing JSDoc return description." });
}
}
@@ -324,7 +324,7 @@ module.exports = {
// check tag preferences
if (prefer.hasOwnProperty(tag.title) && tag.title !== prefer[tag.title]) {
- context.report(jsdocNode, "Use @{{name}} instead.", { name: prefer[tag.title] });
+ context.report({ node: jsdocNode, message: "Use @{{name}} instead.", data: { name: prefer[tag.title] } });
}
// validate the types
@@ -352,7 +352,7 @@ module.exports = {
const jsdocParams = Object.keys(params);
if (node.params) {
- node.params.forEach(function(param, i) {
+ node.params.forEach((param, i) => {
if (param.type === "AssignmentPattern") {
param = param.left;
}
@@ -362,14 +362,14 @@ module.exports = {
// TODO(nzakas): Figure out logical things to do with destructured, default, rest params
if (param.type === "Identifier") {
if (jsdocParams[i] && (name !== jsdocParams[i])) {
- context.report(jsdocNode, "Expected JSDoc for '{{name}}' but found '{{jsdocName}}'.", {
+ context.report({ node: jsdocNode, message: "Expected JSDoc for '{{name}}' but found '{{jsdocName}}'.", data: {
name,
jsdocName: jsdocParams[i]
- });
+ } });
} else if (!params[name] && !isOverride) {
- context.report(jsdocNode, "Missing JSDoc for parameter '{{name}}'.", {
+ context.report({ node: jsdocNode, message: "Missing JSDoc for parameter '{{name}}'.", data: {
name
- });
+ } });
}
}
});
@@ -379,7 +379,7 @@ module.exports = {
const regex = new RegExp(options.matchDescription);
if (!regex.test(jsdoc.description)) {
- context.report(jsdocNode, "JSDoc description does not satisfy the regex pattern.");
+ context.report({ node: jsdocNode, message: "JSDoc description does not satisfy the regex pattern." });
}
}
diff --git a/tools/eslint/lib/rules/valid-typeof.js b/tools/eslint/lib/rules/valid-typeof.js
index ed0a7c0179..94b407b600 100644
--- a/tools/eslint/lib/rules/valid-typeof.js
+++ b/tools/eslint/lib/rules/valid-typeof.js
@@ -62,10 +62,10 @@ module.exports = {
const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked;
if (VALID_TYPES.indexOf(value) === -1) {
- context.report(sibling, "Invalid typeof comparison value.");
+ context.report({ node: sibling, message: "Invalid typeof comparison value." });
}
} else if (requireStringLiterals && !isTypeofExpression(sibling)) {
- context.report(sibling, "Typeof comparisons should be to string literals.");
+ context.report({ node: sibling, message: "Typeof comparisons should be to string literals." });
}
}
}
diff --git a/tools/eslint/lib/rules/vars-on-top.js b/tools/eslint/lib/rules/vars-on-top.js
index 92ed08e2d4..f74db905b1 100644
--- a/tools/eslint/lib/rules/vars-on-top.js
+++ b/tools/eslint/lib/rules/vars-on-top.js
@@ -100,7 +100,7 @@ module.exports = {
*/
function globalVarCheck(node, parent) {
if (!isVarOnTop(node, parent.body)) {
- context.report(node, errorMessage);
+ context.report({ node, message: errorMessage });
}
}
@@ -115,7 +115,7 @@ module.exports = {
if (!(/Function/.test(grandParent.type) &&
parent.type === "BlockStatement" &&
isVarOnTop(node, parent.body))) {
- context.report(node, errorMessage);
+ context.report({ node, message: errorMessage });
}
}
diff --git a/tools/eslint/lib/rules/yield-star-spacing.js b/tools/eslint/lib/rules/yield-star-spacing.js
index ecd33c5b38..eb20fc01b0 100644
--- a/tools/eslint/lib/rules/yield-star-spacing.js
+++ b/tools/eslint/lib/rules/yield-star-spacing.js
@@ -28,8 +28,8 @@ module.exports = {
{
type: "object",
properties: {
- before: {type: "boolean"},
- after: {type: "boolean"}
+ before: { type: "boolean" },
+ after: { type: "boolean" }
},
additionalProperties: false
}
diff --git a/tools/eslint/lib/rules/yoda.js b/tools/eslint/lib/rules/yoda.js
index e463a476ab..ba711c63c2 100644
--- a/tools/eslint/lib/rules/yoda.js
+++ b/tools/eslint/lib/rules/yoda.js
@@ -5,6 +5,12 @@
"use strict";
//--------------------------------------------------------------------------
+// Requirements
+//--------------------------------------------------------------------------
+
+const astUtils = require("../ast-utils");
+
+//--------------------------------------------------------------------------
// Helpers
//--------------------------------------------------------------------------
@@ -54,13 +60,16 @@ function looksLikeLiteral(node) {
/**
* Attempts to derive a Literal node from nodes that are treated like literals.
* @param {ASTNode} node Node to normalize.
- * @returns {ASTNode} The original node if the node is already a Literal, or a
- * normalized Literal node with the negative number as the
- * value if the node represents a negative number literal,
- * otherwise null if the node cannot be converted to a
- * normalized literal.
+ * @param {number} [defaultValue] The default value to be returned if the node
+ * is not a Literal.
+ * @returns {ASTNode} One of the following options.
+ * 1. The original node if the node is already a Literal
+ * 2. A normalized Literal node with the negative number as the value if the
+ * node represents a negative number literal.
+ * 3. The Literal node which has the `defaultValue` argument if it exists.
+ * 4. Otherwise `null`.
*/
-function getNormalizedLiteral(node) {
+function getNormalizedLiteral(node, defaultValue) {
if (node.type === "Literal") {
return node;
}
@@ -73,6 +82,14 @@ function getNormalizedLiteral(node) {
};
}
+ if (defaultValue) {
+ return {
+ type: "Literal",
+ value: defaultValue,
+ raw: String(defaultValue)
+ };
+ }
+
return null;
}
@@ -98,12 +115,26 @@ function same(a, b) {
case "Literal":
return a.value === b.value;
- case "MemberExpression":
+ case "MemberExpression": {
+ const nameA = astUtils.getStaticPropertyName(a);
+
+ // x.y = x["y"]
+ if (nameA) {
+ return (
+ same(a.object, b.object) &&
+ nameA === astUtils.getStaticPropertyName(b)
+ );
+ }
// x[0] = x[0]
// x[y] = x[y]
// x.y = x.y
- return same(a.object, b.object) && same(a.property, b.property);
+ return (
+ a.computed === b.computed &&
+ same(a.object, b.object) &&
+ same(a.property, b.property)
+ );
+ }
case "ThisExpression":
return true;
@@ -178,7 +209,7 @@ module.exports = {
return (node.operator === "&&" &&
(leftLiteral = getNormalizedLiteral(left.left)) &&
- (rightLiteral = getNormalizedLiteral(right.right)) &&
+ (rightLiteral = getNormalizedLiteral(right.right, Number.POSITIVE_INFINITY)) &&
leftLiteral.value <= rightLiteral.value &&
same(left.right, right.left));
}
@@ -191,7 +222,7 @@ module.exports = {
let leftLiteral, rightLiteral;
return (node.operator === "||" &&
- (leftLiteral = getNormalizedLiteral(left.right)) &&
+ (leftLiteral = getNormalizedLiteral(left.right, Number.NEGATIVE_INFINITY)) &&
(rightLiteral = getNormalizedLiteral(right.left)) &&
leftLiteral.value <= rightLiteral.value &&
same(left.left, right.right));
diff --git a/tools/eslint/lib/testers/event-generator-tester.js b/tools/eslint/lib/testers/event-generator-tester.js
index d85238e9db..89693fe948 100644
--- a/tools/eslint/lib/testers/event-generator-tester.js
+++ b/tools/eslint/lib/testers/event-generator-tester.js
@@ -44,19 +44,19 @@ module.exports = {
* @returns {void}
*/
testEventGeneratorInterface(instance) {
- this.describe("should implement EventGenerator interface", function() {
- this.it("should have `emitter` property.", function() {
+ this.describe("should implement EventGenerator interface", () => {
+ this.it("should have `emitter` property.", () => {
assert.equal(typeof instance.emitter, "object");
assert.equal(typeof instance.emitter.emit, "function");
});
- this.it("should have `enterNode` property.", function() {
+ this.it("should have `enterNode` property.", () => {
assert.equal(typeof instance.enterNode, "function");
});
- this.it("should have `leaveNode` property.", function() {
+ this.it("should have `leaveNode` property.", () => {
assert.equal(typeof instance.leaveNode, "function");
});
- }.bind(this));
+ });
}
};
diff --git a/tools/eslint/lib/testers/rule-tester.js b/tools/eslint/lib/testers/rule-tester.js
index 25b8699359..5d327ad28b 100644
--- a/tools/eslint/lib/testers/rule-tester.js
+++ b/tools/eslint/lib/testers/rule-tester.js
@@ -252,8 +252,26 @@ RuleTester.prototype = {
run(ruleName, rule, test) {
const testerConfig = this.testerConfig,
+ requiredScenarios = ["valid", "invalid"],
+ scenarioErrors = [],
result = {};
+ if (lodash.isNil(test) || typeof test !== "object") {
+ throw new Error(`Test Scenarios for rule ${ruleName} : Could not find test scenario object`);
+ }
+
+ requiredScenarios.forEach(scenarioType => {
+ if (lodash.isNil(test[scenarioType])) {
+ scenarioErrors.push(`Could not find any ${scenarioType} test scenarios`);
+ }
+ });
+
+ if (scenarioErrors.length > 0) {
+ throw new Error([
+ `Test Scenarios for rule ${ruleName} is invalid:`
+ ].concat(scenarioErrors).join("\n"));
+ }
+
/* eslint-disable no-shadow */
/**
@@ -307,9 +325,7 @@ RuleTester.prototype = {
if (validateSchema.errors) {
throw new Error([
`Schema for rule ${ruleName} is invalid:`
- ].concat(validateSchema.errors.map(function(error) {
- return `\t${error.field}: ${error.message}`;
- })).join("\n"));
+ ].concat(validateSchema.errors.map(error => `\t${error.field}: ${error.message}`)).join("\n"));
}
}
@@ -321,10 +337,10 @@ RuleTester.prototype = {
* running the rule under test.
*/
eslint.reset();
- eslint.on("Program", function(node) {
+ eslint.on("Program", node => {
beforeAST = cloneDeeplyExcludesParent(node);
- eslint.on("Program:exit", function(node) {
+ eslint.on("Program:exit", node => {
afterAST = cloneDeeplyExcludesParent(node);
});
});
@@ -448,7 +464,7 @@ RuleTester.prototype = {
}
if (item.errors[i].type) {
- assert.equal(messages[i].nodeType, item.errors[i].type, `Error type should be ${item.errors[i].type}`);
+ assert.equal(messages[i].nodeType, item.errors[i].type, `Error type should be ${item.errors[i].type}, found ${messages[i].nodeType}`);
}
if (item.errors[i].hasOwnProperty("line")) {
@@ -488,18 +504,18 @@ RuleTester.prototype = {
* This creates a mocha test suite and pipes all supplied info through
* one of the templates above.
*/
- RuleTester.describe(ruleName, function() {
- RuleTester.describe("valid", function() {
- test.valid.forEach(function(valid) {
- RuleTester.it(valid.code || valid, function() {
+ RuleTester.describe(ruleName, () => {
+ RuleTester.describe("valid", () => {
+ test.valid.forEach(valid => {
+ RuleTester.it(valid.code || valid, () => {
testValidTemplate(ruleName, valid);
});
});
});
- RuleTester.describe("invalid", function() {
- test.invalid.forEach(function(invalid) {
- RuleTester.it(invalid.code, function() {
+ RuleTester.describe("invalid", () => {
+ test.invalid.forEach(invalid => {
+ RuleTester.it(invalid.code, () => {
testInvalidTemplate(ruleName, invalid);
});
});
diff --git a/tools/eslint/lib/timing.js b/tools/eslint/lib/timing.js
index 627aa5f82f..2045662864 100644
--- a/tools/eslint/lib/timing.js
+++ b/tools/eslint/lib/timing.js
@@ -54,18 +54,16 @@ const ALIGN = [alignLeft, alignRight, alignRight];
function display(data) {
let total = 0;
const rows = Object.keys(data)
- .map(function(key) {
+ .map(key => {
const time = data[key];
total += time;
return [key, time];
})
- .sort(function(a, b) {
- return b[1] - a[1];
- })
+ .sort((a, b) => b[1] - a[1])
.slice(0, 10);
- rows.forEach(function(row) {
+ rows.forEach(row => {
row.push(`${(row[1] * 100 / total).toFixed(1)}%`);
row[1] = row[1].toFixed(3);
});
@@ -74,7 +72,7 @@ function display(data) {
const widths = [];
- rows.forEach(function(row) {
+ rows.forEach(row => {
const len = row.length;
for (let i = 0; i < len; i++) {
@@ -86,13 +84,13 @@ function display(data) {
}
});
- const table = rows.map(function(row) {
- return row.map(function(cell, index) {
- return ALIGN[index](cell, widths[index]);
- }).join(" | ");
- });
+ const table = rows.map(row =>
+ row
+ .map((cell, index) => ALIGN[index](cell, widths[index]))
+ .join(" | ")
+ );
- table.splice(1, 0, widths.map(function(w, index) {
+ table.splice(1, 0, widths.map((w, index) => {
if (index !== 0 && index !== widths.length - 1) {
w++;
}
@@ -130,7 +128,7 @@ module.exports = (function() {
}
if (enabled) {
- process.on("exit", function() {
+ process.on("exit", () => {
display(data);
});
}
diff --git a/tools/eslint/lib/util/comment-event-generator.js b/tools/eslint/lib/util/comment-event-generator.js
index 47cc68f296..dfa7132ff8 100644
--- a/tools/eslint/lib/util/comment-event-generator.js
+++ b/tools/eslint/lib/util/comment-event-generator.js
@@ -20,7 +20,7 @@
*/
function emitComments(comments, emitter, locs, eventName) {
if (comments.length > 0) {
- comments.forEach(function(node) {
+ comments.forEach(node => {
const index = locs.indexOf(node.loc);
if (index >= 0) {
diff --git a/tools/eslint/lib/util/glob-util.js b/tools/eslint/lib/util/glob-util.js
index cba2e694ad..198e069e9f 100644
--- a/tools/eslint/lib/util/glob-util.js
+++ b/tools/eslint/lib/util/glob-util.js
@@ -43,9 +43,7 @@ function processPath(options) {
const cwd = (options && options.cwd) || process.cwd();
let extensions = (options && options.extensions) || [".js"];
- extensions = extensions.map(function(ext) {
- return ext.charAt(0) === "." ? ext.substr(1) : ext;
- });
+ extensions = extensions.map(ext => ext.replace(/^\./, ""));
let suffix = "/**";
@@ -67,7 +65,7 @@ function processPath(options) {
const resolvedPath = path.resolve(cwd, pathname);
if (shell.test("-d", resolvedPath)) {
- newPath = pathname.replace(/[\/\\]$/, "") + suffix;
+ newPath = pathname.replace(/[/\\]$/, "") + suffix;
}
return pathUtil.convertPathToPosix(newPath);
@@ -145,12 +143,12 @@ function listFilesToProcess(globPatterns, options) {
if (added[filename]) {
return;
}
- files.push({filename, ignored});
+ files.push({ filename, ignored });
added[filename] = true;
}
debug("Creating list of files to process.");
- globPatterns.forEach(function(pattern) {
+ globPatterns.forEach(pattern => {
const file = path.resolve(cwd, pattern);
if (shell.test("-f", file)) {
@@ -160,9 +158,9 @@ function listFilesToProcess(globPatterns, options) {
} else {
// regex to find .hidden or /.hidden patterns, but not ./relative or ../relative
- const globIncludesDotfiles = /(?:(?:^\.)|(?:[\/\\]\.))[^\/\\\.].*/.test(pattern);
+ const globIncludesDotfiles = /(?:(?:^\.)|(?:[/\\]\.))[^/\\.].*/.test(pattern);
- const ignoredPaths = new IgnoredPaths(Object.assign({}, options, {dotfiles: options.dotfiles || globIncludesDotfiles}));
+ const ignoredPaths = new IgnoredPaths(Object.assign({}, options, { dotfiles: options.dotfiles || globIncludesDotfiles }));
const shouldIgnore = ignoredPaths.getIgnoredFoldersGlobChecker();
const globOptions = {
nodir: true,
@@ -170,7 +168,7 @@ function listFilesToProcess(globPatterns, options) {
cwd,
};
- new GlobSync(pattern, globOptions, shouldIgnore).found.forEach(function(globMatch) {
+ new GlobSync(pattern, globOptions, shouldIgnore).found.forEach(globMatch => {
addFile(path.resolve(cwd, globMatch), false, ignoredPaths);
});
}
diff --git a/tools/eslint/lib/util/module-resolver.js b/tools/eslint/lib/util/module-resolver.js
index 40c107a70e..505c572822 100644
--- a/tools/eslint/lib/util/module-resolver.js
+++ b/tools/eslint/lib/util/module-resolver.js
@@ -30,18 +30,18 @@ const DEFAULT_OPTIONS = {
/**
* Resolves modules based on a set of options.
- * @param {Object} options The options for resolving modules.
- * @param {string[]} options.lookupPaths An array of paths to include in the
- * lookup with the highest priority paths coming first.
- * @constructor
*/
-function ModuleResolver(options) {
- options = options || {};
+class ModuleResolver {
- this.options = Object.assign({}, DEFAULT_OPTIONS, options);
-}
-
-ModuleResolver.prototype = {
+ /**
+ * Resolves modules based on a set of options.
+ * @param {Object} options The options for resolving modules.
+ * @param {string[]} options.lookupPaths An array of paths to include in the
+ * lookup with the highest priority paths coming first.
+ */
+ constructor(options) {
+ this.options = Object.assign({}, DEFAULT_OPTIONS, options || {});
+ }
/**
* Resolves the file location of a given module relative to the configured
@@ -75,10 +75,8 @@ ModuleResolver.prototype = {
}
return result;
-
}
-
-};
+}
//------------------------------------------------------------------------------
// Public API
diff --git a/tools/eslint/lib/util/node-event-generator.js b/tools/eslint/lib/util/node-event-generator.js
index 95d9132dd2..1666ae93f5 100644
--- a/tools/eslint/lib/util/node-event-generator.js
+++ b/tools/eslint/lib/util/node-event-generator.js
@@ -20,34 +20,33 @@
* leaveNode(node: ASTNode): void;
* }
* ```
- *
- * @param {EventEmitter} emitter - An event emitter which is the destination of events.
- * @returns {NodeEventGenerator} new instance.
*/
-function NodeEventGenerator(emitter) {
- this.emitter = emitter;
-}
+class NodeEventGenerator {
-NodeEventGenerator.prototype = {
- constructor: NodeEventGenerator,
+ /**
+ * @param {EventEmitter} emitter - An event emitter which is the destination of events.
+ */
+ constructor(emitter) {
+ this.emitter = emitter;
+ }
/**
* Emits an event of entering AST node.
* @param {ASTNode} node - A node which was entered.
* @returns {void}
*/
- enterNode: function enterNode(node) {
+ enterNode(node) {
this.emitter.emit(node.type, node);
- },
+ }
/**
* Emits an event of leaving AST node.
* @param {ASTNode} node - A node which was left.
* @returns {void}
*/
- leaveNode: function leaveNode(node) {
+ leaveNode(node) {
this.emitter.emit(`${node.type}:exit`, node);
}
-};
+}
module.exports = NodeEventGenerator;
diff --git a/tools/eslint/lib/util/npm-util.js b/tools/eslint/lib/util/npm-util.js
index e9131595e7..ef1c0c6293 100644
--- a/tools/eslint/lib/util/npm-util.js
+++ b/tools/eslint/lib/util/npm-util.js
@@ -53,7 +53,7 @@ function installSyncSaveDev(packages) {
if (Array.isArray(packages)) {
packages = packages.join(" ");
}
- shell.exec(`npm i --save-dev ${packages}`, {stdio: "inherit"});
+ shell.exec(`npm i --save-dev ${packages}`, { stdio: "inherit" });
}
/**
@@ -89,7 +89,7 @@ function check(packages, opt) {
if (opt.dependencies && typeof fileJson.dependencies === "object") {
deps = deps.concat(Object.keys(fileJson.dependencies));
}
- return packages.reduce(function(status, pkg) {
+ return packages.reduce((status, pkg) => {
status[pkg] = deps.indexOf(pkg) !== -1;
return status;
}, {});
@@ -107,7 +107,7 @@ function check(packages, opt) {
* and values are booleans indicating installation.
*/
function checkDeps(packages, rootDir) {
- return check(packages, {dependencies: true, startDir: rootDir});
+ return check(packages, { dependencies: true, startDir: rootDir });
}
/**
@@ -121,7 +121,7 @@ function checkDeps(packages, rootDir) {
* and values are booleans indicating installation.
*/
function checkDevDeps(packages) {
- return check(packages, {devDependencies: true});
+ return check(packages, { devDependencies: true });
}
/**
diff --git a/tools/eslint/lib/util/patterns/letters.js b/tools/eslint/lib/util/patterns/letters.js
new file mode 100644
index 0000000000..b212cfc9eb
--- /dev/null
+++ b/tools/eslint/lib/util/patterns/letters.js
@@ -0,0 +1,37 @@
+/**
+ * @fileoverview Pattern for detecting any letter (even letters outside of ASCII).
+ * NOTE: This file was generated using this script in JSCS based on the Unicode 7.0.0 standard: https://github.com/jscs-dev/node-jscs/blob/f5ed14427deb7e7aac84f3056a5aab2d9f3e563e/publish/helpers/generate-patterns.js
+ * Do not edit this file by hand-- please use https://github.com/mathiasbynens/regenerate to regenerate the regular expression exported from this file.
+ * @author Kevin Partington
+ * @license MIT License (from JSCS). See below.
+ */
+
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright 2013-2016 Dulin Marat and other contributors
+ *
+ * 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.
+ */
+
+"use strict";
+
+module.exports = /[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/;
+
diff --git a/tools/eslint/lib/util/source-code-fixer.js b/tools/eslint/lib/util/source-code-fixer.js
index 064a0a1f90..3b702e509e 100644
--- a/tools/eslint/lib/util/source-code-fixer.js
+++ b/tools/eslint/lib/util/source-code-fixer.js
@@ -72,7 +72,7 @@ SourceCodeFixer.applyFixes = function(sourceCode, messages) {
let lastFixPos = text.length + 1,
prefix = (sourceCode.hasBOM ? BOM : "");
- messages.forEach(function(problem) {
+ messages.forEach(problem => {
if (problem.hasOwnProperty("fix")) {
fixes.push(problem);
} else {
@@ -84,14 +84,12 @@ SourceCodeFixer.applyFixes = function(sourceCode, messages) {
debug("Found fixes to apply");
// sort in reverse order of occurrence
- fixes.sort(function(a, b) {
- return b.fix.range[1] - a.fix.range[1] || b.fix.range[0] - a.fix.range[0];
- });
+ fixes.sort((a, b) => b.fix.range[1] - a.fix.range[1] || b.fix.range[0] - a.fix.range[0]);
// split into array of characters for easier manipulation
const chars = text.split("");
- fixes.forEach(function(problem) {
+ fixes.forEach(problem => {
const fix = problem.fix;
let start = fix.range[0];
const end = fix.range[1];
diff --git a/tools/eslint/lib/util/source-code-util.js b/tools/eslint/lib/util/source-code-util.js
index 8e660e0961..892c32d22a 100644
--- a/tools/eslint/lib/util/source-code-util.js
+++ b/tools/eslint/lib/util/source-code-util.js
@@ -29,7 +29,7 @@ const debug = require("debug")("eslint:source-code-util");
*/
function getSourceCodeOfFile(filename, options) {
debug("getting sourceCode of", filename);
- const opts = Object.assign({}, options, { rules: {}});
+ const opts = Object.assign({}, options, { rules: {} });
const cli = new CLIEngine(opts);
const results = cli.executeOnFiles([filename]);
@@ -71,7 +71,7 @@ function getSourceCodeOfFiles(patterns, options, cb) {
patterns = [patterns];
}
- const defaultOptions = Object.assign({}, baseDefaultOptions, {cwd: process.cwd()});
+ const defaultOptions = Object.assign({}, baseDefaultOptions, { cwd: process.cwd() });
if (typeof options === "undefined") {
opts = defaultOptions;
@@ -84,14 +84,14 @@ function getSourceCodeOfFiles(patterns, options, cb) {
debug("constructed options:", opts);
patterns = globUtil.resolveFileGlobPatterns(patterns, opts);
- const filenames = globUtil.listFilesToProcess(patterns, opts).reduce(function(files, fileInfo) {
- return !fileInfo.ignored ? files.concat(fileInfo.filename) : files;
- }, []);
+ const filenames = globUtil.listFilesToProcess(patterns, opts)
+ .filter(fileInfo => !fileInfo.ignored)
+ .reduce((files, fileInfo) => files.concat(fileInfo.filename), []);
if (filenames.length === 0) {
debug(`Did not find any files matching pattern(s): ${patterns}`);
}
- filenames.forEach(function(filename) {
+ filenames.forEach(filename => {
const sourceCode = getSourceCodeOfFile(filename, opts);
if (sourceCode) {
diff --git a/tools/eslint/lib/util/source-code.js b/tools/eslint/lib/util/source-code.js
index 378bdd328f..5d073039d8 100644
--- a/tools/eslint/lib/util/source-code.js
+++ b/tools/eslint/lib/util/source-code.js
@@ -117,16 +117,16 @@ function SourceCode(text, ast) {
*/
this.lines = SourceCode.splitLines(this.text);
- this.tokensAndComments = ast.tokens.concat(ast.comments).sort(function(left, right) {
- return left.range[0] - right.range[0];
- });
+ this.tokensAndComments = ast.tokens
+ .concat(ast.comments)
+ .sort((left, right) => left.range[0] - right.range[0]);
// create token store methods
const tokenStore = createTokenStore(ast.tokens);
- Object.keys(tokenStore).forEach(function(methodName) {
+ Object.keys(tokenStore).forEach(methodName => {
this[methodName] = tokenStore[methodName];
- }, this);
+ });
const tokensAndCommentsStore = createTokenStore(this.tokensAndComments);
@@ -280,7 +280,7 @@ SourceCode.prototype = {
}
});
- return result ? Object.assign({parent: resultParent}, result) : null;
+ return result ? Object.assign({ parent: resultParent }, result) : null;
},
/**
diff --git a/tools/eslint/lib/util/traverser.js b/tools/eslint/lib/util/traverser.js
index 50d18b045e..d5710bb8ac 100644
--- a/tools/eslint/lib/util/traverser.js
+++ b/tools/eslint/lib/util/traverser.js
@@ -46,9 +46,7 @@ function Traverser() {
* @private
*/
Traverser.getKeys = function(node) {
- return Object.keys(node).filter(function(key) {
- return KEY_BLACKLIST.indexOf(key) === -1;
- });
+ return Object.keys(node).filter(key => KEY_BLACKLIST.indexOf(key) === -1);
};
module.exports = Traverser;
diff --git a/tools/eslint/lib/util/xml-escape.js b/tools/eslint/lib/util/xml-escape.js
index 698abaf38e..9f43c99c46 100644
--- a/tools/eslint/lib/util/xml-escape.js
+++ b/tools/eslint/lib/util/xml-escape.js
@@ -15,7 +15,7 @@
* @private
*/
module.exports = function(s) {
- return (`${s}`).replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/g, function(c) { // eslint-disable-line no-control-regex
+ return (`${s}`).replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/g, c => { // eslint-disable-line no-control-regex
switch (c) {
case "<":
return "&lt;";
diff --git a/tools/eslint/node_modules/.bin/eslint b/tools/eslint/node_modules/.bin/eslint
new file mode 120000
index 0000000000..810e4bcb32
--- /dev/null
+++ b/tools/eslint/node_modules/.bin/eslint
@@ -0,0 +1 @@
+../eslint/bin/eslint.js \ No newline at end of file
diff --git a/tools/eslint/node_modules/.bin/strip-json-comments b/tools/eslint/node_modules/.bin/strip-json-comments
deleted file mode 120000
index 63d549f96f..0000000000
--- a/tools/eslint/node_modules/.bin/strip-json-comments
+++ /dev/null
@@ -1 +0,0 @@
-../strip-json-comments/cli.js \ No newline at end of file
diff --git a/tools/eslint/node_modules/acorn/.tern-project b/tools/eslint/node_modules/acorn/.tern-project
deleted file mode 100644
index 6718ce07e1..0000000000
--- a/tools/eslint/node_modules/acorn/.tern-project
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "plugins": {
- "node": true,
- "es_modules": true
- }
-} \ No newline at end of file
diff --git a/tools/eslint/node_modules/acorn/AUTHORS b/tools/eslint/node_modules/acorn/AUTHORS
index 314d7086cf..306404542a 100644
--- a/tools/eslint/node_modules/acorn/AUTHORS
+++ b/tools/eslint/node_modules/acorn/AUTHORS
@@ -25,6 +25,7 @@ Joel Kemp
Johannes Herr
Jordan Klassen
Jürg Lehni
+Kai Cataldo
keeyipchan
Keheliya Gallaba
Kevin Irish
@@ -32,6 +33,7 @@ Kevin Kwok
krator
Marijn Haverbeke
Martin Carlberg
+Mat Garcia
Mathias Bynens
Mathieu 'p01' Henri
Matthew Bastien
diff --git a/tools/eslint/node_modules/acorn/bin/generate-identifier-regex.js b/tools/eslint/node_modules/acorn/bin/generate-identifier-regex.js
deleted file mode 100644
index 100e8cf280..0000000000
--- a/tools/eslint/node_modules/acorn/bin/generate-identifier-regex.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-// Which Unicode version should be used?
-var version = '9.0.0';
-
-var start = require('unicode-' + version + '/Binary_Property/ID_Start/code-points.js')
- .filter(function(ch) { return ch > 0x7f; });
-var last = -1;
-var cont = [0x200c, 0x200d].concat(require('unicode-' + version + '/Binary_Property/ID_Continue/code-points.js')
- .filter(function(ch) { return ch > 0x7f && search(start, ch, last + 1) == -1; }));
-
-function search(arr, ch, starting) {
- for (var i = starting; arr[i] <= ch && i < arr.length; last = i++)
- if (arr[i] === ch)
- return i;
- return -1;
-}
-
-function pad(str, width) {
- while (str.length < width) str = "0" + str;
- return str;
-}
-
-function esc(code) {
- var hex = code.toString(16);
- if (hex.length <= 2) return "\\x" + pad(hex, 2);
- else return "\\u" + pad(hex, 4);
-}
-
-function generate(chars) {
- var astral = [], re = "";
- for (var i = 0, at = 0x10000; i < chars.length; i++) {
- var from = chars[i], to = from;
- while (i < chars.length - 1 && chars[i + 1] == to + 1) {
- i++;
- to++;
- }
- if (to <= 0xffff) {
- if (from == to) re += esc(from);
- else if (from + 1 == to) re += esc(from) + esc(to);
- else re += esc(from) + "-" + esc(to);
- } else {
- astral.push(from - at, to - from);
- at = to;
- }
- }
- return {nonASCII: re, astral: astral};
-}
-
-var startData = generate(start), contData = generate(cont);
-
-console.log("let nonASCIIidentifierStartChars = \"" + startData.nonASCII + "\"");
-console.log("let nonASCIIidentifierChars = \"" + contData.nonASCII + "\"");
-console.log("const astralIdentifierStartCodes = " + JSON.stringify(startData.astral));
-console.log("const astralIdentifierCodes = " + JSON.stringify(contData.astral));
diff --git a/tools/eslint/node_modules/acorn/bin/update_authors.sh b/tools/eslint/node_modules/acorn/bin/update_authors.sh
deleted file mode 100755
index e08f57273c..0000000000
--- a/tools/eslint/node_modules/acorn/bin/update_authors.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-# Combine existing list of authors with everyone known in git, sort, add header.
-tail --lines=+3 AUTHORS > AUTHORS.tmp
-git log --format='%aN' | grep -v abraidwood | grep -v Rich-Harris | grep -v ForbesLindesay >> AUTHORS.tmp
-echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS
-sort -u AUTHORS.tmp >> AUTHORS
-rm -f AUTHORS.tmp
diff --git a/tools/eslint/node_modules/acorn/dist/acorn.es.js b/tools/eslint/node_modules/acorn/dist/acorn.es.js
index adb3dd30f3..32dd5954ea 100644
--- a/tools/eslint/node_modules/acorn/dist/acorn.es.js
+++ b/tools/eslint/node_modules/acorn/dist/acorn.es.js
@@ -1305,7 +1305,12 @@ pp$1.checkVariableExport = function(exports, decls) {
}
pp$1.shouldParseExportStatement = function() {
- return this.type.keyword || this.isLet() || this.isAsyncFunction()
+ return this.type.keyword === "var"
+ || this.type.keyword === "const"
+ || this.type.keyword === "class"
+ || this.type.keyword === "function"
+ || this.isLet()
+ || this.isAsyncFunction()
}
// Parses a comma-separated list of module exports.
@@ -1617,6 +1622,24 @@ pp$2.checkLVal = function(expr, isBinding, checkClashes) {
}
}
+// A recursive descent parser operates by defining functions for all
+// syntactic elements, and recursively calling those, each function
+// advancing the input stream and returning an AST node. Precedence
+// of constructs (for example, the fact that `!x[1]` means `!(x[1])`
+// instead of `(!x)[1]` is handled by the fact that the parser
+// function that parses unary prefix operators is called first, and
+// in turn calls the function that parses `[]` subscripts — that
+// way, it'll receive the node for `x[1]` already parsed, and wraps
+// *that* in the unary operator node.
+//
+// Acorn uses an [operator precedence parser][opp] to handle binary
+// operator precedence, because it is much more compact than using
+// the technique outlined above, which uses different, nesting
+// functions to specify precedence, for all of the ten binary
+// precedence levels that JavaScript defines.
+//
+// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser
+
var pp$3 = Parser.prototype
// Check if property name clashes with already added.
@@ -2481,6 +2504,10 @@ pp$5.finishNodeAt = function(node, type, pos, loc) {
return finishNodeAt.call(this, node, type, pos, loc)
}
+// The algorithm used to determine whether a regexp can appear at a
+// given point in the program is loosely based on sweet.js' approach.
+// See https://github.com/mozilla/sweet.js/wiki/design
+
var TokContext = function TokContext(token, isExpr, preserveSpace, override) {
this.token = token
this.isExpr = !!isExpr
@@ -3290,7 +3317,28 @@ pp$7.readWord = function() {
return this.finishToken(type, word)
}
-var version = "4.0.3"
+// Acorn is a tiny, fast JavaScript parser written in JavaScript.
+//
+// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
+// various contributors and released under an MIT license.
+//
+// Git repositories for Acorn are available at
+//
+// http://marijnhaverbeke.nl/git/acorn
+// https://github.com/ternjs/acorn.git
+//
+// Please use the [github bug tracker][ghbt] to report issues.
+//
+// [ghbt]: https://github.com/ternjs/acorn/issues
+//
+// This file defines the main parser interface. The library also comes
+// with a [error-tolerant parser][dammit] and an
+// [abstract syntax tree walker][walk], defined in other files.
+//
+// [dammit]: acorn_loose.js
+// [walk]: util/walk.js
+
+var version = "4.0.4"
// The main exported interface (under `self.acorn` when in the
// browser) is a `parse` function that takes a code string and
diff --git a/tools/eslint/node_modules/acorn/dist/acorn.js b/tools/eslint/node_modules/acorn/dist/acorn.js
index 0fc4086bb7..ea572b3ebd 100644
--- a/tools/eslint/node_modules/acorn/dist/acorn.js
+++ b/tools/eslint/node_modules/acorn/dist/acorn.js
@@ -2,3362 +2,3410 @@
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.acorn = global.acorn || {})));
-}(this, function (exports) { 'use strict';
-
- // Reserved word lists for various dialects of the language
-
- var reservedWords = {
- 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
- 5: "class enum extends super const export import",
- 6: "enum",
- strict: "implements interface let package private protected public static yield",
- strictBind: "eval arguments"
- }
-
- // And the keywords
-
- var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"
-
- var keywords = {
- 5: ecma5AndLessKeywords,
- 6: ecma5AndLessKeywords + " const class extends export import super"
- }
-
- // ## Character categories
-
- // Big ugly regular expressions that match characters in the
- // whitespace, identifier, and identifier-start categories. These
- // are only applied when a character is found to actually have a
- // code point above 128.
- // Generated by `bin/generate-identifier-regex.js`.
-
- var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"
- var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"
-
- var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]")
- var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]")
-
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null
-
- // These are a run-length and offset encoded representation of the
- // >0xffff code points that are a valid part of identifiers. The
- // offset starts at 0x10000, and each pair of numbers represents an
- // offset to the next range, and then a size of the range. They were
- // generated by bin/generate-identifier-regex.js
- var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541]
- var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]
-
- // This has a complexity linear to the value of the code. The
- // assumption is that looking up astral identifier characters is
- // rare.
- function isInAstralSet(code, set) {
- var pos = 0x10000
- for (var i = 0; i < set.length; i += 2) {
- pos += set[i]
- if (pos > code) return false
- pos += set[i + 1]
- if (pos >= code) return true
- }
- }
-
- // Test whether a given character code starts an identifier.
-
- function isIdentifierStart(code, astral) {
- if (code < 65) return code === 36
- if (code < 91) return true
- if (code < 97) return code === 95
- if (code < 123) return true
- if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))
- if (astral === false) return false
- return isInAstralSet(code, astralIdentifierStartCodes)
- }
-
- // Test whether a given character is part of an identifier.
-
- function isIdentifierChar(code, astral) {
- if (code < 48) return code === 36
- if (code < 58) return true
- if (code < 65) return false
- if (code < 91) return true
- if (code < 97) return code === 95
- if (code < 123) return true
- if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))
- if (astral === false) return false
- return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)
- }
-
- // ## Token types
-
- // The assignment of fine-grained, information-carrying type objects
- // allows the tokenizer to store the information it has about a
- // token in a way that is very cheap for the parser to look up.
-
- // All token type variables start with an underscore, to make them
- // easy to recognize.
-
- // The `beforeExpr` property is used to disambiguate between regular
- // expressions and divisions. It is set on all token types that can
- // be followed by an expression (thus, a slash after them would be a
- // regular expression).
+}(this, (function (exports) { 'use strict';
+
+// Reserved word lists for various dialects of the language
+
+var reservedWords = {
+ 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
+ 5: "class enum extends super const export import",
+ 6: "enum",
+ strict: "implements interface let package private protected public static yield",
+ strictBind: "eval arguments"
+}
+
+// And the keywords
+
+var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"
+
+var keywords = {
+ 5: ecma5AndLessKeywords,
+ 6: ecma5AndLessKeywords + " const class extends export import super"
+}
+
+// ## Character categories
+
+// Big ugly regular expressions that match characters in the
+// whitespace, identifier, and identifier-start categories. These
+// are only applied when a character is found to actually have a
+// code point above 128.
+// Generated by `bin/generate-identifier-regex.js`.
+
+var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"
+var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"
+
+var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]")
+var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]")
+
+nonASCIIidentifierStartChars = nonASCIIidentifierChars = null
+
+// These are a run-length and offset encoded representation of the
+// >0xffff code points that are a valid part of identifiers. The
+// offset starts at 0x10000, and each pair of numbers represents an
+// offset to the next range, and then a size of the range. They were
+// generated by bin/generate-identifier-regex.js
+var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541]
+var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]
+
+// This has a complexity linear to the value of the code. The
+// assumption is that looking up astral identifier characters is
+// rare.
+function isInAstralSet(code, set) {
+ var pos = 0x10000
+ for (var i = 0; i < set.length; i += 2) {
+ pos += set[i]
+ if (pos > code) return false
+ pos += set[i + 1]
+ if (pos >= code) return true
+ }
+}
+
+// Test whether a given character code starts an identifier.
+
+function isIdentifierStart(code, astral) {
+ if (code < 65) return code === 36
+ if (code < 91) return true
+ if (code < 97) return code === 95
+ if (code < 123) return true
+ if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))
+ if (astral === false) return false
+ return isInAstralSet(code, astralIdentifierStartCodes)
+}
+
+// Test whether a given character is part of an identifier.
+
+function isIdentifierChar(code, astral) {
+ if (code < 48) return code === 36
+ if (code < 58) return true
+ if (code < 65) return false
+ if (code < 91) return true
+ if (code < 97) return code === 95
+ if (code < 123) return true
+ if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))
+ if (astral === false) return false
+ return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)
+}
+
+// ## Token types
+
+// The assignment of fine-grained, information-carrying type objects
+// allows the tokenizer to store the information it has about a
+// token in a way that is very cheap for the parser to look up.
+
+// All token type variables start with an underscore, to make them
+// easy to recognize.
+
+// The `beforeExpr` property is used to disambiguate between regular
+// expressions and divisions. It is set on all token types that can
+// be followed by an expression (thus, a slash after them would be a
+// regular expression).
+//
+// The `startsExpr` property is used to check if the token ends a
+// `yield` expression. It is set on all token types that either can
+// directly start an expression (like a quotation mark) or can
+// continue an expression (like the body of a string).
+//
+// `isLoop` marks a keyword as starting a loop, which is important
+// to know when parsing a label, in order to allow or disallow
+// continue jumps to that label.
+
+var TokenType = function TokenType(label, conf) {
+ if ( conf === void 0 ) conf = {};
+
+ this.label = label
+ this.keyword = conf.keyword
+ this.beforeExpr = !!conf.beforeExpr
+ this.startsExpr = !!conf.startsExpr
+ this.isLoop = !!conf.isLoop
+ this.isAssign = !!conf.isAssign
+ this.prefix = !!conf.prefix
+ this.postfix = !!conf.postfix
+ this.binop = conf.binop || null
+ this.updateContext = null
+};
+
+function binop(name, prec) {
+ return new TokenType(name, {beforeExpr: true, binop: prec})
+}
+var beforeExpr = {beforeExpr: true};
+var startsExpr = {startsExpr: true};
+// Map keyword names to token types.
+
+var keywordTypes = {}
+
+// Succinct definitions of keyword token types
+function kw(name, options) {
+ if ( options === void 0 ) options = {};
+
+ options.keyword = name
+ return keywordTypes[name] = new TokenType(name, options)
+}
+
+var tt = {
+ num: new TokenType("num", startsExpr),
+ regexp: new TokenType("regexp", startsExpr),
+ string: new TokenType("string", startsExpr),
+ name: new TokenType("name", startsExpr),
+ eof: new TokenType("eof"),
+
+ // Punctuation token types.
+ bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}),
+ bracketR: new TokenType("]"),
+ braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}),
+ braceR: new TokenType("}"),
+ parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}),
+ parenR: new TokenType(")"),
+ comma: new TokenType(",", beforeExpr),
+ semi: new TokenType(";", beforeExpr),
+ colon: new TokenType(":", beforeExpr),
+ dot: new TokenType("."),
+ question: new TokenType("?", beforeExpr),
+ arrow: new TokenType("=>", beforeExpr),
+ template: new TokenType("template"),
+ ellipsis: new TokenType("...", beforeExpr),
+ backQuote: new TokenType("`", startsExpr),
+ dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}),
+
+ // Operators. These carry several kinds of properties to help the
+ // parser use them properly (the presence of these properties is
+ // what categorizes them as operators).
//
- // The `startsExpr` property is used to check if the token ends a
- // `yield` expression. It is set on all token types that either can
- // directly start an expression (like a quotation mark) or can
- // continue an expression (like the body of a string).
+ // `binop`, when present, specifies that this operator is a binary
+ // operator, and will refer to its precedence.
//
- // `isLoop` marks a keyword as starting a loop, which is important
- // to know when parsing a label, in order to allow or disallow
- // continue jumps to that label.
-
- var TokenType = function TokenType(label, conf) {
- if ( conf === void 0 ) conf = {};
-
- this.label = label
- this.keyword = conf.keyword
- this.beforeExpr = !!conf.beforeExpr
- this.startsExpr = !!conf.startsExpr
- this.isLoop = !!conf.isLoop
- this.isAssign = !!conf.isAssign
- this.prefix = !!conf.prefix
- this.postfix = !!conf.postfix
- this.binop = conf.binop || null
- this.updateContext = null
- };
-
- function binop(name, prec) {
- return new TokenType(name, {beforeExpr: true, binop: prec})
- }
- var beforeExpr = {beforeExpr: true};
- var startsExpr = {startsExpr: true};
- // Map keyword names to token types.
-
- var keywordTypes = {}
-
- // Succinct definitions of keyword token types
- function kw(name, options) {
- if ( options === void 0 ) options = {};
-
- options.keyword = name
- return keywordTypes[name] = new TokenType(name, options)
- }
-
- var tt = {
- num: new TokenType("num", startsExpr),
- regexp: new TokenType("regexp", startsExpr),
- string: new TokenType("string", startsExpr),
- name: new TokenType("name", startsExpr),
- eof: new TokenType("eof"),
-
- // Punctuation token types.
- bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}),
- bracketR: new TokenType("]"),
- braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}),
- braceR: new TokenType("}"),
- parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}),
- parenR: new TokenType(")"),
- comma: new TokenType(",", beforeExpr),
- semi: new TokenType(";", beforeExpr),
- colon: new TokenType(":", beforeExpr),
- dot: new TokenType("."),
- question: new TokenType("?", beforeExpr),
- arrow: new TokenType("=>", beforeExpr),
- template: new TokenType("template"),
- ellipsis: new TokenType("...", beforeExpr),
- backQuote: new TokenType("`", startsExpr),
- dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}),
-
- // Operators. These carry several kinds of properties to help the
- // parser use them properly (the presence of these properties is
- // what categorizes them as operators).
- //
- // `binop`, when present, specifies that this operator is a binary
- // operator, and will refer to its precedence.
- //
- // `prefix` and `postfix` mark the operator as a prefix or postfix
- // unary operator.
- //
- // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
- // binary operators with a very low precedence, that should result
- // in AssignmentExpression nodes.
-
- eq: new TokenType("=", {beforeExpr: true, isAssign: true}),
- assign: new TokenType("_=", {beforeExpr: true, isAssign: true}),
- incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}),
- prefix: new TokenType("prefix", {beforeExpr: true, prefix: true, startsExpr: true}),
- logicalOR: binop("||", 1),
- logicalAND: binop("&&", 2),
- bitwiseOR: binop("|", 3),
- bitwiseXOR: binop("^", 4),
- bitwiseAND: binop("&", 5),
- equality: binop("==/!=", 6),
- relational: binop("</>", 7),
- bitShift: binop("<</>>", 8),
- plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),
- modulo: binop("%", 10),
- star: binop("*", 10),
- slash: binop("/", 10),
- starstar: new TokenType("**", {beforeExpr: true}),
-
- // Keyword token types.
- _break: kw("break"),
- _case: kw("case", beforeExpr),
- _catch: kw("catch"),
- _continue: kw("continue"),
- _debugger: kw("debugger"),
- _default: kw("default", beforeExpr),
- _do: kw("do", {isLoop: true, beforeExpr: true}),
- _else: kw("else", beforeExpr),
- _finally: kw("finally"),
- _for: kw("for", {isLoop: true}),
- _function: kw("function", startsExpr),
- _if: kw("if"),
- _return: kw("return", beforeExpr),
- _switch: kw("switch"),
- _throw: kw("throw", beforeExpr),
- _try: kw("try"),
- _var: kw("var"),
- _const: kw("const"),
- _while: kw("while", {isLoop: true}),
- _with: kw("with"),
- _new: kw("new", {beforeExpr: true, startsExpr: true}),
- _this: kw("this", startsExpr),
- _super: kw("super", startsExpr),
- _class: kw("class"),
- _extends: kw("extends", beforeExpr),
- _export: kw("export"),
- _import: kw("import"),
- _null: kw("null", startsExpr),
- _true: kw("true", startsExpr),
- _false: kw("false", startsExpr),
- _in: kw("in", {beforeExpr: true, binop: 7}),
- _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}),
- _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}),
- _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}),
- _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true})
- }
-
- // Matches a whole line break (where CRLF is considered a single
- // line break). Used to count lines.
-
- var lineBreak = /\r\n?|\n|\u2028|\u2029/
- var lineBreakG = new RegExp(lineBreak.source, "g")
-
- function isNewLine(code) {
- return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
- }
-
- var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/
-
- var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
-
- function isArray(obj) {
- return Object.prototype.toString.call(obj) === "[object Array]"
- }
-
- // Checks if an object has a property.
-
- function has(obj, propName) {
- return Object.prototype.hasOwnProperty.call(obj, propName)
- }
-
- // These are used when `options.locations` is on, for the
- // `startLoc` and `endLoc` properties.
-
- var Position = function Position(line, col) {
- this.line = line
- this.column = col
- };
-
- Position.prototype.offset = function offset (n) {
- return new Position(this.line, this.column + n)
- };
-
- var SourceLocation = function SourceLocation(p, start, end) {
- this.start = start
- this.end = end
- if (p.sourceFile !== null) this.source = p.sourceFile
- };
-
- // The `getLineInfo` function is mostly useful when the
- // `locations` option is off (for performance reasons) and you
- // want to find the line/column position for a given character
- // offset. `input` should be the code string that the offset refers
- // into.
-
- function getLineInfo(input, offset) {
- for (var line = 1, cur = 0;;) {
- lineBreakG.lastIndex = cur
- var match = lineBreakG.exec(input)
- if (match && match.index < offset) {
- ++line
- cur = match.index + match[0].length
- } else {
- return new Position(line, offset - cur)
- }
- }
- }
-
- // A second optional argument can be given to further configure
- // the parser process. These options are recognized:
-
- var defaultOptions = {
- // `ecmaVersion` indicates the ECMAScript version to parse. Must
- // be either 3, 5, 6 (2015), 7 (2016), or 8 (2017). This influences support
- // for strict mode, the set of reserved words, and support for
- // new syntax features. The default is 7.
- ecmaVersion: 7,
- // `sourceType` indicates the mode the code should be parsed in.
- // Can be either `"script"` or `"module"`. This influences global
- // strict mode and parsing of `import` and `export` declarations.
- sourceType: "script",
- // `onInsertedSemicolon` can be a callback that will be called
- // when a semicolon is automatically inserted. It will be passed
- // th position of the comma as an offset, and if `locations` is
- // enabled, it is given the location as a `{line, column}` object
- // as second argument.
- onInsertedSemicolon: null,
- // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
- // trailing commas.
- onTrailingComma: null,
- // By default, reserved words are only enforced if ecmaVersion >= 5.
- // Set `allowReserved` to a boolean value to explicitly turn this on
- // an off. When this option has the value "never", reserved words
- // and keywords can also not be used as property names.
- allowReserved: null,
- // When enabled, a return at the top level is not considered an
- // error.
- allowReturnOutsideFunction: false,
- // When enabled, import/export statements are not constrained to
- // appearing at the top of the program.
- allowImportExportEverywhere: false,
- // When enabled, hashbang directive in the beginning of file
- // is allowed and treated as a line comment.
- allowHashBang: false,
- // When `locations` is on, `loc` properties holding objects with
- // `start` and `end` properties in `{line, column}` form (with
- // line being 1-based and column 0-based) will be attached to the
- // nodes.
- locations: false,
- // A function can be passed as `onToken` option, which will
- // cause Acorn to call that function with object in the same
- // format as tokens returned from `tokenizer().getToken()`. Note
- // that you are not allowed to call the parser from the
- // callback—that will corrupt its internal state.
- onToken: null,
- // A function can be passed as `onComment` option, which will
- // cause Acorn to call that function with `(block, text, start,
- // end)` parameters whenever a comment is skipped. `block` is a
- // boolean indicating whether this is a block (`/* */`) comment,
- // `text` is the content of the comment, and `start` and `end` are
- // character offsets that denote the start and end of the comment.
- // When the `locations` option is on, two more parameters are
- // passed, the full `{line, column}` locations of the start and
- // end of the comments. Note that you are not allowed to call the
- // parser from the callback—that will corrupt its internal state.
- onComment: null,
- // Nodes have their start and end characters offsets recorded in
- // `start` and `end` properties (directly on the node, rather than
- // the `loc` object, which holds line/column data. To also add a
- // [semi-standardized][range] `range` property holding a `[start,
- // end]` array with the same numbers, set the `ranges` option to
- // `true`.
- //
- // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
- ranges: false,
- // It is possible to parse multiple files into a single AST by
- // passing the tree produced by parsing the first file as
- // `program` option in subsequent parses. This will add the
- // toplevel forms of the parsed file to the `Program` (top) node
- // of an existing parse tree.
- program: null,
- // When `locations` is on, you can pass this to record the source
- // file in every node's `loc` object.
- sourceFile: null,
- // This value, if given, is stored in every node, whether
- // `locations` is on or off.
- directSourceFile: null,
- // When enabled, parenthesized expressions are represented by
- // (non-standard) ParenthesizedExpression nodes
- preserveParens: false,
- plugins: {}
- }
-
- // Interpret and default an options object
-
- function getOptions(opts) {
- var options = {}
-
- for (var opt in defaultOptions)
- options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]
-
- if (options.ecmaVersion >= 2015)
- options.ecmaVersion -= 2009
-
- if (options.allowReserved == null)
- options.allowReserved = options.ecmaVersion < 5
-
- if (isArray(options.onToken)) {
- var tokens = options.onToken
- options.onToken = function (token) { return tokens.push(token); }
- }
- if (isArray(options.onComment))
- options.onComment = pushComment(options, options.onComment)
-
- return options
- }
-
- function pushComment(options, array) {
- return function (block, text, start, end, startLoc, endLoc) {
- var comment = {
- type: block ? 'Block' : 'Line',
- value: text,
- start: start,
- end: end
- }
- if (options.locations)
- comment.loc = new SourceLocation(this, startLoc, endLoc)
- if (options.ranges)
- comment.range = [start, end]
- array.push(comment)
- }
- }
-
- // Registered plugins
- var plugins = {}
-
- function keywordRegexp(words) {
- return new RegExp("^(" + words.replace(/ /g, "|") + ")$")
- }
-
- var Parser = function Parser(options, input, startPos) {
- this.options = options = getOptions(options)
- this.sourceFile = options.sourceFile
- this.keywords = keywordRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])
- var reserved = ""
- if (!options.allowReserved) {
- for (var v = options.ecmaVersion;; v--)
- if (reserved = reservedWords[v]) break
- if (options.sourceType == "module") reserved += " await"
- }
- this.reservedWords = keywordRegexp(reserved)
- var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict
- this.reservedWordsStrict = keywordRegexp(reservedStrict)
- this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + reservedWords.strictBind)
- this.input = String(input)
-
- // Used to signal to callers of `readWord1` whether the word
- // contained any escape sequences. This is needed because words with
- // escape sequences must not be interpreted as keywords.
- this.containsEsc = false
-
- // Load plugins
- this.loadPlugins(options.plugins)
-
- // Set up token state
-
- // The current position of the tokenizer in the input.
- if (startPos) {
- this.pos = startPos
- this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1
- this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length
+ // `prefix` and `postfix` mark the operator as a prefix or postfix
+ // unary operator.
+ //
+ // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
+ // binary operators with a very low precedence, that should result
+ // in AssignmentExpression nodes.
+
+ eq: new TokenType("=", {beforeExpr: true, isAssign: true}),
+ assign: new TokenType("_=", {beforeExpr: true, isAssign: true}),
+ incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}),
+ prefix: new TokenType("prefix", {beforeExpr: true, prefix: true, startsExpr: true}),
+ logicalOR: binop("||", 1),
+ logicalAND: binop("&&", 2),
+ bitwiseOR: binop("|", 3),
+ bitwiseXOR: binop("^", 4),
+ bitwiseAND: binop("&", 5),
+ equality: binop("==/!=", 6),
+ relational: binop("</>", 7),
+ bitShift: binop("<</>>", 8),
+ plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),
+ modulo: binop("%", 10),
+ star: binop("*", 10),
+ slash: binop("/", 10),
+ starstar: new TokenType("**", {beforeExpr: true}),
+
+ // Keyword token types.
+ _break: kw("break"),
+ _case: kw("case", beforeExpr),
+ _catch: kw("catch"),
+ _continue: kw("continue"),
+ _debugger: kw("debugger"),
+ _default: kw("default", beforeExpr),
+ _do: kw("do", {isLoop: true, beforeExpr: true}),
+ _else: kw("else", beforeExpr),
+ _finally: kw("finally"),
+ _for: kw("for", {isLoop: true}),
+ _function: kw("function", startsExpr),
+ _if: kw("if"),
+ _return: kw("return", beforeExpr),
+ _switch: kw("switch"),
+ _throw: kw("throw", beforeExpr),
+ _try: kw("try"),
+ _var: kw("var"),
+ _const: kw("const"),
+ _while: kw("while", {isLoop: true}),
+ _with: kw("with"),
+ _new: kw("new", {beforeExpr: true, startsExpr: true}),
+ _this: kw("this", startsExpr),
+ _super: kw("super", startsExpr),
+ _class: kw("class"),
+ _extends: kw("extends", beforeExpr),
+ _export: kw("export"),
+ _import: kw("import"),
+ _null: kw("null", startsExpr),
+ _true: kw("true", startsExpr),
+ _false: kw("false", startsExpr),
+ _in: kw("in", {beforeExpr: true, binop: 7}),
+ _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}),
+ _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}),
+ _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}),
+ _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true})
+}
+
+// Matches a whole line break (where CRLF is considered a single
+// line break). Used to count lines.
+
+var lineBreak = /\r\n?|\n|\u2028|\u2029/
+var lineBreakG = new RegExp(lineBreak.source, "g")
+
+function isNewLine(code) {
+ return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
+}
+
+var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/
+
+var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g
+
+function isArray(obj) {
+ return Object.prototype.toString.call(obj) === "[object Array]"
+}
+
+// Checks if an object has a property.
+
+function has(obj, propName) {
+ return Object.prototype.hasOwnProperty.call(obj, propName)
+}
+
+// These are used when `options.locations` is on, for the
+// `startLoc` and `endLoc` properties.
+
+var Position = function Position(line, col) {
+ this.line = line
+ this.column = col
+};
+
+Position.prototype.offset = function offset (n) {
+ return new Position(this.line, this.column + n)
+};
+
+var SourceLocation = function SourceLocation(p, start, end) {
+ this.start = start
+ this.end = end
+ if (p.sourceFile !== null) this.source = p.sourceFile
+};
+
+// The `getLineInfo` function is mostly useful when the
+// `locations` option is off (for performance reasons) and you
+// want to find the line/column position for a given character
+// offset. `input` should be the code string that the offset refers
+// into.
+
+function getLineInfo(input, offset) {
+ for (var line = 1, cur = 0;;) {
+ lineBreakG.lastIndex = cur
+ var match = lineBreakG.exec(input)
+ if (match && match.index < offset) {
+ ++line
+ cur = match.index + match[0].length
} else {
- this.pos = this.lineStart = 0
- this.curLine = 1
- }
-
- // Properties of the current token:
- // Its type
- this.type = tt.eof
- // For tokens that include more information than their type, the value
- this.value = null
- // Its start and end offset
- this.start = this.end = this.pos
- // And, if locations are used, the {line, column} object
- // corresponding to those offsets
- this.startLoc = this.endLoc = this.curPosition()
-
- // Position information for the previous token
- this.lastTokEndLoc = this.lastTokStartLoc = null
- this.lastTokStart = this.lastTokEnd = this.pos
-
- // The context stack is used to superficially track syntactic
- // context to predict whether a regular expression is allowed in a
- // given position.
- this.context = this.initialContext()
- this.exprAllowed = true
-
- // Figure out if it's a module code.
- this.strict = this.inModule = options.sourceType === "module"
-
- // Used to signify the start of a potential arrow function
- this.potentialArrowAt = -1
-
- // Flags to track whether we are in a function, a generator, an async function.
- this.inFunction = this.inGenerator = this.inAsync = false
- // Positions to delayed-check that yield/await does not exist in default parameters.
- this.yieldPos = this.awaitPos = 0
- // Labels in scope.
- this.labels = []
-
- // If enabled, skip leading hashbang line.
- if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === '#!')
- this.skipLineComment(2)
- };
-
- // DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them
- Parser.prototype.isKeyword = function isKeyword (word) { return this.keywords.test(word) };
- Parser.prototype.isReservedWord = function isReservedWord (word) { return this.reservedWords.test(word) };
-
- Parser.prototype.extend = function extend (name, f) {
- this[name] = f(this[name])
- };
-
- Parser.prototype.loadPlugins = function loadPlugins (pluginConfigs) {
- var this$1 = this;
-
- for (var name in pluginConfigs) {
- var plugin = plugins[name]
- if (!plugin) throw new Error("Plugin '" + name + "' not found")
- plugin(this$1, pluginConfigs[name])
- }
- };
-
- Parser.prototype.parse = function parse () {
- var node = this.options.program || this.startNode()
- this.nextToken()
- return this.parseTopLevel(node)
- };
-
- var pp = Parser.prototype
-
- // ## Parser utilities
-
- // Test whether a statement node is the string literal `"use strict"`.
+ return new Position(line, offset - cur)
+ }
+ }
+}
+
+// A second optional argument can be given to further configure
+// the parser process. These options are recognized:
+
+var defaultOptions = {
+ // `ecmaVersion` indicates the ECMAScript version to parse. Must
+ // be either 3, 5, 6 (2015), 7 (2016), or 8 (2017). This influences support
+ // for strict mode, the set of reserved words, and support for
+ // new syntax features. The default is 7.
+ ecmaVersion: 7,
+ // `sourceType` indicates the mode the code should be parsed in.
+ // Can be either `"script"` or `"module"`. This influences global
+ // strict mode and parsing of `import` and `export` declarations.
+ sourceType: "script",
+ // `onInsertedSemicolon` can be a callback that will be called
+ // when a semicolon is automatically inserted. It will be passed
+ // th position of the comma as an offset, and if `locations` is
+ // enabled, it is given the location as a `{line, column}` object
+ // as second argument.
+ onInsertedSemicolon: null,
+ // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
+ // trailing commas.
+ onTrailingComma: null,
+ // By default, reserved words are only enforced if ecmaVersion >= 5.
+ // Set `allowReserved` to a boolean value to explicitly turn this on
+ // an off. When this option has the value "never", reserved words
+ // and keywords can also not be used as property names.
+ allowReserved: null,
+ // When enabled, a return at the top level is not considered an
+ // error.
+ allowReturnOutsideFunction: false,
+ // When enabled, import/export statements are not constrained to
+ // appearing at the top of the program.
+ allowImportExportEverywhere: false,
+ // When enabled, hashbang directive in the beginning of file
+ // is allowed and treated as a line comment.
+ allowHashBang: false,
+ // When `locations` is on, `loc` properties holding objects with
+ // `start` and `end` properties in `{line, column}` form (with
+ // line being 1-based and column 0-based) will be attached to the
+ // nodes.
+ locations: false,
+ // A function can be passed as `onToken` option, which will
+ // cause Acorn to call that function with object in the same
+ // format as tokens returned from `tokenizer().getToken()`. Note
+ // that you are not allowed to call the parser from the
+ // callback—that will corrupt its internal state.
+ onToken: null,
+ // A function can be passed as `onComment` option, which will
+ // cause Acorn to call that function with `(block, text, start,
+ // end)` parameters whenever a comment is skipped. `block` is a
+ // boolean indicating whether this is a block (`/* */`) comment,
+ // `text` is the content of the comment, and `start` and `end` are
+ // character offsets that denote the start and end of the comment.
+ // When the `locations` option is on, two more parameters are
+ // passed, the full `{line, column}` locations of the start and
+ // end of the comments. Note that you are not allowed to call the
+ // parser from the callback—that will corrupt its internal state.
+ onComment: null,
+ // Nodes have their start and end characters offsets recorded in
+ // `start` and `end` properties (directly on the node, rather than
+ // the `loc` object, which holds line/column data. To also add a
+ // [semi-standardized][range] `range` property holding a `[start,
+ // end]` array with the same numbers, set the `ranges` option to
+ // `true`.
+ //
+ // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
+ ranges: false,
+ // It is possible to parse multiple files into a single AST by
+ // passing the tree produced by parsing the first file as
+ // `program` option in subsequent parses. This will add the
+ // toplevel forms of the parsed file to the `Program` (top) node
+ // of an existing parse tree.
+ program: null,
+ // When `locations` is on, you can pass this to record the source
+ // file in every node's `loc` object.
+ sourceFile: null,
+ // This value, if given, is stored in every node, whether
+ // `locations` is on or off.
+ directSourceFile: null,
+ // When enabled, parenthesized expressions are represented by
+ // (non-standard) ParenthesizedExpression nodes
+ preserveParens: false,
+ plugins: {}
+}
+
+// Interpret and default an options object
+
+function getOptions(opts) {
+ var options = {}
+
+ for (var opt in defaultOptions)
+ options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]
+
+ if (options.ecmaVersion >= 2015)
+ options.ecmaVersion -= 2009
+
+ if (options.allowReserved == null)
+ options.allowReserved = options.ecmaVersion < 5
+
+ if (isArray(options.onToken)) {
+ var tokens = options.onToken
+ options.onToken = function (token) { return tokens.push(token); }
+ }
+ if (isArray(options.onComment))
+ options.onComment = pushComment(options, options.onComment)
+
+ return options
+}
+
+function pushComment(options, array) {
+ return function (block, text, start, end, startLoc, endLoc) {
+ var comment = {
+ type: block ? 'Block' : 'Line',
+ value: text,
+ start: start,
+ end: end
+ }
+ if (options.locations)
+ comment.loc = new SourceLocation(this, startLoc, endLoc)
+ if (options.ranges)
+ comment.range = [start, end]
+ array.push(comment)
+ }
+}
+
+// Registered plugins
+var plugins = {}
+
+function keywordRegexp(words) {
+ return new RegExp("^(" + words.replace(/ /g, "|") + ")$")
+}
+
+var Parser = function Parser(options, input, startPos) {
+ this.options = options = getOptions(options)
+ this.sourceFile = options.sourceFile
+ this.keywords = keywordRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])
+ var reserved = ""
+ if (!options.allowReserved) {
+ for (var v = options.ecmaVersion;; v--)
+ if (reserved = reservedWords[v]) break
+ if (options.sourceType == "module") reserved += " await"
+ }
+ this.reservedWords = keywordRegexp(reserved)
+ var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict
+ this.reservedWordsStrict = keywordRegexp(reservedStrict)
+ this.reservedWordsStrictBind = keywordRegexp(reservedStrict + " " + reservedWords.strictBind)
+ this.input = String(input)
+
+ // Used to signal to callers of `readWord1` whether the word
+ // contained any escape sequences. This is needed because words with
+ // escape sequences must not be interpreted as keywords.
+ this.containsEsc = false
+
+ // Load plugins
+ this.loadPlugins(options.plugins)
+
+ // Set up token state
+
+ // The current position of the tokenizer in the input.
+ if (startPos) {
+ this.pos = startPos
+ this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1
+ this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length
+ } else {
+ this.pos = this.lineStart = 0
+ this.curLine = 1
+ }
+
+ // Properties of the current token:
+ // Its type
+ this.type = tt.eof
+ // For tokens that include more information than their type, the value
+ this.value = null
+ // Its start and end offset
+ this.start = this.end = this.pos
+ // And, if locations are used, the {line, column} object
+ // corresponding to those offsets
+ this.startLoc = this.endLoc = this.curPosition()
+
+ // Position information for the previous token
+ this.lastTokEndLoc = this.lastTokStartLoc = null
+ this.lastTokStart = this.lastTokEnd = this.pos
+
+ // The context stack is used to superficially track syntactic
+ // context to predict whether a regular expression is allowed in a
+ // given position.
+ this.context = this.initialContext()
+ this.exprAllowed = true
+
+ // Figure out if it's a module code.
+ this.strict = this.inModule = options.sourceType === "module"
+
+ // Used to signify the start of a potential arrow function
+ this.potentialArrowAt = -1
+
+ // Flags to track whether we are in a function, a generator, an async function.
+ this.inFunction = this.inGenerator = this.inAsync = false
+ // Positions to delayed-check that yield/await does not exist in default parameters.
+ this.yieldPos = this.awaitPos = 0
+ // Labels in scope.
+ this.labels = []
+
+ // If enabled, skip leading hashbang line.
+ if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === '#!')
+ this.skipLineComment(2)
+};
+
+// DEPRECATED Kept for backwards compatibility until 3.0 in case a plugin uses them
+Parser.prototype.isKeyword = function isKeyword (word) { return this.keywords.test(word) };
+Parser.prototype.isReservedWord = function isReservedWord (word) { return this.reservedWords.test(word) };
+
+Parser.prototype.extend = function extend (name, f) {
+ this[name] = f(this[name])
+};
+
+Parser.prototype.loadPlugins = function loadPlugins (pluginConfigs) {
+ var this$1 = this;
- pp.isUseStrict = function(stmt) {
- return this.options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" &&
- stmt.expression.type === "Literal" &&
- stmt.expression.raw.slice(1, -1) === "use strict"
+ for (var name in pluginConfigs) {
+ var plugin = plugins[name]
+ if (!plugin) throw new Error("Plugin '" + name + "' not found")
+ plugin(this$1, pluginConfigs[name])
}
+};
- // Predicate that tests whether the next token is of the given
- // type, and if yes, consumes it as a side effect.
+Parser.prototype.parse = function parse () {
+ var node = this.options.program || this.startNode()
+ this.nextToken()
+ return this.parseTopLevel(node)
+};
- pp.eat = function(type) {
- if (this.type === type) {
- this.next()
- return true
- } else {
- return false
- }
- }
+var pp = Parser.prototype
- // Tests whether parsed token is a contextual keyword.
+// ## Parser utilities
- pp.isContextual = function(name) {
- return this.type === tt.name && this.value === name
- }
+// Test whether a statement node is the string literal `"use strict"`.
- // Consumes contextual keyword if possible.
+pp.isUseStrict = function(stmt) {
+ return this.options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" &&
+ stmt.expression.type === "Literal" &&
+ stmt.expression.raw.slice(1, -1) === "use strict"
+}
- pp.eatContextual = function(name) {
- return this.value === name && this.eat(tt.name)
- }
-
- // Asserts that following token is given contextual keyword.
+// Predicate that tests whether the next token is of the given
+// type, and if yes, consumes it as a side effect.
- pp.expectContextual = function(name) {
- if (!this.eatContextual(name)) this.unexpected()
+pp.eat = function(type) {
+ if (this.type === type) {
+ this.next()
+ return true
+ } else {
+ return false
}
+}
- // Test whether a semicolon can be inserted at the current position.
+// Tests whether parsed token is a contextual keyword.
- pp.canInsertSemicolon = function() {
- return this.type === tt.eof ||
- this.type === tt.braceR ||
- lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- }
+pp.isContextual = function(name) {
+ return this.type === tt.name && this.value === name
+}
- pp.insertSemicolon = function() {
- if (this.canInsertSemicolon()) {
- if (this.options.onInsertedSemicolon)
- this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)
- return true
- }
- }
-
- // Consume a semicolon, or, failing that, see if we are allowed to
- // pretend that there is a semicolon at this position.
+// Consumes contextual keyword if possible.
- pp.semicolon = function() {
- if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()
- }
+pp.eatContextual = function(name) {
+ return this.value === name && this.eat(tt.name)
+}
- pp.afterTrailingComma = function(tokType, notNext) {
- if (this.type == tokType) {
- if (this.options.onTrailingComma)
- this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)
- if (!notNext)
- this.next()
- return true
- }
- }
+// Asserts that following token is given contextual keyword.
- // Expect a token of a given type. If found, consume it, otherwise,
- // raise an unexpected token error.
+pp.expectContextual = function(name) {
+ if (!this.eatContextual(name)) this.unexpected()
+}
- pp.expect = function(type) {
- this.eat(type) || this.unexpected()
- }
+// Test whether a semicolon can be inserted at the current position.
- // Raise an unexpected token error.
+pp.canInsertSemicolon = function() {
+ return this.type === tt.eof ||
+ this.type === tt.braceR ||
+ lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
+}
- pp.unexpected = function(pos) {
- this.raise(pos != null ? pos : this.start, "Unexpected token")
+pp.insertSemicolon = function() {
+ if (this.canInsertSemicolon()) {
+ if (this.options.onInsertedSemicolon)
+ this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)
+ return true
}
+}
- var DestructuringErrors = function DestructuringErrors() {
- this.shorthandAssign = 0
- this.trailingComma = 0
- };
-
- pp.checkPatternErrors = function(refDestructuringErrors, andThrow) {
- var trailing = refDestructuringErrors && refDestructuringErrors.trailingComma
- if (!andThrow) return !!trailing
- if (trailing) this.raise(trailing, "Comma is not permitted after the rest element")
- }
+// Consume a semicolon, or, failing that, see if we are allowed to
+// pretend that there is a semicolon at this position.
- pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
- var pos = refDestructuringErrors && refDestructuringErrors.shorthandAssign
- if (!andThrow) return !!pos
- if (pos) this.raise(pos, "Shorthand property assignments are valid only in destructuring patterns")
- }
+pp.semicolon = function() {
+ if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()
+}
- pp.checkYieldAwaitInDefaultParams = function() {
- if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
- this.raise(this.yieldPos, "Yield expression cannot be a default value")
- if (this.awaitPos)
- this.raise(this.awaitPos, "Await expression cannot be a default value")
+pp.afterTrailingComma = function(tokType, notNext) {
+ if (this.type == tokType) {
+ if (this.options.onTrailingComma)
+ this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)
+ if (!notNext)
+ this.next()
+ return true
}
+}
- var pp$1 = Parser.prototype
-
- // ### Statement parsing
+// Expect a token of a given type. If found, consume it, otherwise,
+// raise an unexpected token error.
- // Parse a program. Initializes the parser, reads any number of
- // statements, and wraps them in a Program node. Optionally takes a
- // `program` argument. If present, the statements will be appended
- // to its body instead of creating a new node.
+pp.expect = function(type) {
+ this.eat(type) || this.unexpected()
+}
- pp$1.parseTopLevel = function(node) {
- var this$1 = this;
-
- var first = true, exports = {}
- if (!node.body) node.body = []
- while (this.type !== tt.eof) {
- var stmt = this$1.parseStatement(true, true, exports)
- node.body.push(stmt)
- if (first) {
- if (this$1.isUseStrict(stmt)) this$1.setStrict(true)
- first = false
- }
- }
- this.next()
- if (this.options.ecmaVersion >= 6) {
- node.sourceType = this.options.sourceType
- }
- return this.finishNode(node, "Program")
- }
-
- var loopLabel = {kind: "loop"};
- var switchLabel = {kind: "switch"};
- pp$1.isLet = function() {
- if (this.type !== tt.name || this.options.ecmaVersion < 6 || this.value != "let") return false
- skipWhiteSpace.lastIndex = this.pos
- var skip = skipWhiteSpace.exec(this.input)
- var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)
- if (nextCh === 91 || nextCh == 123) return true // '{' and '['
- if (isIdentifierStart(nextCh, true)) {
- for (var pos = next + 1; isIdentifierChar(this.input.charCodeAt(pos), true); ++pos) {}
- var ident = this.input.slice(next, pos)
- if (!this.isKeyword(ident)) return true
- }
- return false
- }
+// Raise an unexpected token error.
- // check 'async [no LineTerminator here] function'
- // - 'async /*foo*/ function' is OK.
- // - 'async /*\n*/ function' is invalid.
- pp$1.isAsyncFunction = function() {
- if (this.type !== tt.name || this.options.ecmaVersion < 8 || this.value != "async")
- return false
+pp.unexpected = function(pos) {
+ this.raise(pos != null ? pos : this.start, "Unexpected token")
+}
- skipWhiteSpace.lastIndex = this.pos
- var skip = skipWhiteSpace.exec(this.input)
- var next = this.pos + skip[0].length
- return !lineBreak.test(this.input.slice(this.pos, next)) &&
- this.input.slice(next, next + 8) === "function" &&
- (next + 8 == this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))
- }
+var DestructuringErrors = function DestructuringErrors() {
+ this.shorthandAssign = 0
+ this.trailingComma = 0
+};
- // Parse a single statement.
- //
- // If expecting a statement and finding a slash operator, parse a
- // regular expression literal. This is to handle cases like
- // `if (foo) /blah/.exec(foo)`, where looking at the previous token
- // does not help.
+pp.checkPatternErrors = function(refDestructuringErrors, andThrow) {
+ var trailing = refDestructuringErrors && refDestructuringErrors.trailingComma
+ if (!andThrow) return !!trailing
+ if (trailing) this.raise(trailing, "Comma is not permitted after the rest element")
+}
- pp$1.parseStatement = function(declaration, topLevel, exports) {
- var starttype = this.type, node = this.startNode(), kind
+pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
+ var pos = refDestructuringErrors && refDestructuringErrors.shorthandAssign
+ if (!andThrow) return !!pos
+ if (pos) this.raise(pos, "Shorthand property assignments are valid only in destructuring patterns")
+}
- if (this.isLet()) {
- starttype = tt._var
- kind = "let"
- }
+pp.checkYieldAwaitInDefaultParams = function() {
+ if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
+ this.raise(this.yieldPos, "Yield expression cannot be a default value")
+ if (this.awaitPos)
+ this.raise(this.awaitPos, "Await expression cannot be a default value")
+}
- // Most types of statements are recognized by the keyword they
- // start with. Many are trivial to parse, some require a bit of
- // complexity.
-
- switch (starttype) {
- case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
- case tt._debugger: return this.parseDebuggerStatement(node)
- case tt._do: return this.parseDoStatement(node)
- case tt._for: return this.parseForStatement(node)
- case tt._function:
- if (!declaration && this.options.ecmaVersion >= 6) this.unexpected()
- return this.parseFunctionStatement(node, false)
- case tt._class:
- if (!declaration) this.unexpected()
- return this.parseClass(node, true)
- case tt._if: return this.parseIfStatement(node)
- case tt._return: return this.parseReturnStatement(node)
- case tt._switch: return this.parseSwitchStatement(node)
- case tt._throw: return this.parseThrowStatement(node)
- case tt._try: return this.parseTryStatement(node)
- case tt._const: case tt._var:
- kind = kind || this.value
- if (!declaration && kind != "var") this.unexpected()
- return this.parseVarStatement(node, kind)
- case tt._while: return this.parseWhileStatement(node)
- case tt._with: return this.parseWithStatement(node)
- case tt.braceL: return this.parseBlock()
- case tt.semi: return this.parseEmptyStatement(node)
- case tt._export:
- case tt._import:
- if (!this.options.allowImportExportEverywhere) {
- if (!topLevel)
- this.raise(this.start, "'import' and 'export' may only appear at the top level")
- if (!this.inModule)
- this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")
- }
- return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)
+var pp$1 = Parser.prototype
- // If the statement does not start with a statement keyword or a
- // brace, it's an ExpressionStatement or LabeledStatement. We
- // simply start parsing an expression, and afterwards, if the
- // next token is a colon and the expression was a simple
- // Identifier node, we switch to interpreting it as a label.
- default:
- if (this.isAsyncFunction() && declaration) {
- this.next()
- return this.parseFunctionStatement(node, true)
- }
+// ### Statement parsing
- var maybeName = this.value, expr = this.parseExpression()
- if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon))
- return this.parseLabeledStatement(node, maybeName, expr)
- else return this.parseExpressionStatement(node, expr)
- }
- }
+// Parse a program. Initializes the parser, reads any number of
+// statements, and wraps them in a Program node. Optionally takes a
+// `program` argument. If present, the statements will be appended
+// to its body instead of creating a new node.
- pp$1.parseBreakContinueStatement = function(node, keyword) {
- var this$1 = this;
+pp$1.parseTopLevel = function(node) {
+ var this$1 = this;
- var isBreak = keyword == "break"
- this.next()
- if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null
- else if (this.type !== tt.name) this.unexpected()
- else {
- node.label = this.parseIdent()
- this.semicolon()
- }
-
- // Verify that there is an actual destination to break or
- // continue to.
- for (var i = 0; i < this.labels.length; ++i) {
- var lab = this$1.labels[i]
- if (node.label == null || lab.name === node.label.name) {
- if (lab.kind != null && (isBreak || lab.kind === "loop")) break
- if (node.label && isBreak) break
- }
+ var first = true, exports = {}
+ if (!node.body) node.body = []
+ while (this.type !== tt.eof) {
+ var stmt = this$1.parseStatement(true, true, exports)
+ node.body.push(stmt)
+ if (first) {
+ if (this$1.isUseStrict(stmt)) this$1.setStrict(true)
+ first = false
}
- if (i === this.labels.length) this.raise(node.start, "Unsyntactic " + keyword)
- return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
- }
-
- pp$1.parseDebuggerStatement = function(node) {
- this.next()
- this.semicolon()
- return this.finishNode(node, "DebuggerStatement")
}
+ this.next()
+ if (this.options.ecmaVersion >= 6) {
+ node.sourceType = this.options.sourceType
+ }
+ return this.finishNode(node, "Program")
+}
+
+var loopLabel = {kind: "loop"};
+var switchLabel = {kind: "switch"};
+pp$1.isLet = function() {
+ if (this.type !== tt.name || this.options.ecmaVersion < 6 || this.value != "let") return false
+ skipWhiteSpace.lastIndex = this.pos
+ var skip = skipWhiteSpace.exec(this.input)
+ var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)
+ if (nextCh === 91 || nextCh == 123) return true // '{' and '['
+ if (isIdentifierStart(nextCh, true)) {
+ for (var pos = next + 1; isIdentifierChar(this.input.charCodeAt(pos), true); ++pos) {}
+ var ident = this.input.slice(next, pos)
+ if (!this.isKeyword(ident)) return true
+ }
+ return false
+}
+
+// check 'async [no LineTerminator here] function'
+// - 'async /*foo*/ function' is OK.
+// - 'async /*\n*/ function' is invalid.
+pp$1.isAsyncFunction = function() {
+ if (this.type !== tt.name || this.options.ecmaVersion < 8 || this.value != "async")
+ return false
- pp$1.parseDoStatement = function(node) {
- this.next()
- this.labels.push(loopLabel)
- node.body = this.parseStatement(false)
- this.labels.pop()
- this.expect(tt._while)
- node.test = this.parseParenExpression()
- if (this.options.ecmaVersion >= 6)
- this.eat(tt.semi)
- else
- this.semicolon()
- return this.finishNode(node, "DoWhileStatement")
- }
-
- // Disambiguating between a `for` and a `for`/`in` or `for`/`of`
- // loop is non-trivial. Basically, we have to parse the init `var`
- // statement or expression, disallowing the `in` operator (see
- // the second parameter to `parseExpression`), and then check
- // whether the next token is `in` or `of`. When there is no init
- // part (semicolon immediately after the opening parenthesis), it
- // is a regular `for` loop.
-
- pp$1.parseForStatement = function(node) {
- this.next()
- this.labels.push(loopLabel)
- this.expect(tt.parenL)
- if (this.type === tt.semi) return this.parseFor(node, null)
- var isLet = this.isLet()
- if (this.type === tt._var || this.type === tt._const || isLet) {
- var init$1 = this.startNode(), kind = isLet ? "let" : this.value
+ skipWhiteSpace.lastIndex = this.pos
+ var skip = skipWhiteSpace.exec(this.input)
+ var next = this.pos + skip[0].length
+ return !lineBreak.test(this.input.slice(this.pos, next)) &&
+ this.input.slice(next, next + 8) === "function" &&
+ (next + 8 == this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))
+}
+
+// Parse a single statement.
+//
+// If expecting a statement and finding a slash operator, parse a
+// regular expression literal. This is to handle cases like
+// `if (foo) /blah/.exec(foo)`, where looking at the previous token
+// does not help.
+
+pp$1.parseStatement = function(declaration, topLevel, exports) {
+ var starttype = this.type, node = this.startNode(), kind
+
+ if (this.isLet()) {
+ starttype = tt._var
+ kind = "let"
+ }
+
+ // Most types of statements are recognized by the keyword they
+ // start with. Many are trivial to parse, some require a bit of
+ // complexity.
+
+ switch (starttype) {
+ case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
+ case tt._debugger: return this.parseDebuggerStatement(node)
+ case tt._do: return this.parseDoStatement(node)
+ case tt._for: return this.parseForStatement(node)
+ case tt._function:
+ if (!declaration && this.options.ecmaVersion >= 6) this.unexpected()
+ return this.parseFunctionStatement(node, false)
+ case tt._class:
+ if (!declaration) this.unexpected()
+ return this.parseClass(node, true)
+ case tt._if: return this.parseIfStatement(node)
+ case tt._return: return this.parseReturnStatement(node)
+ case tt._switch: return this.parseSwitchStatement(node)
+ case tt._throw: return this.parseThrowStatement(node)
+ case tt._try: return this.parseTryStatement(node)
+ case tt._const: case tt._var:
+ kind = kind || this.value
+ if (!declaration && kind != "var") this.unexpected()
+ return this.parseVarStatement(node, kind)
+ case tt._while: return this.parseWhileStatement(node)
+ case tt._with: return this.parseWithStatement(node)
+ case tt.braceL: return this.parseBlock()
+ case tt.semi: return this.parseEmptyStatement(node)
+ case tt._export:
+ case tt._import:
+ if (!this.options.allowImportExportEverywhere) {
+ if (!topLevel)
+ this.raise(this.start, "'import' and 'export' may only appear at the top level")
+ if (!this.inModule)
+ this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'")
+ }
+ return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)
+
+ // If the statement does not start with a statement keyword or a
+ // brace, it's an ExpressionStatement or LabeledStatement. We
+ // simply start parsing an expression, and afterwards, if the
+ // next token is a colon and the expression was a simple
+ // Identifier node, we switch to interpreting it as a label.
+ default:
+ if (this.isAsyncFunction() && declaration) {
this.next()
- this.parseVar(init$1, true, kind)
- this.finishNode(init$1, "VariableDeclaration")
- if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1 &&
- !(kind !== "var" && init$1.declarations[0].init))
- return this.parseForIn(node, init$1)
- return this.parseFor(node, init$1)
+ return this.parseFunctionStatement(node, true)
}
- var refDestructuringErrors = new DestructuringErrors
- var init = this.parseExpression(true, refDestructuringErrors)
- if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
- this.checkPatternErrors(refDestructuringErrors, true)
- this.toAssignable(init)
- this.checkLVal(init)
- return this.parseForIn(node, init)
- } else {
- this.checkExpressionErrors(refDestructuringErrors, true)
- }
- return this.parseFor(node, init)
- }
- pp$1.parseFunctionStatement = function(node, isAsync) {
- this.next()
- return this.parseFunction(node, true, false, isAsync)
- }
-
- pp$1.isFunction = function() {
- return this.type === tt._function || this.isAsyncFunction()
+ var maybeName = this.value, expr = this.parseExpression()
+ if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon))
+ return this.parseLabeledStatement(node, maybeName, expr)
+ else return this.parseExpressionStatement(node, expr)
}
+}
- pp$1.parseIfStatement = function(node) {
- this.next()
- node.test = this.parseParenExpression()
- // allow function declarations in branches, but only in non-strict mode
- node.consequent = this.parseStatement(!this.strict && this.isFunction())
- node.alternate = this.eat(tt._else) ? this.parseStatement(!this.strict && this.isFunction()) : null
- return this.finishNode(node, "IfStatement")
- }
+pp$1.parseBreakContinueStatement = function(node, keyword) {
+ var this$1 = this;
- pp$1.parseReturnStatement = function(node) {
- if (!this.inFunction && !this.options.allowReturnOutsideFunction)
- this.raise(this.start, "'return' outside of function")
- this.next()
-
- // In `return` (and `break`/`continue`), the keywords with
- // optional arguments, we eagerly look for a semicolon or the
- // possibility to insert one.
-
- if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null
- else { node.argument = this.parseExpression(); this.semicolon() }
- return this.finishNode(node, "ReturnStatement")
- }
-
- pp$1.parseSwitchStatement = function(node) {
- var this$1 = this;
-
- this.next()
- node.discriminant = this.parseParenExpression()
- node.cases = []
- this.expect(tt.braceL)
- this.labels.push(switchLabel)
-
- // Statements under must be grouped (by label) in SwitchCase
- // nodes. `cur` is used to keep the node that we are currently
- // adding statements to.
-
- for (var cur, sawDefault = false; this.type != tt.braceR;) {
- if (this$1.type === tt._case || this$1.type === tt._default) {
- var isCase = this$1.type === tt._case
- if (cur) this$1.finishNode(cur, "SwitchCase")
- node.cases.push(cur = this$1.startNode())
- cur.consequent = []
- this$1.next()
- if (isCase) {
- cur.test = this$1.parseExpression()
- } else {
- if (sawDefault) this$1.raiseRecoverable(this$1.lastTokStart, "Multiple default clauses")
- sawDefault = true
- cur.test = null
- }
- this$1.expect(tt.colon)
- } else {
- if (!cur) this$1.unexpected()
- cur.consequent.push(this$1.parseStatement(true))
- }
- }
- if (cur) this.finishNode(cur, "SwitchCase")
- this.next() // Closing brace
- this.labels.pop()
- return this.finishNode(node, "SwitchStatement")
- }
-
- pp$1.parseThrowStatement = function(node) {
- this.next()
- if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
- this.raise(this.lastTokEnd, "Illegal newline after throw")
- node.argument = this.parseExpression()
+ var isBreak = keyword == "break"
+ this.next()
+ if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null
+ else if (this.type !== tt.name) this.unexpected()
+ else {
+ node.label = this.parseIdent()
this.semicolon()
- return this.finishNode(node, "ThrowStatement")
}
- // Reused empty array added for node fields that are always empty.
-
- var empty = []
-
- pp$1.parseTryStatement = function(node) {
- this.next()
- node.block = this.parseBlock()
- node.handler = null
- if (this.type === tt._catch) {
- var clause = this.startNode()
- this.next()
- this.expect(tt.parenL)
- clause.param = this.parseBindingAtom()
- this.checkLVal(clause.param, true)
- this.expect(tt.parenR)
- clause.body = this.parseBlock()
- node.handler = this.finishNode(clause, "CatchClause")
- }
- node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null
- if (!node.handler && !node.finalizer)
- this.raise(node.start, "Missing catch or finally clause")
- return this.finishNode(node, "TryStatement")
- }
-
- pp$1.parseVarStatement = function(node, kind) {
- this.next()
- this.parseVar(node, false, kind)
+ // Verify that there is an actual destination to break or
+ // continue to.
+ for (var i = 0; i < this.labels.length; ++i) {
+ var lab = this$1.labels[i]
+ if (node.label == null || lab.name === node.label.name) {
+ if (lab.kind != null && (isBreak || lab.kind === "loop")) break
+ if (node.label && isBreak) break
+ }
+ }
+ if (i === this.labels.length) this.raise(node.start, "Unsyntactic " + keyword)
+ return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
+}
+
+pp$1.parseDebuggerStatement = function(node) {
+ this.next()
+ this.semicolon()
+ return this.finishNode(node, "DebuggerStatement")
+}
+
+pp$1.parseDoStatement = function(node) {
+ this.next()
+ this.labels.push(loopLabel)
+ node.body = this.parseStatement(false)
+ this.labels.pop()
+ this.expect(tt._while)
+ node.test = this.parseParenExpression()
+ if (this.options.ecmaVersion >= 6)
+ this.eat(tt.semi)
+ else
this.semicolon()
- return this.finishNode(node, "VariableDeclaration")
- }
-
- pp$1.parseWhileStatement = function(node) {
+ return this.finishNode(node, "DoWhileStatement")
+}
+
+// Disambiguating between a `for` and a `for`/`in` or `for`/`of`
+// loop is non-trivial. Basically, we have to parse the init `var`
+// statement or expression, disallowing the `in` operator (see
+// the second parameter to `parseExpression`), and then check
+// whether the next token is `in` or `of`. When there is no init
+// part (semicolon immediately after the opening parenthesis), it
+// is a regular `for` loop.
+
+pp$1.parseForStatement = function(node) {
+ this.next()
+ this.labels.push(loopLabel)
+ this.expect(tt.parenL)
+ if (this.type === tt.semi) return this.parseFor(node, null)
+ var isLet = this.isLet()
+ if (this.type === tt._var || this.type === tt._const || isLet) {
+ var init$1 = this.startNode(), kind = isLet ? "let" : this.value
this.next()
- node.test = this.parseParenExpression()
- this.labels.push(loopLabel)
- node.body = this.parseStatement(false)
- this.labels.pop()
- return this.finishNode(node, "WhileStatement")
- }
-
- pp$1.parseWithStatement = function(node) {
- if (this.strict) this.raise(this.start, "'with' in strict mode")
- this.next()
- node.object = this.parseParenExpression()
- node.body = this.parseStatement(false)
- return this.finishNode(node, "WithStatement")
- }
-
- pp$1.parseEmptyStatement = function(node) {
- this.next()
- return this.finishNode(node, "EmptyStatement")
- }
-
- pp$1.parseLabeledStatement = function(node, maybeName, expr) {
- var this$1 = this;
-
- for (var i = 0; i < this.labels.length; ++i)
- if (this$1.labels[i].name === maybeName) this$1.raise(expr.start, "Label '" + maybeName + "' is already declared")
- var kind = this.type.isLoop ? "loop" : this.type === tt._switch ? "switch" : null
- for (var i$1 = this.labels.length - 1; i$1 >= 0; i$1--) {
- var label = this$1.labels[i$1]
- if (label.statementStart == node.start) {
- label.statementStart = this$1.start
- label.kind = kind
- } else break
- }
- this.labels.push({name: maybeName, kind: kind, statementStart: this.start})
- node.body = this.parseStatement(true)
- this.labels.pop()
- node.label = expr
- return this.finishNode(node, "LabeledStatement")
- }
-
- pp$1.parseExpressionStatement = function(node, expr) {
- node.expression = expr
- this.semicolon()
- return this.finishNode(node, "ExpressionStatement")
- }
-
- // Parse a semicolon-enclosed block of statements, handling `"use
- // strict"` declarations when `allowStrict` is true (used for
- // function bodies).
-
- pp$1.parseBlock = function(allowStrict) {
- var this$1 = this;
-
- var node = this.startNode(), first = true, oldStrict
- node.body = []
- this.expect(tt.braceL)
- while (!this.eat(tt.braceR)) {
- var stmt = this$1.parseStatement(true)
- node.body.push(stmt)
- if (first && allowStrict && this$1.isUseStrict(stmt)) {
- oldStrict = this$1.strict
- this$1.setStrict(this$1.strict = true)
- }
- first = false
- }
- if (oldStrict === false) this.setStrict(false)
- return this.finishNode(node, "BlockStatement")
- }
-
- // Parse a regular `for` loop. The disambiguation code in
- // `parseStatement` will already have parsed the init statement or
- // expression.
-
- pp$1.parseFor = function(node, init) {
- node.init = init
- this.expect(tt.semi)
- node.test = this.type === tt.semi ? null : this.parseExpression()
- this.expect(tt.semi)
- node.update = this.type === tt.parenR ? null : this.parseExpression()
- this.expect(tt.parenR)
- node.body = this.parseStatement(false)
- this.labels.pop()
- return this.finishNode(node, "ForStatement")
- }
-
- // Parse a `for`/`in` and `for`/`of` loop, which are almost
- // same from parser's perspective.
-
- pp$1.parseForIn = function(node, init) {
- var type = this.type === tt._in ? "ForInStatement" : "ForOfStatement"
- this.next()
- node.left = init
- node.right = this.parseExpression()
- this.expect(tt.parenR)
- node.body = this.parseStatement(false)
- this.labels.pop()
- return this.finishNode(node, type)
- }
-
- // Parse a list of variable declarations.
-
- pp$1.parseVar = function(node, isFor, kind) {
- var this$1 = this;
-
- node.declarations = []
- node.kind = kind
- for (;;) {
- var decl = this$1.startNode()
- this$1.parseVarId(decl)
- if (this$1.eat(tt.eq)) {
- decl.init = this$1.parseMaybeAssign(isFor)
- } else if (kind === "const" && !(this$1.type === tt._in || (this$1.options.ecmaVersion >= 6 && this$1.isContextual("of")))) {
- this$1.unexpected()
- } else if (decl.id.type != "Identifier" && !(isFor && (this$1.type === tt._in || this$1.isContextual("of")))) {
- this$1.raise(this$1.lastTokEnd, "Complex binding patterns require an initialization value")
+ this.parseVar(init$1, true, kind)
+ this.finishNode(init$1, "VariableDeclaration")
+ if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1 &&
+ !(kind !== "var" && init$1.declarations[0].init))
+ return this.parseForIn(node, init$1)
+ return this.parseFor(node, init$1)
+ }
+ var refDestructuringErrors = new DestructuringErrors
+ var init = this.parseExpression(true, refDestructuringErrors)
+ if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
+ this.checkPatternErrors(refDestructuringErrors, true)
+ this.toAssignable(init)
+ this.checkLVal(init)
+ return this.parseForIn(node, init)
+ } else {
+ this.checkExpressionErrors(refDestructuringErrors, true)
+ }
+ return this.parseFor(node, init)
+}
+
+pp$1.parseFunctionStatement = function(node, isAsync) {
+ this.next()
+ return this.parseFunction(node, true, false, isAsync)
+}
+
+pp$1.isFunction = function() {
+ return this.type === tt._function || this.isAsyncFunction()
+}
+
+pp$1.parseIfStatement = function(node) {
+ this.next()
+ node.test = this.parseParenExpression()
+ // allow function declarations in branches, but only in non-strict mode
+ node.consequent = this.parseStatement(!this.strict && this.isFunction())
+ node.alternate = this.eat(tt._else) ? this.parseStatement(!this.strict && this.isFunction()) : null
+ return this.finishNode(node, "IfStatement")
+}
+
+pp$1.parseReturnStatement = function(node) {
+ if (!this.inFunction && !this.options.allowReturnOutsideFunction)
+ this.raise(this.start, "'return' outside of function")
+ this.next()
+
+ // In `return` (and `break`/`continue`), the keywords with
+ // optional arguments, we eagerly look for a semicolon or the
+ // possibility to insert one.
+
+ if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null
+ else { node.argument = this.parseExpression(); this.semicolon() }
+ return this.finishNode(node, "ReturnStatement")
+}
+
+pp$1.parseSwitchStatement = function(node) {
+ var this$1 = this;
+
+ this.next()
+ node.discriminant = this.parseParenExpression()
+ node.cases = []
+ this.expect(tt.braceL)
+ this.labels.push(switchLabel)
+
+ // Statements under must be grouped (by label) in SwitchCase
+ // nodes. `cur` is used to keep the node that we are currently
+ // adding statements to.
+
+ for (var cur, sawDefault = false; this.type != tt.braceR;) {
+ if (this$1.type === tt._case || this$1.type === tt._default) {
+ var isCase = this$1.type === tt._case
+ if (cur) this$1.finishNode(cur, "SwitchCase")
+ node.cases.push(cur = this$1.startNode())
+ cur.consequent = []
+ this$1.next()
+ if (isCase) {
+ cur.test = this$1.parseExpression()
} else {
- decl.init = null
+ if (sawDefault) this$1.raiseRecoverable(this$1.lastTokStart, "Multiple default clauses")
+ sawDefault = true
+ cur.test = null
}
- node.declarations.push(this$1.finishNode(decl, "VariableDeclarator"))
- if (!this$1.eat(tt.comma)) break
- }
- return node
- }
-
- pp$1.parseVarId = function(decl) {
- decl.id = this.parseBindingAtom()
- this.checkLVal(decl.id, true)
- }
-
- // Parse a function declaration or literal (depending on the
- // `isStatement` parameter).
-
- pp$1.parseFunction = function(node, isStatement, allowExpressionBody, isAsync) {
- this.initFunction(node)
- if (this.options.ecmaVersion >= 6 && !isAsync)
- node.generator = this.eat(tt.star)
- if (this.options.ecmaVersion >= 8)
- node.async = !!isAsync
-
- if (isStatement)
- node.id = this.parseIdent()
-
- var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
- this.inGenerator = node.generator
- this.inAsync = node.async
- this.yieldPos = 0
- this.awaitPos = 0
-
- if (!isStatement && this.type === tt.name)
- node.id = this.parseIdent()
- this.parseFunctionParams(node)
- this.parseFunctionBody(node, allowExpressionBody)
-
- this.inGenerator = oldInGen
- this.inAsync = oldInAsync
- this.yieldPos = oldYieldPos
- this.awaitPos = oldAwaitPos
- return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
- }
-
- pp$1.parseFunctionParams = function(node) {
- this.expect(tt.parenL)
- node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8, true)
- this.checkYieldAwaitInDefaultParams()
- }
-
- // Parse a class declaration or literal (depending on the
- // `isStatement` parameter).
-
- pp$1.parseClass = function(node, isStatement) {
- var this$1 = this;
-
+ this$1.expect(tt.colon)
+ } else {
+ if (!cur) this$1.unexpected()
+ cur.consequent.push(this$1.parseStatement(true))
+ }
+ }
+ if (cur) this.finishNode(cur, "SwitchCase")
+ this.next() // Closing brace
+ this.labels.pop()
+ return this.finishNode(node, "SwitchStatement")
+}
+
+pp$1.parseThrowStatement = function(node) {
+ this.next()
+ if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
+ this.raise(this.lastTokEnd, "Illegal newline after throw")
+ node.argument = this.parseExpression()
+ this.semicolon()
+ return this.finishNode(node, "ThrowStatement")
+}
+
+// Reused empty array added for node fields that are always empty.
+
+var empty = []
+
+pp$1.parseTryStatement = function(node) {
+ this.next()
+ node.block = this.parseBlock()
+ node.handler = null
+ if (this.type === tt._catch) {
+ var clause = this.startNode()
this.next()
- this.parseClassId(node, isStatement)
- this.parseClassSuper(node)
- var classBody = this.startNode()
- var hadConstructor = false
- classBody.body = []
- this.expect(tt.braceL)
- while (!this.eat(tt.braceR)) {
- if (this$1.eat(tt.semi)) continue
- var method = this$1.startNode()
- var isGenerator = this$1.eat(tt.star)
- var isAsync = false
- var isMaybeStatic = this$1.type === tt.name && this$1.value === "static"
+ this.expect(tt.parenL)
+ clause.param = this.parseBindingAtom()
+ this.checkLVal(clause.param, true)
+ this.expect(tt.parenR)
+ clause.body = this.parseBlock()
+ node.handler = this.finishNode(clause, "CatchClause")
+ }
+ node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null
+ if (!node.handler && !node.finalizer)
+ this.raise(node.start, "Missing catch or finally clause")
+ return this.finishNode(node, "TryStatement")
+}
+
+pp$1.parseVarStatement = function(node, kind) {
+ this.next()
+ this.parseVar(node, false, kind)
+ this.semicolon()
+ return this.finishNode(node, "VariableDeclaration")
+}
+
+pp$1.parseWhileStatement = function(node) {
+ this.next()
+ node.test = this.parseParenExpression()
+ this.labels.push(loopLabel)
+ node.body = this.parseStatement(false)
+ this.labels.pop()
+ return this.finishNode(node, "WhileStatement")
+}
+
+pp$1.parseWithStatement = function(node) {
+ if (this.strict) this.raise(this.start, "'with' in strict mode")
+ this.next()
+ node.object = this.parseParenExpression()
+ node.body = this.parseStatement(false)
+ return this.finishNode(node, "WithStatement")
+}
+
+pp$1.parseEmptyStatement = function(node) {
+ this.next()
+ return this.finishNode(node, "EmptyStatement")
+}
+
+pp$1.parseLabeledStatement = function(node, maybeName, expr) {
+ var this$1 = this;
+
+ for (var i = 0; i < this.labels.length; ++i)
+ if (this$1.labels[i].name === maybeName) this$1.raise(expr.start, "Label '" + maybeName + "' is already declared")
+ var kind = this.type.isLoop ? "loop" : this.type === tt._switch ? "switch" : null
+ for (var i$1 = this.labels.length - 1; i$1 >= 0; i$1--) {
+ var label = this$1.labels[i$1]
+ if (label.statementStart == node.start) {
+ label.statementStart = this$1.start
+ label.kind = kind
+ } else break
+ }
+ this.labels.push({name: maybeName, kind: kind, statementStart: this.start})
+ node.body = this.parseStatement(true)
+ this.labels.pop()
+ node.label = expr
+ return this.finishNode(node, "LabeledStatement")
+}
+
+pp$1.parseExpressionStatement = function(node, expr) {
+ node.expression = expr
+ this.semicolon()
+ return this.finishNode(node, "ExpressionStatement")
+}
+
+// Parse a semicolon-enclosed block of statements, handling `"use
+// strict"` declarations when `allowStrict` is true (used for
+// function bodies).
+
+pp$1.parseBlock = function(allowStrict) {
+ var this$1 = this;
+
+ var node = this.startNode(), first = true, oldStrict
+ node.body = []
+ this.expect(tt.braceL)
+ while (!this.eat(tt.braceR)) {
+ var stmt = this$1.parseStatement(true)
+ node.body.push(stmt)
+ if (first && allowStrict && this$1.isUseStrict(stmt)) {
+ oldStrict = this$1.strict
+ this$1.setStrict(this$1.strict = true)
+ }
+ first = false
+ }
+ if (oldStrict === false) this.setStrict(false)
+ return this.finishNode(node, "BlockStatement")
+}
+
+// Parse a regular `for` loop. The disambiguation code in
+// `parseStatement` will already have parsed the init statement or
+// expression.
+
+pp$1.parseFor = function(node, init) {
+ node.init = init
+ this.expect(tt.semi)
+ node.test = this.type === tt.semi ? null : this.parseExpression()
+ this.expect(tt.semi)
+ node.update = this.type === tt.parenR ? null : this.parseExpression()
+ this.expect(tt.parenR)
+ node.body = this.parseStatement(false)
+ this.labels.pop()
+ return this.finishNode(node, "ForStatement")
+}
+
+// Parse a `for`/`in` and `for`/`of` loop, which are almost
+// same from parser's perspective.
+
+pp$1.parseForIn = function(node, init) {
+ var type = this.type === tt._in ? "ForInStatement" : "ForOfStatement"
+ this.next()
+ node.left = init
+ node.right = this.parseExpression()
+ this.expect(tt.parenR)
+ node.body = this.parseStatement(false)
+ this.labels.pop()
+ return this.finishNode(node, type)
+}
+
+// Parse a list of variable declarations.
+
+pp$1.parseVar = function(node, isFor, kind) {
+ var this$1 = this;
+
+ node.declarations = []
+ node.kind = kind
+ for (;;) {
+ var decl = this$1.startNode()
+ this$1.parseVarId(decl)
+ if (this$1.eat(tt.eq)) {
+ decl.init = this$1.parseMaybeAssign(isFor)
+ } else if (kind === "const" && !(this$1.type === tt._in || (this$1.options.ecmaVersion >= 6 && this$1.isContextual("of")))) {
+ this$1.unexpected()
+ } else if (decl.id.type != "Identifier" && !(isFor && (this$1.type === tt._in || this$1.isContextual("of")))) {
+ this$1.raise(this$1.lastTokEnd, "Complex binding patterns require an initialization value")
+ } else {
+ decl.init = null
+ }
+ node.declarations.push(this$1.finishNode(decl, "VariableDeclarator"))
+ if (!this$1.eat(tt.comma)) break
+ }
+ return node
+}
+
+pp$1.parseVarId = function(decl) {
+ decl.id = this.parseBindingAtom()
+ this.checkLVal(decl.id, true)
+}
+
+// Parse a function declaration or literal (depending on the
+// `isStatement` parameter).
+
+pp$1.parseFunction = function(node, isStatement, allowExpressionBody, isAsync) {
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 6 && !isAsync)
+ node.generator = this.eat(tt.star)
+ if (this.options.ecmaVersion >= 8)
+ node.async = !!isAsync
+
+ if (isStatement)
+ node.id = this.parseIdent()
+
+ var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
+ this.inGenerator = node.generator
+ this.inAsync = node.async
+ this.yieldPos = 0
+ this.awaitPos = 0
+
+ if (!isStatement && this.type === tt.name)
+ node.id = this.parseIdent()
+ this.parseFunctionParams(node)
+ this.parseFunctionBody(node, allowExpressionBody)
+
+ this.inGenerator = oldInGen
+ this.inAsync = oldInAsync
+ this.yieldPos = oldYieldPos
+ this.awaitPos = oldAwaitPos
+ return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
+}
+
+pp$1.parseFunctionParams = function(node) {
+ this.expect(tt.parenL)
+ node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8, true)
+ this.checkYieldAwaitInDefaultParams()
+}
+
+// Parse a class declaration or literal (depending on the
+// `isStatement` parameter).
+
+pp$1.parseClass = function(node, isStatement) {
+ var this$1 = this;
+
+ this.next()
+ this.parseClassId(node, isStatement)
+ this.parseClassSuper(node)
+ var classBody = this.startNode()
+ var hadConstructor = false
+ classBody.body = []
+ this.expect(tt.braceL)
+ while (!this.eat(tt.braceR)) {
+ if (this$1.eat(tt.semi)) continue
+ var method = this$1.startNode()
+ var isGenerator = this$1.eat(tt.star)
+ var isAsync = false
+ var isMaybeStatic = this$1.type === tt.name && this$1.value === "static"
+ this$1.parsePropertyName(method)
+ method.static = isMaybeStatic && this$1.type !== tt.parenL
+ if (method.static) {
+ if (isGenerator) this$1.unexpected()
+ isGenerator = this$1.eat(tt.star)
this$1.parsePropertyName(method)
- method.static = isMaybeStatic && this$1.type !== tt.parenL
- if (method.static) {
- if (isGenerator) this$1.unexpected()
- isGenerator = this$1.eat(tt.star)
- this$1.parsePropertyName(method)
- }
- if (this$1.options.ecmaVersion >= 8 && !isGenerator && !method.computed &&
- method.key.type === "Identifier" && method.key.name === "async" && this$1.type !== tt.parenL &&
- !this$1.canInsertSemicolon()) {
- isAsync = true
- this$1.parsePropertyName(method)
- }
- method.kind = "method"
- var isGetSet = false
- if (!method.computed) {
- var key = method.key;
- if (!isGenerator && !isAsync && key.type === "Identifier" && this$1.type !== tt.parenL && (key.name === "get" || key.name === "set")) {
- isGetSet = true
- method.kind = key.name
- key = this$1.parsePropertyName(method)
- }
- if (!method.static && (key.type === "Identifier" && key.name === "constructor" ||
- key.type === "Literal" && key.value === "constructor")) {
- if (hadConstructor) this$1.raise(key.start, "Duplicate constructor in the same class")
- if (isGetSet) this$1.raise(key.start, "Constructor can't have get/set modifier")
- if (isGenerator) this$1.raise(key.start, "Constructor can't be a generator")
- if (isAsync) this$1.raise(key.start, "Constructor can't be an async method")
- method.kind = "constructor"
- hadConstructor = true
- }
- }
- this$1.parseClassMethod(classBody, method, isGenerator, isAsync)
- if (isGetSet) {
- var paramCount = method.kind === "get" ? 0 : 1
- if (method.value.params.length !== paramCount) {
- var start = method.value.start
- if (method.kind === "get")
- this$1.raiseRecoverable(start, "getter should have no params")
- else
- this$1.raiseRecoverable(start, "setter should have exactly one param")
- } else {
- if (method.kind === "set" && method.value.params[0].type === "RestElement")
- this$1.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params")
- }
- }
}
- node.body = this.finishNode(classBody, "ClassBody")
- return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
- }
-
- pp$1.parseClassMethod = function(classBody, method, isGenerator, isAsync) {
- method.value = this.parseMethod(isGenerator, isAsync)
- classBody.body.push(this.finishNode(method, "MethodDefinition"))
- }
-
- pp$1.parseClassId = function(node, isStatement) {
- node.id = this.type === tt.name ? this.parseIdent() : isStatement ? this.unexpected() : null
- }
-
- pp$1.parseClassSuper = function(node) {
- node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null
- }
-
- // Parses module export declaration.
-
- pp$1.parseExport = function(node, exports) {
- var this$1 = this;
-
- this.next()
- // export * from '...'
- if (this.eat(tt.star)) {
- this.expectContextual("from")
- node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
- this.semicolon()
- return this.finishNode(node, "ExportAllDeclaration")
+ if (this$1.options.ecmaVersion >= 8 && !isGenerator && !method.computed &&
+ method.key.type === "Identifier" && method.key.name === "async" && this$1.type !== tt.parenL &&
+ !this$1.canInsertSemicolon()) {
+ isAsync = true
+ this$1.parsePropertyName(method)
}
- if (this.eat(tt._default)) { // export default ...
- this.checkExport(exports, "default", this.lastTokStart)
- var parens = this.type == tt.parenL
- var expr = this.parseMaybeAssign()
- var needsSemi = true
- if (!parens && (expr.type == "FunctionExpression" ||
- expr.type == "ClassExpression")) {
- needsSemi = false
- if (expr.id) {
- expr.type = expr.type == "FunctionExpression"
- ? "FunctionDeclaration"
- : "ClassDeclaration"
- }
+ method.kind = "method"
+ var isGetSet = false
+ if (!method.computed) {
+ var key = method.key;
+ if (!isGenerator && !isAsync && key.type === "Identifier" && this$1.type !== tt.parenL && (key.name === "get" || key.name === "set")) {
+ isGetSet = true
+ method.kind = key.name
+ key = this$1.parsePropertyName(method)
+ }
+ if (!method.static && (key.type === "Identifier" && key.name === "constructor" ||
+ key.type === "Literal" && key.value === "constructor")) {
+ if (hadConstructor) this$1.raise(key.start, "Duplicate constructor in the same class")
+ if (isGetSet) this$1.raise(key.start, "Constructor can't have get/set modifier")
+ if (isGenerator) this$1.raise(key.start, "Constructor can't be a generator")
+ if (isAsync) this$1.raise(key.start, "Constructor can't be an async method")
+ method.kind = "constructor"
+ hadConstructor = true
}
- node.declaration = expr
- if (needsSemi) this.semicolon()
- return this.finishNode(node, "ExportDefaultDeclaration")
}
- // export var|const|let|function|class ...
- if (this.shouldParseExportStatement()) {
- node.declaration = this.parseStatement(true)
- if (node.declaration.type === "VariableDeclaration")
- this.checkVariableExport(exports, node.declaration.declarations)
- else
- this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)
- node.specifiers = []
- node.source = null
- } else { // export { x, y as z } [from '...']
- node.declaration = null
- node.specifiers = this.parseExportSpecifiers(exports)
- if (this.eatContextual("from")) {
- node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
+ this$1.parseClassMethod(classBody, method, isGenerator, isAsync)
+ if (isGetSet) {
+ var paramCount = method.kind === "get" ? 0 : 1
+ if (method.value.params.length !== paramCount) {
+ var start = method.value.start
+ if (method.kind === "get")
+ this$1.raiseRecoverable(start, "getter should have no params")
+ else
+ this$1.raiseRecoverable(start, "setter should have exactly one param")
} else {
- // check for keywords used as local names
- for (var i = 0; i < node.specifiers.length; i++) {
- if (this$1.keywords.test(node.specifiers[i].local.name) || this$1.reservedWords.test(node.specifiers[i].local.name)) {
- this$1.unexpected(node.specifiers[i].local.start)
- }
- }
-
- node.source = null
+ if (method.kind === "set" && method.value.params[0].type === "RestElement")
+ this$1.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params")
}
- this.semicolon()
}
- return this.finishNode(node, "ExportNamedDeclaration")
- }
-
- pp$1.checkExport = function(exports, name, pos) {
- if (!exports) return
- if (Object.prototype.hasOwnProperty.call(exports, name))
- this.raiseRecoverable(pos, "Duplicate export '" + name + "'")
- exports[name] = true
}
+ node.body = this.finishNode(classBody, "ClassBody")
+ return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
+}
- pp$1.checkPatternExport = function(exports, pat) {
- var this$1 = this;
+pp$1.parseClassMethod = function(classBody, method, isGenerator, isAsync) {
+ method.value = this.parseMethod(isGenerator, isAsync)
+ classBody.body.push(this.finishNode(method, "MethodDefinition"))
+}
- var type = pat.type
- if (type == "Identifier")
- this.checkExport(exports, pat.name, pat.start)
- else if (type == "ObjectPattern")
- for (var i = 0; i < pat.properties.length; ++i)
- this$1.checkPatternExport(exports, pat.properties[i].value)
- else if (type == "ArrayPattern")
- for (var i$1 = 0; i$1 < pat.elements.length; ++i$1) {
- var elt = pat.elements[i$1]
- if (elt) this$1.checkPatternExport(exports, elt)
- }
- else if (type == "AssignmentPattern")
- this.checkPatternExport(exports, pat.left)
- else if (type == "ParenthesizedExpression")
- this.checkPatternExport(exports, pat.expression)
- }
+pp$1.parseClassId = function(node, isStatement) {
+ node.id = this.type === tt.name ? this.parseIdent() : isStatement ? this.unexpected() : null
+}
- pp$1.checkVariableExport = function(exports, decls) {
- var this$1 = this;
+pp$1.parseClassSuper = function(node) {
+ node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null
+}
- if (!exports) return
- for (var i = 0; i < decls.length; i++)
- this$1.checkPatternExport(exports, decls[i].id)
- }
+// Parses module export declaration.
- pp$1.shouldParseExportStatement = function() {
- return this.type.keyword || this.isLet() || this.isAsyncFunction()
- }
+pp$1.parseExport = function(node, exports) {
+ var this$1 = this;
- // Parses a comma-separated list of module exports.
-
- pp$1.parseExportSpecifiers = function(exports) {
- var this$1 = this;
-
- var nodes = [], first = true
- // export { x, y as z } [from '...']
- this.expect(tt.braceL)
- while (!this.eat(tt.braceR)) {
- if (!first) {
- this$1.expect(tt.comma)
- if (this$1.afterTrailingComma(tt.braceR)) break
- } else first = false
-
- var node = this$1.startNode()
- node.local = this$1.parseIdent(this$1.type === tt._default)
- node.exported = this$1.eatContextual("as") ? this$1.parseIdent(true) : node.local
- this$1.checkExport(exports, node.exported.name, node.exported.start)
- nodes.push(this$1.finishNode(node, "ExportSpecifier"))
- }
- return nodes
- }
-
- // Parses import declaration.
-
- pp$1.parseImport = function(node) {
- this.next()
- // import '...'
- if (this.type === tt.string) {
- node.specifiers = empty
- node.source = this.parseExprAtom()
- } else {
- node.specifiers = this.parseImportSpecifiers()
- this.expectContextual("from")
- node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
- }
+ this.next()
+ // export * from '...'
+ if (this.eat(tt.star)) {
+ this.expectContextual("from")
+ node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
this.semicolon()
- return this.finishNode(node, "ImportDeclaration")
- }
-
- // Parses a comma-separated list of module imports.
-
- pp$1.parseImportSpecifiers = function() {
- var this$1 = this;
-
- var nodes = [], first = true
- if (this.type === tt.name) {
- // import defaultObj, { x, y as z } from '...'
- var node = this.startNode()
- node.local = this.parseIdent()
- this.checkLVal(node.local, true)
- nodes.push(this.finishNode(node, "ImportDefaultSpecifier"))
- if (!this.eat(tt.comma)) return nodes
- }
- if (this.type === tt.star) {
- var node$1 = this.startNode()
- this.next()
- this.expectContextual("as")
- node$1.local = this.parseIdent()
- this.checkLVal(node$1.local, true)
- nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier"))
- return nodes
- }
- this.expect(tt.braceL)
- while (!this.eat(tt.braceR)) {
- if (!first) {
- this$1.expect(tt.comma)
- if (this$1.afterTrailingComma(tt.braceR)) break
- } else first = false
-
- var node$2 = this$1.startNode()
- node$2.imported = this$1.parseIdent(true)
- if (this$1.eatContextual("as")) {
- node$2.local = this$1.parseIdent()
- } else {
- node$2.local = node$2.imported
- if (this$1.isKeyword(node$2.local.name)) this$1.unexpected(node$2.local.start)
- if (this$1.reservedWordsStrict.test(node$2.local.name)) this$1.raiseRecoverable(node$2.local.start, "The keyword '" + node$2.local.name + "' is reserved")
+ return this.finishNode(node, "ExportAllDeclaration")
+ }
+ if (this.eat(tt._default)) { // export default ...
+ this.checkExport(exports, "default", this.lastTokStart)
+ var parens = this.type == tt.parenL
+ var expr = this.parseMaybeAssign()
+ var needsSemi = true
+ if (!parens && (expr.type == "FunctionExpression" ||
+ expr.type == "ClassExpression")) {
+ needsSemi = false
+ if (expr.id) {
+ expr.type = expr.type == "FunctionExpression"
+ ? "FunctionDeclaration"
+ : "ClassDeclaration"
}
- this$1.checkLVal(node$2.local, true)
- nodes.push(this$1.finishNode(node$2, "ImportSpecifier"))
}
- return nodes
+ node.declaration = expr
+ if (needsSemi) this.semicolon()
+ return this.finishNode(node, "ExportDefaultDeclaration")
}
-
- var pp$2 = Parser.prototype
-
- // Convert existing expression atom to assignable pattern
- // if possible.
-
- pp$2.toAssignable = function(node, isBinding) {
- var this$1 = this;
-
- if (this.options.ecmaVersion >= 6 && node) {
- switch (node.type) {
- case "Identifier":
- if (this.inAsync && node.name === "await")
- this.raise(node.start, "Can not use 'await' as identifier inside an async function")
- break
-
- case "ObjectPattern":
- case "ArrayPattern":
- break
-
- case "ObjectExpression":
- node.type = "ObjectPattern"
- for (var i = 0; i < node.properties.length; i++) {
- var prop = node.properties[i]
- if (prop.kind !== "init") this$1.raise(prop.key.start, "Object pattern can't contain getter or setter")
- this$1.toAssignable(prop.value, isBinding)
- }
- break
-
- case "ArrayExpression":
- node.type = "ArrayPattern"
- this.toAssignableList(node.elements, isBinding)
- break
-
- case "AssignmentExpression":
- if (node.operator === "=") {
- node.type = "AssignmentPattern"
- delete node.operator
- this.toAssignable(node.left, isBinding)
- // falls through to AssignmentPattern
- } else {
- this.raise(node.left.end, "Only '=' operator can be used for specifying default value.")
- break
+ // export var|const|let|function|class ...
+ if (this.shouldParseExportStatement()) {
+ node.declaration = this.parseStatement(true)
+ if (node.declaration.type === "VariableDeclaration")
+ this.checkVariableExport(exports, node.declaration.declarations)
+ else
+ this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)
+ node.specifiers = []
+ node.source = null
+ } else { // export { x, y as z } [from '...']
+ node.declaration = null
+ node.specifiers = this.parseExportSpecifiers(exports)
+ if (this.eatContextual("from")) {
+ node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
+ } else {
+ // check for keywords used as local names
+ for (var i = 0; i < node.specifiers.length; i++) {
+ if (this$1.keywords.test(node.specifiers[i].local.name) || this$1.reservedWords.test(node.specifiers[i].local.name)) {
+ this$1.unexpected(node.specifiers[i].local.start)
}
-
- case "AssignmentPattern":
- break
-
- case "ParenthesizedExpression":
- node.expression = this.toAssignable(node.expression, isBinding)
- break
-
- case "MemberExpression":
- if (!isBinding) break
-
- default:
- this.raise(node.start, "Assigning to rvalue")
}
- }
- return node
- }
-
- // Convert list of expression atoms to binding list.
- pp$2.toAssignableList = function(exprList, isBinding) {
- var this$1 = this;
-
- var end = exprList.length
- if (end) {
- var last = exprList[end - 1]
- if (last && last.type == "RestElement") {
- --end
- } else if (last && last.type == "SpreadElement") {
- last.type = "RestElement"
- var arg = last.argument
- this.toAssignable(arg, isBinding)
- if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern")
- this.unexpected(arg.start)
- --end
- }
-
- if (isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier")
- this.unexpected(last.argument.start)
- }
- for (var i = 0; i < end; i++) {
- var elt = exprList[i]
- if (elt) this$1.toAssignable(elt, isBinding)
+ node.source = null
}
- return exprList
+ this.semicolon()
}
-
- // Parses spread element.
-
- pp$2.parseSpread = function(refDestructuringErrors) {
+ return this.finishNode(node, "ExportNamedDeclaration")
+}
+
+pp$1.checkExport = function(exports, name, pos) {
+ if (!exports) return
+ if (Object.prototype.hasOwnProperty.call(exports, name))
+ this.raiseRecoverable(pos, "Duplicate export '" + name + "'")
+ exports[name] = true
+}
+
+pp$1.checkPatternExport = function(exports, pat) {
+ var this$1 = this;
+
+ var type = pat.type
+ if (type == "Identifier")
+ this.checkExport(exports, pat.name, pat.start)
+ else if (type == "ObjectPattern")
+ for (var i = 0; i < pat.properties.length; ++i)
+ this$1.checkPatternExport(exports, pat.properties[i].value)
+ else if (type == "ArrayPattern")
+ for (var i$1 = 0; i$1 < pat.elements.length; ++i$1) {
+ var elt = pat.elements[i$1]
+ if (elt) this$1.checkPatternExport(exports, elt)
+ }
+ else if (type == "AssignmentPattern")
+ this.checkPatternExport(exports, pat.left)
+ else if (type == "ParenthesizedExpression")
+ this.checkPatternExport(exports, pat.expression)
+}
+
+pp$1.checkVariableExport = function(exports, decls) {
+ var this$1 = this;
+
+ if (!exports) return
+ for (var i = 0; i < decls.length; i++)
+ this$1.checkPatternExport(exports, decls[i].id)
+}
+
+pp$1.shouldParseExportStatement = function() {
+ return this.type.keyword === "var"
+ || this.type.keyword === "const"
+ || this.type.keyword === "class"
+ || this.type.keyword === "function"
+ || this.isLet()
+ || this.isAsyncFunction()
+}
+
+// Parses a comma-separated list of module exports.
+
+pp$1.parseExportSpecifiers = function(exports) {
+ var this$1 = this;
+
+ var nodes = [], first = true
+ // export { x, y as z } [from '...']
+ this.expect(tt.braceL)
+ while (!this.eat(tt.braceR)) {
+ if (!first) {
+ this$1.expect(tt.comma)
+ if (this$1.afterTrailingComma(tt.braceR)) break
+ } else first = false
+
+ var node = this$1.startNode()
+ node.local = this$1.parseIdent(this$1.type === tt._default)
+ node.exported = this$1.eatContextual("as") ? this$1.parseIdent(true) : node.local
+ this$1.checkExport(exports, node.exported.name, node.exported.start)
+ nodes.push(this$1.finishNode(node, "ExportSpecifier"))
+ }
+ return nodes
+}
+
+// Parses import declaration.
+
+pp$1.parseImport = function(node) {
+ this.next()
+ // import '...'
+ if (this.type === tt.string) {
+ node.specifiers = empty
+ node.source = this.parseExprAtom()
+ } else {
+ node.specifiers = this.parseImportSpecifiers()
+ this.expectContextual("from")
+ node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()
+ }
+ this.semicolon()
+ return this.finishNode(node, "ImportDeclaration")
+}
+
+// Parses a comma-separated list of module imports.
+
+pp$1.parseImportSpecifiers = function() {
+ var this$1 = this;
+
+ var nodes = [], first = true
+ if (this.type === tt.name) {
+ // import defaultObj, { x, y as z } from '...'
var node = this.startNode()
- this.next()
- node.argument = this.parseMaybeAssign(false, refDestructuringErrors)
- return this.finishNode(node, "SpreadElement")
+ node.local = this.parseIdent()
+ this.checkLVal(node.local, true)
+ nodes.push(this.finishNode(node, "ImportDefaultSpecifier"))
+ if (!this.eat(tt.comma)) return nodes
}
-
- pp$2.parseRest = function(allowNonIdent) {
- var node = this.startNode()
+ if (this.type === tt.star) {
+ var node$1 = this.startNode()
this.next()
-
- // RestElement inside of a function parameter must be an identifier
- if (allowNonIdent) node.argument = this.type === tt.name ? this.parseIdent() : this.unexpected()
- else node.argument = this.type === tt.name || this.type === tt.bracketL ? this.parseBindingAtom() : this.unexpected()
-
- return this.finishNode(node, "RestElement")
- }
-
- // Parses lvalue (assignable) atom.
-
- pp$2.parseBindingAtom = function() {
- if (this.options.ecmaVersion < 6) return this.parseIdent()
- switch (this.type) {
- case tt.name:
- return this.parseIdent()
-
- case tt.bracketL:
- var node = this.startNode()
- this.next()
- node.elements = this.parseBindingList(tt.bracketR, true, true)
- return this.finishNode(node, "ArrayPattern")
-
- case tt.braceL:
- return this.parseObj(true)
-
- default:
- this.unexpected()
- }
+ this.expectContextual("as")
+ node$1.local = this.parseIdent()
+ this.checkLVal(node$1.local, true)
+ nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier"))
+ return nodes
}
-
- pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowNonIdent) {
- var this$1 = this;
-
- var elts = [], first = true
- while (!this.eat(close)) {
- if (first) first = false
- else this$1.expect(tt.comma)
- if (allowEmpty && this$1.type === tt.comma) {
- elts.push(null)
- } else if (allowTrailingComma && this$1.afterTrailingComma(close)) {
- break
- } else if (this$1.type === tt.ellipsis) {
- var rest = this$1.parseRest(allowNonIdent)
- this$1.parseBindingListItem(rest)
- elts.push(rest)
- if (this$1.type === tt.comma) this$1.raise(this$1.start, "Comma is not permitted after the rest element")
- this$1.expect(close)
- break
- } else {
- var elem = this$1.parseMaybeDefault(this$1.start, this$1.startLoc)
- this$1.parseBindingListItem(elem)
- elts.push(elem)
- }
+ this.expect(tt.braceL)
+ while (!this.eat(tt.braceR)) {
+ if (!first) {
+ this$1.expect(tt.comma)
+ if (this$1.afterTrailingComma(tt.braceR)) break
+ } else first = false
+
+ var node$2 = this$1.startNode()
+ node$2.imported = this$1.parseIdent(true)
+ if (this$1.eatContextual("as")) {
+ node$2.local = this$1.parseIdent()
+ } else {
+ node$2.local = node$2.imported
+ if (this$1.isKeyword(node$2.local.name)) this$1.unexpected(node$2.local.start)
+ if (this$1.reservedWordsStrict.test(node$2.local.name)) this$1.raiseRecoverable(node$2.local.start, "The keyword '" + node$2.local.name + "' is reserved")
}
- return elts
+ this$1.checkLVal(node$2.local, true)
+ nodes.push(this$1.finishNode(node$2, "ImportSpecifier"))
}
+ return nodes
+}
- pp$2.parseBindingListItem = function(param) {
- return param
- }
+var pp$2 = Parser.prototype
- // Parses assignment pattern around given atom if possible.
+// Convert existing expression atom to assignable pattern
+// if possible.
- pp$2.parseMaybeDefault = function(startPos, startLoc, left) {
- left = left || this.parseBindingAtom()
- if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left
- var node = this.startNodeAt(startPos, startLoc)
- node.left = left
- node.right = this.parseMaybeAssign()
- return this.finishNode(node, "AssignmentPattern")
- }
-
- // Verify that a node is an lval — something that can be assigned
- // to.
-
- pp$2.checkLVal = function(expr, isBinding, checkClashes) {
- var this$1 = this;
+pp$2.toAssignable = function(node, isBinding) {
+ var this$1 = this;
- switch (expr.type) {
- case "Identifier":
- if (this.strict && this.reservedWordsStrictBind.test(expr.name))
- this.raiseRecoverable(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode")
- if (checkClashes) {
- if (has(checkClashes, expr.name))
- this.raiseRecoverable(expr.start, "Argument name clash")
- checkClashes[expr.name] = true
- }
- break
-
- case "MemberExpression":
- if (isBinding) this.raiseRecoverable(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression")
+ if (this.options.ecmaVersion >= 6 && node) {
+ switch (node.type) {
+ case "Identifier":
+ if (this.inAsync && node.name === "await")
+ this.raise(node.start, "Can not use 'await' as identifier inside an async function")
break
case "ObjectPattern":
- for (var i = 0; i < expr.properties.length; i++)
- this$1.checkLVal(expr.properties[i].value, isBinding, checkClashes)
+ case "ArrayPattern":
break
- case "ArrayPattern":
- for (var i$1 = 0; i$1 < expr.elements.length; i$1++) {
- var elem = expr.elements[i$1]
- if (elem) this$1.checkLVal(elem, isBinding, checkClashes)
+ case "ObjectExpression":
+ node.type = "ObjectPattern"
+ for (var i = 0; i < node.properties.length; i++) {
+ var prop = node.properties[i]
+ if (prop.kind !== "init") this$1.raise(prop.key.start, "Object pattern can't contain getter or setter")
+ this$1.toAssignable(prop.value, isBinding)
}
break
- case "AssignmentPattern":
- this.checkLVal(expr.left, isBinding, checkClashes)
+ case "ArrayExpression":
+ node.type = "ArrayPattern"
+ this.toAssignableList(node.elements, isBinding)
break
- case "RestElement":
- this.checkLVal(expr.argument, isBinding, checkClashes)
+ case "AssignmentExpression":
+ if (node.operator === "=") {
+ node.type = "AssignmentPattern"
+ delete node.operator
+ this.toAssignable(node.left, isBinding)
+ // falls through to AssignmentPattern
+ } else {
+ this.raise(node.left.end, "Only '=' operator can be used for specifying default value.")
+ break
+ }
+
+ case "AssignmentPattern":
break
case "ParenthesizedExpression":
- this.checkLVal(expr.expression, isBinding, checkClashes)
+ node.expression = this.toAssignable(node.expression, isBinding)
break
+ case "MemberExpression":
+ if (!isBinding) break
+
default:
- this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue")
+ this.raise(node.start, "Assigning to rvalue")
}
}
+ return node
+}
- var pp$3 = Parser.prototype
+// Convert list of expression atoms to binding list.
- // Check if property name clashes with already added.
- // Object/class getters and setters are not allowed to clash —
- // either with each other or with an init property — and in
- // strict mode, init properties are also not allowed to be repeated.
+pp$2.toAssignableList = function(exprList, isBinding) {
+ var this$1 = this;
- pp$3.checkPropClash = function(prop, propHash) {
- if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))
- return
- var key = prop.key;
- var name
- switch (key.type) {
- case "Identifier": name = key.name; break
- case "Literal": name = String(key.value); break
- default: return
- }
- var kind = prop.kind;
- if (this.options.ecmaVersion >= 6) {
- if (name === "__proto__" && kind === "init") {
- if (propHash.proto) this.raiseRecoverable(key.start, "Redefinition of __proto__ property")
- propHash.proto = true
- }
- return
+ var end = exprList.length
+ if (end) {
+ var last = exprList[end - 1]
+ if (last && last.type == "RestElement") {
+ --end
+ } else if (last && last.type == "SpreadElement") {
+ last.type = "RestElement"
+ var arg = last.argument
+ this.toAssignable(arg, isBinding)
+ if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern")
+ this.unexpected(arg.start)
+ --end
}
- name = "$" + name
- var other = propHash[name]
- if (other) {
- var isGetSet = kind !== "init"
- if ((this.strict || isGetSet) && other[kind] || !(isGetSet ^ other.init))
- this.raiseRecoverable(key.start, "Redefinition of property")
- } else {
- other = propHash[name] = {
- init: false,
- get: false,
- set: false
- }
- }
- other[kind] = true
- }
-
- // ### Expression parsing
-
- // These nest, from the most general expression type at the top to
- // 'atomic', nondivisible expression types at the bottom. Most of
- // the functions will simply let the function(s) below them parse,
- // and, *if* the syntactic construct they handle is present, wrap
- // the AST node that the inner parser gave them in another node.
-
- // Parse a full expression. The optional arguments are used to
- // forbid the `in` operator (in for loops initalization expressions)
- // and provide reference for storing '=' operator inside shorthand
- // property assignment in contexts where both object expression
- // and object pattern might appear (so it's possible to raise
- // delayed syntax error at correct position).
-
- pp$3.parseExpression = function(noIn, refDestructuringErrors) {
- var this$1 = this;
- var startPos = this.start, startLoc = this.startLoc
- var expr = this.parseMaybeAssign(noIn, refDestructuringErrors)
- if (this.type === tt.comma) {
- var node = this.startNodeAt(startPos, startLoc)
- node.expressions = [expr]
- while (this.eat(tt.comma)) node.expressions.push(this$1.parseMaybeAssign(noIn, refDestructuringErrors))
- return this.finishNode(node, "SequenceExpression")
- }
- return expr
+ if (isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier")
+ this.unexpected(last.argument.start)
}
-
- // Parse an assignment expression. This includes applications of
- // operators like `+=`.
-
- pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {
- if (this.inGenerator && this.isContextual("yield")) return this.parseYield()
-
- var ownDestructuringErrors = false
- if (!refDestructuringErrors) {
- refDestructuringErrors = new DestructuringErrors
- ownDestructuringErrors = true
- }
- var startPos = this.start, startLoc = this.startLoc
- if (this.type == tt.parenL || this.type == tt.name)
- this.potentialArrowAt = this.start
- var left = this.parseMaybeConditional(noIn, refDestructuringErrors)
- if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)
- if (this.type.isAssign) {
- this.checkPatternErrors(refDestructuringErrors, true)
- if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)
- var node = this.startNodeAt(startPos, startLoc)
- node.operator = this.value
- node.left = this.type === tt.eq ? this.toAssignable(left) : left
- refDestructuringErrors.shorthandAssign = 0 // reset because shorthand default was used correctly
- this.checkLVal(left)
- this.next()
- node.right = this.parseMaybeAssign(noIn)
- return this.finishNode(node, "AssignmentExpression")
- } else {
- if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)
- }
- return left
+ for (var i = 0; i < end; i++) {
+ var elt = exprList[i]
+ if (elt) this$1.toAssignable(elt, isBinding)
}
+ return exprList
+}
- // Parse a ternary conditional (`?:`) operator.
+// Parses spread element.
- pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc
- var expr = this.parseExprOps(noIn, refDestructuringErrors)
- if (this.checkExpressionErrors(refDestructuringErrors)) return expr
- if (this.eat(tt.question)) {
- var node = this.startNodeAt(startPos, startLoc)
- node.test = expr
- node.consequent = this.parseMaybeAssign()
- this.expect(tt.colon)
- node.alternate = this.parseMaybeAssign(noIn)
- return this.finishNode(node, "ConditionalExpression")
- }
- return expr
- }
-
- // Start the precedence parser.
+pp$2.parseSpread = function(refDestructuringErrors) {
+ var node = this.startNode()
+ this.next()
+ node.argument = this.parseMaybeAssign(false, refDestructuringErrors)
+ return this.finishNode(node, "SpreadElement")
+}
- pp$3.parseExprOps = function(noIn, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc
- var expr = this.parseMaybeUnary(refDestructuringErrors, false)
- if (this.checkExpressionErrors(refDestructuringErrors)) return expr
- return this.parseExprOp(expr, startPos, startLoc, -1, noIn)
- }
-
- // Parse binary operators with the operator precedence parsing
- // algorithm. `left` is the left-hand side of the operator.
- // `minPrec` provides context that allows the function to stop and
- // defer further parser to one of its callers when it encounters an
- // operator that has a lower precedence than the set it is parsing.
-
- pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {
- var prec = this.type.binop
- if (prec != null && (!noIn || this.type !== tt._in)) {
- if (prec > minPrec) {
- var logical = this.type === tt.logicalOR || this.type === tt.logicalAND
- var op = this.value
- this.next()
- var startPos = this.start, startLoc = this.startLoc
- var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)
- var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)
- return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)
- }
- }
- return left
- }
+pp$2.parseRest = function(allowNonIdent) {
+ var node = this.startNode()
+ this.next()
- pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {
- var node = this.startNodeAt(startPos, startLoc)
- node.left = left
- node.operator = op
- node.right = right
- return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression")
- }
+ // RestElement inside of a function parameter must be an identifier
+ if (allowNonIdent) node.argument = this.type === tt.name ? this.parseIdent() : this.unexpected()
+ else node.argument = this.type === tt.name || this.type === tt.bracketL ? this.parseBindingAtom() : this.unexpected()
- // Parse unary operators, both prefix and postfix.
+ return this.finishNode(node, "RestElement")
+}
- pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {
- var this$1 = this;
+// Parses lvalue (assignable) atom.
- var startPos = this.start, startLoc = this.startLoc, expr
- if (this.inAsync && this.isContextual("await")) {
- expr = this.parseAwait(refDestructuringErrors)
- sawUnary = true
- } else if (this.type.prefix) {
- var node = this.startNode(), update = this.type === tt.incDec
- node.operator = this.value
- node.prefix = true
- this.next()
- node.argument = this.parseMaybeUnary(null, true)
- this.checkExpressionErrors(refDestructuringErrors, true)
- if (update) this.checkLVal(node.argument)
- else if (this.strict && node.operator === "delete" &&
- node.argument.type === "Identifier")
- this.raiseRecoverable(node.start, "Deleting local variable in strict mode")
- else sawUnary = true
- expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
- } else {
- expr = this.parseExprSubscripts(refDestructuringErrors)
- if (this.checkExpressionErrors(refDestructuringErrors)) return expr
- while (this.type.postfix && !this.canInsertSemicolon()) {
- var node$1 = this$1.startNodeAt(startPos, startLoc)
- node$1.operator = this$1.value
- node$1.prefix = false
- node$1.argument = expr
- this$1.checkLVal(expr)
- this$1.next()
- expr = this$1.finishNode(node$1, "UpdateExpression")
- }
- }
+pp$2.parseBindingAtom = function() {
+ if (this.options.ecmaVersion < 6) return this.parseIdent()
+ switch (this.type) {
+ case tt.name:
+ return this.parseIdent()
- if (!sawUnary && this.eat(tt.starstar))
- return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false)
- else
- return expr
- }
+ case tt.bracketL:
+ var node = this.startNode()
+ this.next()
+ node.elements = this.parseBindingList(tt.bracketR, true, true)
+ return this.finishNode(node, "ArrayPattern")
- // Parse call, dot, and `[]`-subscript expressions.
+ case tt.braceL:
+ return this.parseObj(true)
- pp$3.parseExprSubscripts = function(refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc
- var expr = this.parseExprAtom(refDestructuringErrors)
- var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")"
- if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr
- return this.parseSubscripts(expr, startPos, startLoc)
+ default:
+ this.unexpected()
}
+}
- pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {
- var this$1 = this;
+pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowNonIdent) {
+ var this$1 = this;
- for (;;) {
- var maybeAsyncArrow = this$1.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && !this$1.canInsertSemicolon()
- if (this$1.eat(tt.dot)) {
- var node = this$1.startNodeAt(startPos, startLoc)
- node.object = base
- node.property = this$1.parseIdent(true)
- node.computed = false
- base = this$1.finishNode(node, "MemberExpression")
- } else if (this$1.eat(tt.bracketL)) {
- var node$1 = this$1.startNodeAt(startPos, startLoc)
- node$1.object = base
- node$1.property = this$1.parseExpression()
- node$1.computed = true
- this$1.expect(tt.bracketR)
- base = this$1.finishNode(node$1, "MemberExpression")
- } else if (!noCalls && this$1.eat(tt.parenL)) {
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this$1.yieldPos, oldAwaitPos = this$1.awaitPos
- this$1.yieldPos = 0
- this$1.awaitPos = 0
- var exprList = this$1.parseExprList(tt.parenR, this$1.options.ecmaVersion >= 8, false, refDestructuringErrors)
- if (maybeAsyncArrow && !this$1.canInsertSemicolon() && this$1.eat(tt.arrow)) {
- this$1.checkPatternErrors(refDestructuringErrors, true)
- this$1.checkYieldAwaitInDefaultParams()
- this$1.yieldPos = oldYieldPos
- this$1.awaitPos = oldAwaitPos
- return this$1.parseArrowExpression(this$1.startNodeAt(startPos, startLoc), exprList, true)
- }
- this$1.checkExpressionErrors(refDestructuringErrors, true)
- this$1.yieldPos = oldYieldPos || this$1.yieldPos
- this$1.awaitPos = oldAwaitPos || this$1.awaitPos
- var node$2 = this$1.startNodeAt(startPos, startLoc)
- node$2.callee = base
- node$2.arguments = exprList
- base = this$1.finishNode(node$2, "CallExpression")
- } else if (this$1.type === tt.backQuote) {
- var node$3 = this$1.startNodeAt(startPos, startLoc)
- node$3.tag = base
- node$3.quasi = this$1.parseTemplate()
- base = this$1.finishNode(node$3, "TaggedTemplateExpression")
- } else {
- return base
- }
- }
+ var elts = [], first = true
+ while (!this.eat(close)) {
+ if (first) first = false
+ else this$1.expect(tt.comma)
+ if (allowEmpty && this$1.type === tt.comma) {
+ elts.push(null)
+ } else if (allowTrailingComma && this$1.afterTrailingComma(close)) {
+ break
+ } else if (this$1.type === tt.ellipsis) {
+ var rest = this$1.parseRest(allowNonIdent)
+ this$1.parseBindingListItem(rest)
+ elts.push(rest)
+ if (this$1.type === tt.comma) this$1.raise(this$1.start, "Comma is not permitted after the rest element")
+ this$1.expect(close)
+ break
+ } else {
+ var elem = this$1.parseMaybeDefault(this$1.start, this$1.startLoc)
+ this$1.parseBindingListItem(elem)
+ elts.push(elem)
+ }
+ }
+ return elts
+}
+
+pp$2.parseBindingListItem = function(param) {
+ return param
+}
+
+// Parses assignment pattern around given atom if possible.
+
+pp$2.parseMaybeDefault = function(startPos, startLoc, left) {
+ left = left || this.parseBindingAtom()
+ if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left
+ var node = this.startNodeAt(startPos, startLoc)
+ node.left = left
+ node.right = this.parseMaybeAssign()
+ return this.finishNode(node, "AssignmentPattern")
+}
+
+// Verify that a node is an lval — something that can be assigned
+// to.
+
+pp$2.checkLVal = function(expr, isBinding, checkClashes) {
+ var this$1 = this;
+
+ switch (expr.type) {
+ case "Identifier":
+ if (this.strict && this.reservedWordsStrictBind.test(expr.name))
+ this.raiseRecoverable(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode")
+ if (checkClashes) {
+ if (has(checkClashes, expr.name))
+ this.raiseRecoverable(expr.start, "Argument name clash")
+ checkClashes[expr.name] = true
+ }
+ break
+
+ case "MemberExpression":
+ if (isBinding) this.raiseRecoverable(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression")
+ break
+
+ case "ObjectPattern":
+ for (var i = 0; i < expr.properties.length; i++)
+ this$1.checkLVal(expr.properties[i].value, isBinding, checkClashes)
+ break
+
+ case "ArrayPattern":
+ for (var i$1 = 0; i$1 < expr.elements.length; i$1++) {
+ var elem = expr.elements[i$1]
+ if (elem) this$1.checkLVal(elem, isBinding, checkClashes)
+ }
+ break
+
+ case "AssignmentPattern":
+ this.checkLVal(expr.left, isBinding, checkClashes)
+ break
+
+ case "RestElement":
+ this.checkLVal(expr.argument, isBinding, checkClashes)
+ break
+
+ case "ParenthesizedExpression":
+ this.checkLVal(expr.expression, isBinding, checkClashes)
+ break
+
+ default:
+ this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue")
+ }
+}
+
+// A recursive descent parser operates by defining functions for all
+// syntactic elements, and recursively calling those, each function
+// advancing the input stream and returning an AST node. Precedence
+// of constructs (for example, the fact that `!x[1]` means `!(x[1])`
+// instead of `(!x)[1]` is handled by the fact that the parser
+// function that parses unary prefix operators is called first, and
+// in turn calls the function that parses `[]` subscripts — that
+// way, it'll receive the node for `x[1]` already parsed, and wraps
+// *that* in the unary operator node.
+//
+// Acorn uses an [operator precedence parser][opp] to handle binary
+// operator precedence, because it is much more compact than using
+// the technique outlined above, which uses different, nesting
+// functions to specify precedence, for all of the ten binary
+// precedence levels that JavaScript defines.
+//
+// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser
+
+var pp$3 = Parser.prototype
+
+// Check if property name clashes with already added.
+// Object/class getters and setters are not allowed to clash —
+// either with each other or with an init property — and in
+// strict mode, init properties are also not allowed to be repeated.
+
+pp$3.checkPropClash = function(prop, propHash) {
+ if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))
+ return
+ var key = prop.key;
+ var name
+ switch (key.type) {
+ case "Identifier": name = key.name; break
+ case "Literal": name = String(key.value); break
+ default: return
+ }
+ var kind = prop.kind;
+ if (this.options.ecmaVersion >= 6) {
+ if (name === "__proto__" && kind === "init") {
+ if (propHash.proto) this.raiseRecoverable(key.start, "Redefinition of __proto__ property")
+ propHash.proto = true
+ }
+ return
+ }
+ name = "$" + name
+ var other = propHash[name]
+ if (other) {
+ var isGetSet = kind !== "init"
+ if ((this.strict || isGetSet) && other[kind] || !(isGetSet ^ other.init))
+ this.raiseRecoverable(key.start, "Redefinition of property")
+ } else {
+ other = propHash[name] = {
+ init: false,
+ get: false,
+ set: false
+ }
+ }
+ other[kind] = true
+}
+
+// ### Expression parsing
+
+// These nest, from the most general expression type at the top to
+// 'atomic', nondivisible expression types at the bottom. Most of
+// the functions will simply let the function(s) below them parse,
+// and, *if* the syntactic construct they handle is present, wrap
+// the AST node that the inner parser gave them in another node.
+
+// Parse a full expression. The optional arguments are used to
+// forbid the `in` operator (in for loops initalization expressions)
+// and provide reference for storing '=' operator inside shorthand
+// property assignment in contexts where both object expression
+// and object pattern might appear (so it's possible to raise
+// delayed syntax error at correct position).
+
+pp$3.parseExpression = function(noIn, refDestructuringErrors) {
+ var this$1 = this;
+
+ var startPos = this.start, startLoc = this.startLoc
+ var expr = this.parseMaybeAssign(noIn, refDestructuringErrors)
+ if (this.type === tt.comma) {
+ var node = this.startNodeAt(startPos, startLoc)
+ node.expressions = [expr]
+ while (this.eat(tt.comma)) node.expressions.push(this$1.parseMaybeAssign(noIn, refDestructuringErrors))
+ return this.finishNode(node, "SequenceExpression")
+ }
+ return expr
+}
+
+// Parse an assignment expression. This includes applications of
+// operators like `+=`.
+
+pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {
+ if (this.inGenerator && this.isContextual("yield")) return this.parseYield()
+
+ var ownDestructuringErrors = false
+ if (!refDestructuringErrors) {
+ refDestructuringErrors = new DestructuringErrors
+ ownDestructuringErrors = true
+ }
+ var startPos = this.start, startLoc = this.startLoc
+ if (this.type == tt.parenL || this.type == tt.name)
+ this.potentialArrowAt = this.start
+ var left = this.parseMaybeConditional(noIn, refDestructuringErrors)
+ if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)
+ if (this.type.isAssign) {
+ this.checkPatternErrors(refDestructuringErrors, true)
+ if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)
+ var node = this.startNodeAt(startPos, startLoc)
+ node.operator = this.value
+ node.left = this.type === tt.eq ? this.toAssignable(left) : left
+ refDestructuringErrors.shorthandAssign = 0 // reset because shorthand default was used correctly
+ this.checkLVal(left)
+ this.next()
+ node.right = this.parseMaybeAssign(noIn)
+ return this.finishNode(node, "AssignmentExpression")
+ } else {
+ if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)
}
+ return left
+}
- // Parse an atomic expression — either a single token that is an
- // expression, an expression started by a keyword like `function` or
- // `new`, or an expression wrapped in punctuation like `()`, `[]`,
- // or `{}`.
-
- pp$3.parseExprAtom = function(refDestructuringErrors) {
- var node, canBeArrow = this.potentialArrowAt == this.start
- switch (this.type) {
- case tt._super:
- if (!this.inFunction)
- this.raise(this.start, "'super' outside of function or class")
+// Parse a ternary conditional (`?:`) operator.
- case tt._this:
- var type = this.type === tt._this ? "ThisExpression" : "Super"
- node = this.startNode()
+pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) {
+ var startPos = this.start, startLoc = this.startLoc
+ var expr = this.parseExprOps(noIn, refDestructuringErrors)
+ if (this.checkExpressionErrors(refDestructuringErrors)) return expr
+ if (this.eat(tt.question)) {
+ var node = this.startNodeAt(startPos, startLoc)
+ node.test = expr
+ node.consequent = this.parseMaybeAssign()
+ this.expect(tt.colon)
+ node.alternate = this.parseMaybeAssign(noIn)
+ return this.finishNode(node, "ConditionalExpression")
+ }
+ return expr
+}
+
+// Start the precedence parser.
+
+pp$3.parseExprOps = function(noIn, refDestructuringErrors) {
+ var startPos = this.start, startLoc = this.startLoc
+ var expr = this.parseMaybeUnary(refDestructuringErrors, false)
+ if (this.checkExpressionErrors(refDestructuringErrors)) return expr
+ return this.parseExprOp(expr, startPos, startLoc, -1, noIn)
+}
+
+// Parse binary operators with the operator precedence parsing
+// algorithm. `left` is the left-hand side of the operator.
+// `minPrec` provides context that allows the function to stop and
+// defer further parser to one of its callers when it encounters an
+// operator that has a lower precedence than the set it is parsing.
+
+pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {
+ var prec = this.type.binop
+ if (prec != null && (!noIn || this.type !== tt._in)) {
+ if (prec > minPrec) {
+ var logical = this.type === tt.logicalOR || this.type === tt.logicalAND
+ var op = this.value
this.next()
- return this.finishNode(node, type)
-
- case tt.name:
var startPos = this.start, startLoc = this.startLoc
- var id = this.parseIdent(this.type !== tt.name)
- if (this.options.ecmaVersion >= 8 && id.name === "async" && !this.canInsertSemicolon() && this.eat(tt._function))
- return this.parseFunction(this.startNodeAt(startPos, startLoc), false, false, true)
- if (canBeArrow && !this.canInsertSemicolon()) {
- if (this.eat(tt.arrow))
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)
- if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === tt.name) {
- id = this.parseIdent()
- if (this.canInsertSemicolon() || !this.eat(tt.arrow))
- this.unexpected()
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)
- }
- }
- return id
-
- case tt.regexp:
- var value = this.value
- node = this.parseLiteral(value.value)
- node.regex = {pattern: value.pattern, flags: value.flags}
- return node
-
- case tt.num: case tt.string:
- return this.parseLiteral(this.value)
-
- case tt._null: case tt._true: case tt._false:
- node = this.startNode()
- node.value = this.type === tt._null ? null : this.type === tt._true
- node.raw = this.type.keyword
- this.next()
- return this.finishNode(node, "Literal")
-
- case tt.parenL:
- return this.parseParenAndDistinguishExpression(canBeArrow)
-
- case tt.bracketL:
- node = this.startNode()
- this.next()
- node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)
- return this.finishNode(node, "ArrayExpression")
-
- case tt.braceL:
- return this.parseObj(false, refDestructuringErrors)
-
- case tt._function:
- node = this.startNode()
- this.next()
- return this.parseFunction(node, false)
-
- case tt._class:
- return this.parseClass(this.startNode(), false)
-
- case tt._new:
- return this.parseNew()
-
- case tt.backQuote:
- return this.parseTemplate()
-
- default:
- this.unexpected()
- }
- }
-
- pp$3.parseLiteral = function(value) {
- var node = this.startNode()
- node.value = value
- node.raw = this.input.slice(this.start, this.end)
+ var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)
+ var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)
+ return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)
+ }
+ }
+ return left
+}
+
+pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) {
+ var node = this.startNodeAt(startPos, startLoc)
+ node.left = left
+ node.operator = op
+ node.right = right
+ return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression")
+}
+
+// Parse unary operators, both prefix and postfix.
+
+pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {
+ var this$1 = this;
+
+ var startPos = this.start, startLoc = this.startLoc, expr
+ if (this.inAsync && this.isContextual("await")) {
+ expr = this.parseAwait(refDestructuringErrors)
+ sawUnary = true
+ } else if (this.type.prefix) {
+ var node = this.startNode(), update = this.type === tt.incDec
+ node.operator = this.value
+ node.prefix = true
this.next()
- return this.finishNode(node, "Literal")
- }
-
- pp$3.parseParenExpression = function() {
- this.expect(tt.parenL)
- var val = this.parseExpression()
- this.expect(tt.parenR)
- return val
+ node.argument = this.parseMaybeUnary(null, true)
+ this.checkExpressionErrors(refDestructuringErrors, true)
+ if (update) this.checkLVal(node.argument)
+ else if (this.strict && node.operator === "delete" &&
+ node.argument.type === "Identifier")
+ this.raiseRecoverable(node.start, "Deleting local variable in strict mode")
+ else sawUnary = true
+ expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
+ } else {
+ expr = this.parseExprSubscripts(refDestructuringErrors)
+ if (this.checkExpressionErrors(refDestructuringErrors)) return expr
+ while (this.type.postfix && !this.canInsertSemicolon()) {
+ var node$1 = this$1.startNodeAt(startPos, startLoc)
+ node$1.operator = this$1.value
+ node$1.prefix = false
+ node$1.argument = expr
+ this$1.checkLVal(expr)
+ this$1.next()
+ expr = this$1.finishNode(node$1, "UpdateExpression")
+ }
}
- pp$3.parseParenAndDistinguishExpression = function(canBeArrow) {
- var this$1 = this;
-
- var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8
- if (this.options.ecmaVersion >= 6) {
- this.next()
-
- var innerStartPos = this.start, innerStartLoc = this.startLoc
- var exprList = [], first = true, lastIsComma = false
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart, innerParenStart
- this.yieldPos = 0
- this.awaitPos = 0
- while (this.type !== tt.parenR) {
- first ? first = false : this$1.expect(tt.comma)
- if (allowTrailingComma && this$1.afterTrailingComma(tt.parenR, true)) {
- lastIsComma = true
- break
- } else if (this$1.type === tt.ellipsis) {
- spreadStart = this$1.start
- exprList.push(this$1.parseParenItem(this$1.parseRest()))
- if (this$1.type === tt.comma) this$1.raise(this$1.start, "Comma is not permitted after the rest element")
- break
- } else {
- if (this$1.type === tt.parenL && !innerParenStart) {
- innerParenStart = this$1.start
- }
- exprList.push(this$1.parseMaybeAssign(false, refDestructuringErrors, this$1.parseParenItem))
- }
- }
- var innerEndPos = this.start, innerEndLoc = this.startLoc
- this.expect(tt.parenR)
-
- if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {
- this.checkPatternErrors(refDestructuringErrors, true)
- this.checkYieldAwaitInDefaultParams()
- if (innerParenStart) this.unexpected(innerParenStart)
- this.yieldPos = oldYieldPos
- this.awaitPos = oldAwaitPos
- return this.parseParenArrowList(startPos, startLoc, exprList)
- }
-
- if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)
- if (spreadStart) this.unexpected(spreadStart)
- this.checkExpressionErrors(refDestructuringErrors, true)
- this.yieldPos = oldYieldPos || this.yieldPos
- this.awaitPos = oldAwaitPos || this.awaitPos
-
- if (exprList.length > 1) {
- val = this.startNodeAt(innerStartPos, innerStartLoc)
- val.expressions = exprList
- this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc)
- } else {
- val = exprList[0]
+ if (!sawUnary && this.eat(tt.starstar))
+ return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false)
+ else
+ return expr
+}
+
+// Parse call, dot, and `[]`-subscript expressions.
+
+pp$3.parseExprSubscripts = function(refDestructuringErrors) {
+ var startPos = this.start, startLoc = this.startLoc
+ var expr = this.parseExprAtom(refDestructuringErrors)
+ var skipArrowSubscripts = expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")"
+ if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr
+ return this.parseSubscripts(expr, startPos, startLoc)
+}
+
+pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {
+ var this$1 = this;
+
+ for (;;) {
+ var maybeAsyncArrow = this$1.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && !this$1.canInsertSemicolon()
+ if (this$1.eat(tt.dot)) {
+ var node = this$1.startNodeAt(startPos, startLoc)
+ node.object = base
+ node.property = this$1.parseIdent(true)
+ node.computed = false
+ base = this$1.finishNode(node, "MemberExpression")
+ } else if (this$1.eat(tt.bracketL)) {
+ var node$1 = this$1.startNodeAt(startPos, startLoc)
+ node$1.object = base
+ node$1.property = this$1.parseExpression()
+ node$1.computed = true
+ this$1.expect(tt.bracketR)
+ base = this$1.finishNode(node$1, "MemberExpression")
+ } else if (!noCalls && this$1.eat(tt.parenL)) {
+ var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this$1.yieldPos, oldAwaitPos = this$1.awaitPos
+ this$1.yieldPos = 0
+ this$1.awaitPos = 0
+ var exprList = this$1.parseExprList(tt.parenR, this$1.options.ecmaVersion >= 8, false, refDestructuringErrors)
+ if (maybeAsyncArrow && !this$1.canInsertSemicolon() && this$1.eat(tt.arrow)) {
+ this$1.checkPatternErrors(refDestructuringErrors, true)
+ this$1.checkYieldAwaitInDefaultParams()
+ this$1.yieldPos = oldYieldPos
+ this$1.awaitPos = oldAwaitPos
+ return this$1.parseArrowExpression(this$1.startNodeAt(startPos, startLoc), exprList, true)
}
+ this$1.checkExpressionErrors(refDestructuringErrors, true)
+ this$1.yieldPos = oldYieldPos || this$1.yieldPos
+ this$1.awaitPos = oldAwaitPos || this$1.awaitPos
+ var node$2 = this$1.startNodeAt(startPos, startLoc)
+ node$2.callee = base
+ node$2.arguments = exprList
+ base = this$1.finishNode(node$2, "CallExpression")
+ } else if (this$1.type === tt.backQuote) {
+ var node$3 = this$1.startNodeAt(startPos, startLoc)
+ node$3.tag = base
+ node$3.quasi = this$1.parseTemplate()
+ base = this$1.finishNode(node$3, "TaggedTemplateExpression")
} else {
- val = this.parseParenExpression()
- }
-
- if (this.options.preserveParens) {
- var par = this.startNodeAt(startPos, startLoc)
- par.expression = val
- return this.finishNode(par, "ParenthesizedExpression")
- } else {
- return val
+ return base
}
}
+}
- pp$3.parseParenItem = function(item) {
- return item
- }
+// Parse an atomic expression — either a single token that is an
+// expression, an expression started by a keyword like `function` or
+// `new`, or an expression wrapped in punctuation like `()`, `[]`,
+// or `{}`.
- pp$3.parseParenArrowList = function(startPos, startLoc, exprList) {
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)
- }
-
- // New's precedence is slightly tricky. It must allow its argument to
- // be a `[]` or dot subscript expression, but not a call — at least,
- // not without wrapping it in parentheses. Thus, it uses the noCalls
- // argument to parseSubscripts to prevent it from consuming the
- // argument list.
+pp$3.parseExprAtom = function(refDestructuringErrors) {
+ var node, canBeArrow = this.potentialArrowAt == this.start
+ switch (this.type) {
+ case tt._super:
+ if (!this.inFunction)
+ this.raise(this.start, "'super' outside of function or class")
- var empty$1 = []
-
- pp$3.parseNew = function() {
- var node = this.startNode()
- var meta = this.parseIdent(true)
- if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {
- node.meta = meta
- node.property = this.parseIdent(true)
- if (node.property.name !== "target")
- this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target")
- if (!this.inFunction)
- this.raiseRecoverable(node.start, "new.target can only be used in functions")
- return this.finishNode(node, "MetaProperty")
- }
- var startPos = this.start, startLoc = this.startLoc
- node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)
- if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)
- else node.arguments = empty$1
- return this.finishNode(node, "NewExpression")
- }
-
- // Parse template expression.
-
- pp$3.parseTemplateElement = function() {
- var elem = this.startNode()
- elem.value = {
- raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, '\n'),
- cooked: this.value
- }
+ case tt._this:
+ var type = this.type === tt._this ? "ThisExpression" : "Super"
+ node = this.startNode()
this.next()
- elem.tail = this.type === tt.backQuote
- return this.finishNode(elem, "TemplateElement")
- }
-
- pp$3.parseTemplate = function() {
- var this$1 = this;
+ return this.finishNode(node, type)
- var node = this.startNode()
- this.next()
- node.expressions = []
- var curElt = this.parseTemplateElement()
- node.quasis = [curElt]
- while (!curElt.tail) {
- this$1.expect(tt.dollarBraceL)
- node.expressions.push(this$1.parseExpression())
- this$1.expect(tt.braceR)
- node.quasis.push(curElt = this$1.parseTemplateElement())
+ case tt.name:
+ var startPos = this.start, startLoc = this.startLoc
+ var id = this.parseIdent(this.type !== tt.name)
+ if (this.options.ecmaVersion >= 8 && id.name === "async" && !this.canInsertSemicolon() && this.eat(tt._function))
+ return this.parseFunction(this.startNodeAt(startPos, startLoc), false, false, true)
+ if (canBeArrow && !this.canInsertSemicolon()) {
+ if (this.eat(tt.arrow))
+ return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)
+ if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === tt.name) {
+ id = this.parseIdent()
+ if (this.canInsertSemicolon() || !this.eat(tt.arrow))
+ this.unexpected()
+ return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)
+ }
}
- this.next()
- return this.finishNode(node, "TemplateLiteral")
- }
+ return id
- // Parse an object literal or binding pattern.
+ case tt.regexp:
+ var value = this.value
+ node = this.parseLiteral(value.value)
+ node.regex = {pattern: value.pattern, flags: value.flags}
+ return node
- pp$3.parseObj = function(isPattern, refDestructuringErrors) {
- var this$1 = this;
+ case tt.num: case tt.string:
+ return this.parseLiteral(this.value)
- var node = this.startNode(), first = true, propHash = {}
- node.properties = []
+ case tt._null: case tt._true: case tt._false:
+ node = this.startNode()
+ node.value = this.type === tt._null ? null : this.type === tt._true
+ node.raw = this.type.keyword
this.next()
- while (!this.eat(tt.braceR)) {
- if (!first) {
- this$1.expect(tt.comma)
- if (this$1.afterTrailingComma(tt.braceR)) break
- } else first = false
-
- var prop = this$1.startNode(), isGenerator, isAsync, startPos, startLoc
- if (this$1.options.ecmaVersion >= 6) {
- prop.method = false
- prop.shorthand = false
- if (isPattern || refDestructuringErrors) {
- startPos = this$1.start
- startLoc = this$1.startLoc
- }
- if (!isPattern)
- isGenerator = this$1.eat(tt.star)
- }
- this$1.parsePropertyName(prop)
- if (!isPattern && this$1.options.ecmaVersion >= 8 && !isGenerator && !prop.computed &&
- prop.key.type === "Identifier" && prop.key.name === "async" && this$1.type !== tt.parenL &&
- this$1.type !== tt.colon && !this$1.canInsertSemicolon()) {
- isAsync = true
- this$1.parsePropertyName(prop, refDestructuringErrors)
- } else {
- isAsync = false
- }
- this$1.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors)
- this$1.checkPropClash(prop, propHash)
- node.properties.push(this$1.finishNode(prop, "Property"))
- }
- return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression")
- }
-
- pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors) {
- if ((isGenerator || isAsync) && this.type === tt.colon)
- this.unexpected()
-
- if (this.eat(tt.colon)) {
- prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)
- prop.kind = "init"
- } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {
- if (isPattern) this.unexpected()
- prop.kind = "init"
- prop.method = true
- prop.value = this.parseMethod(isGenerator, isAsync)
- } else if (this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
- (prop.key.name === "get" || prop.key.name === "set") &&
- (this.type != tt.comma && this.type != tt.braceR)) {
- if (isGenerator || isAsync || isPattern) this.unexpected()
- prop.kind = prop.key.name
- this.parsePropertyName(prop)
- prop.value = this.parseMethod(false)
- var paramCount = prop.kind === "get" ? 0 : 1
- if (prop.value.params.length !== paramCount) {
- var start = prop.value.start
- if (prop.kind === "get")
- this.raiseRecoverable(start, "getter should have no params")
- else
- this.raiseRecoverable(start, "setter should have exactly one param")
- } else {
- if (prop.kind === "set" && prop.value.params[0].type === "RestElement")
- this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params")
- }
- } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
- if (this.keywords.test(prop.key.name) ||
- (this.strict ? this.reservedWordsStrict : this.reservedWords).test(prop.key.name) ||
- (this.inGenerator && prop.key.name == "yield") ||
- (this.inAsync && prop.key.name == "await"))
- this.raiseRecoverable(prop.key.start, "'" + prop.key.name + "' can not be used as shorthand property")
- prop.kind = "init"
- if (isPattern) {
- prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
- } else if (this.type === tt.eq && refDestructuringErrors) {
- if (!refDestructuringErrors.shorthandAssign)
- refDestructuringErrors.shorthandAssign = this.start
- prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
- } else {
- prop.value = prop.key
- }
- prop.shorthand = true
- } else this.unexpected()
- }
-
- pp$3.parsePropertyName = function(prop) {
- if (this.options.ecmaVersion >= 6) {
- if (this.eat(tt.bracketL)) {
- prop.computed = true
- prop.key = this.parseMaybeAssign()
- this.expect(tt.bracketR)
- return prop.key
- } else {
- prop.computed = false
- }
- }
- return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)
- }
+ return this.finishNode(node, "Literal")
- // Initialize empty function node.
+ case tt.parenL:
+ return this.parseParenAndDistinguishExpression(canBeArrow)
- pp$3.initFunction = function(node) {
- node.id = null
- if (this.options.ecmaVersion >= 6) {
- node.generator = false
- node.expression = false
- }
- if (this.options.ecmaVersion >= 8)
- node.async = false
- }
+ case tt.bracketL:
+ node = this.startNode()
+ this.next()
+ node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)
+ return this.finishNode(node, "ArrayExpression")
- // Parse object or class method.
+ case tt.braceL:
+ return this.parseObj(false, refDestructuringErrors)
- pp$3.parseMethod = function(isGenerator, isAsync) {
- var node = this.startNode(), oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
+ case tt._function:
+ node = this.startNode()
+ this.next()
+ return this.parseFunction(node, false)
- this.initFunction(node)
- if (this.options.ecmaVersion >= 6)
- node.generator = isGenerator
- if (this.options.ecmaVersion >= 8)
- node.async = !!isAsync
+ case tt._class:
+ return this.parseClass(this.startNode(), false)
- this.inGenerator = node.generator
- this.inAsync = node.async
- this.yieldPos = 0
- this.awaitPos = 0
+ case tt._new:
+ return this.parseNew()
- this.expect(tt.parenL)
- node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)
- this.checkYieldAwaitInDefaultParams()
- this.parseFunctionBody(node, false)
+ case tt.backQuote:
+ return this.parseTemplate()
- this.inGenerator = oldInGen
- this.inAsync = oldInAsync
- this.yieldPos = oldYieldPos
- this.awaitPos = oldAwaitPos
- return this.finishNode(node, "FunctionExpression")
+ default:
+ this.unexpected()
}
+}
+
+pp$3.parseLiteral = function(value) {
+ var node = this.startNode()
+ node.value = value
+ node.raw = this.input.slice(this.start, this.end)
+ this.next()
+ return this.finishNode(node, "Literal")
+}
- // Parse arrow function expression with given parameters.
+pp$3.parseParenExpression = function() {
+ this.expect(tt.parenL)
+ var val = this.parseExpression()
+ this.expect(tt.parenR)
+ return val
+}
- pp$3.parseArrowExpression = function(node, params, isAsync) {
- var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
+pp$3.parseParenAndDistinguishExpression = function(canBeArrow) {
+ var this$1 = this;
- this.initFunction(node)
- if (this.options.ecmaVersion >= 8)
- node.async = !!isAsync
+ var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8
+ if (this.options.ecmaVersion >= 6) {
+ this.next()
- this.inGenerator = false
- this.inAsync = node.async
+ var innerStartPos = this.start, innerStartLoc = this.startLoc
+ var exprList = [], first = true, lastIsComma = false
+ var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart, innerParenStart
this.yieldPos = 0
this.awaitPos = 0
-
- node.params = this.toAssignableList(params, true)
- this.parseFunctionBody(node, true)
-
- this.inGenerator = oldInGen
- this.inAsync = oldInAsync
- this.yieldPos = oldYieldPos
- this.awaitPos = oldAwaitPos
- return this.finishNode(node, "ArrowFunctionExpression")
- }
-
- // Parse function body and check parameters.
-
- pp$3.parseFunctionBody = function(node, isArrowFunction) {
- var isExpression = isArrowFunction && this.type !== tt.braceL
-
- if (isExpression) {
- node.body = this.parseMaybeAssign()
- node.expression = true
- } else {
- // Start a new scope with regard to labels and the `inFunction`
- // flag (restore them to their old value afterwards).
- var oldInFunc = this.inFunction, oldLabels = this.labels
- this.inFunction = true; this.labels = []
- node.body = this.parseBlock(true)
- node.expression = false
- this.inFunction = oldInFunc; this.labels = oldLabels
- }
-
- // If this is a strict mode function, verify that argument names
- // are not repeated, and it does not try to bind the words `eval`
- // or `arguments`.
- var useStrict = (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) ? node.body.body[0] : null
- if (useStrict && this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params))
- this.raiseRecoverable(useStrict.start, "Illegal 'use strict' directive in function with non-simple parameter list")
-
- if (this.strict || useStrict) {
- var oldStrict = this.strict
- this.strict = true
- if (node.id)
- this.checkLVal(node.id, true)
- this.checkParams(node)
- this.strict = oldStrict
- } else if (isArrowFunction || !this.isSimpleParamList(node.params)) {
- this.checkParams(node)
- }
- }
-
- pp$3.isSimpleParamList = function(params) {
- for (var i = 0; i < params.length; i++)
- if (params[i].type !== "Identifier") return false
- return true
- }
-
- // Checks function params for various disallowed patterns such as using "eval"
- // or "arguments" and duplicate parameters.
-
- pp$3.checkParams = function(node) {
- var this$1 = this;
-
- var nameHash = {}
- for (var i = 0; i < node.params.length; i++) this$1.checkLVal(node.params[i], true, nameHash)
- }
-
- // Parses a comma-separated list of expressions, and returns them as
- // an array. `close` is the token type that ends the list, and
- // `allowEmpty` can be turned on to allow subsequent commas with
- // nothing in between them to be parsed as `null` (which is needed
- // for array literals).
-
- pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
- var this$1 = this;
-
- var elts = [], first = true
- while (!this.eat(close)) {
- if (!first) {
- this$1.expect(tt.comma)
- if (allowTrailingComma && this$1.afterTrailingComma(close)) break
- } else first = false
-
- var elt
- if (allowEmpty && this$1.type === tt.comma)
- elt = null
- else if (this$1.type === tt.ellipsis) {
- elt = this$1.parseSpread(refDestructuringErrors)
- if (this$1.type === tt.comma && refDestructuringErrors && !refDestructuringErrors.trailingComma) {
- refDestructuringErrors.trailingComma = this$1.start
+ while (this.type !== tt.parenR) {
+ first ? first = false : this$1.expect(tt.comma)
+ if (allowTrailingComma && this$1.afterTrailingComma(tt.parenR, true)) {
+ lastIsComma = true
+ break
+ } else if (this$1.type === tt.ellipsis) {
+ spreadStart = this$1.start
+ exprList.push(this$1.parseParenItem(this$1.parseRest()))
+ if (this$1.type === tt.comma) this$1.raise(this$1.start, "Comma is not permitted after the rest element")
+ break
+ } else {
+ if (this$1.type === tt.parenL && !innerParenStart) {
+ innerParenStart = this$1.start
}
- } else
- elt = this$1.parseMaybeAssign(false, refDestructuringErrors)
- elts.push(elt)
- }
- return elts
- }
-
- // Parse the next token as an identifier. If `liberal` is true (used
- // when parsing properties), it will also convert keywords into
- // identifiers.
-
- pp$3.parseIdent = function(liberal) {
- var node = this.startNode()
- if (liberal && this.options.allowReserved == "never") liberal = false
- if (this.type === tt.name) {
- if (!liberal && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(this.value) &&
- (this.options.ecmaVersion >= 6 ||
- this.input.slice(this.start, this.end).indexOf("\\") == -1))
- this.raiseRecoverable(this.start, "The keyword '" + this.value + "' is reserved")
- if (this.inGenerator && this.value === "yield")
- this.raiseRecoverable(this.start, "Can not use 'yield' as identifier inside a generator")
- if (this.inAsync && this.value === "await")
- this.raiseRecoverable(this.start, "Can not use 'await' as identifier inside an async function")
- node.name = this.value
- } else if (liberal && this.type.keyword) {
- node.name = this.type.keyword
- } else {
- this.unexpected()
+ exprList.push(this$1.parseMaybeAssign(false, refDestructuringErrors, this$1.parseParenItem))
+ }
}
- this.next()
- return this.finishNode(node, "Identifier")
- }
-
- // Parses yield expression inside generator.
-
- pp$3.parseYield = function() {
- if (!this.yieldPos) this.yieldPos = this.start
+ var innerEndPos = this.start, innerEndLoc = this.startLoc
+ this.expect(tt.parenR)
- var node = this.startNode()
- this.next()
- if (this.type == tt.semi || this.canInsertSemicolon() || (this.type != tt.star && !this.type.startsExpr)) {
- node.delegate = false
- node.argument = null
+ if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {
+ this.checkPatternErrors(refDestructuringErrors, true)
+ this.checkYieldAwaitInDefaultParams()
+ if (innerParenStart) this.unexpected(innerParenStart)
+ this.yieldPos = oldYieldPos
+ this.awaitPos = oldAwaitPos
+ return this.parseParenArrowList(startPos, startLoc, exprList)
+ }
+
+ if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)
+ if (spreadStart) this.unexpected(spreadStart)
+ this.checkExpressionErrors(refDestructuringErrors, true)
+ this.yieldPos = oldYieldPos || this.yieldPos
+ this.awaitPos = oldAwaitPos || this.awaitPos
+
+ if (exprList.length > 1) {
+ val = this.startNodeAt(innerStartPos, innerStartLoc)
+ val.expressions = exprList
+ this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc)
} else {
- node.delegate = this.eat(tt.star)
- node.argument = this.parseMaybeAssign()
+ val = exprList[0]
}
- return this.finishNode(node, "YieldExpression")
- }
-
- pp$3.parseAwait = function() {
- if (!this.awaitPos) this.awaitPos = this.start
-
- var node = this.startNode()
- this.next()
- node.argument = this.parseMaybeUnary(null, true)
- return this.finishNode(node, "AwaitExpression")
+ } else {
+ val = this.parseParenExpression()
}
- var pp$4 = Parser.prototype
-
- // This function is used to raise exceptions on parse errors. It
- // takes an offset integer (into the current `input`) to indicate
- // the location of the error, attaches the position to the end
- // of the error message, and then raises a `SyntaxError` with that
- // message.
-
- pp$4.raise = function(pos, message) {
- var loc = getLineInfo(this.input, pos)
- message += " (" + loc.line + ":" + loc.column + ")"
- var err = new SyntaxError(message)
- err.pos = pos; err.loc = loc; err.raisedAt = this.pos
- throw err
- }
-
- pp$4.raiseRecoverable = pp$4.raise
-
- pp$4.curPosition = function() {
- if (this.options.locations) {
- return new Position(this.curLine, this.pos - this.lineStart)
- }
- }
-
- var Node = function Node(parser, pos, loc) {
- this.type = ""
- this.start = pos
- this.end = 0
- if (parser.options.locations)
- this.loc = new SourceLocation(parser, loc)
- if (parser.options.directSourceFile)
- this.sourceFile = parser.options.directSourceFile
- if (parser.options.ranges)
- this.range = [pos, 0]
- };
-
- // Start an AST node, attaching a start offset.
-
- var pp$5 = Parser.prototype
-
- pp$5.startNode = function() {
- return new Node(this, this.start, this.startLoc)
- }
-
- pp$5.startNodeAt = function(pos, loc) {
- return new Node(this, pos, loc)
- }
-
- // Finish an AST node, adding `type` and `end` properties.
-
- function finishNodeAt(node, type, pos, loc) {
- node.type = type
- node.end = pos
- if (this.options.locations)
- node.loc.end = loc
- if (this.options.ranges)
- node.range[1] = pos
- return node
- }
-
- pp$5.finishNode = function(node, type) {
- return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
- }
-
- // Finish node at given position
-
- pp$5.finishNodeAt = function(node, type, pos, loc) {
- return finishNodeAt.call(this, node, type, pos, loc)
- }
-
- var TokContext = function TokContext(token, isExpr, preserveSpace, override) {
- this.token = token
- this.isExpr = !!isExpr
- this.preserveSpace = !!preserveSpace
- this.override = override
- };
-
- var types = {
- b_stat: new TokContext("{", false),
- b_expr: new TokContext("{", true),
- b_tmpl: new TokContext("${", true),
- p_stat: new TokContext("(", false),
- p_expr: new TokContext("(", true),
- q_tmpl: new TokContext("`", true, true, function (p) { return p.readTmplToken(); }),
- f_expr: new TokContext("function", true)
- }
-
- var pp$6 = Parser.prototype
-
- pp$6.initialContext = function() {
- return [types.b_stat]
- }
-
- pp$6.braceIsBlock = function(prevType) {
- if (prevType === tt.colon) {
- var parent = this.curContext()
- if (parent === types.b_stat || parent === types.b_expr)
- return !parent.isExpr
- }
- if (prevType === tt._return)
- return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR)
- return true
- if (prevType == tt.braceL)
- return this.curContext() === types.b_stat
- return !this.exprAllowed
- }
-
- pp$6.updateContext = function(prevType) {
- var update, type = this.type
- if (type.keyword && prevType == tt.dot)
- this.exprAllowed = false
- else if (update = type.updateContext)
- update.call(this, prevType)
- else
- this.exprAllowed = type.beforeExpr
+ if (this.options.preserveParens) {
+ var par = this.startNodeAt(startPos, startLoc)
+ par.expression = val
+ return this.finishNode(par, "ParenthesizedExpression")
+ } else {
+ return val
}
-
- // Token-specific context update code
-
- tt.parenR.updateContext = tt.braceR.updateContext = function() {
- if (this.context.length == 1) {
- this.exprAllowed = true
- return
+}
+
+pp$3.parseParenItem = function(item) {
+ return item
+}
+
+pp$3.parseParenArrowList = function(startPos, startLoc, exprList) {
+ return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)
+}
+
+// New's precedence is slightly tricky. It must allow its argument to
+// be a `[]` or dot subscript expression, but not a call — at least,
+// not without wrapping it in parentheses. Thus, it uses the noCalls
+// argument to parseSubscripts to prevent it from consuming the
+// argument list.
+
+var empty$1 = []
+
+pp$3.parseNew = function() {
+ var node = this.startNode()
+ var meta = this.parseIdent(true)
+ if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {
+ node.meta = meta
+ node.property = this.parseIdent(true)
+ if (node.property.name !== "target")
+ this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target")
+ if (!this.inFunction)
+ this.raiseRecoverable(node.start, "new.target can only be used in functions")
+ return this.finishNode(node, "MetaProperty")
+ }
+ var startPos = this.start, startLoc = this.startLoc
+ node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)
+ if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)
+ else node.arguments = empty$1
+ return this.finishNode(node, "NewExpression")
+}
+
+// Parse template expression.
+
+pp$3.parseTemplateElement = function() {
+ var elem = this.startNode()
+ elem.value = {
+ raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, '\n'),
+ cooked: this.value
+ }
+ this.next()
+ elem.tail = this.type === tt.backQuote
+ return this.finishNode(elem, "TemplateElement")
+}
+
+pp$3.parseTemplate = function() {
+ var this$1 = this;
+
+ var node = this.startNode()
+ this.next()
+ node.expressions = []
+ var curElt = this.parseTemplateElement()
+ node.quasis = [curElt]
+ while (!curElt.tail) {
+ this$1.expect(tt.dollarBraceL)
+ node.expressions.push(this$1.parseExpression())
+ this$1.expect(tt.braceR)
+ node.quasis.push(curElt = this$1.parseTemplateElement())
+ }
+ this.next()
+ return this.finishNode(node, "TemplateLiteral")
+}
+
+// Parse an object literal or binding pattern.
+
+pp$3.parseObj = function(isPattern, refDestructuringErrors) {
+ var this$1 = this;
+
+ var node = this.startNode(), first = true, propHash = {}
+ node.properties = []
+ this.next()
+ while (!this.eat(tt.braceR)) {
+ if (!first) {
+ this$1.expect(tt.comma)
+ if (this$1.afterTrailingComma(tt.braceR)) break
+ } else first = false
+
+ var prop = this$1.startNode(), isGenerator, isAsync, startPos, startLoc
+ if (this$1.options.ecmaVersion >= 6) {
+ prop.method = false
+ prop.shorthand = false
+ if (isPattern || refDestructuringErrors) {
+ startPos = this$1.start
+ startLoc = this$1.startLoc
+ }
+ if (!isPattern)
+ isGenerator = this$1.eat(tt.star)
}
- var out = this.context.pop()
- if (out === types.b_stat && this.curContext() === types.f_expr) {
- this.context.pop()
- this.exprAllowed = false
- } else if (out === types.b_tmpl) {
- this.exprAllowed = true
+ this$1.parsePropertyName(prop)
+ if (!isPattern && this$1.options.ecmaVersion >= 8 && !isGenerator && !prop.computed &&
+ prop.key.type === "Identifier" && prop.key.name === "async" && this$1.type !== tt.parenL &&
+ this$1.type !== tt.colon && !this$1.canInsertSemicolon()) {
+ isAsync = true
+ this$1.parsePropertyName(prop, refDestructuringErrors)
} else {
- this.exprAllowed = !out.isExpr
- }
- }
-
- tt.braceL.updateContext = function(prevType) {
- this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)
- this.exprAllowed = true
- }
+ isAsync = false
+ }
+ this$1.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors)
+ this$1.checkPropClash(prop, propHash)
+ node.properties.push(this$1.finishNode(prop, "Property"))
+ }
+ return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression")
+}
+
+pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors) {
+ if ((isGenerator || isAsync) && this.type === tt.colon)
+ this.unexpected()
+
+ if (this.eat(tt.colon)) {
+ prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)
+ prop.kind = "init"
+ } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {
+ if (isPattern) this.unexpected()
+ prop.kind = "init"
+ prop.method = true
+ prop.value = this.parseMethod(isGenerator, isAsync)
+ } else if (this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
+ (prop.key.name === "get" || prop.key.name === "set") &&
+ (this.type != tt.comma && this.type != tt.braceR)) {
+ if (isGenerator || isAsync || isPattern) this.unexpected()
+ prop.kind = prop.key.name
+ this.parsePropertyName(prop)
+ prop.value = this.parseMethod(false)
+ var paramCount = prop.kind === "get" ? 0 : 1
+ if (prop.value.params.length !== paramCount) {
+ var start = prop.value.start
+ if (prop.kind === "get")
+ this.raiseRecoverable(start, "getter should have no params")
+ else
+ this.raiseRecoverable(start, "setter should have exactly one param")
+ } else {
+ if (prop.kind === "set" && prop.value.params[0].type === "RestElement")
+ this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params")
+ }
+ } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
+ if (this.keywords.test(prop.key.name) ||
+ (this.strict ? this.reservedWordsStrict : this.reservedWords).test(prop.key.name) ||
+ (this.inGenerator && prop.key.name == "yield") ||
+ (this.inAsync && prop.key.name == "await"))
+ this.raiseRecoverable(prop.key.start, "'" + prop.key.name + "' can not be used as shorthand property")
+ prop.kind = "init"
+ if (isPattern) {
+ prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
+ } else if (this.type === tt.eq && refDestructuringErrors) {
+ if (!refDestructuringErrors.shorthandAssign)
+ refDestructuringErrors.shorthandAssign = this.start
+ prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)
+ } else {
+ prop.value = prop.key
+ }
+ prop.shorthand = true
+ } else this.unexpected()
+}
+
+pp$3.parsePropertyName = function(prop) {
+ if (this.options.ecmaVersion >= 6) {
+ if (this.eat(tt.bracketL)) {
+ prop.computed = true
+ prop.key = this.parseMaybeAssign()
+ this.expect(tt.bracketR)
+ return prop.key
+ } else {
+ prop.computed = false
+ }
+ }
+ return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)
+}
+
+// Initialize empty function node.
+
+pp$3.initFunction = function(node) {
+ node.id = null
+ if (this.options.ecmaVersion >= 6) {
+ node.generator = false
+ node.expression = false
+ }
+ if (this.options.ecmaVersion >= 8)
+ node.async = false
+}
+
+// Parse object or class method.
+
+pp$3.parseMethod = function(isGenerator, isAsync) {
+ var node = this.startNode(), oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
+
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 6)
+ node.generator = isGenerator
+ if (this.options.ecmaVersion >= 8)
+ node.async = !!isAsync
+
+ this.inGenerator = node.generator
+ this.inAsync = node.async
+ this.yieldPos = 0
+ this.awaitPos = 0
+
+ this.expect(tt.parenL)
+ node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)
+ this.checkYieldAwaitInDefaultParams()
+ this.parseFunctionBody(node, false)
+
+ this.inGenerator = oldInGen
+ this.inAsync = oldInAsync
+ this.yieldPos = oldYieldPos
+ this.awaitPos = oldAwaitPos
+ return this.finishNode(node, "FunctionExpression")
+}
+
+// Parse arrow function expression with given parameters.
+
+pp$3.parseArrowExpression = function(node, params, isAsync) {
+ var oldInGen = this.inGenerator, oldInAsync = this.inAsync, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos
+
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 8)
+ node.async = !!isAsync
+
+ this.inGenerator = false
+ this.inAsync = node.async
+ this.yieldPos = 0
+ this.awaitPos = 0
+
+ node.params = this.toAssignableList(params, true)
+ this.parseFunctionBody(node, true)
+
+ this.inGenerator = oldInGen
+ this.inAsync = oldInAsync
+ this.yieldPos = oldYieldPos
+ this.awaitPos = oldAwaitPos
+ return this.finishNode(node, "ArrowFunctionExpression")
+}
+
+// Parse function body and check parameters.
+
+pp$3.parseFunctionBody = function(node, isArrowFunction) {
+ var isExpression = isArrowFunction && this.type !== tt.braceL
+
+ if (isExpression) {
+ node.body = this.parseMaybeAssign()
+ node.expression = true
+ } else {
+ // Start a new scope with regard to labels and the `inFunction`
+ // flag (restore them to their old value afterwards).
+ var oldInFunc = this.inFunction, oldLabels = this.labels
+ this.inFunction = true; this.labels = []
+ node.body = this.parseBlock(true)
+ node.expression = false
+ this.inFunction = oldInFunc; this.labels = oldLabels
+ }
+
+ // If this is a strict mode function, verify that argument names
+ // are not repeated, and it does not try to bind the words `eval`
+ // or `arguments`.
+ var useStrict = (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) ? node.body.body[0] : null
+ if (useStrict && this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params))
+ this.raiseRecoverable(useStrict.start, "Illegal 'use strict' directive in function with non-simple parameter list")
+
+ if (this.strict || useStrict) {
+ var oldStrict = this.strict
+ this.strict = true
+ if (node.id)
+ this.checkLVal(node.id, true)
+ this.checkParams(node)
+ this.strict = oldStrict
+ } else if (isArrowFunction || !this.isSimpleParamList(node.params)) {
+ this.checkParams(node)
+ }
+}
+
+pp$3.isSimpleParamList = function(params) {
+ for (var i = 0; i < params.length; i++)
+ if (params[i].type !== "Identifier") return false
+ return true
+}
+
+// Checks function params for various disallowed patterns such as using "eval"
+// or "arguments" and duplicate parameters.
+
+pp$3.checkParams = function(node) {
+ var this$1 = this;
+
+ var nameHash = {}
+ for (var i = 0; i < node.params.length; i++) this$1.checkLVal(node.params[i], true, nameHash)
+}
+
+// Parses a comma-separated list of expressions, and returns them as
+// an array. `close` is the token type that ends the list, and
+// `allowEmpty` can be turned on to allow subsequent commas with
+// nothing in between them to be parsed as `null` (which is needed
+// for array literals).
+
+pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
+ var this$1 = this;
+
+ var elts = [], first = true
+ while (!this.eat(close)) {
+ if (!first) {
+ this$1.expect(tt.comma)
+ if (allowTrailingComma && this$1.afterTrailingComma(close)) break
+ } else first = false
+
+ var elt
+ if (allowEmpty && this$1.type === tt.comma)
+ elt = null
+ else if (this$1.type === tt.ellipsis) {
+ elt = this$1.parseSpread(refDestructuringErrors)
+ if (this$1.type === tt.comma && refDestructuringErrors && !refDestructuringErrors.trailingComma) {
+ refDestructuringErrors.trailingComma = this$1.start
+ }
+ } else
+ elt = this$1.parseMaybeAssign(false, refDestructuringErrors)
+ elts.push(elt)
+ }
+ return elts
+}
+
+// Parse the next token as an identifier. If `liberal` is true (used
+// when parsing properties), it will also convert keywords into
+// identifiers.
+
+pp$3.parseIdent = function(liberal) {
+ var node = this.startNode()
+ if (liberal && this.options.allowReserved == "never") liberal = false
+ if (this.type === tt.name) {
+ if (!liberal && (this.strict ? this.reservedWordsStrict : this.reservedWords).test(this.value) &&
+ (this.options.ecmaVersion >= 6 ||
+ this.input.slice(this.start, this.end).indexOf("\\") == -1))
+ this.raiseRecoverable(this.start, "The keyword '" + this.value + "' is reserved")
+ if (this.inGenerator && this.value === "yield")
+ this.raiseRecoverable(this.start, "Can not use 'yield' as identifier inside a generator")
+ if (this.inAsync && this.value === "await")
+ this.raiseRecoverable(this.start, "Can not use 'await' as identifier inside an async function")
+ node.name = this.value
+ } else if (liberal && this.type.keyword) {
+ node.name = this.type.keyword
+ } else {
+ this.unexpected()
+ }
+ this.next()
+ return this.finishNode(node, "Identifier")
+}
+
+// Parses yield expression inside generator.
+
+pp$3.parseYield = function() {
+ if (!this.yieldPos) this.yieldPos = this.start
+
+ var node = this.startNode()
+ this.next()
+ if (this.type == tt.semi || this.canInsertSemicolon() || (this.type != tt.star && !this.type.startsExpr)) {
+ node.delegate = false
+ node.argument = null
+ } else {
+ node.delegate = this.eat(tt.star)
+ node.argument = this.parseMaybeAssign()
+ }
+ return this.finishNode(node, "YieldExpression")
+}
+
+pp$3.parseAwait = function() {
+ if (!this.awaitPos) this.awaitPos = this.start
+
+ var node = this.startNode()
+ this.next()
+ node.argument = this.parseMaybeUnary(null, true)
+ return this.finishNode(node, "AwaitExpression")
+}
+
+var pp$4 = Parser.prototype
+
+// This function is used to raise exceptions on parse errors. It
+// takes an offset integer (into the current `input`) to indicate
+// the location of the error, attaches the position to the end
+// of the error message, and then raises a `SyntaxError` with that
+// message.
+
+pp$4.raise = function(pos, message) {
+ var loc = getLineInfo(this.input, pos)
+ message += " (" + loc.line + ":" + loc.column + ")"
+ var err = new SyntaxError(message)
+ err.pos = pos; err.loc = loc; err.raisedAt = this.pos
+ throw err
+}
+
+pp$4.raiseRecoverable = pp$4.raise
+
+pp$4.curPosition = function() {
+ if (this.options.locations) {
+ return new Position(this.curLine, this.pos - this.lineStart)
+ }
+}
+
+var Node = function Node(parser, pos, loc) {
+ this.type = ""
+ this.start = pos
+ this.end = 0
+ if (parser.options.locations)
+ this.loc = new SourceLocation(parser, loc)
+ if (parser.options.directSourceFile)
+ this.sourceFile = parser.options.directSourceFile
+ if (parser.options.ranges)
+ this.range = [pos, 0]
+};
+
+// Start an AST node, attaching a start offset.
+
+var pp$5 = Parser.prototype
+
+pp$5.startNode = function() {
+ return new Node(this, this.start, this.startLoc)
+}
+
+pp$5.startNodeAt = function(pos, loc) {
+ return new Node(this, pos, loc)
+}
+
+// Finish an AST node, adding `type` and `end` properties.
+
+function finishNodeAt(node, type, pos, loc) {
+ node.type = type
+ node.end = pos
+ if (this.options.locations)
+ node.loc.end = loc
+ if (this.options.ranges)
+ node.range[1] = pos
+ return node
+}
+
+pp$5.finishNode = function(node, type) {
+ return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
+}
+
+// Finish node at given position
+
+pp$5.finishNodeAt = function(node, type, pos, loc) {
+ return finishNodeAt.call(this, node, type, pos, loc)
+}
+
+// The algorithm used to determine whether a regexp can appear at a
+// given point in the program is loosely based on sweet.js' approach.
+// See https://github.com/mozilla/sweet.js/wiki/design
+
+var TokContext = function TokContext(token, isExpr, preserveSpace, override) {
+ this.token = token
+ this.isExpr = !!isExpr
+ this.preserveSpace = !!preserveSpace
+ this.override = override
+};
+
+var types = {
+ b_stat: new TokContext("{", false),
+ b_expr: new TokContext("{", true),
+ b_tmpl: new TokContext("${", true),
+ p_stat: new TokContext("(", false),
+ p_expr: new TokContext("(", true),
+ q_tmpl: new TokContext("`", true, true, function (p) { return p.readTmplToken(); }),
+ f_expr: new TokContext("function", true)
+}
+
+var pp$6 = Parser.prototype
+
+pp$6.initialContext = function() {
+ return [types.b_stat]
+}
+
+pp$6.braceIsBlock = function(prevType) {
+ if (prevType === tt.colon) {
+ var parent = this.curContext()
+ if (parent === types.b_stat || parent === types.b_expr)
+ return !parent.isExpr
+ }
+ if (prevType === tt._return)
+ return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
+ if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR)
+ return true
+ if (prevType == tt.braceL)
+ return this.curContext() === types.b_stat
+ return !this.exprAllowed
+}
+
+pp$6.updateContext = function(prevType) {
+ var update, type = this.type
+ if (type.keyword && prevType == tt.dot)
+ this.exprAllowed = false
+ else if (update = type.updateContext)
+ update.call(this, prevType)
+ else
+ this.exprAllowed = type.beforeExpr
+}
- tt.dollarBraceL.updateContext = function() {
- this.context.push(types.b_tmpl)
- this.exprAllowed = true
- }
+// Token-specific context update code
- tt.parenL.updateContext = function(prevType) {
- var statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while
- this.context.push(statementParens ? types.p_stat : types.p_expr)
+tt.parenR.updateContext = tt.braceR.updateContext = function() {
+ if (this.context.length == 1) {
this.exprAllowed = true
+ return
}
-
- tt.incDec.updateContext = function() {
- // tokExprAllowed stays unchanged
- }
-
- tt._function.updateContext = function(prevType) {
- if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&
- !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))
- this.context.push(types.f_expr)
- this.exprAllowed = false
- }
-
- tt.backQuote.updateContext = function() {
- if (this.curContext() === types.q_tmpl)
- this.context.pop()
- else
- this.context.push(types.q_tmpl)
+ var out = this.context.pop()
+ if (out === types.b_stat && this.curContext() === types.f_expr) {
+ this.context.pop()
this.exprAllowed = false
+ } else if (out === types.b_tmpl) {
+ this.exprAllowed = true
+ } else {
+ this.exprAllowed = !out.isExpr
+ }
+}
+
+tt.braceL.updateContext = function(prevType) {
+ this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)
+ this.exprAllowed = true
+}
+
+tt.dollarBraceL.updateContext = function() {
+ this.context.push(types.b_tmpl)
+ this.exprAllowed = true
+}
+
+tt.parenL.updateContext = function(prevType) {
+ var statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while
+ this.context.push(statementParens ? types.p_stat : types.p_expr)
+ this.exprAllowed = true
+}
+
+tt.incDec.updateContext = function() {
+ // tokExprAllowed stays unchanged
+}
+
+tt._function.updateContext = function(prevType) {
+ if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&
+ !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))
+ this.context.push(types.f_expr)
+ this.exprAllowed = false
+}
+
+tt.backQuote.updateContext = function() {
+ if (this.curContext() === types.q_tmpl)
+ this.context.pop()
+ else
+ this.context.push(types.q_tmpl)
+ this.exprAllowed = false
+}
+
+// Object type used to represent tokens. Note that normally, tokens
+// simply exist as properties on the parser object. This is only
+// used for the onToken callback and the external tokenizer.
+
+var Token = function Token(p) {
+ this.type = p.type
+ this.value = p.value
+ this.start = p.start
+ this.end = p.end
+ if (p.options.locations)
+ this.loc = new SourceLocation(p, p.startLoc, p.endLoc)
+ if (p.options.ranges)
+ this.range = [p.start, p.end]
+};
+
+// ## Tokenizer
+
+var pp$7 = Parser.prototype
+
+// Are we running under Rhino?
+var isRhino = typeof Packages == "object" && Object.prototype.toString.call(Packages) == "[object JavaPackage]"
+
+// Move to the next token
+
+pp$7.next = function() {
+ if (this.options.onToken)
+ this.options.onToken(new Token(this))
+
+ this.lastTokEnd = this.end
+ this.lastTokStart = this.start
+ this.lastTokEndLoc = this.endLoc
+ this.lastTokStartLoc = this.startLoc
+ this.nextToken()
+}
+
+pp$7.getToken = function() {
+ this.next()
+ return new Token(this)
+}
+
+// If we're in an ES6 environment, make parsers iterable
+if (typeof Symbol !== "undefined")
+ pp$7[Symbol.iterator] = function () {
+ var self = this
+ return {next: function () {
+ var token = self.getToken()
+ return {
+ done: token.type === tt.eof,
+ value: token
+ }
+ }}
}
- // Object type used to represent tokens. Note that normally, tokens
- // simply exist as properties on the parser object. This is only
- // used for the onToken callback and the external tokenizer.
-
- var Token = function Token(p) {
- this.type = p.type
- this.value = p.value
- this.start = p.start
- this.end = p.end
- if (p.options.locations)
- this.loc = new SourceLocation(p, p.startLoc, p.endLoc)
- if (p.options.ranges)
- this.range = [p.start, p.end]
- };
-
- // ## Tokenizer
-
- var pp$7 = Parser.prototype
-
- // Are we running under Rhino?
- var isRhino = typeof Packages == "object" && Object.prototype.toString.call(Packages) == "[object JavaPackage]"
-
- // Move to the next token
+// Toggle strict mode. Re-reads the next number or string to please
+// pedantic tests (`"use strict"; 010;` should fail).
- pp$7.next = function() {
- if (this.options.onToken)
- this.options.onToken(new Token(this))
+pp$7.setStrict = function(strict) {
+ var this$1 = this;
- this.lastTokEnd = this.end
- this.lastTokStart = this.start
- this.lastTokEndLoc = this.endLoc
- this.lastTokStartLoc = this.startLoc
- this.nextToken()
- }
-
- pp$7.getToken = function() {
- this.next()
- return new Token(this)
- }
-
- // If we're in an ES6 environment, make parsers iterable
- if (typeof Symbol !== "undefined")
- pp$7[Symbol.iterator] = function () {
- var self = this
- return {next: function () {
- var token = self.getToken()
- return {
- done: token.type === tt.eof,
- value: token
- }
- }}
+ this.strict = strict
+ if (this.type !== tt.num && this.type !== tt.string) return
+ this.pos = this.start
+ if (this.options.locations) {
+ while (this.pos < this.lineStart) {
+ this$1.lineStart = this$1.input.lastIndexOf("\n", this$1.lineStart - 2) + 1
+ --this$1.curLine
}
-
- // Toggle strict mode. Re-reads the next number or string to please
- // pedantic tests (`"use strict"; 010;` should fail).
-
- pp$7.setStrict = function(strict) {
- var this$1 = this;
-
- this.strict = strict
- if (this.type !== tt.num && this.type !== tt.string) return
- this.pos = this.start
- if (this.options.locations) {
- while (this.pos < this.lineStart) {
- this$1.lineStart = this$1.input.lastIndexOf("\n", this$1.lineStart - 2) + 1
- --this$1.curLine
- }
- }
- this.nextToken()
}
+ this.nextToken()
+}
- pp$7.curContext = function() {
- return this.context[this.context.length - 1]
- }
+pp$7.curContext = function() {
+ return this.context[this.context.length - 1]
+}
- // Read a single token, updating the parser object's token-related
- // properties.
+// Read a single token, updating the parser object's token-related
+// properties.
- pp$7.nextToken = function() {
- var curContext = this.curContext()
- if (!curContext || !curContext.preserveSpace) this.skipSpace()
+pp$7.nextToken = function() {
+ var curContext = this.curContext()
+ if (!curContext || !curContext.preserveSpace) this.skipSpace()
- this.start = this.pos
- if (this.options.locations) this.startLoc = this.curPosition()
- if (this.pos >= this.input.length) return this.finishToken(tt.eof)
+ this.start = this.pos
+ if (this.options.locations) this.startLoc = this.curPosition()
+ if (this.pos >= this.input.length) return this.finishToken(tt.eof)
- if (curContext.override) return curContext.override(this)
- else this.readToken(this.fullCharCodeAtPos())
- }
+ if (curContext.override) return curContext.override(this)
+ else this.readToken(this.fullCharCodeAtPos())
+}
- pp$7.readToken = function(code) {
- // Identifier or keyword. '\uXXXX' sequences are allowed in
- // identifiers, so '\' also dispatches to that.
- if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */)
- return this.readWord()
+pp$7.readToken = function(code) {
+ // Identifier or keyword. '\uXXXX' sequences are allowed in
+ // identifiers, so '\' also dispatches to that.
+ if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */)
+ return this.readWord()
- return this.getTokenFromCode(code)
- }
+ return this.getTokenFromCode(code)
+}
- pp$7.fullCharCodeAtPos = function() {
- var code = this.input.charCodeAt(this.pos)
- if (code <= 0xd7ff || code >= 0xe000) return code
- var next = this.input.charCodeAt(this.pos + 1)
- return (code << 10) + next - 0x35fdc00
- }
+pp$7.fullCharCodeAtPos = function() {
+ var code = this.input.charCodeAt(this.pos)
+ if (code <= 0xd7ff || code >= 0xe000) return code
+ var next = this.input.charCodeAt(this.pos + 1)
+ return (code << 10) + next - 0x35fdc00
+}
- pp$7.skipBlockComment = function() {
- var this$1 = this;
+pp$7.skipBlockComment = function() {
+ var this$1 = this;
- var startLoc = this.options.onComment && this.curPosition()
- var start = this.pos, end = this.input.indexOf("*/", this.pos += 2)
- if (end === -1) this.raise(this.pos - 2, "Unterminated comment")
- this.pos = end + 2
- if (this.options.locations) {
- lineBreakG.lastIndex = start
- var match
- while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
- ++this$1.curLine
- this$1.lineStart = match.index + match[0].length
- }
+ var startLoc = this.options.onComment && this.curPosition()
+ var start = this.pos, end = this.input.indexOf("*/", this.pos += 2)
+ if (end === -1) this.raise(this.pos - 2, "Unterminated comment")
+ this.pos = end + 2
+ if (this.options.locations) {
+ lineBreakG.lastIndex = start
+ var match
+ while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
+ ++this$1.curLine
+ this$1.lineStart = match.index + match[0].length
}
- if (this.options.onComment)
- this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,
- startLoc, this.curPosition())
}
+ if (this.options.onComment)
+ this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,
+ startLoc, this.curPosition())
+}
- pp$7.skipLineComment = function(startSkip) {
- var this$1 = this;
+pp$7.skipLineComment = function(startSkip) {
+ var this$1 = this;
- var start = this.pos
- var startLoc = this.options.onComment && this.curPosition()
- var ch = this.input.charCodeAt(this.pos+=startSkip)
- while (this.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {
- ++this$1.pos
- ch = this$1.input.charCodeAt(this$1.pos)
- }
- if (this.options.onComment)
- this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,
- startLoc, this.curPosition())
+ var start = this.pos
+ var startLoc = this.options.onComment && this.curPosition()
+ var ch = this.input.charCodeAt(this.pos+=startSkip)
+ while (this.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) {
+ ++this$1.pos
+ ch = this$1.input.charCodeAt(this$1.pos)
}
+ if (this.options.onComment)
+ this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,
+ startLoc, this.curPosition())
+}
- // Called at the start of the parse and after every token. Skips
- // whitespace and comments, and.
+// Called at the start of the parse and after every token. Skips
+// whitespace and comments, and.
- pp$7.skipSpace = function() {
- var this$1 = this;
+pp$7.skipSpace = function() {
+ var this$1 = this;
- loop: while (this.pos < this.input.length) {
- var ch = this$1.input.charCodeAt(this$1.pos)
- switch (ch) {
- case 32: case 160: // ' '
- ++this$1.pos
- break
- case 13:
- if (this$1.input.charCodeAt(this$1.pos + 1) === 10) {
- ++this$1.pos
- }
- case 10: case 8232: case 8233:
+ loop: while (this.pos < this.input.length) {
+ var ch = this$1.input.charCodeAt(this$1.pos)
+ switch (ch) {
+ case 32: case 160: // ' '
+ ++this$1.pos
+ break
+ case 13:
+ if (this$1.input.charCodeAt(this$1.pos + 1) === 10) {
++this$1.pos
- if (this$1.options.locations) {
- ++this$1.curLine
- this$1.lineStart = this$1.pos
- }
- break
- case 47: // '/'
- switch (this$1.input.charCodeAt(this$1.pos + 1)) {
- case 42: // '*'
- this$1.skipBlockComment()
- break
- case 47:
- this$1.skipLineComment(2)
- break
- default:
- break loop
- }
- break
- default:
- if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
- ++this$1.pos
- } else {
+ }
+ case 10: case 8232: case 8233:
+ ++this$1.pos
+ if (this$1.options.locations) {
+ ++this$1.curLine
+ this$1.lineStart = this$1.pos
+ }
+ break
+ case 47: // '/'
+ switch (this$1.input.charCodeAt(this$1.pos + 1)) {
+ case 42: // '*'
+ this$1.skipBlockComment()
+ break
+ case 47:
+ this$1.skipLineComment(2)
+ break
+ default:
break loop
- }
- }
- }
- }
-
- // Called at the end of every token. Sets `end`, `val`, and
- // maintains `context` and `exprAllowed`, and skips the space after
- // the token, so that the next one's `start` will point at the
- // right position.
-
- pp$7.finishToken = function(type, val) {
- this.end = this.pos
- if (this.options.locations) this.endLoc = this.curPosition()
- var prevType = this.type
- this.type = type
- this.value = val
-
- this.updateContext(prevType)
- }
-
- // ### Token reading
-
- // This is the function that is called to fetch the next token. It
- // is somewhat obscure, because it works in character codes rather
- // than characters, and because operator parsing has been inlined
- // into it.
- //
- // All in the name of speed.
- //
- pp$7.readToken_dot = function() {
- var next = this.input.charCodeAt(this.pos + 1)
- if (next >= 48 && next <= 57) return this.readNumber(true)
- var next2 = this.input.charCodeAt(this.pos + 2)
- if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
- this.pos += 3
- return this.finishToken(tt.ellipsis)
- } else {
- ++this.pos
- return this.finishToken(tt.dot)
- }
- }
-
- pp$7.readToken_slash = function() { // '/'
- var next = this.input.charCodeAt(this.pos + 1)
- if (this.exprAllowed) {++this.pos; return this.readRegexp()}
- if (next === 61) return this.finishOp(tt.assign, 2)
- return this.finishOp(tt.slash, 1)
- }
-
- pp$7.readToken_mult_modulo_exp = function(code) { // '%*'
- var next = this.input.charCodeAt(this.pos + 1)
- var size = 1
- var tokentype = code === 42 ? tt.star : tt.modulo
-
- // exponentiation operator ** and **=
- if (this.options.ecmaVersion >= 7 && next === 42) {
- ++size
- tokentype = tt.starstar
- next = this.input.charCodeAt(this.pos + 2)
- }
-
- if (next === 61) return this.finishOp(tt.assign, size + 1)
- return this.finishOp(tokentype, size)
- }
-
- pp$7.readToken_pipe_amp = function(code) { // '|&'
- var next = this.input.charCodeAt(this.pos + 1)
- if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)
- if (next === 61) return this.finishOp(tt.assign, 2)
- return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)
- }
-
- pp$7.readToken_caret = function() { // '^'
- var next = this.input.charCodeAt(this.pos + 1)
- if (next === 61) return this.finishOp(tt.assign, 2)
- return this.finishOp(tt.bitwiseXOR, 1)
- }
-
- pp$7.readToken_plus_min = function(code) { // '+-'
- var next = this.input.charCodeAt(this.pos + 1)
- if (next === code) {
- if (next == 45 && this.input.charCodeAt(this.pos + 2) == 62 &&
- lineBreak.test(this.input.slice(this.lastTokEnd, this.pos))) {
- // A `-->` line comment
- this.skipLineComment(3)
- this.skipSpace()
- return this.nextToken()
- }
- return this.finishOp(tt.incDec, 2)
+ }
+ break
+ default:
+ if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
+ ++this$1.pos
+ } else {
+ break loop
+ }
}
- if (next === 61) return this.finishOp(tt.assign, 2)
- return this.finishOp(tt.plusMin, 1)
}
-
- pp$7.readToken_lt_gt = function(code) { // '<>'
- var next = this.input.charCodeAt(this.pos + 1)
- var size = 1
- if (next === code) {
- size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2
- if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)
- return this.finishOp(tt.bitShift, size)
- }
- if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 &&
- this.input.charCodeAt(this.pos + 3) == 45) {
- if (this.inModule) this.unexpected()
- // `<!--`, an XML-style comment that should be interpreted as a line comment
- this.skipLineComment(4)
+}
+
+// Called at the end of every token. Sets `end`, `val`, and
+// maintains `context` and `exprAllowed`, and skips the space after
+// the token, so that the next one's `start` will point at the
+// right position.
+
+pp$7.finishToken = function(type, val) {
+ this.end = this.pos
+ if (this.options.locations) this.endLoc = this.curPosition()
+ var prevType = this.type
+ this.type = type
+ this.value = val
+
+ this.updateContext(prevType)
+}
+
+// ### Token reading
+
+// This is the function that is called to fetch the next token. It
+// is somewhat obscure, because it works in character codes rather
+// than characters, and because operator parsing has been inlined
+// into it.
+//
+// All in the name of speed.
+//
+pp$7.readToken_dot = function() {
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (next >= 48 && next <= 57) return this.readNumber(true)
+ var next2 = this.input.charCodeAt(this.pos + 2)
+ if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
+ this.pos += 3
+ return this.finishToken(tt.ellipsis)
+ } else {
+ ++this.pos
+ return this.finishToken(tt.dot)
+ }
+}
+
+pp$7.readToken_slash = function() { // '/'
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (this.exprAllowed) {++this.pos; return this.readRegexp()}
+ if (next === 61) return this.finishOp(tt.assign, 2)
+ return this.finishOp(tt.slash, 1)
+}
+
+pp$7.readToken_mult_modulo_exp = function(code) { // '%*'
+ var next = this.input.charCodeAt(this.pos + 1)
+ var size = 1
+ var tokentype = code === 42 ? tt.star : tt.modulo
+
+ // exponentiation operator ** and **=
+ if (this.options.ecmaVersion >= 7 && next === 42) {
+ ++size
+ tokentype = tt.starstar
+ next = this.input.charCodeAt(this.pos + 2)
+ }
+
+ if (next === 61) return this.finishOp(tt.assign, size + 1)
+ return this.finishOp(tokentype, size)
+}
+
+pp$7.readToken_pipe_amp = function(code) { // '|&'
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)
+ if (next === 61) return this.finishOp(tt.assign, 2)
+ return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)
+}
+
+pp$7.readToken_caret = function() { // '^'
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (next === 61) return this.finishOp(tt.assign, 2)
+ return this.finishOp(tt.bitwiseXOR, 1)
+}
+
+pp$7.readToken_plus_min = function(code) { // '+-'
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (next === code) {
+ if (next == 45 && this.input.charCodeAt(this.pos + 2) == 62 &&
+ lineBreak.test(this.input.slice(this.lastTokEnd, this.pos))) {
+ // A `-->` line comment
+ this.skipLineComment(3)
this.skipSpace()
return this.nextToken()
}
- if (next === 61) size = 2
- return this.finishOp(tt.relational, size)
- }
+ return this.finishOp(tt.incDec, 2)
+ }
+ if (next === 61) return this.finishOp(tt.assign, 2)
+ return this.finishOp(tt.plusMin, 1)
+}
+
+pp$7.readToken_lt_gt = function(code) { // '<>'
+ var next = this.input.charCodeAt(this.pos + 1)
+ var size = 1
+ if (next === code) {
+ size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2
+ if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)
+ return this.finishOp(tt.bitShift, size)
+ }
+ if (next == 33 && code == 60 && this.input.charCodeAt(this.pos + 2) == 45 &&
+ this.input.charCodeAt(this.pos + 3) == 45) {
+ if (this.inModule) this.unexpected()
+ // `<!--`, an XML-style comment that should be interpreted as a line comment
+ this.skipLineComment(4)
+ this.skipSpace()
+ return this.nextToken()
+ }
+ if (next === 61) size = 2
+ return this.finishOp(tt.relational, size)
+}
+
+pp$7.readToken_eq_excl = function(code) { // '=!'
+ var next = this.input.charCodeAt(this.pos + 1)
+ if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)
+ if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'
+ this.pos += 2
+ return this.finishToken(tt.arrow)
+ }
+ return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)
+}
+
+pp$7.getTokenFromCode = function(code) {
+ switch (code) {
+ // The interpretation of a dot depends on whether it is followed
+ // by a digit or another two dots.
+ case 46: // '.'
+ return this.readToken_dot()
+
+ // Punctuation tokens.
+ case 40: ++this.pos; return this.finishToken(tt.parenL)
+ case 41: ++this.pos; return this.finishToken(tt.parenR)
+ case 59: ++this.pos; return this.finishToken(tt.semi)
+ case 44: ++this.pos; return this.finishToken(tt.comma)
+ case 91: ++this.pos; return this.finishToken(tt.bracketL)
+ case 93: ++this.pos; return this.finishToken(tt.bracketR)
+ case 123: ++this.pos; return this.finishToken(tt.braceL)
+ case 125: ++this.pos; return this.finishToken(tt.braceR)
+ case 58: ++this.pos; return this.finishToken(tt.colon)
+ case 63: ++this.pos; return this.finishToken(tt.question)
+
+ case 96: // '`'
+ if (this.options.ecmaVersion < 6) break
+ ++this.pos
+ return this.finishToken(tt.backQuote)
- pp$7.readToken_eq_excl = function(code) { // '=!'
+ case 48: // '0'
var next = this.input.charCodeAt(this.pos + 1)
- if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)
- if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'
- this.pos += 2
- return this.finishToken(tt.arrow)
- }
- return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)
- }
-
- pp$7.getTokenFromCode = function(code) {
- switch (code) {
- // The interpretation of a dot depends on whether it is followed
- // by a digit or another two dots.
- case 46: // '.'
- return this.readToken_dot()
-
- // Punctuation tokens.
- case 40: ++this.pos; return this.finishToken(tt.parenL)
- case 41: ++this.pos; return this.finishToken(tt.parenR)
- case 59: ++this.pos; return this.finishToken(tt.semi)
- case 44: ++this.pos; return this.finishToken(tt.comma)
- case 91: ++this.pos; return this.finishToken(tt.bracketL)
- case 93: ++this.pos; return this.finishToken(tt.bracketR)
- case 123: ++this.pos; return this.finishToken(tt.braceL)
- case 125: ++this.pos; return this.finishToken(tt.braceR)
- case 58: ++this.pos; return this.finishToken(tt.colon)
- case 63: ++this.pos; return this.finishToken(tt.question)
-
- case 96: // '`'
- if (this.options.ecmaVersion < 6) break
- ++this.pos
- return this.finishToken(tt.backQuote)
-
- case 48: // '0'
- var next = this.input.charCodeAt(this.pos + 1)
- if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number
- if (this.options.ecmaVersion >= 6) {
- if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number
- if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number
+ if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number
+ if (this.options.ecmaVersion >= 6) {
+ if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number
+ if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number
+ }
+ // Anything else beginning with a digit is an integer, octal
+ // number, or float.
+ case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9
+ return this.readNumber(false)
+
+ // Quotes produce strings.
+ case 34: case 39: // '"', "'"
+ return this.readString(code)
+
+ // Operators are parsed inline in tiny state machines. '=' (61) is
+ // often referred to. `finishOp` simply skips the amount of
+ // characters it is given as second argument, and returns a token
+ // of the type given by its first argument.
+
+ case 47: // '/'
+ return this.readToken_slash()
+
+ case 37: case 42: // '%*'
+ return this.readToken_mult_modulo_exp(code)
+
+ case 124: case 38: // '|&'
+ return this.readToken_pipe_amp(code)
+
+ case 94: // '^'
+ return this.readToken_caret()
+
+ case 43: case 45: // '+-'
+ return this.readToken_plus_min(code)
+
+ case 60: case 62: // '<>'
+ return this.readToken_lt_gt(code)
+
+ case 61: case 33: // '=!'
+ return this.readToken_eq_excl(code)
+
+ case 126: // '~'
+ return this.finishOp(tt.prefix, 1)
+ }
+
+ this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'")
+}
+
+pp$7.finishOp = function(type, size) {
+ var str = this.input.slice(this.pos, this.pos + size)
+ this.pos += size
+ return this.finishToken(type, str)
+}
+
+// Parse a regular expression. Some context-awareness is necessary,
+// since a '/' inside a '[]' set does not end the expression.
+
+function tryCreateRegexp(src, flags, throwErrorAt, parser) {
+ try {
+ return new RegExp(src, flags)
+ } catch (e) {
+ if (throwErrorAt !== undefined) {
+ if (e instanceof SyntaxError) parser.raise(throwErrorAt, "Error parsing regular expression: " + e.message)
+ throw e
+ }
+ }
+}
+
+var regexpUnicodeSupport = !!tryCreateRegexp("\uffff", "u")
+
+pp$7.readRegexp = function() {
+ var this$1 = this;
+
+ var escaped, inClass, start = this.pos
+ for (;;) {
+ if (this$1.pos >= this$1.input.length) this$1.raise(start, "Unterminated regular expression")
+ var ch = this$1.input.charAt(this$1.pos)
+ if (lineBreak.test(ch)) this$1.raise(start, "Unterminated regular expression")
+ if (!escaped) {
+ if (ch === "[") inClass = true
+ else if (ch === "]" && inClass) inClass = false
+ else if (ch === "/" && !inClass) break
+ escaped = ch === "\\"
+ } else escaped = false
+ ++this$1.pos
+ }
+ var content = this.input.slice(start, this.pos)
+ ++this.pos
+ // Need to use `readWord1` because '\uXXXX' sequences are allowed
+ // here (don't ask).
+ var mods = this.readWord1()
+ var tmp = content, tmpFlags = ""
+ if (mods) {
+ var validFlags = /^[gim]*$/
+ if (this.options.ecmaVersion >= 6) validFlags = /^[gimuy]*$/
+ if (!validFlags.test(mods)) this.raise(start, "Invalid regular expression flag")
+ if (mods.indexOf("u") >= 0) {
+ if (regexpUnicodeSupport) {
+ tmpFlags = "u"
+ } else {
+ // Replace each astral symbol and every Unicode escape sequence that
+ // possibly represents an astral symbol or a paired surrogate with a
+ // single ASCII symbol to avoid throwing on regular expressions that
+ // are only valid in combination with the `/u` flag.
+ // Note: replacing with the ASCII symbol `x` might cause false
+ // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a
+ // perfectly valid pattern that is equivalent to `[a-b]`, but it would
+ // be replaced by `[x-b]` which throws an error.
+ tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, function (_match, code, offset) {
+ code = Number("0x" + code)
+ if (code > 0x10FFFF) this$1.raise(start + offset + 3, "Code point out of bounds")
+ return "x"
+ })
+ tmp = tmp.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x")
+ tmpFlags = tmpFlags.replace("u", "")
}
- // Anything else beginning with a digit is an integer, octal
- // number, or float.
- case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9
- return this.readNumber(false)
-
- // Quotes produce strings.
- case 34: case 39: // '"', "'"
- return this.readString(code)
-
- // Operators are parsed inline in tiny state machines. '=' (61) is
- // often referred to. `finishOp` simply skips the amount of
- // characters it is given as second argument, and returns a token
- // of the type given by its first argument.
-
- case 47: // '/'
- return this.readToken_slash()
-
- case 37: case 42: // '%*'
- return this.readToken_mult_modulo_exp(code)
-
- case 124: case 38: // '|&'
- return this.readToken_pipe_amp(code)
-
- case 94: // '^'
- return this.readToken_caret()
-
- case 43: case 45: // '+-'
- return this.readToken_plus_min(code)
-
- case 60: case 62: // '<>'
- return this.readToken_lt_gt(code)
-
- case 61: case 33: // '=!'
- return this.readToken_eq_excl(code)
-
- case 126: // '~'
- return this.finishOp(tt.prefix, 1)
}
-
- this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'")
- }
-
- pp$7.finishOp = function(type, size) {
- var str = this.input.slice(this.pos, this.pos + size)
- this.pos += size
- return this.finishToken(type, str)
}
-
- // Parse a regular expression. Some context-awareness is necessary,
- // since a '/' inside a '[]' set does not end the expression.
-
- function tryCreateRegexp(src, flags, throwErrorAt, parser) {
- try {
- return new RegExp(src, flags)
- } catch (e) {
- if (throwErrorAt !== undefined) {
- if (e instanceof SyntaxError) parser.raise(throwErrorAt, "Error parsing regular expression: " + e.message)
- throw e
- }
+ // Detect invalid regular expressions.
+ var value = null
+ // Rhino's regular expression parser is flaky and throws uncatchable exceptions,
+ // so don't do detection if we are running under Rhino
+ if (!isRhino) {
+ tryCreateRegexp(tmp, tmpFlags, start, this)
+ // Get a regular expression object for this pattern-flag pair, or `null` in
+ // case the current environment doesn't support the flags it uses.
+ value = tryCreateRegexp(content, mods)
+ }
+ return this.finishToken(tt.regexp, {pattern: content, flags: mods, value: value})
+}
+
+// Read an integer in the given radix. Return null if zero digits
+// were read, the integer value otherwise. When `len` is given, this
+// will return `null` unless the integer has exactly `len` digits.
+
+pp$7.readInt = function(radix, len) {
+ var this$1 = this;
+
+ var start = this.pos, total = 0
+ for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {
+ var code = this$1.input.charCodeAt(this$1.pos), val
+ if (code >= 97) val = code - 97 + 10 // a
+ else if (code >= 65) val = code - 65 + 10 // A
+ else if (code >= 48 && code <= 57) val = code - 48 // 0-9
+ else val = Infinity
+ if (val >= radix) break
+ ++this$1.pos
+ total = total * radix + val
+ }
+ if (this.pos === start || len != null && this.pos - start !== len) return null
+
+ return total
+}
+
+pp$7.readRadixNumber = function(radix) {
+ this.pos += 2 // 0x
+ var val = this.readInt(radix)
+ if (val == null) this.raise(this.start + 2, "Expected number in radix " + radix)
+ if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
+ return this.finishToken(tt.num, val)
+}
+
+// Read an integer, octal integer, or floating-point number.
+
+pp$7.readNumber = function(startsWithDot) {
+ var start = this.pos, isFloat = false, octal = this.input.charCodeAt(this.pos) === 48
+ if (!startsWithDot && this.readInt(10) === null) this.raise(start, "Invalid number")
+ if (octal && this.pos == start + 1) octal = false
+ var next = this.input.charCodeAt(this.pos)
+ if (next === 46 && !octal) { // '.'
+ ++this.pos
+ this.readInt(10)
+ isFloat = true
+ next = this.input.charCodeAt(this.pos)
+ }
+ if ((next === 69 || next === 101) && !octal) { // 'eE'
+ next = this.input.charCodeAt(++this.pos)
+ if (next === 43 || next === 45) ++this.pos // '+-'
+ if (this.readInt(10) === null) this.raise(start, "Invalid number")
+ isFloat = true
+ }
+ if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
+
+ var str = this.input.slice(start, this.pos), val
+ if (isFloat) val = parseFloat(str)
+ else if (!octal || str.length === 1) val = parseInt(str, 10)
+ else if (/[89]/.test(str) || this.strict) this.raise(start, "Invalid number")
+ else val = parseInt(str, 8)
+ return this.finishToken(tt.num, val)
+}
+
+// Read a string value, interpreting backslash-escapes.
+
+pp$7.readCodePoint = function() {
+ var ch = this.input.charCodeAt(this.pos), code
+
+ if (ch === 123) {
+ if (this.options.ecmaVersion < 6) this.unexpected()
+ var codePos = ++this.pos
+ code = this.readHexChar(this.input.indexOf('}', this.pos) - this.pos)
+ ++this.pos
+ if (code > 0x10FFFF) this.raise(codePos, "Code point out of bounds")
+ } else {
+ code = this.readHexChar(4)
+ }
+ return code
+}
+
+function codePointToString(code) {
+ // UTF-16 Decoding
+ if (code <= 0xFFFF) return String.fromCharCode(code)
+ code -= 0x10000
+ return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
+}
+
+pp$7.readString = function(quote) {
+ var this$1 = this;
+
+ var out = "", chunkStart = ++this.pos
+ for (;;) {
+ if (this$1.pos >= this$1.input.length) this$1.raise(this$1.start, "Unterminated string constant")
+ var ch = this$1.input.charCodeAt(this$1.pos)
+ if (ch === quote) break
+ if (ch === 92) { // '\'
+ out += this$1.input.slice(chunkStart, this$1.pos)
+ out += this$1.readEscapedChar(false)
+ chunkStart = this$1.pos
+ } else {
+ if (isNewLine(ch)) this$1.raise(this$1.start, "Unterminated string constant")
+ ++this$1.pos
}
}
+ out += this.input.slice(chunkStart, this.pos++)
+ return this.finishToken(tt.string, out)
+}
- var regexpUnicodeSupport = !!tryCreateRegexp("\uffff", "u")
+// Reads template string tokens.
- pp$7.readRegexp = function() {
- var this$1 = this;
+pp$7.readTmplToken = function() {
+ var this$1 = this;
- var escaped, inClass, start = this.pos
- for (;;) {
- if (this$1.pos >= this$1.input.length) this$1.raise(start, "Unterminated regular expression")
- var ch = this$1.input.charAt(this$1.pos)
- if (lineBreak.test(ch)) this$1.raise(start, "Unterminated regular expression")
- if (!escaped) {
- if (ch === "[") inClass = true
- else if (ch === "]" && inClass) inClass = false
- else if (ch === "/" && !inClass) break
- escaped = ch === "\\"
- } else escaped = false
- ++this$1.pos
- }
- var content = this.input.slice(start, this.pos)
- ++this.pos
- // Need to use `readWord1` because '\uXXXX' sequences are allowed
- // here (don't ask).
- var mods = this.readWord1()
- var tmp = content, tmpFlags = ""
- if (mods) {
- var validFlags = /^[gim]*$/
- if (this.options.ecmaVersion >= 6) validFlags = /^[gimuy]*$/
- if (!validFlags.test(mods)) this.raise(start, "Invalid regular expression flag")
- if (mods.indexOf("u") >= 0) {
- if (regexpUnicodeSupport) {
- tmpFlags = "u"
+ var out = "", chunkStart = this.pos
+ for (;;) {
+ if (this$1.pos >= this$1.input.length) this$1.raise(this$1.start, "Unterminated template")
+ var ch = this$1.input.charCodeAt(this$1.pos)
+ if (ch === 96 || ch === 36 && this$1.input.charCodeAt(this$1.pos + 1) === 123) { // '`', '${'
+ if (this$1.pos === this$1.start && this$1.type === tt.template) {
+ if (ch === 36) {
+ this$1.pos += 2
+ return this$1.finishToken(tt.dollarBraceL)
} else {
- // Replace each astral symbol and every Unicode escape sequence that
- // possibly represents an astral symbol or a paired surrogate with a
- // single ASCII symbol to avoid throwing on regular expressions that
- // are only valid in combination with the `/u` flag.
- // Note: replacing with the ASCII symbol `x` might cause false
- // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a
- // perfectly valid pattern that is equivalent to `[a-b]`, but it would
- // be replaced by `[x-b]` which throws an error.
- tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, function (_match, code, offset) {
- code = Number("0x" + code)
- if (code > 0x10FFFF) this$1.raise(start + offset + 3, "Code point out of bounds")
- return "x"
- })
- tmp = tmp.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x")
- tmpFlags = tmpFlags.replace("u", "")
+ ++this$1.pos
+ return this$1.finishToken(tt.backQuote)
}
}
- }
- // Detect invalid regular expressions.
- var value = null
- // Rhino's regular expression parser is flaky and throws uncatchable exceptions,
- // so don't do detection if we are running under Rhino
- if (!isRhino) {
- tryCreateRegexp(tmp, tmpFlags, start, this)
- // Get a regular expression object for this pattern-flag pair, or `null` in
- // case the current environment doesn't support the flags it uses.
- value = tryCreateRegexp(content, mods)
- }
- return this.finishToken(tt.regexp, {pattern: content, flags: mods, value: value})
- }
-
- // Read an integer in the given radix. Return null if zero digits
- // were read, the integer value otherwise. When `len` is given, this
- // will return `null` unless the integer has exactly `len` digits.
-
- pp$7.readInt = function(radix, len) {
- var this$1 = this;
-
- var start = this.pos, total = 0
- for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) {
- var code = this$1.input.charCodeAt(this$1.pos), val
- if (code >= 97) val = code - 97 + 10 // a
- else if (code >= 65) val = code - 65 + 10 // A
- else if (code >= 48 && code <= 57) val = code - 48 // 0-9
- else val = Infinity
- if (val >= radix) break
+ out += this$1.input.slice(chunkStart, this$1.pos)
+ return this$1.finishToken(tt.template, out)
+ }
+ if (ch === 92) { // '\'
+ out += this$1.input.slice(chunkStart, this$1.pos)
+ out += this$1.readEscapedChar(true)
+ chunkStart = this$1.pos
+ } else if (isNewLine(ch)) {
+ out += this$1.input.slice(chunkStart, this$1.pos)
++this$1.pos
- total = total * radix + val
- }
- if (this.pos === start || len != null && this.pos - start !== len) return null
-
- return total
- }
-
- pp$7.readRadixNumber = function(radix) {
- this.pos += 2 // 0x
- var val = this.readInt(radix)
- if (val == null) this.raise(this.start + 2, "Expected number in radix " + radix)
- if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
- return this.finishToken(tt.num, val)
- }
-
- // Read an integer, octal integer, or floating-point number.
-
- pp$7.readNumber = function(startsWithDot) {
- var start = this.pos, isFloat = false, octal = this.input.charCodeAt(this.pos) === 48
- if (!startsWithDot && this.readInt(10) === null) this.raise(start, "Invalid number")
- if (octal && this.pos == start + 1) octal = false
- var next = this.input.charCodeAt(this.pos)
- if (next === 46 && !octal) { // '.'
- ++this.pos
- this.readInt(10)
- isFloat = true
- next = this.input.charCodeAt(this.pos)
- }
- if ((next === 69 || next === 101) && !octal) { // 'eE'
- next = this.input.charCodeAt(++this.pos)
- if (next === 43 || next === 45) ++this.pos // '+-'
- if (this.readInt(10) === null) this.raise(start, "Invalid number")
- isFloat = true
- }
- if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, "Identifier directly after number")
-
- var str = this.input.slice(start, this.pos), val
- if (isFloat) val = parseFloat(str)
- else if (!octal || str.length === 1) val = parseInt(str, 10)
- else if (/[89]/.test(str) || this.strict) this.raise(start, "Invalid number")
- else val = parseInt(str, 8)
- return this.finishToken(tt.num, val)
- }
-
- // Read a string value, interpreting backslash-escapes.
-
- pp$7.readCodePoint = function() {
- var ch = this.input.charCodeAt(this.pos), code
-
- if (ch === 123) {
- if (this.options.ecmaVersion < 6) this.unexpected()
- var codePos = ++this.pos
- code = this.readHexChar(this.input.indexOf('}', this.pos) - this.pos)
- ++this.pos
- if (code > 0x10FFFF) this.raise(codePos, "Code point out of bounds")
- } else {
- code = this.readHexChar(4)
- }
- return code
- }
-
- function codePointToString(code) {
- // UTF-16 Decoding
- if (code <= 0xFFFF) return String.fromCharCode(code)
- code -= 0x10000
- return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
- }
-
- pp$7.readString = function(quote) {
- var this$1 = this;
-
- var out = "", chunkStart = ++this.pos
- for (;;) {
- if (this$1.pos >= this$1.input.length) this$1.raise(this$1.start, "Unterminated string constant")
- var ch = this$1.input.charCodeAt(this$1.pos)
- if (ch === quote) break
- if (ch === 92) { // '\'
- out += this$1.input.slice(chunkStart, this$1.pos)
- out += this$1.readEscapedChar(false)
- chunkStart = this$1.pos
- } else {
- if (isNewLine(ch)) this$1.raise(this$1.start, "Unterminated string constant")
- ++this$1.pos
- }
- }
- out += this.input.slice(chunkStart, this.pos++)
- return this.finishToken(tt.string, out)
- }
-
- // Reads template string tokens.
-
- pp$7.readTmplToken = function() {
- var this$1 = this;
-
- var out = "", chunkStart = this.pos
- for (;;) {
- if (this$1.pos >= this$1.input.length) this$1.raise(this$1.start, "Unterminated template")
- var ch = this$1.input.charCodeAt(this$1.pos)
- if (ch === 96 || ch === 36 && this$1.input.charCodeAt(this$1.pos + 1) === 123) { // '`', '${'
- if (this$1.pos === this$1.start && this$1.type === tt.template) {
- if (ch === 36) {
- this$1.pos += 2
- return this$1.finishToken(tt.dollarBraceL)
- } else {
- ++this$1.pos
- return this$1.finishToken(tt.backQuote)
- }
- }
- out += this$1.input.slice(chunkStart, this$1.pos)
- return this$1.finishToken(tt.template, out)
+ switch (ch) {
+ case 13:
+ if (this$1.input.charCodeAt(this$1.pos) === 10) ++this$1.pos
+ case 10:
+ out += "\n"
+ break
+ default:
+ out += String.fromCharCode(ch)
+ break
}
- if (ch === 92) { // '\'
- out += this$1.input.slice(chunkStart, this$1.pos)
- out += this$1.readEscapedChar(true)
- chunkStart = this$1.pos
- } else if (isNewLine(ch)) {
- out += this$1.input.slice(chunkStart, this$1.pos)
- ++this$1.pos
- switch (ch) {
- case 13:
- if (this$1.input.charCodeAt(this$1.pos) === 10) ++this$1.pos
- case 10:
- out += "\n"
- break
- default:
- out += String.fromCharCode(ch)
- break
- }
- if (this$1.options.locations) {
- ++this$1.curLine
- this$1.lineStart = this$1.pos
- }
- chunkStart = this$1.pos
- } else {
- ++this$1.pos
+ if (this$1.options.locations) {
+ ++this$1.curLine
+ this$1.lineStart = this$1.pos
}
+ chunkStart = this$1.pos
+ } else {
+ ++this$1.pos
}
}
-
- // Used to read escaped characters
-
- pp$7.readEscapedChar = function(inTemplate) {
- var ch = this.input.charCodeAt(++this.pos)
- ++this.pos
- switch (ch) {
- case 110: return "\n" // 'n' -> '\n'
- case 114: return "\r" // 'r' -> '\r'
- case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'
- case 117: return codePointToString(this.readCodePoint()) // 'u'
- case 116: return "\t" // 't' -> '\t'
- case 98: return "\b" // 'b' -> '\b'
- case 118: return "\u000b" // 'v' -> '\u000b'
- case 102: return "\f" // 'f' -> '\f'
- case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\r\n'
- case 10: // ' \n'
- if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }
- return ""
- default:
- if (ch >= 48 && ch <= 55) {
- var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]
- var octal = parseInt(octalStr, 8)
- if (octal > 255) {
- octalStr = octalStr.slice(0, -1)
- octal = parseInt(octalStr, 8)
- }
- if (octalStr !== "0" && (this.strict || inTemplate)) {
- this.raise(this.pos - 2, "Octal literal in strict mode")
- }
- this.pos += octalStr.length - 1
- return String.fromCharCode(octal)
+}
+
+// Used to read escaped characters
+
+pp$7.readEscapedChar = function(inTemplate) {
+ var ch = this.input.charCodeAt(++this.pos)
+ ++this.pos
+ switch (ch) {
+ case 110: return "\n" // 'n' -> '\n'
+ case 114: return "\r" // 'r' -> '\r'
+ case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'
+ case 117: return codePointToString(this.readCodePoint()) // 'u'
+ case 116: return "\t" // 't' -> '\t'
+ case 98: return "\b" // 'b' -> '\b'
+ case 118: return "\u000b" // 'v' -> '\u000b'
+ case 102: return "\f" // 'f' -> '\f'
+ case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\r\n'
+ case 10: // ' \n'
+ if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }
+ return ""
+ default:
+ if (ch >= 48 && ch <= 55) {
+ var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]
+ var octal = parseInt(octalStr, 8)
+ if (octal > 255) {
+ octalStr = octalStr.slice(0, -1)
+ octal = parseInt(octalStr, 8)
}
- return String.fromCharCode(ch)
- }
- }
-
- // Used to read character escape sequences ('\x', '\u', '\U').
-
- pp$7.readHexChar = function(len) {
- var codePos = this.pos
- var n = this.readInt(16, len)
- if (n === null) this.raise(codePos, "Bad character escape sequence")
- return n
- }
-
- // Read an identifier, and return it as a string. Sets `this.containsEsc`
- // to whether the word contained a '\u' escape.
- //
- // Incrementally adds only escaped chars, adding other chunks as-is
- // as a micro-optimization.
-
- pp$7.readWord1 = function() {
- var this$1 = this;
-
- this.containsEsc = false
- var word = "", first = true, chunkStart = this.pos
- var astral = this.options.ecmaVersion >= 6
- while (this.pos < this.input.length) {
- var ch = this$1.fullCharCodeAtPos()
- if (isIdentifierChar(ch, astral)) {
- this$1.pos += ch <= 0xffff ? 1 : 2
- } else if (ch === 92) { // "\"
- this$1.containsEsc = true
- word += this$1.input.slice(chunkStart, this$1.pos)
- var escStart = this$1.pos
- if (this$1.input.charCodeAt(++this$1.pos) != 117) // "u"
- this$1.raise(this$1.pos, "Expecting Unicode escape sequence \\uXXXX")
- ++this$1.pos
- var esc = this$1.readCodePoint()
- if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))
- this$1.raise(escStart, "Invalid Unicode escape")
- word += codePointToString(esc)
- chunkStart = this$1.pos
- } else {
- break
+ if (octalStr !== "0" && (this.strict || inTemplate)) {
+ this.raise(this.pos - 2, "Octal literal in strict mode")
}
- first = false
+ this.pos += octalStr.length - 1
+ return String.fromCharCode(octal)
+ }
+ return String.fromCharCode(ch)
+ }
+}
+
+// Used to read character escape sequences ('\x', '\u', '\U').
+
+pp$7.readHexChar = function(len) {
+ var codePos = this.pos
+ var n = this.readInt(16, len)
+ if (n === null) this.raise(codePos, "Bad character escape sequence")
+ return n
+}
+
+// Read an identifier, and return it as a string. Sets `this.containsEsc`
+// to whether the word contained a '\u' escape.
+//
+// Incrementally adds only escaped chars, adding other chunks as-is
+// as a micro-optimization.
+
+pp$7.readWord1 = function() {
+ var this$1 = this;
+
+ this.containsEsc = false
+ var word = "", first = true, chunkStart = this.pos
+ var astral = this.options.ecmaVersion >= 6
+ while (this.pos < this.input.length) {
+ var ch = this$1.fullCharCodeAtPos()
+ if (isIdentifierChar(ch, astral)) {
+ this$1.pos += ch <= 0xffff ? 1 : 2
+ } else if (ch === 92) { // "\"
+ this$1.containsEsc = true
+ word += this$1.input.slice(chunkStart, this$1.pos)
+ var escStart = this$1.pos
+ if (this$1.input.charCodeAt(++this$1.pos) != 117) // "u"
+ this$1.raise(this$1.pos, "Expecting Unicode escape sequence \\uXXXX")
+ ++this$1.pos
+ var esc = this$1.readCodePoint()
+ if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))
+ this$1.raise(escStart, "Invalid Unicode escape")
+ word += codePointToString(esc)
+ chunkStart = this$1.pos
+ } else {
+ break
}
- return word + this.input.slice(chunkStart, this.pos)
- }
-
- // Read an identifier or keyword token. Will check for reserved
- // words when necessary.
-
- pp$7.readWord = function() {
- var word = this.readWord1()
- var type = tt.name
- if ((this.options.ecmaVersion >= 6 || !this.containsEsc) && this.keywords.test(word))
- type = keywordTypes[word]
- return this.finishToken(type, word)
- }
-
- var version = "4.0.3"
-
- // The main exported interface (under `self.acorn` when in the
- // browser) is a `parse` function that takes a code string and
- // returns an abstract syntax tree as specified by [Mozilla parser
- // API][api].
- //
- // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
-
- function parse(input, options) {
- return new Parser(options, input).parse()
- }
-
- // This function tries to parse a single expression at a given
- // offset in a string. Useful for parsing mixed-language formats
- // that embed JavaScript expressions.
-
- function parseExpressionAt(input, pos, options) {
- var p = new Parser(options, input, pos)
- p.nextToken()
- return p.parseExpression()
- }
-
- // Acorn is organized as a tokenizer and a recursive-descent parser.
- // The `tokenizer` export provides an interface to the tokenizer.
-
- function tokenizer(input, options) {
- return new Parser(options, input)
- }
-
- // This is a terrible kludge to support the existing, pre-ES6
- // interface where the loose parser module retroactively adds exports
- // to this module.
- function addLooseExports(parse, Parser, plugins) {
- exports.parse_dammit = parse
- exports.LooseParser = Parser
- exports.pluginsLoose = plugins
- }
-
- exports.version = version;
- exports.parse = parse;
- exports.parseExpressionAt = parseExpressionAt;
- exports.tokenizer = tokenizer;
- exports.addLooseExports = addLooseExports;
- exports.Parser = Parser;
- exports.plugins = plugins;
- exports.defaultOptions = defaultOptions;
- exports.Position = Position;
- exports.SourceLocation = SourceLocation;
- exports.getLineInfo = getLineInfo;
- exports.Node = Node;
- exports.TokenType = TokenType;
- exports.tokTypes = tt;
- exports.TokContext = TokContext;
- exports.tokContexts = types;
- exports.isIdentifierChar = isIdentifierChar;
- exports.isIdentifierStart = isIdentifierStart;
- exports.Token = Token;
- exports.isNewLine = isNewLine;
- exports.lineBreak = lineBreak;
- exports.lineBreakG = lineBreakG;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-})); \ No newline at end of file
+ first = false
+ }
+ return word + this.input.slice(chunkStart, this.pos)
+}
+
+// Read an identifier or keyword token. Will check for reserved
+// words when necessary.
+
+pp$7.readWord = function() {
+ var word = this.readWord1()
+ var type = tt.name
+ if ((this.options.ecmaVersion >= 6 || !this.containsEsc) && this.keywords.test(word))
+ type = keywordTypes[word]
+ return this.finishToken(type, word)
+}
+
+// Acorn is a tiny, fast JavaScript parser written in JavaScript.
+//
+// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
+// various contributors and released under an MIT license.
+//
+// Git repositories for Acorn are available at
+//
+// http://marijnhaverbeke.nl/git/acorn
+// https://github.com/ternjs/acorn.git
+//
+// Please use the [github bug tracker][ghbt] to report issues.
+//
+// [ghbt]: https://github.com/ternjs/acorn/issues
+//
+// This file defines the main parser interface. The library also comes
+// with a [error-tolerant parser][dammit] and an
+// [abstract syntax tree walker][walk], defined in other files.
+//
+// [dammit]: acorn_loose.js
+// [walk]: util/walk.js
+
+var version = "4.0.4"
+
+// The main exported interface (under `self.acorn` when in the
+// browser) is a `parse` function that takes a code string and
+// returns an abstract syntax tree as specified by [Mozilla parser
+// API][api].
+//
+// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
+
+function parse(input, options) {
+ return new Parser(options, input).parse()
+}
+
+// This function tries to parse a single expression at a given
+// offset in a string. Useful for parsing mixed-language formats
+// that embed JavaScript expressions.
+
+function parseExpressionAt(input, pos, options) {
+ var p = new Parser(options, input, pos)
+ p.nextToken()
+ return p.parseExpression()
+}
+
+// Acorn is organized as a tokenizer and a recursive-descent parser.
+// The `tokenizer` export provides an interface to the tokenizer.
+
+function tokenizer(input, options) {
+ return new Parser(options, input)
+}
+
+// This is a terrible kludge to support the existing, pre-ES6
+// interface where the loose parser module retroactively adds exports
+// to this module.
+function addLooseExports(parse, Parser, plugins) {
+ exports.parse_dammit = parse
+ exports.LooseParser = Parser
+ exports.pluginsLoose = plugins
+}
+
+exports.version = version;
+exports.parse = parse;
+exports.parseExpressionAt = parseExpressionAt;
+exports.tokenizer = tokenizer;
+exports.addLooseExports = addLooseExports;
+exports.Parser = Parser;
+exports.plugins = plugins;
+exports.defaultOptions = defaultOptions;
+exports.Position = Position;
+exports.SourceLocation = SourceLocation;
+exports.getLineInfo = getLineInfo;
+exports.Node = Node;
+exports.TokenType = TokenType;
+exports.tokTypes = tt;
+exports.TokContext = TokContext;
+exports.tokContexts = types;
+exports.isIdentifierChar = isIdentifierChar;
+exports.isIdentifierStart = isIdentifierStart;
+exports.Token = Token;
+exports.isNewLine = isNewLine;
+exports.lineBreak = lineBreak;
+exports.lineBreakG = lineBreakG;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+}))); \ No newline at end of file
diff --git a/tools/eslint/node_modules/acorn/dist/acorn_loose.es.js b/tools/eslint/node_modules/acorn/dist/acorn_loose.es.js
index a6b4940309..3c9dc412ef 100644
--- a/tools/eslint/node_modules/acorn/dist/acorn_loose.es.js
+++ b/tools/eslint/node_modules/acorn/dist/acorn_loose.es.js
@@ -1,4 +1,4 @@
-import { defaultOptions, addLooseExports, SourceLocation, tokTypes, tokenizer, Node, lineBreak, isNewLine, getLineInfo, Token, lineBreakG } from './acorn.js';
+import { defaultOptions, addLooseExports, SourceLocation, tokTypes, tokenizer, Node, lineBreak, isNewLine, getLineInfo, Token, lineBreakG } from './acorn';
// Registered plugins
var pluginsLoose = {}
@@ -1316,6 +1316,37 @@ lp$2.parseAwait = function() {
return this.finishNode(node, "AwaitExpression")
}
+// Acorn: Loose parser
+//
+// This module provides an alternative parser (`parse_dammit`) that
+// exposes that same interface as `parse`, but will try to parse
+// anything as JavaScript, repairing syntax error the best it can.
+// There are circumstances in which it will raise an error and give
+// up, but they are very rare. The resulting AST will be a mostly
+// valid JavaScript AST (as per the [Mozilla parser API][api], except
+// that:
+//
+// - Return outside functions is allowed
+//
+// - Label consistency (no conflicts, break only to existing labels)
+// is not enforced.
+//
+// - Bogus Identifier nodes with a name of `"✖"` are inserted whenever
+// the parser got too confused to return anything meaningful.
+//
+// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
+//
+// The expected use for this is to *first* try `acorn.parse`, and only
+// if that fails switch to `parse_dammit`. The loose parser might
+// parse badly indented code incorrectly, so **don't** use it as
+// your default parser.
+//
+// Quite a lot of acorn.js is duplicated here. The alternative was to
+// add a *lot* of extra cruft to that file, making it less readable
+// and slower. Copying and editing the code allowed me to make
+// invasive changes and simplifications without creating a complicated
+// tangle.
+
defaultOptions.tabSize = 4
function parse_dammit(input, options) {
diff --git a/tools/eslint/node_modules/acorn/dist/acorn_loose.js b/tools/eslint/node_modules/acorn/dist/acorn_loose.js
index 4137048cc2..ca52a7902e 100644
--- a/tools/eslint/node_modules/acorn/dist/acorn_loose.js
+++ b/tools/eslint/node_modules/acorn/dist/acorn_loose.js
@@ -1,1339 +1,1370 @@
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('./acorn.js')) :
- typeof define === 'function' && define.amd ? define(['exports', './acorn.js'], factory) :
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('./acorn')) :
+ typeof define === 'function' && define.amd ? define(['exports', './acorn'], factory) :
(factory((global.acorn = global.acorn || {}, global.acorn.loose = global.acorn.loose || {}),global.acorn));
-}(this, function (exports,__acorn_js) { 'use strict';
+}(this, (function (exports,__acorn) { 'use strict';
- // Registered plugins
- var pluginsLoose = {}
+// Registered plugins
+var pluginsLoose = {}
- var LooseParser = function LooseParser(input, options) {
- if ( options === void 0 ) options = {};
+var LooseParser = function LooseParser(input, options) {
+ if ( options === void 0 ) options = {};
- this.toks = __acorn_js.tokenizer(input, options)
- this.options = this.toks.options
- this.input = this.toks.input
- this.tok = this.last = {type: __acorn_js.tokTypes.eof, start: 0, end: 0}
- if (this.options.locations) {
- var here = this.toks.curPosition()
- this.tok.loc = new __acorn_js.SourceLocation(this.toks, here, here)
- }
- this.ahead = [] // Tokens ahead
- this.context = [] // Indentation contexted
- this.curIndent = 0
- this.curLineStart = 0
- this.nextLineStart = this.lineEnd(this.curLineStart) + 1
- this.inAsync = false
- // Load plugins
- this.options.pluginsLoose = options.pluginsLoose || {}
- this.loadPlugins(this.options.pluginsLoose)
- };
-
- LooseParser.prototype.startNode = function startNode () {
- return new __acorn_js.Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)
- };
-
- LooseParser.prototype.storeCurrentPos = function storeCurrentPos () {
- return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start
- };
-
- LooseParser.prototype.startNodeAt = function startNodeAt (pos) {
- if (this.options.locations) {
- return new __acorn_js.Node(this.toks, pos[0], pos[1])
- } else {
- return new __acorn_js.Node(this.toks, pos)
- }
- };
-
- LooseParser.prototype.finishNode = function finishNode (node, type) {
- node.type = type
- node.end = this.last.end
- if (this.options.locations)
- node.loc.end = this.last.loc.end
- if (this.options.ranges)
- node.range[1] = this.last.end
- return node
- };
-
- LooseParser.prototype.dummyNode = function dummyNode (type) {
- var dummy = this.startNode()
- dummy.type = type
- dummy.end = dummy.start
- if (this.options.locations)
- dummy.loc.end = dummy.loc.start
- if (this.options.ranges)
- dummy.range[1] = dummy.start
- this.last = {type: __acorn_js.tokTypes.name, start: dummy.start, end: dummy.start, loc: dummy.loc}
- return dummy
- };
-
- LooseParser.prototype.dummyIdent = function dummyIdent () {
- var dummy = this.dummyNode("Identifier")
- dummy.name = "✖"
- return dummy
- };
-
- LooseParser.prototype.dummyString = function dummyString () {
- var dummy = this.dummyNode("Literal")
- dummy.value = dummy.raw = "✖"
- return dummy
- };
-
- LooseParser.prototype.eat = function eat (type) {
- if (this.tok.type === type) {
- this.next()
- return true
- } else {
- return false
- }
- };
+ this.toks = __acorn.tokenizer(input, options)
+ this.options = this.toks.options
+ this.input = this.toks.input
+ this.tok = this.last = {type: __acorn.tokTypes.eof, start: 0, end: 0}
+ if (this.options.locations) {
+ var here = this.toks.curPosition()
+ this.tok.loc = new __acorn.SourceLocation(this.toks, here, here)
+ }
+ this.ahead = [] // Tokens ahead
+ this.context = [] // Indentation contexted
+ this.curIndent = 0
+ this.curLineStart = 0
+ this.nextLineStart = this.lineEnd(this.curLineStart) + 1
+ this.inAsync = false
+ // Load plugins
+ this.options.pluginsLoose = options.pluginsLoose || {}
+ this.loadPlugins(this.options.pluginsLoose)
+};
+
+LooseParser.prototype.startNode = function startNode () {
+ return new __acorn.Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)
+};
+
+LooseParser.prototype.storeCurrentPos = function storeCurrentPos () {
+ return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start
+};
+
+LooseParser.prototype.startNodeAt = function startNodeAt (pos) {
+ if (this.options.locations) {
+ return new __acorn.Node(this.toks, pos[0], pos[1])
+ } else {
+ return new __acorn.Node(this.toks, pos)
+ }
+};
+
+LooseParser.prototype.finishNode = function finishNode (node, type) {
+ node.type = type
+ node.end = this.last.end
+ if (this.options.locations)
+ node.loc.end = this.last.loc.end
+ if (this.options.ranges)
+ node.range[1] = this.last.end
+ return node
+};
+
+LooseParser.prototype.dummyNode = function dummyNode (type) {
+ var dummy = this.startNode()
+ dummy.type = type
+ dummy.end = dummy.start
+ if (this.options.locations)
+ dummy.loc.end = dummy.loc.start
+ if (this.options.ranges)
+ dummy.range[1] = dummy.start
+ this.last = {type: __acorn.tokTypes.name, start: dummy.start, end: dummy.start, loc: dummy.loc}
+ return dummy
+};
+
+LooseParser.prototype.dummyIdent = function dummyIdent () {
+ var dummy = this.dummyNode("Identifier")
+ dummy.name = "✖"
+ return dummy
+};
+
+LooseParser.prototype.dummyString = function dummyString () {
+ var dummy = this.dummyNode("Literal")
+ dummy.value = dummy.raw = "✖"
+ return dummy
+};
+
+LooseParser.prototype.eat = function eat (type) {
+ if (this.tok.type === type) {
+ this.next()
+ return true
+ } else {
+ return false
+ }
+};
- LooseParser.prototype.isContextual = function isContextual (name) {
- return this.tok.type === __acorn_js.tokTypes.name && this.tok.value === name
- };
+LooseParser.prototype.isContextual = function isContextual (name) {
+ return this.tok.type === __acorn.tokTypes.name && this.tok.value === name
+};
- LooseParser.prototype.eatContextual = function eatContextual (name) {
- return this.tok.value === name && this.eat(__acorn_js.tokTypes.name)
- };
+LooseParser.prototype.eatContextual = function eatContextual (name) {
+ return this.tok.value === name && this.eat(__acorn.tokTypes.name)
+};
- LooseParser.prototype.canInsertSemicolon = function canInsertSemicolon () {
- return this.tok.type === __acorn_js.tokTypes.eof || this.tok.type === __acorn_js.tokTypes.braceR ||
- __acorn_js.lineBreak.test(this.input.slice(this.last.end, this.tok.start))
- };
+LooseParser.prototype.canInsertSemicolon = function canInsertSemicolon () {
+ return this.tok.type === __acorn.tokTypes.eof || this.tok.type === __acorn.tokTypes.braceR ||
+ __acorn.lineBreak.test(this.input.slice(this.last.end, this.tok.start))
+};
- LooseParser.prototype.semicolon = function semicolon () {
- return this.eat(__acorn_js.tokTypes.semi)
- };
+LooseParser.prototype.semicolon = function semicolon () {
+ return this.eat(__acorn.tokTypes.semi)
+};
- LooseParser.prototype.expect = function expect (type) {
- var this$1 = this;
+LooseParser.prototype.expect = function expect (type) {
+ var this$1 = this;
- if (this.eat(type)) return true
- for (var i = 1; i <= 2; i++) {
- if (this$1.lookAhead(i).type == type) {
- for (var j = 0; j < i; j++) this$1.next()
- return true
- }
+ if (this.eat(type)) return true
+ for (var i = 1; i <= 2; i++) {
+ if (this$1.lookAhead(i).type == type) {
+ for (var j = 0; j < i; j++) this$1.next()
+ return true
}
- };
+ }
+};
- LooseParser.prototype.pushCx = function pushCx () {
- this.context.push(this.curIndent)
- };
+LooseParser.prototype.pushCx = function pushCx () {
+ this.context.push(this.curIndent)
+};
- LooseParser.prototype.popCx = function popCx () {
- this.curIndent = this.context.pop()
- };
+LooseParser.prototype.popCx = function popCx () {
+ this.curIndent = this.context.pop()
+};
- LooseParser.prototype.lineEnd = function lineEnd (pos) {
- while (pos < this.input.length && !__acorn_js.isNewLine(this.input.charCodeAt(pos))) ++pos
- return pos
- };
+LooseParser.prototype.lineEnd = function lineEnd (pos) {
+ while (pos < this.input.length && !__acorn.isNewLine(this.input.charCodeAt(pos))) ++pos
+ return pos
+};
- LooseParser.prototype.indentationAfter = function indentationAfter (pos) {
- var this$1 = this;
+LooseParser.prototype.indentationAfter = function indentationAfter (pos) {
+ var this$1 = this;
- for (var count = 0;; ++pos) {
- var ch = this$1.input.charCodeAt(pos)
- if (ch === 32) ++count
- else if (ch === 9) count += this$1.options.tabSize
- else return count
- }
- };
+ for (var count = 0;; ++pos) {
+ var ch = this$1.input.charCodeAt(pos)
+ if (ch === 32) ++count
+ else if (ch === 9) count += this$1.options.tabSize
+ else return count
+ }
+};
- LooseParser.prototype.closes = function closes (closeTok, indent, line, blockHeuristic) {
- if (this.tok.type === closeTok || this.tok.type === __acorn_js.tokTypes.eof) return true
- return line != this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&
- (!blockHeuristic || this.nextLineStart >= this.input.length ||
- this.indentationAfter(this.nextLineStart) < indent)
- };
+LooseParser.prototype.closes = function closes (closeTok, indent, line, blockHeuristic) {
+ if (this.tok.type === closeTok || this.tok.type === __acorn.tokTypes.eof) return true
+ return line != this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&
+ (!blockHeuristic || this.nextLineStart >= this.input.length ||
+ this.indentationAfter(this.nextLineStart) < indent)
+};
- LooseParser.prototype.tokenStartsLine = function tokenStartsLine () {
- var this$1 = this;
+LooseParser.prototype.tokenStartsLine = function tokenStartsLine () {
+ var this$1 = this;
- for (var p = this.tok.start - 1; p >= this.curLineStart; --p) {
- var ch = this$1.input.charCodeAt(p)
- if (ch !== 9 && ch !== 32) return false
- }
- return true
- };
+ for (var p = this.tok.start - 1; p >= this.curLineStart; --p) {
+ var ch = this$1.input.charCodeAt(p)
+ if (ch !== 9 && ch !== 32) return false
+ }
+ return true
+};
- LooseParser.prototype.extend = function extend (name, f) {
- this[name] = f(this[name])
- };
+LooseParser.prototype.extend = function extend (name, f) {
+ this[name] = f(this[name])
+};
- LooseParser.prototype.loadPlugins = function loadPlugins (pluginConfigs) {
- var this$1 = this;
+LooseParser.prototype.loadPlugins = function loadPlugins (pluginConfigs) {
+ var this$1 = this;
- for (var name in pluginConfigs) {
- var plugin = pluginsLoose[name]
- if (!plugin) throw new Error("Plugin '" + name + "' not found")
- plugin(this$1, pluginConfigs[name])
- }
- };
+ for (var name in pluginConfigs) {
+ var plugin = pluginsLoose[name]
+ if (!plugin) throw new Error("Plugin '" + name + "' not found")
+ plugin(this$1, pluginConfigs[name])
+ }
+};
- var lp = LooseParser.prototype
+var lp = LooseParser.prototype
- function isSpace(ch) {
- return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || __acorn_js.isNewLine(ch)
- }
+function isSpace(ch) {
+ return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || __acorn.isNewLine(ch)
+}
- lp.next = function() {
- var this$1 = this;
+lp.next = function() {
+ var this$1 = this;
- this.last = this.tok
- if (this.ahead.length)
- this.tok = this.ahead.shift()
- else
- this.tok = this.readToken()
+ this.last = this.tok
+ if (this.ahead.length)
+ this.tok = this.ahead.shift()
+ else
+ this.tok = this.readToken()
- if (this.tok.start >= this.nextLineStart) {
- while (this.tok.start >= this.nextLineStart) {
- this$1.curLineStart = this$1.nextLineStart
- this$1.nextLineStart = this$1.lineEnd(this$1.curLineStart) + 1
- }
- this.curIndent = this.indentationAfter(this.curLineStart)
+ if (this.tok.start >= this.nextLineStart) {
+ while (this.tok.start >= this.nextLineStart) {
+ this$1.curLineStart = this$1.nextLineStart
+ this$1.nextLineStart = this$1.lineEnd(this$1.curLineStart) + 1
}
+ this.curIndent = this.indentationAfter(this.curLineStart)
}
-
- lp.readToken = function() {
- var this$1 = this;
-
- for (;;) {
- try {
- this$1.toks.next()
- if (this$1.toks.type === __acorn_js.tokTypes.dot &&
- this$1.input.substr(this$1.toks.end, 1) === "." &&
- this$1.options.ecmaVersion >= 6) {
- this$1.toks.end++
- this$1.toks.type = __acorn_js.tokTypes.ellipsis
- }
- return new __acorn_js.Token(this$1.toks)
- } catch(e) {
- if (!(e instanceof SyntaxError)) throw e
-
- // Try to skip some text, based on the error message, and then continue
- var msg = e.message, pos = e.raisedAt, replace = true
- if (/unterminated/i.test(msg)) {
- pos = this$1.lineEnd(e.pos + 1)
- if (/string/.test(msg)) {
- replace = {start: e.pos, end: pos, type: __acorn_js.tokTypes.string, value: this$1.input.slice(e.pos + 1, pos)}
- } else if (/regular expr/i.test(msg)) {
- var re = this$1.input.slice(e.pos, pos)
- try { re = new RegExp(re) } catch(e) {}
- replace = {start: e.pos, end: pos, type: __acorn_js.tokTypes.regexp, value: re}
- } else if (/template/.test(msg)) {
- replace = {start: e.pos, end: pos,
- type: __acorn_js.tokTypes.template,
- value: this$1.input.slice(e.pos, pos)}
- } else {
- replace = false
- }
- } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {
- while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) ++pos
- } else if (/character escape|expected hexadecimal/i.test(msg)) {
- while (pos < this.input.length) {
- var ch = this$1.input.charCodeAt(pos++)
- if (ch === 34 || ch === 39 || __acorn_js.isNewLine(ch)) break
- }
- } else if (/unexpected character/i.test(msg)) {
- pos++
- replace = false
- } else if (/regular expression/i.test(msg)) {
- replace = true
+}
+
+lp.readToken = function() {
+ var this$1 = this;
+
+ for (;;) {
+ try {
+ this$1.toks.next()
+ if (this$1.toks.type === __acorn.tokTypes.dot &&
+ this$1.input.substr(this$1.toks.end, 1) === "." &&
+ this$1.options.ecmaVersion >= 6) {
+ this$1.toks.end++
+ this$1.toks.type = __acorn.tokTypes.ellipsis
+ }
+ return new __acorn.Token(this$1.toks)
+ } catch(e) {
+ if (!(e instanceof SyntaxError)) throw e
+
+ // Try to skip some text, based on the error message, and then continue
+ var msg = e.message, pos = e.raisedAt, replace = true
+ if (/unterminated/i.test(msg)) {
+ pos = this$1.lineEnd(e.pos + 1)
+ if (/string/.test(msg)) {
+ replace = {start: e.pos, end: pos, type: __acorn.tokTypes.string, value: this$1.input.slice(e.pos + 1, pos)}
+ } else if (/regular expr/i.test(msg)) {
+ var re = this$1.input.slice(e.pos, pos)
+ try { re = new RegExp(re) } catch(e) {}
+ replace = {start: e.pos, end: pos, type: __acorn.tokTypes.regexp, value: re}
+ } else if (/template/.test(msg)) {
+ replace = {start: e.pos, end: pos,
+ type: __acorn.tokTypes.template,
+ value: this$1.input.slice(e.pos, pos)}
} else {
- throw e
+ replace = false
}
- this$1.resetTo(pos)
- if (replace === true) replace = {start: pos, end: pos, type: __acorn_js.tokTypes.name, value: "✖"}
- if (replace) {
- if (this$1.options.locations)
- replace.loc = new __acorn_js.SourceLocation(
- this$1.toks,
- __acorn_js.getLineInfo(this$1.input, replace.start),
- __acorn_js.getLineInfo(this$1.input, replace.end))
- return replace
+ } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {
+ while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) ++pos
+ } else if (/character escape|expected hexadecimal/i.test(msg)) {
+ while (pos < this.input.length) {
+ var ch = this$1.input.charCodeAt(pos++)
+ if (ch === 34 || ch === 39 || __acorn.isNewLine(ch)) break
}
+ } else if (/unexpected character/i.test(msg)) {
+ pos++
+ replace = false
+ } else if (/regular expression/i.test(msg)) {
+ replace = true
+ } else {
+ throw e
+ }
+ this$1.resetTo(pos)
+ if (replace === true) replace = {start: pos, end: pos, type: __acorn.tokTypes.name, value: "✖"}
+ if (replace) {
+ if (this$1.options.locations)
+ replace.loc = new __acorn.SourceLocation(
+ this$1.toks,
+ __acorn.getLineInfo(this$1.input, replace.start),
+ __acorn.getLineInfo(this$1.input, replace.end))
+ return replace
}
}
}
-
- lp.resetTo = function(pos) {
- var this$1 = this;
-
- this.toks.pos = pos
- var ch = this.input.charAt(pos - 1)
- this.toks.exprAllowed = !ch || /[\[\{\(,;:?\/*=+\-~!|&%^<>]/.test(ch) ||
- /[enwfd]/.test(ch) &&
- /\b(keywords|case|else|return|throw|new|in|(instance|type)of|delete|void)$/.test(this.input.slice(pos - 10, pos))
-
- if (this.options.locations) {
- this.toks.curLine = 1
- this.toks.lineStart = __acorn_js.lineBreakG.lastIndex = 0
- var match
- while ((match = __acorn_js.lineBreakG.exec(this.input)) && match.index < pos) {
- ++this$1.toks.curLine
- this$1.toks.lineStart = match.index + match[0].length
- }
+}
+
+lp.resetTo = function(pos) {
+ var this$1 = this;
+
+ this.toks.pos = pos
+ var ch = this.input.charAt(pos - 1)
+ this.toks.exprAllowed = !ch || /[\[\{\(,;:?\/*=+\-~!|&%^<>]/.test(ch) ||
+ /[enwfd]/.test(ch) &&
+ /\b(keywords|case|else|return|throw|new|in|(instance|type)of|delete|void)$/.test(this.input.slice(pos - 10, pos))
+
+ if (this.options.locations) {
+ this.toks.curLine = 1
+ this.toks.lineStart = __acorn.lineBreakG.lastIndex = 0
+ var match
+ while ((match = __acorn.lineBreakG.exec(this.input)) && match.index < pos) {
+ ++this$1.toks.curLine
+ this$1.toks.lineStart = match.index + match[0].length
}
}
+}
- lp.lookAhead = function(n) {
- var this$1 = this;
+lp.lookAhead = function(n) {
+ var this$1 = this;
- while (n > this.ahead.length)
- this$1.ahead.push(this$1.readToken())
- return this.ahead[n - 1]
- }
+ while (n > this.ahead.length)
+ this$1.ahead.push(this$1.readToken())
+ return this.ahead[n - 1]
+}
- function isDummy(node) { return node.name == "✖" }
+function isDummy(node) { return node.name == "✖" }
- var lp$1 = LooseParser.prototype
+var lp$1 = LooseParser.prototype
- lp$1.parseTopLevel = function() {
- var this$1 = this;
+lp$1.parseTopLevel = function() {
+ var this$1 = this;
- var node = this.startNodeAt(this.options.locations ? [0, __acorn_js.getLineInfo(this.input, 0)] : 0)
- node.body = []
- while (this.tok.type !== __acorn_js.tokTypes.eof) node.body.push(this$1.parseStatement())
- this.last = this.tok
- if (this.options.ecmaVersion >= 6) {
- node.sourceType = this.options.sourceType
- }
- return this.finishNode(node, "Program")
+ var node = this.startNodeAt(this.options.locations ? [0, __acorn.getLineInfo(this.input, 0)] : 0)
+ node.body = []
+ while (this.tok.type !== __acorn.tokTypes.eof) node.body.push(this$1.parseStatement())
+ this.last = this.tok
+ if (this.options.ecmaVersion >= 6) {
+ node.sourceType = this.options.sourceType
}
+ return this.finishNode(node, "Program")
+}
- lp$1.parseStatement = function() {
- var this$1 = this;
-
- var starttype = this.tok.type, node = this.startNode(), kind
+lp$1.parseStatement = function() {
+ var this$1 = this;
- if (this.toks.isLet()) {
- starttype = __acorn_js.tokTypes._var
- kind = "let"
- }
+ var starttype = this.tok.type, node = this.startNode(), kind
- switch (starttype) {
- case __acorn_js.tokTypes._break: case __acorn_js.tokTypes._continue:
- this.next()
- var isBreak = starttype === __acorn_js.tokTypes._break
- if (this.semicolon() || this.canInsertSemicolon()) {
- node.label = null
- } else {
- node.label = this.tok.type === __acorn_js.tokTypes.name ? this.parseIdent() : null
- this.semicolon()
- }
- return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
+ if (this.toks.isLet()) {
+ starttype = __acorn.tokTypes._var
+ kind = "let"
+ }
- case __acorn_js.tokTypes._debugger:
- this.next()
+ switch (starttype) {
+ case __acorn.tokTypes._break: case __acorn.tokTypes._continue:
+ this.next()
+ var isBreak = starttype === __acorn.tokTypes._break
+ if (this.semicolon() || this.canInsertSemicolon()) {
+ node.label = null
+ } else {
+ node.label = this.tok.type === __acorn.tokTypes.name ? this.parseIdent() : null
this.semicolon()
- return this.finishNode(node, "DebuggerStatement")
+ }
+ return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
- case __acorn_js.tokTypes._do:
- this.next()
- node.body = this.parseStatement()
- node.test = this.eat(__acorn_js.tokTypes._while) ? this.parseParenExpression() : this.dummyIdent()
- this.semicolon()
- return this.finishNode(node, "DoWhileStatement")
+ case __acorn.tokTypes._debugger:
+ this.next()
+ this.semicolon()
+ return this.finishNode(node, "DebuggerStatement")
- case __acorn_js.tokTypes._for:
- this.next()
- this.pushCx()
- this.expect(__acorn_js.tokTypes.parenL)
- if (this.tok.type === __acorn_js.tokTypes.semi) return this.parseFor(node, null)
- var isLet = this.toks.isLet()
- if (isLet || this.tok.type === __acorn_js.tokTypes._var || this.tok.type === __acorn_js.tokTypes._const) {
- var init$1 = this.parseVar(true, isLet ? "let" : this.tok.value)
- if (init$1.declarations.length === 1 && (this.tok.type === __acorn_js.tokTypes._in || this.isContextual("of"))) {
- return this.parseForIn(node, init$1)
- }
- return this.parseFor(node, init$1)
+ case __acorn.tokTypes._do:
+ this.next()
+ node.body = this.parseStatement()
+ node.test = this.eat(__acorn.tokTypes._while) ? this.parseParenExpression() : this.dummyIdent()
+ this.semicolon()
+ return this.finishNode(node, "DoWhileStatement")
+
+ case __acorn.tokTypes._for:
+ this.next()
+ this.pushCx()
+ this.expect(__acorn.tokTypes.parenL)
+ if (this.tok.type === __acorn.tokTypes.semi) return this.parseFor(node, null)
+ var isLet = this.toks.isLet()
+ if (isLet || this.tok.type === __acorn.tokTypes._var || this.tok.type === __acorn.tokTypes._const) {
+ var init$1 = this.parseVar(true, isLet ? "let" : this.tok.value)
+ if (init$1.declarations.length === 1 && (this.tok.type === __acorn.tokTypes._in || this.isContextual("of"))) {
+ return this.parseForIn(node, init$1)
}
- var init = this.parseExpression(true)
- if (this.tok.type === __acorn_js.tokTypes._in || this.isContextual("of"))
- return this.parseForIn(node, this.toAssignable(init))
- return this.parseFor(node, init)
+ return this.parseFor(node, init$1)
+ }
+ var init = this.parseExpression(true)
+ if (this.tok.type === __acorn.tokTypes._in || this.isContextual("of"))
+ return this.parseForIn(node, this.toAssignable(init))
+ return this.parseFor(node, init)
- case __acorn_js.tokTypes._function:
- this.next()
- return this.parseFunction(node, true)
+ case __acorn.tokTypes._function:
+ this.next()
+ return this.parseFunction(node, true)
- case __acorn_js.tokTypes._if:
- this.next()
- node.test = this.parseParenExpression()
- node.consequent = this.parseStatement()
- node.alternate = this.eat(__acorn_js.tokTypes._else) ? this.parseStatement() : null
- return this.finishNode(node, "IfStatement")
+ case __acorn.tokTypes._if:
+ this.next()
+ node.test = this.parseParenExpression()
+ node.consequent = this.parseStatement()
+ node.alternate = this.eat(__acorn.tokTypes._else) ? this.parseStatement() : null
+ return this.finishNode(node, "IfStatement")
- case __acorn_js.tokTypes._return:
- this.next()
- if (this.eat(__acorn_js.tokTypes.semi) || this.canInsertSemicolon()) node.argument = null
- else { node.argument = this.parseExpression(); this.semicolon() }
- return this.finishNode(node, "ReturnStatement")
+ case __acorn.tokTypes._return:
+ this.next()
+ if (this.eat(__acorn.tokTypes.semi) || this.canInsertSemicolon()) node.argument = null
+ else { node.argument = this.parseExpression(); this.semicolon() }
+ return this.finishNode(node, "ReturnStatement")
- case __acorn_js.tokTypes._switch:
- var blockIndent = this.curIndent, line = this.curLineStart
- this.next()
- node.discriminant = this.parseParenExpression()
- node.cases = []
- this.pushCx()
- this.expect(__acorn_js.tokTypes.braceL)
-
- var cur
- while (!this.closes(__acorn_js.tokTypes.braceR, blockIndent, line, true)) {
- if (this$1.tok.type === __acorn_js.tokTypes._case || this$1.tok.type === __acorn_js.tokTypes._default) {
- var isCase = this$1.tok.type === __acorn_js.tokTypes._case
- if (cur) this$1.finishNode(cur, "SwitchCase")
+ case __acorn.tokTypes._switch:
+ var blockIndent = this.curIndent, line = this.curLineStart
+ this.next()
+ node.discriminant = this.parseParenExpression()
+ node.cases = []
+ this.pushCx()
+ this.expect(__acorn.tokTypes.braceL)
+
+ var cur
+ while (!this.closes(__acorn.tokTypes.braceR, blockIndent, line, true)) {
+ if (this$1.tok.type === __acorn.tokTypes._case || this$1.tok.type === __acorn.tokTypes._default) {
+ var isCase = this$1.tok.type === __acorn.tokTypes._case
+ if (cur) this$1.finishNode(cur, "SwitchCase")
+ node.cases.push(cur = this$1.startNode())
+ cur.consequent = []
+ this$1.next()
+ if (isCase) cur.test = this$1.parseExpression()
+ else cur.test = null
+ this$1.expect(__acorn.tokTypes.colon)
+ } else {
+ if (!cur) {
node.cases.push(cur = this$1.startNode())
cur.consequent = []
- this$1.next()
- if (isCase) cur.test = this$1.parseExpression()
- else cur.test = null
- this$1.expect(__acorn_js.tokTypes.colon)
- } else {
- if (!cur) {
- node.cases.push(cur = this$1.startNode())
- cur.consequent = []
- cur.test = null
- }
- cur.consequent.push(this$1.parseStatement())
+ cur.test = null
}
+ cur.consequent.push(this$1.parseStatement())
}
- if (cur) this.finishNode(cur, "SwitchCase")
- this.popCx()
- this.eat(__acorn_js.tokTypes.braceR)
- return this.finishNode(node, "SwitchStatement")
-
- case __acorn_js.tokTypes._throw:
- this.next()
- node.argument = this.parseExpression()
- this.semicolon()
- return this.finishNode(node, "ThrowStatement")
-
- case __acorn_js.tokTypes._try:
- this.next()
- node.block = this.parseBlock()
- node.handler = null
- if (this.tok.type === __acorn_js.tokTypes._catch) {
- var clause = this.startNode()
- this.next()
- this.expect(__acorn_js.tokTypes.parenL)
- clause.param = this.toAssignable(this.parseExprAtom(), true)
- this.expect(__acorn_js.tokTypes.parenR)
- clause.body = this.parseBlock()
- node.handler = this.finishNode(clause, "CatchClause")
- }
- node.finalizer = this.eat(__acorn_js.tokTypes._finally) ? this.parseBlock() : null
- if (!node.handler && !node.finalizer) return node.block
- return this.finishNode(node, "TryStatement")
-
- case __acorn_js.tokTypes._var:
- case __acorn_js.tokTypes._const:
- return this.parseVar(false, kind || this.tok.value)
-
- case __acorn_js.tokTypes._while:
- this.next()
- node.test = this.parseParenExpression()
- node.body = this.parseStatement()
- return this.finishNode(node, "WhileStatement")
-
- case __acorn_js.tokTypes._with:
- this.next()
- node.object = this.parseParenExpression()
- node.body = this.parseStatement()
- return this.finishNode(node, "WithStatement")
+ }
+ if (cur) this.finishNode(cur, "SwitchCase")
+ this.popCx()
+ this.eat(__acorn.tokTypes.braceR)
+ return this.finishNode(node, "SwitchStatement")
- case __acorn_js.tokTypes.braceL:
- return this.parseBlock()
+ case __acorn.tokTypes._throw:
+ this.next()
+ node.argument = this.parseExpression()
+ this.semicolon()
+ return this.finishNode(node, "ThrowStatement")
- case __acorn_js.tokTypes.semi:
+ case __acorn.tokTypes._try:
+ this.next()
+ node.block = this.parseBlock()
+ node.handler = null
+ if (this.tok.type === __acorn.tokTypes._catch) {
+ var clause = this.startNode()
this.next()
- return this.finishNode(node, "EmptyStatement")
-
- case __acorn_js.tokTypes._class:
- return this.parseClass(true)
-
- case __acorn_js.tokTypes._import:
- return this.parseImport()
-
- case __acorn_js.tokTypes._export:
- return this.parseExport()
-
- default:
- if (this.toks.isAsyncFunction()) {
- this.next()
- this.next()
- return this.parseFunction(node, true, true)
- }
- var expr = this.parseExpression()
- if (isDummy(expr)) {
- this.next()
- if (this.tok.type === __acorn_js.tokTypes.eof) return this.finishNode(node, "EmptyStatement")
- return this.parseStatement()
- } else if (starttype === __acorn_js.tokTypes.name && expr.type === "Identifier" && this.eat(__acorn_js.tokTypes.colon)) {
- node.body = this.parseStatement()
- node.label = expr
- return this.finishNode(node, "LabeledStatement")
- } else {
- node.expression = expr
- this.semicolon()
- return this.finishNode(node, "ExpressionStatement")
- }
+ this.expect(__acorn.tokTypes.parenL)
+ clause.param = this.toAssignable(this.parseExprAtom(), true)
+ this.expect(__acorn.tokTypes.parenR)
+ clause.body = this.parseBlock()
+ node.handler = this.finishNode(clause, "CatchClause")
}
- }
+ node.finalizer = this.eat(__acorn.tokTypes._finally) ? this.parseBlock() : null
+ if (!node.handler && !node.finalizer) return node.block
+ return this.finishNode(node, "TryStatement")
- lp$1.parseBlock = function() {
- var this$1 = this;
+ case __acorn.tokTypes._var:
+ case __acorn.tokTypes._const:
+ return this.parseVar(false, kind || this.tok.value)
- var node = this.startNode()
- this.pushCx()
- this.expect(__acorn_js.tokTypes.braceL)
- var blockIndent = this.curIndent, line = this.curLineStart
- node.body = []
- while (!this.closes(__acorn_js.tokTypes.braceR, blockIndent, line, true))
- node.body.push(this$1.parseStatement())
- this.popCx()
- this.eat(__acorn_js.tokTypes.braceR)
- return this.finishNode(node, "BlockStatement")
- }
-
- lp$1.parseFor = function(node, init) {
- node.init = init
- node.test = node.update = null
- if (this.eat(__acorn_js.tokTypes.semi) && this.tok.type !== __acorn_js.tokTypes.semi) node.test = this.parseExpression()
- if (this.eat(__acorn_js.tokTypes.semi) && this.tok.type !== __acorn_js.tokTypes.parenR) node.update = this.parseExpression()
- this.popCx()
- this.expect(__acorn_js.tokTypes.parenR)
+ case __acorn.tokTypes._while:
+ this.next()
+ node.test = this.parseParenExpression()
node.body = this.parseStatement()
- return this.finishNode(node, "ForStatement")
- }
+ return this.finishNode(node, "WhileStatement")
- lp$1.parseForIn = function(node, init) {
- var type = this.tok.type === __acorn_js.tokTypes._in ? "ForInStatement" : "ForOfStatement"
+ case __acorn.tokTypes._with:
this.next()
- node.left = init
- node.right = this.parseExpression()
- this.popCx()
- this.expect(__acorn_js.tokTypes.parenR)
+ node.object = this.parseParenExpression()
node.body = this.parseStatement()
- return this.finishNode(node, type)
- }
+ return this.finishNode(node, "WithStatement")
- lp$1.parseVar = function(noIn, kind) {
- var this$1 = this;
+ case __acorn.tokTypes.braceL:
+ return this.parseBlock()
- var node = this.startNode()
- node.kind = kind
+ case __acorn.tokTypes.semi:
this.next()
- node.declarations = []
- do {
- var decl = this$1.startNode()
- decl.id = this$1.options.ecmaVersion >= 6 ? this$1.toAssignable(this$1.parseExprAtom(), true) : this$1.parseIdent()
- decl.init = this$1.eat(__acorn_js.tokTypes.eq) ? this$1.parseMaybeAssign(noIn) : null
- node.declarations.push(this$1.finishNode(decl, "VariableDeclarator"))
- } while (this.eat(__acorn_js.tokTypes.comma))
- if (!node.declarations.length) {
- var decl$1 = this.startNode()
- decl$1.id = this.dummyIdent()
- node.declarations.push(this.finishNode(decl$1, "VariableDeclarator"))
- }
- if (!noIn) this.semicolon()
- return this.finishNode(node, "VariableDeclaration")
- }
+ return this.finishNode(node, "EmptyStatement")
- lp$1.parseClass = function(isStatement) {
- var this$1 = this;
+ case __acorn.tokTypes._class:
+ return this.parseClass(true)
- var node = this.startNode()
- this.next()
- if (this.tok.type === __acorn_js.tokTypes.name) node.id = this.parseIdent()
- else if (isStatement) node.id = this.dummyIdent()
- else node.id = null
- node.superClass = this.eat(__acorn_js.tokTypes._extends) ? this.parseExpression() : null
- node.body = this.startNode()
- node.body.body = []
- this.pushCx()
- var indent = this.curIndent + 1, line = this.curLineStart
- this.eat(__acorn_js.tokTypes.braceL)
- if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
- while (!this.closes(__acorn_js.tokTypes.braceR, indent, line)) {
- if (this$1.semicolon()) continue
- var method = this$1.startNode(), isGenerator, isAsync
- if (this$1.options.ecmaVersion >= 6) {
- method.static = false
- isGenerator = this$1.eat(__acorn_js.tokTypes.star)
- }
- this$1.parsePropertyName(method)
- if (isDummy(method.key)) { if (isDummy(this$1.parseMaybeAssign())) this$1.next(); this$1.eat(__acorn_js.tokTypes.comma); continue }
- if (method.key.type === "Identifier" && !method.computed && method.key.name === "static" &&
- (this$1.tok.type != __acorn_js.tokTypes.parenL && this$1.tok.type != __acorn_js.tokTypes.braceL)) {
- method.static = true
- isGenerator = this$1.eat(__acorn_js.tokTypes.star)
- this$1.parsePropertyName(method)
- } else {
- method.static = false
- }
- if (!method.computed &&
- method.key.type === "Identifier" && method.key.name === "async" && this$1.tok.type !== __acorn_js.tokTypes.parenL &&
- !this$1.canInsertSemicolon()) {
- this$1.parsePropertyName(method)
- isAsync = true
- } else {
- isAsync = false
- }
- if (this$1.options.ecmaVersion >= 5 && method.key.type === "Identifier" &&
- !method.computed && (method.key.name === "get" || method.key.name === "set") &&
- this$1.tok.type !== __acorn_js.tokTypes.parenL && this$1.tok.type !== __acorn_js.tokTypes.braceL) {
- method.kind = method.key.name
- this$1.parsePropertyName(method)
- method.value = this$1.parseMethod(false)
- } else {
- if (!method.computed && !method.static && !isGenerator && !isAsync && (
- method.key.type === "Identifier" && method.key.name === "constructor" ||
- method.key.type === "Literal" && method.key.value === "constructor")) {
- method.kind = "constructor"
- } else {
- method.kind = "method"
- }
- method.value = this$1.parseMethod(isGenerator, isAsync)
- }
- node.body.body.push(this$1.finishNode(method, "MethodDefinition"))
- }
- this.popCx()
- if (!this.eat(__acorn_js.tokTypes.braceR)) {
- // If there is no closing brace, make the node span to the start
- // of the next token (this is useful for Tern)
- this.last.end = this.tok.start
- if (this.options.locations) this.last.loc.end = this.tok.loc.start
- }
- this.semicolon()
- this.finishNode(node.body, "ClassBody")
- return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
- }
+ case __acorn.tokTypes._import:
+ return this.parseImport()
+
+ case __acorn.tokTypes._export:
+ return this.parseExport()
- lp$1.parseFunction = function(node, isStatement, isAsync) {
- var oldInAsync = this.inAsync
- this.initFunction(node)
- if (this.options.ecmaVersion >= 6) {
- node.generator = this.eat(__acorn_js.tokTypes.star)
+ default:
+ if (this.toks.isAsyncFunction()) {
+ this.next()
+ this.next()
+ return this.parseFunction(node, true, true)
}
- if (this.options.ecmaVersion >= 8) {
- node.async = !!isAsync
+ var expr = this.parseExpression()
+ if (isDummy(expr)) {
+ this.next()
+ if (this.tok.type === __acorn.tokTypes.eof) return this.finishNode(node, "EmptyStatement")
+ return this.parseStatement()
+ } else if (starttype === __acorn.tokTypes.name && expr.type === "Identifier" && this.eat(__acorn.tokTypes.colon)) {
+ node.body = this.parseStatement()
+ node.label = expr
+ return this.finishNode(node, "LabeledStatement")
+ } else {
+ node.expression = expr
+ this.semicolon()
+ return this.finishNode(node, "ExpressionStatement")
}
- if (this.tok.type === __acorn_js.tokTypes.name) node.id = this.parseIdent()
- else if (isStatement) node.id = this.dummyIdent()
- this.inAsync = node.async
- node.params = this.parseFunctionParams()
- node.body = this.parseBlock()
- this.inAsync = oldInAsync
- return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
}
-
- lp$1.parseExport = function() {
- var node = this.startNode()
- this.next()
- if (this.eat(__acorn_js.tokTypes.star)) {
- node.source = this.eatContextual("from") ? this.parseExprAtom() : this.dummyString()
- return this.finishNode(node, "ExportAllDeclaration")
+}
+
+lp$1.parseBlock = function() {
+ var this$1 = this;
+
+ var node = this.startNode()
+ this.pushCx()
+ this.expect(__acorn.tokTypes.braceL)
+ var blockIndent = this.curIndent, line = this.curLineStart
+ node.body = []
+ while (!this.closes(__acorn.tokTypes.braceR, blockIndent, line, true))
+ node.body.push(this$1.parseStatement())
+ this.popCx()
+ this.eat(__acorn.tokTypes.braceR)
+ return this.finishNode(node, "BlockStatement")
+}
+
+lp$1.parseFor = function(node, init) {
+ node.init = init
+ node.test = node.update = null
+ if (this.eat(__acorn.tokTypes.semi) && this.tok.type !== __acorn.tokTypes.semi) node.test = this.parseExpression()
+ if (this.eat(__acorn.tokTypes.semi) && this.tok.type !== __acorn.tokTypes.parenR) node.update = this.parseExpression()
+ this.popCx()
+ this.expect(__acorn.tokTypes.parenR)
+ node.body = this.parseStatement()
+ return this.finishNode(node, "ForStatement")
+}
+
+lp$1.parseForIn = function(node, init) {
+ var type = this.tok.type === __acorn.tokTypes._in ? "ForInStatement" : "ForOfStatement"
+ this.next()
+ node.left = init
+ node.right = this.parseExpression()
+ this.popCx()
+ this.expect(__acorn.tokTypes.parenR)
+ node.body = this.parseStatement()
+ return this.finishNode(node, type)
+}
+
+lp$1.parseVar = function(noIn, kind) {
+ var this$1 = this;
+
+ var node = this.startNode()
+ node.kind = kind
+ this.next()
+ node.declarations = []
+ do {
+ var decl = this$1.startNode()
+ decl.id = this$1.options.ecmaVersion >= 6 ? this$1.toAssignable(this$1.parseExprAtom(), true) : this$1.parseIdent()
+ decl.init = this$1.eat(__acorn.tokTypes.eq) ? this$1.parseMaybeAssign(noIn) : null
+ node.declarations.push(this$1.finishNode(decl, "VariableDeclarator"))
+ } while (this.eat(__acorn.tokTypes.comma))
+ if (!node.declarations.length) {
+ var decl$1 = this.startNode()
+ decl$1.id = this.dummyIdent()
+ node.declarations.push(this.finishNode(decl$1, "VariableDeclarator"))
+ }
+ if (!noIn) this.semicolon()
+ return this.finishNode(node, "VariableDeclaration")
+}
+
+lp$1.parseClass = function(isStatement) {
+ var this$1 = this;
+
+ var node = this.startNode()
+ this.next()
+ if (this.tok.type === __acorn.tokTypes.name) node.id = this.parseIdent()
+ else if (isStatement) node.id = this.dummyIdent()
+ else node.id = null
+ node.superClass = this.eat(__acorn.tokTypes._extends) ? this.parseExpression() : null
+ node.body = this.startNode()
+ node.body.body = []
+ this.pushCx()
+ var indent = this.curIndent + 1, line = this.curLineStart
+ this.eat(__acorn.tokTypes.braceL)
+ if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
+ while (!this.closes(__acorn.tokTypes.braceR, indent, line)) {
+ if (this$1.semicolon()) continue
+ var method = this$1.startNode(), isGenerator, isAsync
+ if (this$1.options.ecmaVersion >= 6) {
+ method.static = false
+ isGenerator = this$1.eat(__acorn.tokTypes.star)
}
- if (this.eat(__acorn_js.tokTypes._default)) {
- // export default (function foo() {}) // This is FunctionExpression.
- var isParenL = this.tok.type === __acorn_js.tokTypes.parenL
- var expr = this.parseMaybeAssign()
- if (!isParenL && expr.id) {
- switch (expr.type) {
- case "FunctionExpression": expr.type = "FunctionDeclaration"; break
- case "ClassExpression": expr.type = "ClassDeclaration"; break
- }
- }
- node.declaration = expr
- this.semicolon()
- return this.finishNode(node, "ExportDefaultDeclaration")
+ this$1.parsePropertyName(method)
+ if (isDummy(method.key)) { if (isDummy(this$1.parseMaybeAssign())) this$1.next(); this$1.eat(__acorn.tokTypes.comma); continue }
+ if (method.key.type === "Identifier" && !method.computed && method.key.name === "static" &&
+ (this$1.tok.type != __acorn.tokTypes.parenL && this$1.tok.type != __acorn.tokTypes.braceL)) {
+ method.static = true
+ isGenerator = this$1.eat(__acorn.tokTypes.star)
+ this$1.parsePropertyName(method)
+ } else {
+ method.static = false
}
- if (this.tok.type.keyword || this.toks.isLet() || this.toks.isAsyncFunction()) {
- node.declaration = this.parseStatement()
- node.specifiers = []
- node.source = null
+ if (!method.computed &&
+ method.key.type === "Identifier" && method.key.name === "async" && this$1.tok.type !== __acorn.tokTypes.parenL &&
+ !this$1.canInsertSemicolon()) {
+ this$1.parsePropertyName(method)
+ isAsync = true
} else {
- node.declaration = null
- node.specifiers = this.parseExportSpecifierList()
- node.source = this.eatContextual("from") ? this.parseExprAtom() : null
- this.semicolon()
+ isAsync = false
}
- return this.finishNode(node, "ExportNamedDeclaration")
- }
-
- lp$1.parseImport = function() {
- var node = this.startNode()
- this.next()
- if (this.tok.type === __acorn_js.tokTypes.string) {
- node.specifiers = []
- node.source = this.parseExprAtom()
- node.kind = ''
+ if (this$1.options.ecmaVersion >= 5 && method.key.type === "Identifier" &&
+ !method.computed && (method.key.name === "get" || method.key.name === "set") &&
+ this$1.tok.type !== __acorn.tokTypes.parenL && this$1.tok.type !== __acorn.tokTypes.braceL) {
+ method.kind = method.key.name
+ this$1.parsePropertyName(method)
+ method.value = this$1.parseMethod(false)
} else {
- var elt
- if (this.tok.type === __acorn_js.tokTypes.name && this.tok.value !== "from") {
- elt = this.startNode()
- elt.local = this.parseIdent()
- this.finishNode(elt, "ImportDefaultSpecifier")
- this.eat(__acorn_js.tokTypes.comma)
+ if (!method.computed && !method.static && !isGenerator && !isAsync && (
+ method.key.type === "Identifier" && method.key.name === "constructor" ||
+ method.key.type === "Literal" && method.key.value === "constructor")) {
+ method.kind = "constructor"
+ } else {
+ method.kind = "method"
}
- node.specifiers = this.parseImportSpecifierList()
- node.source = this.eatContextual("from") && this.tok.type == __acorn_js.tokTypes.string ? this.parseExprAtom() : this.dummyString()
- if (elt) node.specifiers.unshift(elt)
+ method.value = this$1.parseMethod(isGenerator, isAsync)
}
- this.semicolon()
- return this.finishNode(node, "ImportDeclaration")
+ node.body.body.push(this$1.finishNode(method, "MethodDefinition"))
}
-
- lp$1.parseImportSpecifierList = function() {
- var this$1 = this;
-
- var elts = []
- if (this.tok.type === __acorn_js.tokTypes.star) {
- var elt = this.startNode()
- this.next()
- elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent()
- elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"))
- } else {
- var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart
- this.pushCx()
- this.eat(__acorn_js.tokTypes.braceL)
- if (this.curLineStart > continuedLine) continuedLine = this.curLineStart
- while (!this.closes(__acorn_js.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
- var elt$1 = this$1.startNode()
- if (this$1.eat(__acorn_js.tokTypes.star)) {
- elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : this$1.dummyIdent()
- this$1.finishNode(elt$1, "ImportNamespaceSpecifier")
- } else {
- if (this$1.isContextual("from")) break
- elt$1.imported = this$1.parseIdent()
- if (isDummy(elt$1.imported)) break
- elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : elt$1.imported
- this$1.finishNode(elt$1, "ImportSpecifier")
- }
- elts.push(elt$1)
- this$1.eat(__acorn_js.tokTypes.comma)
+ this.popCx()
+ if (!this.eat(__acorn.tokTypes.braceR)) {
+ // If there is no closing brace, make the node span to the start
+ // of the next token (this is useful for Tern)
+ this.last.end = this.tok.start
+ if (this.options.locations) this.last.loc.end = this.tok.loc.start
+ }
+ this.semicolon()
+ this.finishNode(node.body, "ClassBody")
+ return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
+}
+
+lp$1.parseFunction = function(node, isStatement, isAsync) {
+ var oldInAsync = this.inAsync
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 6) {
+ node.generator = this.eat(__acorn.tokTypes.star)
+ }
+ if (this.options.ecmaVersion >= 8) {
+ node.async = !!isAsync
+ }
+ if (this.tok.type === __acorn.tokTypes.name) node.id = this.parseIdent()
+ else if (isStatement) node.id = this.dummyIdent()
+ this.inAsync = node.async
+ node.params = this.parseFunctionParams()
+ node.body = this.parseBlock()
+ this.inAsync = oldInAsync
+ return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
+}
+
+lp$1.parseExport = function() {
+ var node = this.startNode()
+ this.next()
+ if (this.eat(__acorn.tokTypes.star)) {
+ node.source = this.eatContextual("from") ? this.parseExprAtom() : this.dummyString()
+ return this.finishNode(node, "ExportAllDeclaration")
+ }
+ if (this.eat(__acorn.tokTypes._default)) {
+ // export default (function foo() {}) // This is FunctionExpression.
+ var isParenL = this.tok.type === __acorn.tokTypes.parenL
+ var expr = this.parseMaybeAssign()
+ if (!isParenL && expr.id) {
+ switch (expr.type) {
+ case "FunctionExpression": expr.type = "FunctionDeclaration"; break
+ case "ClassExpression": expr.type = "ClassDeclaration"; break
}
- this.eat(__acorn_js.tokTypes.braceR)
- this.popCx()
}
- return elts
+ node.declaration = expr
+ this.semicolon()
+ return this.finishNode(node, "ExportDefaultDeclaration")
+ }
+ if (this.tok.type.keyword || this.toks.isLet() || this.toks.isAsyncFunction()) {
+ node.declaration = this.parseStatement()
+ node.specifiers = []
+ node.source = null
+ } else {
+ node.declaration = null
+ node.specifiers = this.parseExportSpecifierList()
+ node.source = this.eatContextual("from") ? this.parseExprAtom() : null
+ this.semicolon()
+ }
+ return this.finishNode(node, "ExportNamedDeclaration")
+}
+
+lp$1.parseImport = function() {
+ var node = this.startNode()
+ this.next()
+ if (this.tok.type === __acorn.tokTypes.string) {
+ node.specifiers = []
+ node.source = this.parseExprAtom()
+ node.kind = ''
+ } else {
+ var elt
+ if (this.tok.type === __acorn.tokTypes.name && this.tok.value !== "from") {
+ elt = this.startNode()
+ elt.local = this.parseIdent()
+ this.finishNode(elt, "ImportDefaultSpecifier")
+ this.eat(__acorn.tokTypes.comma)
+ }
+ node.specifiers = this.parseImportSpecifierList()
+ node.source = this.eatContextual("from") && this.tok.type == __acorn.tokTypes.string ? this.parseExprAtom() : this.dummyString()
+ if (elt) node.specifiers.unshift(elt)
}
+ this.semicolon()
+ return this.finishNode(node, "ImportDeclaration")
+}
- lp$1.parseExportSpecifierList = function() {
- var this$1 = this;
+lp$1.parseImportSpecifierList = function() {
+ var this$1 = this;
- var elts = []
+ var elts = []
+ if (this.tok.type === __acorn.tokTypes.star) {
+ var elt = this.startNode()
+ this.next()
+ elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent()
+ elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"))
+ } else {
var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart
this.pushCx()
- this.eat(__acorn_js.tokTypes.braceL)
+ this.eat(__acorn.tokTypes.braceL)
if (this.curLineStart > continuedLine) continuedLine = this.curLineStart
- while (!this.closes(__acorn_js.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
- if (this$1.isContextual("from")) break
- var elt = this$1.startNode()
- elt.local = this$1.parseIdent()
- if (isDummy(elt.local)) break
- elt.exported = this$1.eatContextual("as") ? this$1.parseIdent() : elt.local
- this$1.finishNode(elt, "ExportSpecifier")
- elts.push(elt)
- this$1.eat(__acorn_js.tokTypes.comma)
+ while (!this.closes(__acorn.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
+ var elt$1 = this$1.startNode()
+ if (this$1.eat(__acorn.tokTypes.star)) {
+ elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : this$1.dummyIdent()
+ this$1.finishNode(elt$1, "ImportNamespaceSpecifier")
+ } else {
+ if (this$1.isContextual("from")) break
+ elt$1.imported = this$1.parseIdent()
+ if (isDummy(elt$1.imported)) break
+ elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : elt$1.imported
+ this$1.finishNode(elt$1, "ImportSpecifier")
+ }
+ elts.push(elt$1)
+ this$1.eat(__acorn.tokTypes.comma)
}
- this.eat(__acorn_js.tokTypes.braceR)
+ this.eat(__acorn.tokTypes.braceR)
this.popCx()
- return elts
}
-
- var lp$2 = LooseParser.prototype
-
- lp$2.checkLVal = function(expr) {
- if (!expr) return expr
- switch (expr.type) {
- case "Identifier":
- case "MemberExpression":
- return expr
-
- case "ParenthesizedExpression":
- expr.expression = this.checkLVal(expr.expression)
- return expr
-
- default:
- return this.dummyIdent()
- }
+ return elts
+}
+
+lp$1.parseExportSpecifierList = function() {
+ var this$1 = this;
+
+ var elts = []
+ var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart
+ this.pushCx()
+ this.eat(__acorn.tokTypes.braceL)
+ if (this.curLineStart > continuedLine) continuedLine = this.curLineStart
+ while (!this.closes(__acorn.tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
+ if (this$1.isContextual("from")) break
+ var elt = this$1.startNode()
+ elt.local = this$1.parseIdent()
+ if (isDummy(elt.local)) break
+ elt.exported = this$1.eatContextual("as") ? this$1.parseIdent() : elt.local
+ this$1.finishNode(elt, "ExportSpecifier")
+ elts.push(elt)
+ this$1.eat(__acorn.tokTypes.comma)
}
+ this.eat(__acorn.tokTypes.braceR)
+ this.popCx()
+ return elts
+}
+
+var lp$2 = LooseParser.prototype
+
+lp$2.checkLVal = function(expr) {
+ if (!expr) return expr
+ switch (expr.type) {
+ case "Identifier":
+ case "MemberExpression":
+ return expr
- lp$2.parseExpression = function(noIn) {
- var this$1 = this;
-
- var start = this.storeCurrentPos()
- var expr = this.parseMaybeAssign(noIn)
- if (this.tok.type === __acorn_js.tokTypes.comma) {
- var node = this.startNodeAt(start)
- node.expressions = [expr]
- while (this.eat(__acorn_js.tokTypes.comma)) node.expressions.push(this$1.parseMaybeAssign(noIn))
- return this.finishNode(node, "SequenceExpression")
- }
+ case "ParenthesizedExpression":
+ expr.expression = this.checkLVal(expr.expression)
return expr
- }
- lp$2.parseParenExpression = function() {
- this.pushCx()
- this.expect(__acorn_js.tokTypes.parenL)
- var val = this.parseExpression()
- this.popCx()
- this.expect(__acorn_js.tokTypes.parenR)
- return val
+ default:
+ return this.dummyIdent()
}
-
- lp$2.parseMaybeAssign = function(noIn) {
- if (this.toks.isContextual("yield")) {
- var node = this.startNode()
- this.next()
- if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type != __acorn_js.tokTypes.star && !this.tok.type.startsExpr)) {
- node.delegate = false
- node.argument = null
- } else {
- node.delegate = this.eat(__acorn_js.tokTypes.star)
- node.argument = this.parseMaybeAssign()
- }
- return this.finishNode(node, "YieldExpression")
- }
-
- var start = this.storeCurrentPos()
- var left = this.parseMaybeConditional(noIn)
- if (this.tok.type.isAssign) {
- var node$1 = this.startNodeAt(start)
- node$1.operator = this.tok.value
- node$1.left = this.tok.type === __acorn_js.tokTypes.eq ? this.toAssignable(left) : this.checkLVal(left)
- this.next()
- node$1.right = this.parseMaybeAssign(noIn)
- return this.finishNode(node$1, "AssignmentExpression")
- }
- return left
+}
+
+lp$2.parseExpression = function(noIn) {
+ var this$1 = this;
+
+ var start = this.storeCurrentPos()
+ var expr = this.parseMaybeAssign(noIn)
+ if (this.tok.type === __acorn.tokTypes.comma) {
+ var node = this.startNodeAt(start)
+ node.expressions = [expr]
+ while (this.eat(__acorn.tokTypes.comma)) node.expressions.push(this$1.parseMaybeAssign(noIn))
+ return this.finishNode(node, "SequenceExpression")
}
-
- lp$2.parseMaybeConditional = function(noIn) {
- var start = this.storeCurrentPos()
- var expr = this.parseExprOps(noIn)
- if (this.eat(__acorn_js.tokTypes.question)) {
- var node = this.startNodeAt(start)
- node.test = expr
- node.consequent = this.parseMaybeAssign()
- node.alternate = this.expect(__acorn_js.tokTypes.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent()
- return this.finishNode(node, "ConditionalExpression")
+ return expr
+}
+
+lp$2.parseParenExpression = function() {
+ this.pushCx()
+ this.expect(__acorn.tokTypes.parenL)
+ var val = this.parseExpression()
+ this.popCx()
+ this.expect(__acorn.tokTypes.parenR)
+ return val
+}
+
+lp$2.parseMaybeAssign = function(noIn) {
+ if (this.toks.isContextual("yield")) {
+ var node = this.startNode()
+ this.next()
+ if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type != __acorn.tokTypes.star && !this.tok.type.startsExpr)) {
+ node.delegate = false
+ node.argument = null
+ } else {
+ node.delegate = this.eat(__acorn.tokTypes.star)
+ node.argument = this.parseMaybeAssign()
}
- return expr
+ return this.finishNode(node, "YieldExpression")
}
- lp$2.parseExprOps = function(noIn) {
- var start = this.storeCurrentPos()
- var indent = this.curIndent, line = this.curLineStart
- return this.parseExprOp(this.parseMaybeUnary(false), start, -1, noIn, indent, line)
+ var start = this.storeCurrentPos()
+ var left = this.parseMaybeConditional(noIn)
+ if (this.tok.type.isAssign) {
+ var node$1 = this.startNodeAt(start)
+ node$1.operator = this.tok.value
+ node$1.left = this.tok.type === __acorn.tokTypes.eq ? this.toAssignable(left) : this.checkLVal(left)
+ this.next()
+ node$1.right = this.parseMaybeAssign(noIn)
+ return this.finishNode(node$1, "AssignmentExpression")
}
-
- lp$2.parseExprOp = function(left, start, minPrec, noIn, indent, line) {
- if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) return left
- var prec = this.tok.type.binop
- if (prec != null && (!noIn || this.tok.type !== __acorn_js.tokTypes._in)) {
- if (prec > minPrec) {
- var node = this.startNodeAt(start)
- node.left = left
- node.operator = this.tok.value
- this.next()
- if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) {
- node.right = this.dummyIdent()
- } else {
- var rightStart = this.storeCurrentPos()
- node.right = this.parseExprOp(this.parseMaybeUnary(false), rightStart, prec, noIn, indent, line)
- }
- this.finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression")
- return this.parseExprOp(node, start, minPrec, noIn, indent, line)
- }
- }
- return left
+ return left
+}
+
+lp$2.parseMaybeConditional = function(noIn) {
+ var start = this.storeCurrentPos()
+ var expr = this.parseExprOps(noIn)
+ if (this.eat(__acorn.tokTypes.question)) {
+ var node = this.startNodeAt(start)
+ node.test = expr
+ node.consequent = this.parseMaybeAssign()
+ node.alternate = this.expect(__acorn.tokTypes.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent()
+ return this.finishNode(node, "ConditionalExpression")
}
-
- lp$2.parseMaybeUnary = function(sawUnary) {
- var this$1 = this;
-
- var start = this.storeCurrentPos(), expr
- if (this.options.ecmaVersion >= 8 && this.inAsync && this.toks.isContextual("await")) {
- expr = this.parseAwait()
- sawUnary = true
- } else if (this.tok.type.prefix) {
- var node = this.startNode(), update = this.tok.type === __acorn_js.tokTypes.incDec
- if (!update) sawUnary = true
+ return expr
+}
+
+lp$2.parseExprOps = function(noIn) {
+ var start = this.storeCurrentPos()
+ var indent = this.curIndent, line = this.curLineStart
+ return this.parseExprOp(this.parseMaybeUnary(false), start, -1, noIn, indent, line)
+}
+
+lp$2.parseExprOp = function(left, start, minPrec, noIn, indent, line) {
+ if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) return left
+ var prec = this.tok.type.binop
+ if (prec != null && (!noIn || this.tok.type !== __acorn.tokTypes._in)) {
+ if (prec > minPrec) {
+ var node = this.startNodeAt(start)
+ node.left = left
node.operator = this.tok.value
- node.prefix = true
- this.next()
- node.argument = this.parseMaybeUnary(true)
- if (update) node.argument = this.checkLVal(node.argument)
- expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
- } else if (this.tok.type === __acorn_js.tokTypes.ellipsis) {
- var node$1 = this.startNode()
this.next()
- node$1.argument = this.parseMaybeUnary(sawUnary)
- expr = this.finishNode(node$1, "SpreadElement")
- } else {
- expr = this.parseExprSubscripts()
- while (this.tok.type.postfix && !this.canInsertSemicolon()) {
- var node$2 = this$1.startNodeAt(start)
- node$2.operator = this$1.tok.value
- node$2.prefix = false
- node$2.argument = this$1.checkLVal(expr)
- this$1.next()
- expr = this$1.finishNode(node$2, "UpdateExpression")
+ if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) {
+ node.right = this.dummyIdent()
+ } else {
+ var rightStart = this.storeCurrentPos()
+ node.right = this.parseExprOp(this.parseMaybeUnary(false), rightStart, prec, noIn, indent, line)
}
+ this.finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression")
+ return this.parseExprOp(node, start, minPrec, noIn, indent, line)
}
-
- if (!sawUnary && this.eat(__acorn_js.tokTypes.starstar)) {
- var node$3 = this.startNodeAt(start)
- node$3.operator = "**"
- node$3.left = expr
- node$3.right = this.parseMaybeUnary(false)
- return this.finishNode(node$3, "BinaryExpression")
+ }
+ return left
+}
+
+lp$2.parseMaybeUnary = function(sawUnary) {
+ var this$1 = this;
+
+ var start = this.storeCurrentPos(), expr
+ if (this.options.ecmaVersion >= 8 && this.inAsync && this.toks.isContextual("await")) {
+ expr = this.parseAwait()
+ sawUnary = true
+ } else if (this.tok.type.prefix) {
+ var node = this.startNode(), update = this.tok.type === __acorn.tokTypes.incDec
+ if (!update) sawUnary = true
+ node.operator = this.tok.value
+ node.prefix = true
+ this.next()
+ node.argument = this.parseMaybeUnary(true)
+ if (update) node.argument = this.checkLVal(node.argument)
+ expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression")
+ } else if (this.tok.type === __acorn.tokTypes.ellipsis) {
+ var node$1 = this.startNode()
+ this.next()
+ node$1.argument = this.parseMaybeUnary(sawUnary)
+ expr = this.finishNode(node$1, "SpreadElement")
+ } else {
+ expr = this.parseExprSubscripts()
+ while (this.tok.type.postfix && !this.canInsertSemicolon()) {
+ var node$2 = this$1.startNodeAt(start)
+ node$2.operator = this$1.tok.value
+ node$2.prefix = false
+ node$2.argument = this$1.checkLVal(expr)
+ this$1.next()
+ expr = this$1.finishNode(node$2, "UpdateExpression")
}
-
- return expr
}
- lp$2.parseExprSubscripts = function() {
- var start = this.storeCurrentPos()
- return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)
+ if (!sawUnary && this.eat(__acorn.tokTypes.starstar)) {
+ var node$3 = this.startNodeAt(start)
+ node$3.operator = "**"
+ node$3.left = expr
+ node$3.right = this.parseMaybeUnary(false)
+ return this.finishNode(node$3, "BinaryExpression")
}
- lp$2.parseSubscripts = function(base, start, noCalls, startIndent, line) {
- var this$1 = this;
+ return expr
+}
- for (;;) {
- if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine()) {
- if (this$1.tok.type == __acorn_js.tokTypes.dot && this$1.curIndent == startIndent)
- --startIndent
- else
- return base
- }
+lp$2.parseExprSubscripts = function() {
+ var start = this.storeCurrentPos()
+ return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)
+}
- var maybeAsyncArrow = base.type === "Identifier" && base.name === "async" && !this$1.canInsertSemicolon()
-
- if (this$1.eat(__acorn_js.tokTypes.dot)) {
- var node = this$1.startNodeAt(start)
- node.object = base
- if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine())
- node.property = this$1.dummyIdent()
- else
- node.property = this$1.parsePropertyAccessor() || this$1.dummyIdent()
- node.computed = false
- base = this$1.finishNode(node, "MemberExpression")
- } else if (this$1.tok.type == __acorn_js.tokTypes.bracketL) {
- this$1.pushCx()
- this$1.next()
- var node$1 = this$1.startNodeAt(start)
- node$1.object = base
- node$1.property = this$1.parseExpression()
- node$1.computed = true
- this$1.popCx()
- this$1.expect(__acorn_js.tokTypes.bracketR)
- base = this$1.finishNode(node$1, "MemberExpression")
- } else if (!noCalls && this$1.tok.type == __acorn_js.tokTypes.parenL) {
- var exprList = this$1.parseExprList(__acorn_js.tokTypes.parenR)
- if (maybeAsyncArrow && this$1.eat(__acorn_js.tokTypes.arrow))
- return this$1.parseArrowExpression(this$1.startNodeAt(start), exprList, true)
- var node$2 = this$1.startNodeAt(start)
- node$2.callee = base
- node$2.arguments = exprList
- base = this$1.finishNode(node$2, "CallExpression")
- } else if (this$1.tok.type == __acorn_js.tokTypes.backQuote) {
- var node$3 = this$1.startNodeAt(start)
- node$3.tag = base
- node$3.quasi = this$1.parseTemplate()
- base = this$1.finishNode(node$3, "TaggedTemplateExpression")
- } else {
+lp$2.parseSubscripts = function(base, start, noCalls, startIndent, line) {
+ var this$1 = this;
+
+ for (;;) {
+ if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine()) {
+ if (this$1.tok.type == __acorn.tokTypes.dot && this$1.curIndent == startIndent)
+ --startIndent
+ else
return base
- }
+ }
+
+ var maybeAsyncArrow = base.type === "Identifier" && base.name === "async" && !this$1.canInsertSemicolon()
+
+ if (this$1.eat(__acorn.tokTypes.dot)) {
+ var node = this$1.startNodeAt(start)
+ node.object = base
+ if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine())
+ node.property = this$1.dummyIdent()
+ else
+ node.property = this$1.parsePropertyAccessor() || this$1.dummyIdent()
+ node.computed = false
+ base = this$1.finishNode(node, "MemberExpression")
+ } else if (this$1.tok.type == __acorn.tokTypes.bracketL) {
+ this$1.pushCx()
+ this$1.next()
+ var node$1 = this$1.startNodeAt(start)
+ node$1.object = base
+ node$1.property = this$1.parseExpression()
+ node$1.computed = true
+ this$1.popCx()
+ this$1.expect(__acorn.tokTypes.bracketR)
+ base = this$1.finishNode(node$1, "MemberExpression")
+ } else if (!noCalls && this$1.tok.type == __acorn.tokTypes.parenL) {
+ var exprList = this$1.parseExprList(__acorn.tokTypes.parenR)
+ if (maybeAsyncArrow && this$1.eat(__acorn.tokTypes.arrow))
+ return this$1.parseArrowExpression(this$1.startNodeAt(start), exprList, true)
+ var node$2 = this$1.startNodeAt(start)
+ node$2.callee = base
+ node$2.arguments = exprList
+ base = this$1.finishNode(node$2, "CallExpression")
+ } else if (this$1.tok.type == __acorn.tokTypes.backQuote) {
+ var node$3 = this$1.startNodeAt(start)
+ node$3.tag = base
+ node$3.quasi = this$1.parseTemplate()
+ base = this$1.finishNode(node$3, "TaggedTemplateExpression")
+ } else {
+ return base
}
}
+}
+
+lp$2.parseExprAtom = function() {
+ var node
+ switch (this.tok.type) {
+ case __acorn.tokTypes._this:
+ case __acorn.tokTypes._super:
+ var type = this.tok.type === __acorn.tokTypes._this ? "ThisExpression" : "Super"
+ node = this.startNode()
+ this.next()
+ return this.finishNode(node, type)
- lp$2.parseExprAtom = function() {
- var node
- switch (this.tok.type) {
- case __acorn_js.tokTypes._this:
- case __acorn_js.tokTypes._super:
- var type = this.tok.type === __acorn_js.tokTypes._this ? "ThisExpression" : "Super"
- node = this.startNode()
- this.next()
- return this.finishNode(node, type)
-
- case __acorn_js.tokTypes.name:
- var start = this.storeCurrentPos()
- var id = this.parseIdent()
- var isAsync = false
- if (id.name === "async" && !this.canInsertSemicolon()) {
- if (this.eat(__acorn_js.tokTypes._function))
- return this.parseFunction(this.startNodeAt(start), false, true)
- if (this.tok.type === __acorn_js.tokTypes.name) {
- id = this.parseIdent()
- isAsync = true
- }
+ case __acorn.tokTypes.name:
+ var start = this.storeCurrentPos()
+ var id = this.parseIdent()
+ var isAsync = false
+ if (id.name === "async" && !this.canInsertSemicolon()) {
+ if (this.eat(__acorn.tokTypes._function))
+ return this.parseFunction(this.startNodeAt(start), false, true)
+ if (this.tok.type === __acorn.tokTypes.name) {
+ id = this.parseIdent()
+ isAsync = true
}
- return this.eat(__acorn_js.tokTypes.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id], isAsync) : id
-
- case __acorn_js.tokTypes.regexp:
- node = this.startNode()
- var val = this.tok.value
- node.regex = {pattern: val.pattern, flags: val.flags}
- node.value = val.value
- node.raw = this.input.slice(this.tok.start, this.tok.end)
- this.next()
- return this.finishNode(node, "Literal")
+ }
+ return this.eat(__acorn.tokTypes.arrow) ? this.parseArrowExpression(this.startNodeAt(start), [id], isAsync) : id
+
+ case __acorn.tokTypes.regexp:
+ node = this.startNode()
+ var val = this.tok.value
+ node.regex = {pattern: val.pattern, flags: val.flags}
+ node.value = val.value
+ node.raw = this.input.slice(this.tok.start, this.tok.end)
+ this.next()
+ return this.finishNode(node, "Literal")
- case __acorn_js.tokTypes.num: case __acorn_js.tokTypes.string:
- node = this.startNode()
- node.value = this.tok.value
- node.raw = this.input.slice(this.tok.start, this.tok.end)
- this.next()
- return this.finishNode(node, "Literal")
+ case __acorn.tokTypes.num: case __acorn.tokTypes.string:
+ node = this.startNode()
+ node.value = this.tok.value
+ node.raw = this.input.slice(this.tok.start, this.tok.end)
+ this.next()
+ return this.finishNode(node, "Literal")
- case __acorn_js.tokTypes._null: case __acorn_js.tokTypes._true: case __acorn_js.tokTypes._false:
- node = this.startNode()
- node.value = this.tok.type === __acorn_js.tokTypes._null ? null : this.tok.type === __acorn_js.tokTypes._true
- node.raw = this.tok.type.keyword
- this.next()
- return this.finishNode(node, "Literal")
+ case __acorn.tokTypes._null: case __acorn.tokTypes._true: case __acorn.tokTypes._false:
+ node = this.startNode()
+ node.value = this.tok.type === __acorn.tokTypes._null ? null : this.tok.type === __acorn.tokTypes._true
+ node.raw = this.tok.type.keyword
+ this.next()
+ return this.finishNode(node, "Literal")
- case __acorn_js.tokTypes.parenL:
- var parenStart = this.storeCurrentPos()
- this.next()
- var inner = this.parseExpression()
- this.expect(__acorn_js.tokTypes.parenR)
- if (this.eat(__acorn_js.tokTypes.arrow)) {
- // (a,)=>a // SequenceExpression makes dummy in the last hole. Drop the dummy.
- var params = inner.expressions || [inner]
- if (params.length && isDummy(params[params.length - 1]))
- params.pop()
- return this.parseArrowExpression(this.startNodeAt(parenStart), params)
- }
- if (this.options.preserveParens) {
- var par = this.startNodeAt(parenStart)
- par.expression = inner
- inner = this.finishNode(par, "ParenthesizedExpression")
- }
- return inner
+ case __acorn.tokTypes.parenL:
+ var parenStart = this.storeCurrentPos()
+ this.next()
+ var inner = this.parseExpression()
+ this.expect(__acorn.tokTypes.parenR)
+ if (this.eat(__acorn.tokTypes.arrow)) {
+ // (a,)=>a // SequenceExpression makes dummy in the last hole. Drop the dummy.
+ var params = inner.expressions || [inner]
+ if (params.length && isDummy(params[params.length - 1]))
+ params.pop()
+ return this.parseArrowExpression(this.startNodeAt(parenStart), params)
+ }
+ if (this.options.preserveParens) {
+ var par = this.startNodeAt(parenStart)
+ par.expression = inner
+ inner = this.finishNode(par, "ParenthesizedExpression")
+ }
+ return inner
- case __acorn_js.tokTypes.bracketL:
- node = this.startNode()
- node.elements = this.parseExprList(__acorn_js.tokTypes.bracketR, true)
- return this.finishNode(node, "ArrayExpression")
+ case __acorn.tokTypes.bracketL:
+ node = this.startNode()
+ node.elements = this.parseExprList(__acorn.tokTypes.bracketR, true)
+ return this.finishNode(node, "ArrayExpression")
- case __acorn_js.tokTypes.braceL:
- return this.parseObj()
+ case __acorn.tokTypes.braceL:
+ return this.parseObj()
- case __acorn_js.tokTypes._class:
- return this.parseClass()
+ case __acorn.tokTypes._class:
+ return this.parseClass()
- case __acorn_js.tokTypes._function:
- node = this.startNode()
- this.next()
- return this.parseFunction(node, false)
+ case __acorn.tokTypes._function:
+ node = this.startNode()
+ this.next()
+ return this.parseFunction(node, false)
- case __acorn_js.tokTypes._new:
- return this.parseNew()
+ case __acorn.tokTypes._new:
+ return this.parseNew()
- case __acorn_js.tokTypes.backQuote:
- return this.parseTemplate()
+ case __acorn.tokTypes.backQuote:
+ return this.parseTemplate()
- default:
- return this.dummyIdent()
- }
+ default:
+ return this.dummyIdent()
}
-
- lp$2.parseNew = function() {
- var node = this.startNode(), startIndent = this.curIndent, line = this.curLineStart
- var meta = this.parseIdent(true)
- if (this.options.ecmaVersion >= 6 && this.eat(__acorn_js.tokTypes.dot)) {
- node.meta = meta
- node.property = this.parseIdent(true)
- return this.finishNode(node, "MetaProperty")
- }
- var start = this.storeCurrentPos()
- node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line)
- if (this.tok.type == __acorn_js.tokTypes.parenL) {
- node.arguments = this.parseExprList(__acorn_js.tokTypes.parenR)
+}
+
+lp$2.parseNew = function() {
+ var node = this.startNode(), startIndent = this.curIndent, line = this.curLineStart
+ var meta = this.parseIdent(true)
+ if (this.options.ecmaVersion >= 6 && this.eat(__acorn.tokTypes.dot)) {
+ node.meta = meta
+ node.property = this.parseIdent(true)
+ return this.finishNode(node, "MetaProperty")
+ }
+ var start = this.storeCurrentPos()
+ node.callee = this.parseSubscripts(this.parseExprAtom(), start, true, startIndent, line)
+ if (this.tok.type == __acorn.tokTypes.parenL) {
+ node.arguments = this.parseExprList(__acorn.tokTypes.parenR)
+ } else {
+ node.arguments = []
+ }
+ return this.finishNode(node, "NewExpression")
+}
+
+lp$2.parseTemplateElement = function() {
+ var elem = this.startNode()
+ elem.value = {
+ raw: this.input.slice(this.tok.start, this.tok.end).replace(/\r\n?/g, '\n'),
+ cooked: this.tok.value
+ }
+ this.next()
+ elem.tail = this.tok.type === __acorn.tokTypes.backQuote
+ return this.finishNode(elem, "TemplateElement")
+}
+
+lp$2.parseTemplate = function() {
+ var this$1 = this;
+
+ var node = this.startNode()
+ this.next()
+ node.expressions = []
+ var curElt = this.parseTemplateElement()
+ node.quasis = [curElt]
+ while (!curElt.tail) {
+ this$1.next()
+ node.expressions.push(this$1.parseExpression())
+ if (this$1.expect(__acorn.tokTypes.braceR)) {
+ curElt = this$1.parseTemplateElement()
} else {
- node.arguments = []
+ curElt = this$1.startNode()
+ curElt.value = {cooked: '', raw: ''}
+ curElt.tail = true
+ this$1.finishNode(curElt, "TemplateElement")
}
- return this.finishNode(node, "NewExpression")
+ node.quasis.push(curElt)
}
-
- lp$2.parseTemplateElement = function() {
- var elem = this.startNode()
- elem.value = {
- raw: this.input.slice(this.tok.start, this.tok.end).replace(/\r\n?/g, '\n'),
- cooked: this.tok.value
+ this.expect(__acorn.tokTypes.backQuote)
+ return this.finishNode(node, "TemplateLiteral")
+}
+
+lp$2.parseObj = function() {
+ var this$1 = this;
+
+ var node = this.startNode()
+ node.properties = []
+ this.pushCx()
+ var indent = this.curIndent + 1, line = this.curLineStart
+ this.eat(__acorn.tokTypes.braceL)
+ if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
+ while (!this.closes(__acorn.tokTypes.braceR, indent, line)) {
+ var prop = this$1.startNode(), isGenerator, isAsync, start
+ if (this$1.options.ecmaVersion >= 6) {
+ start = this$1.storeCurrentPos()
+ prop.method = false
+ prop.shorthand = false
+ isGenerator = this$1.eat(__acorn.tokTypes.star)
}
- this.next()
- elem.tail = this.tok.type === __acorn_js.tokTypes.backQuote
- return this.finishNode(elem, "TemplateElement")
- }
-
- lp$2.parseTemplate = function() {
- var this$1 = this;
-
- var node = this.startNode()
- this.next()
- node.expressions = []
- var curElt = this.parseTemplateElement()
- node.quasis = [curElt]
- while (!curElt.tail) {
- this$1.next()
- node.expressions.push(this$1.parseExpression())
- if (this$1.expect(__acorn_js.tokTypes.braceR)) {
- curElt = this$1.parseTemplateElement()
- } else {
- curElt = this$1.startNode()
- curElt.value = {cooked: '', raw: ''}
- curElt.tail = true
- this$1.finishNode(curElt, "TemplateElement")
- }
- node.quasis.push(curElt)
+ this$1.parsePropertyName(prop)
+ if (!prop.computed &&
+ prop.key.type === "Identifier" && prop.key.name === "async" && this$1.tok.type !== __acorn.tokTypes.parenL &&
+ this$1.tok.type !== __acorn.tokTypes.colon && !this$1.canInsertSemicolon()) {
+ this$1.parsePropertyName(prop)
+ isAsync = true
+ } else {
+ isAsync = false
}
- this.expect(__acorn_js.tokTypes.backQuote)
- return this.finishNode(node, "TemplateLiteral")
- }
-
- lp$2.parseObj = function() {
- var this$1 = this;
-
- var node = this.startNode()
- node.properties = []
- this.pushCx()
- var indent = this.curIndent + 1, line = this.curLineStart
- this.eat(__acorn_js.tokTypes.braceL)
- if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart }
- while (!this.closes(__acorn_js.tokTypes.braceR, indent, line)) {
- var prop = this$1.startNode(), isGenerator, isAsync, start
- if (this$1.options.ecmaVersion >= 6) {
- start = this$1.storeCurrentPos()
- prop.method = false
- prop.shorthand = false
- isGenerator = this$1.eat(__acorn_js.tokTypes.star)
- }
+ if (isDummy(prop.key)) { if (isDummy(this$1.parseMaybeAssign())) this$1.next(); this$1.eat(__acorn.tokTypes.comma); continue }
+ if (this$1.eat(__acorn.tokTypes.colon)) {
+ prop.kind = "init"
+ prop.value = this$1.parseMaybeAssign()
+ } else if (this$1.options.ecmaVersion >= 6 && (this$1.tok.type === __acorn.tokTypes.parenL || this$1.tok.type === __acorn.tokTypes.braceL)) {
+ prop.kind = "init"
+ prop.method = true
+ prop.value = this$1.parseMethod(isGenerator, isAsync)
+ } else if (this$1.options.ecmaVersion >= 5 && prop.key.type === "Identifier" &&
+ !prop.computed && (prop.key.name === "get" || prop.key.name === "set") &&
+ (this$1.tok.type != __acorn.tokTypes.comma && this$1.tok.type != __acorn.tokTypes.braceR)) {
+ prop.kind = prop.key.name
this$1.parsePropertyName(prop)
- if (!prop.computed &&
- prop.key.type === "Identifier" && prop.key.name === "async" && this$1.tok.type !== __acorn_js.tokTypes.parenL &&
- this$1.tok.type !== __acorn_js.tokTypes.colon && !this$1.canInsertSemicolon()) {
- this$1.parsePropertyName(prop)
- isAsync = true
- } else {
- isAsync = false
- }
- if (isDummy(prop.key)) { if (isDummy(this$1.parseMaybeAssign())) this$1.next(); this$1.eat(__acorn_js.tokTypes.comma); continue }
- if (this$1.eat(__acorn_js.tokTypes.colon)) {
- prop.kind = "init"
- prop.value = this$1.parseMaybeAssign()
- } else if (this$1.options.ecmaVersion >= 6 && (this$1.tok.type === __acorn_js.tokTypes.parenL || this$1.tok.type === __acorn_js.tokTypes.braceL)) {
- prop.kind = "init"
- prop.method = true
- prop.value = this$1.parseMethod(isGenerator, isAsync)
- } else if (this$1.options.ecmaVersion >= 5 && prop.key.type === "Identifier" &&
- !prop.computed && (prop.key.name === "get" || prop.key.name === "set") &&
- (this$1.tok.type != __acorn_js.tokTypes.comma && this$1.tok.type != __acorn_js.tokTypes.braceR)) {
- prop.kind = prop.key.name
- this$1.parsePropertyName(prop)
- prop.value = this$1.parseMethod(false)
- } else {
- prop.kind = "init"
- if (this$1.options.ecmaVersion >= 6) {
- if (this$1.eat(__acorn_js.tokTypes.eq)) {
- var assign = this$1.startNodeAt(start)
- assign.operator = "="
- assign.left = prop.key
- assign.right = this$1.parseMaybeAssign()
- prop.value = this$1.finishNode(assign, "AssignmentExpression")
- } else {
- prop.value = prop.key
- }
+ prop.value = this$1.parseMethod(false)
+ } else {
+ prop.kind = "init"
+ if (this$1.options.ecmaVersion >= 6) {
+ if (this$1.eat(__acorn.tokTypes.eq)) {
+ var assign = this$1.startNodeAt(start)
+ assign.operator = "="
+ assign.left = prop.key
+ assign.right = this$1.parseMaybeAssign()
+ prop.value = this$1.finishNode(assign, "AssignmentExpression")
} else {
- prop.value = this$1.dummyIdent()
+ prop.value = prop.key
}
- prop.shorthand = true
- }
- node.properties.push(this$1.finishNode(prop, "Property"))
- this$1.eat(__acorn_js.tokTypes.comma)
- }
- this.popCx()
- if (!this.eat(__acorn_js.tokTypes.braceR)) {
- // If there is no closing brace, make the node span to the start
- // of the next token (this is useful for Tern)
- this.last.end = this.tok.start
- if (this.options.locations) this.last.loc.end = this.tok.loc.start
- }
- return this.finishNode(node, "ObjectExpression")
- }
-
- lp$2.parsePropertyName = function(prop) {
- if (this.options.ecmaVersion >= 6) {
- if (this.eat(__acorn_js.tokTypes.bracketL)) {
- prop.computed = true
- prop.key = this.parseExpression()
- this.expect(__acorn_js.tokTypes.bracketR)
- return
} else {
- prop.computed = false
+ prop.value = this$1.dummyIdent()
}
+ prop.shorthand = true
}
- var key = (this.tok.type === __acorn_js.tokTypes.num || this.tok.type === __acorn_js.tokTypes.string) ? this.parseExprAtom() : this.parseIdent()
- prop.key = key || this.dummyIdent()
- }
-
- lp$2.parsePropertyAccessor = function() {
- if (this.tok.type === __acorn_js.tokTypes.name || this.tok.type.keyword) return this.parseIdent()
- }
-
- lp$2.parseIdent = function() {
- var name = this.tok.type === __acorn_js.tokTypes.name ? this.tok.value : this.tok.type.keyword
- if (!name) return this.dummyIdent()
- var node = this.startNode()
- this.next()
- node.name = name
- return this.finishNode(node, "Identifier")
+ node.properties.push(this$1.finishNode(prop, "Property"))
+ this$1.eat(__acorn.tokTypes.comma)
}
-
- lp$2.initFunction = function(node) {
- node.id = null
- node.params = []
- if (this.options.ecmaVersion >= 6) {
- node.generator = false
- node.expression = false
- }
- if (this.options.ecmaVersion >= 8)
- node.async = false
+ this.popCx()
+ if (!this.eat(__acorn.tokTypes.braceR)) {
+ // If there is no closing brace, make the node span to the start
+ // of the next token (this is useful for Tern)
+ this.last.end = this.tok.start
+ if (this.options.locations) this.last.loc.end = this.tok.loc.start
}
-
- // Convert existing expression atom to assignable pattern
- // if possible.
-
- lp$2.toAssignable = function(node, binding) {
- var this$1 = this;
-
- if (!node || node.type == "Identifier" || (node.type == "MemberExpression" && !binding)) {
- // Okay
- } else if (node.type == "ParenthesizedExpression") {
- node.expression = this.toAssignable(node.expression, binding)
- } else if (this.options.ecmaVersion < 6) {
- return this.dummyIdent()
- } else if (node.type == "ObjectExpression") {
- node.type = "ObjectPattern"
- var props = node.properties
- for (var i = 0; i < props.length; i++)
- props[i].value = this$1.toAssignable(props[i].value, binding)
- } else if (node.type == "ArrayExpression") {
- node.type = "ArrayPattern"
- this.toAssignableList(node.elements, binding)
- } else if (node.type == "SpreadElement") {
- node.type = "RestElement"
- node.argument = this.toAssignable(node.argument, binding)
- } else if (node.type == "AssignmentExpression") {
- node.type = "AssignmentPattern"
- delete node.operator
+ return this.finishNode(node, "ObjectExpression")
+}
+
+lp$2.parsePropertyName = function(prop) {
+ if (this.options.ecmaVersion >= 6) {
+ if (this.eat(__acorn.tokTypes.bracketL)) {
+ prop.computed = true
+ prop.key = this.parseExpression()
+ this.expect(__acorn.tokTypes.bracketR)
+ return
} else {
- return this.dummyIdent()
+ prop.computed = false
}
- return node
}
-
- lp$2.toAssignableList = function(exprList, binding) {
- var this$1 = this;
-
- for (var i = 0; i < exprList.length; i++)
- exprList[i] = this$1.toAssignable(exprList[i], binding)
- return exprList
+ var key = (this.tok.type === __acorn.tokTypes.num || this.tok.type === __acorn.tokTypes.string) ? this.parseExprAtom() : this.parseIdent()
+ prop.key = key || this.dummyIdent()
+}
+
+lp$2.parsePropertyAccessor = function() {
+ if (this.tok.type === __acorn.tokTypes.name || this.tok.type.keyword) return this.parseIdent()
+}
+
+lp$2.parseIdent = function() {
+ var name = this.tok.type === __acorn.tokTypes.name ? this.tok.value : this.tok.type.keyword
+ if (!name) return this.dummyIdent()
+ var node = this.startNode()
+ this.next()
+ node.name = name
+ return this.finishNode(node, "Identifier")
+}
+
+lp$2.initFunction = function(node) {
+ node.id = null
+ node.params = []
+ if (this.options.ecmaVersion >= 6) {
+ node.generator = false
+ node.expression = false
}
-
- lp$2.parseFunctionParams = function(params) {
- params = this.parseExprList(__acorn_js.tokTypes.parenR)
- return this.toAssignableList(params, true)
- }
-
- lp$2.parseMethod = function(isGenerator, isAsync) {
- var node = this.startNode(), oldInAsync = this.inAsync
- this.initFunction(node)
- if (this.options.ecmaVersion >= 6)
- node.generator = !!isGenerator
- if (this.options.ecmaVersion >= 8)
- node.async = !!isAsync
- this.inAsync = node.async
- node.params = this.parseFunctionParams()
- node.expression = this.options.ecmaVersion >= 6 && this.tok.type !== __acorn_js.tokTypes.braceL
- node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
- this.inAsync = oldInAsync
- return this.finishNode(node, "FunctionExpression")
- }
-
- lp$2.parseArrowExpression = function(node, params, isAsync) {
- var oldInAsync = this.inAsync
- this.initFunction(node)
- if (this.options.ecmaVersion >= 8)
- node.async = !!isAsync
- this.inAsync = node.async
- node.params = this.toAssignableList(params, true)
- node.expression = this.tok.type !== __acorn_js.tokTypes.braceL
- node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
- this.inAsync = oldInAsync
- return this.finishNode(node, "ArrowFunctionExpression")
+ if (this.options.ecmaVersion >= 8)
+ node.async = false
+}
+
+// Convert existing expression atom to assignable pattern
+// if possible.
+
+lp$2.toAssignable = function(node, binding) {
+ var this$1 = this;
+
+ if (!node || node.type == "Identifier" || (node.type == "MemberExpression" && !binding)) {
+ // Okay
+ } else if (node.type == "ParenthesizedExpression") {
+ node.expression = this.toAssignable(node.expression, binding)
+ } else if (this.options.ecmaVersion < 6) {
+ return this.dummyIdent()
+ } else if (node.type == "ObjectExpression") {
+ node.type = "ObjectPattern"
+ var props = node.properties
+ for (var i = 0; i < props.length; i++)
+ props[i].value = this$1.toAssignable(props[i].value, binding)
+ } else if (node.type == "ArrayExpression") {
+ node.type = "ArrayPattern"
+ this.toAssignableList(node.elements, binding)
+ } else if (node.type == "SpreadElement") {
+ node.type = "RestElement"
+ node.argument = this.toAssignable(node.argument, binding)
+ } else if (node.type == "AssignmentExpression") {
+ node.type = "AssignmentPattern"
+ delete node.operator
+ } else {
+ return this.dummyIdent()
}
-
- lp$2.parseExprList = function(close, allowEmpty) {
- var this$1 = this;
-
- this.pushCx()
- var indent = this.curIndent, line = this.curLineStart, elts = []
- this.next() // Opening bracket
- while (!this.closes(close, indent + 1, line)) {
- if (this$1.eat(__acorn_js.tokTypes.comma)) {
- elts.push(allowEmpty ? null : this$1.dummyIdent())
- continue
- }
- var elt = this$1.parseMaybeAssign()
- if (isDummy(elt)) {
- if (this$1.closes(close, indent, line)) break
- this$1.next()
- } else {
- elts.push(elt)
- }
- this$1.eat(__acorn_js.tokTypes.comma)
+ return node
+}
+
+lp$2.toAssignableList = function(exprList, binding) {
+ var this$1 = this;
+
+ for (var i = 0; i < exprList.length; i++)
+ exprList[i] = this$1.toAssignable(exprList[i], binding)
+ return exprList
+}
+
+lp$2.parseFunctionParams = function(params) {
+ params = this.parseExprList(__acorn.tokTypes.parenR)
+ return this.toAssignableList(params, true)
+}
+
+lp$2.parseMethod = function(isGenerator, isAsync) {
+ var node = this.startNode(), oldInAsync = this.inAsync
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 6)
+ node.generator = !!isGenerator
+ if (this.options.ecmaVersion >= 8)
+ node.async = !!isAsync
+ this.inAsync = node.async
+ node.params = this.parseFunctionParams()
+ node.expression = this.options.ecmaVersion >= 6 && this.tok.type !== __acorn.tokTypes.braceL
+ node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
+ this.inAsync = oldInAsync
+ return this.finishNode(node, "FunctionExpression")
+}
+
+lp$2.parseArrowExpression = function(node, params, isAsync) {
+ var oldInAsync = this.inAsync
+ this.initFunction(node)
+ if (this.options.ecmaVersion >= 8)
+ node.async = !!isAsync
+ this.inAsync = node.async
+ node.params = this.toAssignableList(params, true)
+ node.expression = this.tok.type !== __acorn.tokTypes.braceL
+ node.body = node.expression ? this.parseMaybeAssign() : this.parseBlock()
+ this.inAsync = oldInAsync
+ return this.finishNode(node, "ArrowFunctionExpression")
+}
+
+lp$2.parseExprList = function(close, allowEmpty) {
+ var this$1 = this;
+
+ this.pushCx()
+ var indent = this.curIndent, line = this.curLineStart, elts = []
+ this.next() // Opening bracket
+ while (!this.closes(close, indent + 1, line)) {
+ if (this$1.eat(__acorn.tokTypes.comma)) {
+ elts.push(allowEmpty ? null : this$1.dummyIdent())
+ continue
}
- this.popCx()
- if (!this.eat(close)) {
- // If there is no closing brace, make the node span to the start
- // of the next token (this is useful for Tern)
- this.last.end = this.tok.start
- if (this.options.locations) this.last.loc.end = this.tok.loc.start
+ var elt = this$1.parseMaybeAssign()
+ if (isDummy(elt)) {
+ if (this$1.closes(close, indent, line)) break
+ this$1.next()
+ } else {
+ elts.push(elt)
}
- return elts
+ this$1.eat(__acorn.tokTypes.comma)
}
-
- lp$2.parseAwait = function() {
- var node = this.startNode()
- this.next()
- node.argument = this.parseMaybeUnary()
- return this.finishNode(node, "AwaitExpression")
+ this.popCx()
+ if (!this.eat(close)) {
+ // If there is no closing brace, make the node span to the start
+ // of the next token (this is useful for Tern)
+ this.last.end = this.tok.start
+ if (this.options.locations) this.last.loc.end = this.tok.loc.start
}
-
- __acorn_js.defaultOptions.tabSize = 4
-
- function parse_dammit(input, options) {
- var p = new LooseParser(input, options)
- p.next()
- return p.parseTopLevel()
- }
-
- __acorn_js.addLooseExports(parse_dammit, LooseParser, pluginsLoose)
-
- exports.parse_dammit = parse_dammit;
- exports.LooseParser = LooseParser;
- exports.pluginsLoose = pluginsLoose;
-
- Object.defineProperty(exports, '__esModule', { value: true });
-
-})); \ No newline at end of file
+ return elts
+}
+
+lp$2.parseAwait = function() {
+ var node = this.startNode()
+ this.next()
+ node.argument = this.parseMaybeUnary()
+ return this.finishNode(node, "AwaitExpression")
+}
+
+// Acorn: Loose parser
+//
+// This module provides an alternative parser (`parse_dammit`) that
+// exposes that same interface as `parse`, but will try to parse
+// anything as JavaScript, repairing syntax error the best it can.
+// There are circumstances in which it will raise an error and give
+// up, but they are very rare. The resulting AST will be a mostly
+// valid JavaScript AST (as per the [Mozilla parser API][api], except
+// that:
+//
+// - Return outside functions is allowed
+//
+// - Label consistency (no conflicts, break only to existing labels)
+// is not enforced.
+//
+// - Bogus Identifier nodes with a name of `"✖"` are inserted whenever
+// the parser got too confused to return anything meaningful.
+//
+// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
+//
+// The expected use for this is to *first* try `acorn.parse`, and only
+// if that fails switch to `parse_dammit`. The loose parser might
+// parse badly indented code incorrectly, so **don't** use it as
+// your default parser.
+//
+// Quite a lot of acorn.js is duplicated here. The alternative was to
+// add a *lot* of extra cruft to that file, making it less readable
+// and slower. Copying and editing the code allowed me to make
+// invasive changes and simplifications without creating a complicated
+// tangle.
+
+__acorn.defaultOptions.tabSize = 4
+
+function parse_dammit(input, options) {
+ var p = new LooseParser(input, options)
+ p.next()
+ return p.parseTopLevel()
+}
+
+__acorn.addLooseExports(parse_dammit, LooseParser, pluginsLoose)
+
+exports.parse_dammit = parse_dammit;
+exports.LooseParser = LooseParser;
+exports.pluginsLoose = pluginsLoose;
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+}))); \ No newline at end of file
diff --git a/tools/eslint/node_modules/acorn/dist/walk.js b/tools/eslint/node_modules/acorn/dist/walk.js
index 250a3edc35..3c9c594876 100644
--- a/tools/eslint/node_modules/acorn/dist/walk.js
+++ b/tools/eslint/node_modules/acorn/dist/walk.js
@@ -2,359 +2,359 @@
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global.acorn = global.acorn || {}, global.acorn.walk = global.acorn.walk || {})));
-}(this, function (exports) { 'use strict';
+}(this, (function (exports) { 'use strict';
- // AST walker module for Mozilla Parser API compatible trees
+// AST walker module for Mozilla Parser API compatible trees
- // A simple walk is one where you simply specify callbacks to be
- // called on specific nodes. The last two arguments are optional. A
- // simple use would be
- //
- // walk.simple(myTree, {
- // Expression: function(node) { ... }
- // });
- //
- // to do something with all expressions. All Parser API node types
- // can be used to identify node types, as well as Expression,
- // Statement, and ScopeBody, which denote categories of nodes.
- //
- // The base argument can be used to pass a custom (recursive)
- // walker, and state can be used to give this walked an initial
- // state.
+// A simple walk is one where you simply specify callbacks to be
+// called on specific nodes. The last two arguments are optional. A
+// simple use would be
+//
+// walk.simple(myTree, {
+// Expression: function(node) { ... }
+// });
+//
+// to do something with all expressions. All Parser API node types
+// can be used to identify node types, as well as Expression,
+// Statement, and ScopeBody, which denote categories of nodes.
+//
+// The base argument can be used to pass a custom (recursive)
+// walker, and state can be used to give this walked an initial
+// state.
- function simple(node, visitors, base, state, override) {
- if (!base) base = exports.base
- ;(function c(node, st, override) {
- var type = override || node.type, found = visitors[type]
- base[type](node, st, c)
- if (found) found(node, st)
- })(node, state, override)
- }
-
- // An ancestor walk keeps an array of ancestor nodes (including the
- // current node) and passes them to the callback as third parameter
- // (and also as state parameter when no other state is present).
- function ancestor(node, visitors, base, state) {
- if (!base) base = exports.base
- var ancestors = []
- ;(function c(node, st, override) {
- var type = override || node.type, found = visitors[type]
- var isNew = node != ancestors[ancestors.length - 1]
- if (isNew) ancestors.push(node)
- base[type](node, st, c)
- if (found) found(node, st || ancestors, ancestors)
- if (isNew) ancestors.pop()
- })(node, state)
- }
+function simple(node, visitors, base, state, override) {
+ if (!base) base = exports.base
+ ;(function c(node, st, override) {
+ var type = override || node.type, found = visitors[type]
+ base[type](node, st, c)
+ if (found) found(node, st)
+ })(node, state, override)
+}
- // A recursive walk is one where your functions override the default
- // walkers. They can modify and replace the state parameter that's
- // threaded through the walk, and can opt how and whether to walk
- // their child nodes (by calling their third argument on these
- // nodes).
- function recursive(node, state, funcs, base, override) {
- var visitor = funcs ? exports.make(funcs, base) : base
- ;(function c(node, st, override) {
- visitor[override || node.type](node, st, c)
- })(node, state, override)
- }
+// An ancestor walk keeps an array of ancestor nodes (including the
+// current node) and passes them to the callback as third parameter
+// (and also as state parameter when no other state is present).
+function ancestor(node, visitors, base, state) {
+ if (!base) base = exports.base
+ var ancestors = []
+ ;(function c(node, st, override) {
+ var type = override || node.type, found = visitors[type]
+ var isNew = node != ancestors[ancestors.length - 1]
+ if (isNew) ancestors.push(node)
+ base[type](node, st, c)
+ if (found) found(node, st || ancestors, ancestors)
+ if (isNew) ancestors.pop()
+ })(node, state)
+}
- function makeTest(test) {
- if (typeof test == "string")
- return function (type) { return type == test; }
- else if (!test)
- return function () { return true; }
- else
- return test
- }
+// A recursive walk is one where your functions override the default
+// walkers. They can modify and replace the state parameter that's
+// threaded through the walk, and can opt how and whether to walk
+// their child nodes (by calling their third argument on these
+// nodes).
+function recursive(node, state, funcs, base, override) {
+ var visitor = funcs ? exports.make(funcs, base) : base
+ ;(function c(node, st, override) {
+ visitor[override || node.type](node, st, c)
+ })(node, state, override)
+}
- var Found = function Found(node, state) { this.node = node; this.state = state };
+function makeTest(test) {
+ if (typeof test == "string")
+ return function (type) { return type == test; }
+ else if (!test)
+ return function () { return true; }
+ else
+ return test
+}
- // Find a node with a given start, end, and type (all are optional,
- // null can be used as wildcard). Returns a {node, state} object, or
- // undefined when it doesn't find a matching node.
- function findNodeAt(node, start, end, test, base, state) {
- test = makeTest(test)
- if (!base) base = exports.base
- try {
- ;(function c(node, st, override) {
- var type = override || node.type
- if ((start == null || node.start <= start) &&
- (end == null || node.end >= end))
- base[type](node, st, c)
- if ((start == null || node.start == start) &&
- (end == null || node.end == end) &&
- test(type, node))
- throw new Found(node, st)
- })(node, state)
- } catch (e) {
- if (e instanceof Found) return e
- throw e
- }
- }
+var Found = function Found(node, state) { this.node = node; this.state = state };
- // Find the innermost node of a given type that contains the given
- // position. Interface similar to findNodeAt.
- function findNodeAround(node, pos, test, base, state) {
- test = makeTest(test)
- if (!base) base = exports.base
- try {
- ;(function c(node, st, override) {
- var type = override || node.type
- if (node.start > pos || node.end < pos) return
+// Find a node with a given start, end, and type (all are optional,
+// null can be used as wildcard). Returns a {node, state} object, or
+// undefined when it doesn't find a matching node.
+function findNodeAt(node, start, end, test, base, state) {
+ test = makeTest(test)
+ if (!base) base = exports.base
+ try {
+ ;(function c(node, st, override) {
+ var type = override || node.type
+ if ((start == null || node.start <= start) &&
+ (end == null || node.end >= end))
base[type](node, st, c)
- if (test(type, node)) throw new Found(node, st)
- })(node, state)
- } catch (e) {
- if (e instanceof Found) return e
- throw e
- }
+ if ((start == null || node.start == start) &&
+ (end == null || node.end == end) &&
+ test(type, node))
+ throw new Found(node, st)
+ })(node, state)
+ } catch (e) {
+ if (e instanceof Found) return e
+ throw e
}
+}
- // Find the outermost matching node after a given position.
- function findNodeAfter(node, pos, test, base, state) {
- test = makeTest(test)
- if (!base) base = exports.base
- try {
- ;(function c(node, st, override) {
- if (node.end < pos) return
- var type = override || node.type
- if (node.start >= pos && test(type, node)) throw new Found(node, st)
- base[type](node, st, c)
- })(node, state)
- } catch (e) {
- if (e instanceof Found) return e
- throw e
- }
+// Find the innermost node of a given type that contains the given
+// position. Interface similar to findNodeAt.
+function findNodeAround(node, pos, test, base, state) {
+ test = makeTest(test)
+ if (!base) base = exports.base
+ try {
+ ;(function c(node, st, override) {
+ var type = override || node.type
+ if (node.start > pos || node.end < pos) return
+ base[type](node, st, c)
+ if (test(type, node)) throw new Found(node, st)
+ })(node, state)
+ } catch (e) {
+ if (e instanceof Found) return e
+ throw e
}
+}
- // Find the outermost matching node before a given position.
- function findNodeBefore(node, pos, test, base, state) {
- test = makeTest(test)
- if (!base) base = exports.base
- var max
+// Find the outermost matching node after a given position.
+function findNodeAfter(node, pos, test, base, state) {
+ test = makeTest(test)
+ if (!base) base = exports.base
+ try {
;(function c(node, st, override) {
- if (node.start > pos) return
+ if (node.end < pos) return
var type = override || node.type
- if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
- max = new Found(node, st)
+ if (node.start >= pos && test(type, node)) throw new Found(node, st)
base[type](node, st, c)
})(node, state)
- return max
+ } catch (e) {
+ if (e instanceof Found) return e
+ throw e
}
+}
- // Fallback to an Object.create polyfill for older environments.
- var create = Object.create || function(proto) {
- function Ctor() {}
- Ctor.prototype = proto
- return new Ctor
- }
+// Find the outermost matching node before a given position.
+function findNodeBefore(node, pos, test, base, state) {
+ test = makeTest(test)
+ if (!base) base = exports.base
+ var max
+ ;(function c(node, st, override) {
+ if (node.start > pos) return
+ var type = override || node.type
+ if (node.end <= pos && (!max || max.node.end < node.end) && test(type, node))
+ max = new Found(node, st)
+ base[type](node, st, c)
+ })(node, state)
+ return max
+}
- // Used to create a custom walker. Will fill in all missing node
- // type properties with the defaults.
- function make(funcs, base) {
- if (!base) base = exports.base
- var visitor = create(base)
- for (var type in funcs) visitor[type] = funcs[type]
- return visitor
- }
+// Fallback to an Object.create polyfill for older environments.
+var create = Object.create || function(proto) {
+ function Ctor() {}
+ Ctor.prototype = proto
+ return new Ctor
+}
- function skipThrough(node, st, c) { c(node, st) }
- function ignore(_node, _st, _c) {}
+// Used to create a custom walker. Will fill in all missing node
+// type properties with the defaults.
+function make(funcs, base) {
+ if (!base) base = exports.base
+ var visitor = create(base)
+ for (var type in funcs) visitor[type] = funcs[type]
+ return visitor
+}
- // Node walkers.
+function skipThrough(node, st, c) { c(node, st) }
+function ignore(_node, _st, _c) {}
- var base = {}
+// Node walkers.
- base.Program = base.BlockStatement = function (node, st, c) {
- for (var i = 0; i < node.body.length; ++i)
- c(node.body[i], st, "Statement")
- }
- base.Statement = skipThrough
- base.EmptyStatement = ignore
- base.ExpressionStatement = base.ParenthesizedExpression =
- function (node, st, c) { return c(node.expression, st, "Expression"); }
- base.IfStatement = function (node, st, c) {
- c(node.test, st, "Expression")
- c(node.consequent, st, "Statement")
- if (node.alternate) c(node.alternate, st, "Statement")
- }
- base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); }
- base.BreakStatement = base.ContinueStatement = ignore
- base.WithStatement = function (node, st, c) {
- c(node.object, st, "Expression")
- c(node.body, st, "Statement")
- }
- base.SwitchStatement = function (node, st, c) {
- c(node.discriminant, st, "Expression")
- for (var i = 0; i < node.cases.length; ++i) {
- var cs = node.cases[i]
- if (cs.test) c(cs.test, st, "Expression")
- for (var j = 0; j < cs.consequent.length; ++j)
- c(cs.consequent[j], st, "Statement")
- }
- }
- base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
- if (node.argument) c(node.argument, st, "Expression")
- }
- base.ThrowStatement = base.SpreadElement =
- function (node, st, c) { return c(node.argument, st, "Expression"); }
- base.TryStatement = function (node, st, c) {
- c(node.block, st, "Statement")
- if (node.handler) c(node.handler, st)
- if (node.finalizer) c(node.finalizer, st, "Statement")
- }
- base.CatchClause = function (node, st, c) {
- c(node.param, st, "Pattern")
- c(node.body, st, "ScopeBody")
- }
- base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
- c(node.test, st, "Expression")
- c(node.body, st, "Statement")
- }
- base.ForStatement = function (node, st, c) {
- if (node.init) c(node.init, st, "ForInit")
- if (node.test) c(node.test, st, "Expression")
- if (node.update) c(node.update, st, "Expression")
- c(node.body, st, "Statement")
- }
- base.ForInStatement = base.ForOfStatement = function (node, st, c) {
- c(node.left, st, "ForInit")
- c(node.right, st, "Expression")
- c(node.body, st, "Statement")
- }
- base.ForInit = function (node, st, c) {
- if (node.type == "VariableDeclaration") c(node, st)
- else c(node, st, "Expression")
- }
- base.DebuggerStatement = ignore
+var base = {}
- base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); }
- base.VariableDeclaration = function (node, st, c) {
- for (var i = 0; i < node.declarations.length; ++i)
- c(node.declarations[i], st)
- }
- base.VariableDeclarator = function (node, st, c) {
- c(node.id, st, "Pattern")
- if (node.init) c(node.init, st, "Expression")
- }
+base.Program = base.BlockStatement = function (node, st, c) {
+ for (var i = 0; i < node.body.length; ++i)
+ c(node.body[i], st, "Statement")
+}
+base.Statement = skipThrough
+base.EmptyStatement = ignore
+base.ExpressionStatement = base.ParenthesizedExpression =
+ function (node, st, c) { return c(node.expression, st, "Expression"); }
+base.IfStatement = function (node, st, c) {
+ c(node.test, st, "Expression")
+ c(node.consequent, st, "Statement")
+ if (node.alternate) c(node.alternate, st, "Statement")
+}
+base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); }
+base.BreakStatement = base.ContinueStatement = ignore
+base.WithStatement = function (node, st, c) {
+ c(node.object, st, "Expression")
+ c(node.body, st, "Statement")
+}
+base.SwitchStatement = function (node, st, c) {
+ c(node.discriminant, st, "Expression")
+ for (var i = 0; i < node.cases.length; ++i) {
+ var cs = node.cases[i]
+ if (cs.test) c(cs.test, st, "Expression")
+ for (var j = 0; j < cs.consequent.length; ++j)
+ c(cs.consequent[j], st, "Statement")
+ }
+}
+base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
+ if (node.argument) c(node.argument, st, "Expression")
+}
+base.ThrowStatement = base.SpreadElement =
+ function (node, st, c) { return c(node.argument, st, "Expression"); }
+base.TryStatement = function (node, st, c) {
+ c(node.block, st, "Statement")
+ if (node.handler) c(node.handler, st)
+ if (node.finalizer) c(node.finalizer, st, "Statement")
+}
+base.CatchClause = function (node, st, c) {
+ c(node.param, st, "Pattern")
+ c(node.body, st, "ScopeBody")
+}
+base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
+ c(node.test, st, "Expression")
+ c(node.body, st, "Statement")
+}
+base.ForStatement = function (node, st, c) {
+ if (node.init) c(node.init, st, "ForInit")
+ if (node.test) c(node.test, st, "Expression")
+ if (node.update) c(node.update, st, "Expression")
+ c(node.body, st, "Statement")
+}
+base.ForInStatement = base.ForOfStatement = function (node, st, c) {
+ c(node.left, st, "ForInit")
+ c(node.right, st, "Expression")
+ c(node.body, st, "Statement")
+}
+base.ForInit = function (node, st, c) {
+ if (node.type == "VariableDeclaration") c(node, st)
+ else c(node, st, "Expression")
+}
+base.DebuggerStatement = ignore
- base.Function = function (node, st, c) {
- if (node.id) c(node.id, st, "Pattern")
- for (var i = 0; i < node.params.length; i++)
- c(node.params[i], st, "Pattern")
- c(node.body, st, node.expression ? "ScopeExpression" : "ScopeBody")
- }
- // FIXME drop these node types in next major version
- // (They are awkward, and in ES6 every block can be a scope.)
- base.ScopeBody = function (node, st, c) { return c(node, st, "Statement"); }
- base.ScopeExpression = function (node, st, c) { return c(node, st, "Expression"); }
+base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); }
+base.VariableDeclaration = function (node, st, c) {
+ for (var i = 0; i < node.declarations.length; ++i)
+ c(node.declarations[i], st)
+}
+base.VariableDeclarator = function (node, st, c) {
+ c(node.id, st, "Pattern")
+ if (node.init) c(node.init, st, "Expression")
+}
- base.Pattern = function (node, st, c) {
- if (node.type == "Identifier")
- c(node, st, "VariablePattern")
- else if (node.type == "MemberExpression")
- c(node, st, "MemberPattern")
- else
- c(node, st)
- }
- base.VariablePattern = ignore
- base.MemberPattern = skipThrough
- base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); }
- base.ArrayPattern = function (node, st, c) {
- for (var i = 0; i < node.elements.length; ++i) {
- var elt = node.elements[i]
- if (elt) c(elt, st, "Pattern")
- }
- }
- base.ObjectPattern = function (node, st, c) {
- for (var i = 0; i < node.properties.length; ++i)
- c(node.properties[i].value, st, "Pattern")
- }
+base.Function = function (node, st, c) {
+ if (node.id) c(node.id, st, "Pattern")
+ for (var i = 0; i < node.params.length; i++)
+ c(node.params[i], st, "Pattern")
+ c(node.body, st, node.expression ? "ScopeExpression" : "ScopeBody")
+}
+// FIXME drop these node types in next major version
+// (They are awkward, and in ES6 every block can be a scope.)
+base.ScopeBody = function (node, st, c) { return c(node, st, "Statement"); }
+base.ScopeExpression = function (node, st, c) { return c(node, st, "Expression"); }
- base.Expression = skipThrough
- base.ThisExpression = base.Super = base.MetaProperty = ignore
- base.ArrayExpression = function (node, st, c) {
- for (var i = 0; i < node.elements.length; ++i) {
- var elt = node.elements[i]
- if (elt) c(elt, st, "Expression")
- }
- }
- base.ObjectExpression = function (node, st, c) {
- for (var i = 0; i < node.properties.length; ++i)
- c(node.properties[i], st)
- }
- base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration
- base.SequenceExpression = base.TemplateLiteral = function (node, st, c) {
- for (var i = 0; i < node.expressions.length; ++i)
- c(node.expressions[i], st, "Expression")
- }
- base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
- c(node.argument, st, "Expression")
- }
- base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
- c(node.left, st, "Expression")
- c(node.right, st, "Expression")
- }
- base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
- c(node.left, st, "Pattern")
- c(node.right, st, "Expression")
- }
- base.ConditionalExpression = function (node, st, c) {
- c(node.test, st, "Expression")
- c(node.consequent, st, "Expression")
- c(node.alternate, st, "Expression")
- }
- base.NewExpression = base.CallExpression = function (node, st, c) {
- c(node.callee, st, "Expression")
- if (node.arguments) for (var i = 0; i < node.arguments.length; ++i)
- c(node.arguments[i], st, "Expression")
- }
- base.MemberExpression = function (node, st, c) {
- c(node.object, st, "Expression")
- if (node.computed) c(node.property, st, "Expression")
- }
- base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
- if (node.declaration)
- c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression")
- if (node.source) c(node.source, st, "Expression")
- }
- base.ExportAllDeclaration = function (node, st, c) {
- c(node.source, st, "Expression")
- }
- base.ImportDeclaration = function (node, st, c) {
- for (var i = 0; i < node.specifiers.length; i++)
- c(node.specifiers[i], st)
- c(node.source, st, "Expression")
- }
- base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore
+base.Pattern = function (node, st, c) {
+ if (node.type == "Identifier")
+ c(node, st, "VariablePattern")
+ else if (node.type == "MemberExpression")
+ c(node, st, "MemberPattern")
+ else
+ c(node, st)
+}
+base.VariablePattern = ignore
+base.MemberPattern = skipThrough
+base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); }
+base.ArrayPattern = function (node, st, c) {
+ for (var i = 0; i < node.elements.length; ++i) {
+ var elt = node.elements[i]
+ if (elt) c(elt, st, "Pattern")
+ }
+}
+base.ObjectPattern = function (node, st, c) {
+ for (var i = 0; i < node.properties.length; ++i)
+ c(node.properties[i].value, st, "Pattern")
+}
- base.TaggedTemplateExpression = function (node, st, c) {
- c(node.tag, st, "Expression")
- c(node.quasi, st)
- }
- base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); }
- base.Class = function (node, st, c) {
- if (node.id) c(node.id, st, "Pattern")
- if (node.superClass) c(node.superClass, st, "Expression")
- for (var i = 0; i < node.body.body.length; i++)
- c(node.body.body[i], st)
- }
- base.MethodDefinition = base.Property = function (node, st, c) {
- if (node.computed) c(node.key, st, "Expression")
- c(node.value, st, "Expression")
- }
+base.Expression = skipThrough
+base.ThisExpression = base.Super = base.MetaProperty = ignore
+base.ArrayExpression = function (node, st, c) {
+ for (var i = 0; i < node.elements.length; ++i) {
+ var elt = node.elements[i]
+ if (elt) c(elt, st, "Expression")
+ }
+}
+base.ObjectExpression = function (node, st, c) {
+ for (var i = 0; i < node.properties.length; ++i)
+ c(node.properties[i], st)
+}
+base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration
+base.SequenceExpression = base.TemplateLiteral = function (node, st, c) {
+ for (var i = 0; i < node.expressions.length; ++i)
+ c(node.expressions[i], st, "Expression")
+}
+base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
+ c(node.argument, st, "Expression")
+}
+base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
+ c(node.left, st, "Expression")
+ c(node.right, st, "Expression")
+}
+base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
+ c(node.left, st, "Pattern")
+ c(node.right, st, "Expression")
+}
+base.ConditionalExpression = function (node, st, c) {
+ c(node.test, st, "Expression")
+ c(node.consequent, st, "Expression")
+ c(node.alternate, st, "Expression")
+}
+base.NewExpression = base.CallExpression = function (node, st, c) {
+ c(node.callee, st, "Expression")
+ if (node.arguments) for (var i = 0; i < node.arguments.length; ++i)
+ c(node.arguments[i], st, "Expression")
+}
+base.MemberExpression = function (node, st, c) {
+ c(node.object, st, "Expression")
+ if (node.computed) c(node.property, st, "Expression")
+}
+base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
+ if (node.declaration)
+ c(node.declaration, st, node.type == "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression")
+ if (node.source) c(node.source, st, "Expression")
+}
+base.ExportAllDeclaration = function (node, st, c) {
+ c(node.source, st, "Expression")
+}
+base.ImportDeclaration = function (node, st, c) {
+ for (var i = 0; i < node.specifiers.length; i++)
+ c(node.specifiers[i], st)
+ c(node.source, st, "Expression")
+}
+base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.Literal = ignore
+
+base.TaggedTemplateExpression = function (node, st, c) {
+ c(node.tag, st, "Expression")
+ c(node.quasi, st)
+}
+base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); }
+base.Class = function (node, st, c) {
+ if (node.id) c(node.id, st, "Pattern")
+ if (node.superClass) c(node.superClass, st, "Expression")
+ for (var i = 0; i < node.body.body.length; i++)
+ c(node.body.body[i], st)
+}
+base.MethodDefinition = base.Property = function (node, st, c) {
+ if (node.computed) c(node.key, st, "Expression")
+ c(node.value, st, "Expression")
+}
- exports.simple = simple;
- exports.ancestor = ancestor;
- exports.recursive = recursive;
- exports.findNodeAt = findNodeAt;
- exports.findNodeAround = findNodeAround;
- exports.findNodeAfter = findNodeAfter;
- exports.findNodeBefore = findNodeBefore;
- exports.make = make;
- exports.base = base;
+exports.simple = simple;
+exports.ancestor = ancestor;
+exports.recursive = recursive;
+exports.findNodeAt = findNodeAt;
+exports.findNodeAround = findNodeAround;
+exports.findNodeAfter = findNodeAfter;
+exports.findNodeBefore = findNodeBefore;
+exports.make = make;
+exports.base = base;
- Object.defineProperty(exports, '__esModule', { value: true });
+Object.defineProperty(exports, '__esModule', { value: true });
-})); \ No newline at end of file
+}))); \ No newline at end of file
diff --git a/tools/eslint/node_modules/acorn/package.json b/tools/eslint/node_modules/acorn/package.json
index 0fde1a8ab9..27dfdebdcb 100644
--- a/tools/eslint/node_modules/acorn/package.json
+++ b/tools/eslint/node_modules/acorn/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "acorn@>=4.0.1 <5.0.0",
- "_id": "acorn@4.0.3",
+ "_id": "acorn@4.0.4",
"_inCache": true,
"_location": "/acorn",
- "_nodeVersion": "6.3.0",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/acorn-4.0.3.tgz_1474012883070_0.7297828732989728"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/acorn-4.0.4.tgz_1482157987722_0.9571468001231551"
},
"_npmUser": {
"name": "marijn",
"email": "marijnh@gmail.com"
},
- "_npmVersion": "3.10.3",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "acorn@^4.0.1",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/espree"
],
- "_resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz",
- "_shasum": "1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1",
+ "_resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
+ "_shasum": "17a8d6a7a6c4ef538b814ec9abac2779293bf30a",
"_shrinkwrap": null,
"_spec": "acorn@^4.0.1",
"_where": "/Users/trott/io.js/tools/node_modules/espree",
@@ -131,6 +131,9 @@
"name": "Jürg Lehni"
},
{
+ "name": "Kai Cataldo"
+ },
+ {
"name": "keeyipchan"
},
{
@@ -152,6 +155,9 @@
"name": "Martin Carlberg"
},
{
+ "name": "Mat Garcia"
+ },
+ {
"name": "Mathias Bynens"
},
{
@@ -233,13 +239,13 @@
},
"directories": {},
"dist": {
- "shasum": "1a3e850b428e73ba6b09d1cc527f5aaad4d03ef1",
- "tarball": "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz"
+ "shasum": "17a8d6a7a6c4ef538b814ec9abac2779293bf30a",
+ "tarball": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz"
},
"engines": {
"node": ">=0.4.0"
},
- "gitHead": "bb54adcdbceef01997a9549732139ca8f53a4e28",
+ "gitHead": "e7001cad79b4b0d7c4a6cf569ea33bfc808183cd",
"homepage": "https://github.com/ternjs/acorn",
"jsnext:main": "dist/acorn.es.js",
"license": "MIT",
@@ -271,5 +277,5 @@
"pretest": "npm run build",
"test": "node test/run.js"
},
- "version": "4.0.3"
+ "version": "4.0.4"
}
diff --git a/tools/eslint/node_modules/acorn/rollup/config.bin.js b/tools/eslint/node_modules/acorn/rollup/config.bin.js
deleted file mode 100644
index 3726606e0d..0000000000
--- a/tools/eslint/node_modules/acorn/rollup/config.bin.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import buble from 'rollup-plugin-buble'
-
-export default {
- entry: 'src/bin/acorn.js',
- dest: 'bin/acorn',
- format: 'cjs',
- banner: '#!/usr/bin/env node',
- external: [ 'fs', 'path', 'acorn' ],
- paths: {
- acorn: '../dist/acorn.js'
- },
- plugins: [
- buble()
- ]
-}
diff --git a/tools/eslint/node_modules/acorn/rollup/config.loose.js b/tools/eslint/node_modules/acorn/rollup/config.loose.js
deleted file mode 100644
index 273e7a9265..0000000000
--- a/tools/eslint/node_modules/acorn/rollup/config.loose.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import buble from 'rollup-plugin-buble'
-import {resolve} from 'path'
-
-var acorn = resolve('src/index.js')
-var paths = {}, globals = {}
-paths[acorn] = './acorn.js'
-globals[acorn] = 'acorn'
-
-export default {
- entry: 'src/loose/index.js',
- moduleName: 'acorn.loose',
- external: [ acorn ],
- paths: paths,
- globals: globals,
- targets: [
- { dest: 'dist/acorn_loose.js', format: 'umd' },
- { dest: 'dist/acorn_loose.es.js', format: 'es' }
- ],
- plugins: [
- buble()
- ]
-}
diff --git a/tools/eslint/node_modules/acorn/rollup/config.main.js b/tools/eslint/node_modules/acorn/rollup/config.main.js
deleted file mode 100644
index 730b79b2fe..0000000000
--- a/tools/eslint/node_modules/acorn/rollup/config.main.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import buble from 'rollup-plugin-buble';
-
-export default {
- entry: 'src/index.js',
- moduleName: 'acorn',
- plugins: [ buble() ],
- targets: [
- { dest: 'dist/acorn.js', format: 'umd' },
- { dest: 'dist/acorn.es.js', format: 'es' }
- ]
-};
diff --git a/tools/eslint/node_modules/acorn/rollup/config.walk.js b/tools/eslint/node_modules/acorn/rollup/config.walk.js
deleted file mode 100644
index 95f2a93db1..0000000000
--- a/tools/eslint/node_modules/acorn/rollup/config.walk.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import buble from 'rollup-plugin-buble';
-
-export default {
- entry: 'src/walk/index.js',
- moduleName: 'acorn.walk',
- plugins: [ buble() ],
- targets: [
- { dest: 'dist/walk.js', format: 'umd' },
- { dest: 'dist/walk.es.js', format: 'es' }
- ]
-};
diff --git a/tools/eslint/node_modules/acorn/src/index.js b/tools/eslint/node_modules/acorn/src/index.js
index 189bf5a269..9debb0ac7c 100644
--- a/tools/eslint/node_modules/acorn/src/index.js
+++ b/tools/eslint/node_modules/acorn/src/index.js
@@ -36,7 +36,7 @@ export {isIdentifierChar, isIdentifierStart} from "./identifier"
export {Token} from "./tokenize"
export {isNewLine, lineBreak, lineBreakG} from "./whitespace"
-export const version = "4.0.3"
+export const version = "4.0.4"
// The main exported interface (under `self.acorn` when in the
// browser) is a `parse` function that takes a code string and
diff --git a/tools/eslint/node_modules/acorn/src/statement.js b/tools/eslint/node_modules/acorn/src/statement.js
index 7a660f1919..3cd29163d2 100644
--- a/tools/eslint/node_modules/acorn/src/statement.js
+++ b/tools/eslint/node_modules/acorn/src/statement.js
@@ -655,7 +655,12 @@ pp.checkVariableExport = function(exports, decls) {
}
pp.shouldParseExportStatement = function() {
- return this.type.keyword || this.isLet() || this.isAsyncFunction()
+ return this.type.keyword === "var"
+ || this.type.keyword === "const"
+ || this.type.keyword === "class"
+ || this.type.keyword === "function"
+ || this.isLet()
+ || this.isAsyncFunction()
}
// Parses a comma-separated list of module exports.
diff --git a/tools/eslint/node_modules/ajv-keywords/.eslintrc.yml b/tools/eslint/node_modules/ajv-keywords/.eslintrc.yml
deleted file mode 100644
index fd9f29adc8..0000000000
--- a/tools/eslint/node_modules/ajv-keywords/.eslintrc.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-env:
- node: true
-extends: 'eslint:recommended'
-globals:
- Promise: false
-parserOptions:
- ecmaVersion: 6
-rules:
- indent: [ 2, 2, { SwitchCase: 1 } ]
- no-trailing-spaces: 2
- quotes: [ 2, single, avoid-escape ]
- linebreak-style: [ 2, unix ]
- semi: [ 2, always ]
- valid-jsdoc: [ 2, { requireReturn: false } ]
- no-invalid-this: 2
- no-unused-vars: [ 2, { args: none } ]
-# no-console: [ 2, { allow: [ warn, error ] } ]
- no-console: 0
- block-scoped-var: 2
- complexity: [ 2, 8 ]
- curly: [ 2, multi-or-nest, consistent ]
- dot-location: [ 2, property ]
- dot-notation: 2
- no-else-return: 2
- no-eq-null: 2
- no-fallthrough: 2
- no-return-assign: 2
- strict: [ 2, global ]
- no-shadow: 1
- no-use-before-define: [ 2, nofunc ]
- callback-return: 2
- no-path-concat: 2
diff --git a/tools/eslint/node_modules/ajv-keywords/README.md b/tools/eslint/node_modules/ajv-keywords/README.md
index 5a16240923..e432391d61 100644
--- a/tools/eslint/node_modules/ajv-keywords/README.md
+++ b/tools/eslint/node_modules/ajv-keywords/README.md
@@ -4,9 +4,28 @@ Custom JSON-Schema keywords for [ajv](https://github.com/epoberezkin/ajv) valida
[![Build Status](https://travis-ci.org/epoberezkin/ajv-keywords.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv-keywords)
[![npm version](https://badge.fury.io/js/ajv-keywords.svg)](https://www.npmjs.com/package/ajv-keywords)
+[![npm downloads](https://img.shields.io/npm/dm/ajv-keywords.svg)](https://www.npmjs.com/package/ajv-keywords)
[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/ajv-keywords/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/ajv-keywords?branch=master)
+## Contents
+
+- [Install](#install)
+- [Usage](#usage)
+- [Keywords](#keywords)
+ - [typeof](#typeof)
+ - [instanceof](#instanceof)
+ - [range and exclusiveRange](#range-and-exclusiverange)
+ - [propertyNames](#propertynames)
+ - [if/then/else](#ifthenelse)
+ - [prohibited](#prohibited)
+ - [deepProperties](#deepproperties)
+ - [deepRequired](#deeprequired)
+ - [regexp](#regexp)
+ - [dynamicDefaults](#dynamicdefaults)
+- [License](#license)
+
+
## Install
```
@@ -65,7 +84,7 @@ ajv.validate({ typeof: ['undefined', 'object'] }, null); // true
### `instanceof`
-Based on JavaScript `typeof` operation.
+Based on JavaScript `instanceof` operation.
The value of the keyword should be a string (`"Object"`, `"Array"`, `"Function"`, `"Number"`, `"String"`, `"Date"`, `"RegExp"` or `"Buffer"`) or array of strings.
@@ -95,7 +114,7 @@ Syntax sugar for the combination of minimum and maximum keywords, also fails sch
The value of this keyword must be the array consisting of two numbers, the second must be greater or equal than the first one.
-If the validated value is not a number the validation passes, otherwise to pas validation the value should be greater (or equal) than the first number and smaller (or equal) than the second number in the array. If `exclusiveRange` keyword is present in the same schema and its value is true, the validated value must not be equal to the range boundaries.
+If the validated value is not a number the validation passes, otherwise to pass validation the value should be greater (or equal) than the first number and smaller (or equal) than the second number in the array. If `exclusiveRange` keyword is present in the same schema and its value is true, the validated value must not be equal to the range boundaries.
```javascript
var schema = { range: [1, 3] };
@@ -142,6 +161,146 @@ ajv.validate(schema, validData); // true
ajv.validate(schema, invalidData); // false
```
+__Please note__: This keyword will be added to the next version of the JSON-Schema standard (draft-6), after it is published the keyword will be included in Ajv as standard validation keyword.
+
+
+### `if`/`then`/`else`
+
+These keywords allow to implement conditional validation. Their values should be valid JSON-schemas. At the moment it requires using Ajv with v5 option.
+
+If the data is valid according to the sub-schema in `if` keyword, then the result is equal to the result of data validation against the sub-schema in `then` keyword, otherwise - in `else` keyword (if `else` is absent, the validation succeeds).
+
+```javascript
+require('ajv-keywords')(ajv, 'if');
+
+var schema = {
+ type: 'array',
+ items: {
+ type: 'integer',
+ minimum: 1,
+ if: { maximum: 10 },
+ then: { multipleOf: 2 },
+ else: { multipleOf: 5 }
+ }
+};
+
+var validItems = [ 2, 4, 6, 8, 10, 15, 20, 25 ]; // etc.
+
+var invalidItems = [ 1, 3, 5, 11, 12 ]; // etc.
+
+ajv.validate(schema, validItems); // true
+ajv.validate(schema, invalidItems); // false
+```
+
+This keyword is [proposed](https://github.com/json-schema-org/json-schema-spec/issues/180) for the future version of JSON-Schema standard.
+
+
+### `prohibited`
+
+This keyword allows to prohibit that any of the properties in the list is present in the object.
+
+This keyword applies only to objects. If the data is not an object, the validation succeeds.
+
+The value of this keyword should be an array of strings, each string being a property name. For data object to be valid none of the properties in this array should be present in the object.
+
+```
+var schema = { prohibited: ['foo', 'bar']};
+
+var validData = { baz: 1 };
+var alsoValidData = {};
+
+var invalidDataList = [
+ { foo: 1 },
+ { bar: 2 },
+ { foo: 1, bar: 2}
+];
+```
+
+
+### `deepRequired`
+
+This keyword allows to check that some deep properties (identified by JSON pointers) are available. The value should be an array of JSON pointers to the data, starting from the current position in data.
+
+```javascript
+var schema = {
+ type: 'object',
+ deepRequired: ["/users/1/role"]
+};
+
+var validData = {
+ users: [
+ {},
+ {
+ id: 123,
+ role: 'admin'
+ }
+ ]
+};
+
+var invalidData = {
+ users: [
+ {},
+ {
+ id: 123
+ }
+ ]
+};
+```
+
+See [json-schema-org/json-schema-spec#203](https://github.com/json-schema-org/json-schema-spec/issues/203#issue-197211916) for an example of the equivalent schema without `deepRequired` keyword.
+
+
+## `deepProperties`
+
+This keyword allows to validate deep properties (identified by JSON pointers). The value should be an object, where keys are JSON pointers to the data, starting from the current position in data, and the values are corresponding schemas.
+
+```javascript
+var schema = {
+ type: 'object',
+ deepProperties: {
+ "/users/1/role": { "enum": ["admin"] }
+ }
+};
+
+var validData = {
+ users: [
+ {},
+ {
+ id: 123,
+ role: 'admin'
+ }
+ ]
+};
+
+var alsoValidData = {
+ users: {
+ "1": {
+ id: 123,
+ role: 'admin'
+ }
+ }
+};
+
+var invalidData = {
+ users: [
+ {},
+ {
+ id: 123,
+ role: 'user'
+ }
+ ]
+};
+
+var alsoInvalidData = {
+ users: {
+ "1": {
+ id: 123,
+ role: 'user'
+ }
+ }
+};
+```
+
### `regexp`
@@ -168,6 +327,117 @@ var invalidData = {
```
+### `dynamicDefaults`
+
+This keyword allows to assign dynamic defaults to properties, such as timestamps, unique IDs etc.
+
+This keyword only works if `useDefaults` options is used and not inside `anyOf` keywrods etc., in the same way as [default keyword treated by Ajv](https://github.com/epoberezkin/ajv#assigning-defaults).
+
+The keyword should be added on the object level. Its value should be an object with each property corresponding to a property name, in the same way as in standard `properties` keyword. The value of each property can be:
+
+- an identifier of default function (a string)
+- an object with properties `func` (an identifier) and `args` (an object with parameters that will be passed to this function during schema compilation - see examples).
+
+The properties used in `dynamicDefaults` should not be added to `required` keyword (or validation will fail), because unlike `default` this keyword is processed after validation.
+
+There are several predefined dynamic default functions:
+
+- `"timestamp"` - current timestamp in milliseconds
+- `"datetime"` - current date and time as string (ISO, valid according to `date-time` format)
+- `"date"` - current date as string (ISO, valid according to `date` format)
+- `"time"` - current time as string (ISO, valid according to `time` format)
+- `"random"` - pseudo-random number in [0, 1) interval
+- `"randomint"` - pseudo-random integer number. If string is used as a property value, the function will randomly return 0 or 1. If object `{func: 'randomint', max: N}` is used then the default will be an integer number in [0, N) interval.
+- `"seq"` - sequential integer number starting from 0. If string is used as a property value, the default sequence will be used. If object `{func: 'seq', name: 'foo'}` is used then the sequence with name `"foo"` will be used. Sequences are global, even if different ajv instances are used.
+
+```javascript
+var schema = {
+ type: 'object',
+ dynamicDefaults: {
+ ts: 'datetime',
+ r: { func: 'randomint', max: 100 },
+ id: { func: 'seq', name: 'id' }
+ },
+ properties: {
+ ts: {
+ type: 'string',
+ format: 'datetime'
+ },
+ r: {
+ type: 'integer',
+ minimum: 0,
+ maximum: 100,
+ exclusiveMaximum: true
+ },
+ id: {
+ type: 'integer',
+ minimum: 0
+ }
+ }
+};
+
+var data = {};
+ajv.validate(data); // true
+data; // { ts: '2016-12-01T22:07:28.829Z', r: 25, id: 0 }
+
+var data1 = {};
+ajv.validate(data1); // true
+data1; // { ts: '2016-12-01T22:07:29.832Z', r: 68, id: 1 }
+
+ajv.validate(data1); // true
+data1; // didn't change, as all properties were defined
+```
+
+You can add your own dynamic default function to be recognised by this keyword:
+
+```javascript
+var uuid = require('uuid');
+
+function uuidV4() { return uuid.v4(); }
+
+var definition = require('ajv-keywords').get('dynamicDefaults').definition;
+// or require('ajv-keywords/keywords/dynamicDefaults').definition;
+definition.DEFAULTS.uuid = uuidV4;
+
+var schema = {
+ dynamicDefaults: { id: 'uuid' },
+ properties: { id: { type: 'string', format: 'uuid' } }
+};
+
+var data = {};
+ajv.validate(schema, data); // true
+data; // { id: 'a1183fbe-697b-4030-9bcc-cfeb282a9150' };
+
+var data1 = {};
+ajv.validate(schema, data1); // true
+data1; // { id: '5b008de7-1669-467a-a5c6-70fa244d7209' }
+```
+
+You also can define dynamic default that accepts parameters, e.g. version of uuid:
+
+```javascript
+var uuid = require('uuid');
+
+function getUuid(args) {
+ var version = 'v' + (arvs && args.v || 4);
+ return function() {
+ return uuid[version]();
+ };
+}
+
+var definition = require('ajv-keywords').get('dynamicDefaults').definition;
+definition.DEFAULTS.uuid = getUuid;
+
+var schema = {
+ dynamicDefaults: {
+ id1: 'uuid', // v4
+ id2: { func: 'uuid', v: 4 }, // v4
+ id3: { func: 'uuid', v: 1 } // v1
+ }
+};
+```
+
+
## License
[MIT](https://github.com/JSONScript/ajv-keywords/blob/master/LICENSE)
diff --git a/tools/eslint/node_modules/ajv-keywords/index.js b/tools/eslint/node_modules/ajv-keywords/index.js
index 96fcd98237..07a8edabc1 100644
--- a/tools/eslint/node_modules/ajv-keywords/index.js
+++ b/tools/eslint/node_modules/ajv-keywords/index.js
@@ -9,18 +9,20 @@ module.exports = defineKeywords;
* Defines one or several keywords in ajv instance
* @param {Ajv} ajv validator instance
* @param {String|Array<String>|undefined} keyword keyword(s) to define
+ * @return {Ajv} ajv instance (for chaining)
*/
function defineKeywords(ajv, keyword) {
if (Array.isArray(keyword)) {
for (var i=0; i<keyword.length; i++)
get(keyword[i])(ajv);
- return;
+ return ajv;
}
if (keyword) {
get(keyword)(ajv);
- return;
+ return ajv;
}
for (keyword in KEYWORDS) get(keyword)(ajv);
+ return ajv;
}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/_formatLimit.js b/tools/eslint/node_modules/ajv-keywords/keywords/_formatLimit.js
new file mode 100644
index 0000000000..96541dd64f
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/_formatLimit.js
@@ -0,0 +1,92 @@
+'use strict';
+
+var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
+var DATE_TIME_SEPARATOR = /t|\s/i;
+
+var COMPARE_FORMATS = {
+ date: compareDate,
+ time: compareTime,
+ 'date-time': compareDateTime
+};
+
+module.exports = function (minMax) {
+ var keyword = 'format' + minMax;
+ return function defFunc(ajv) {
+ if (ajv.RULES.keywords[keyword])
+ return console.warn('Keyword', keyword, 'is already defined');
+
+ defFunc.definition = {
+ type: 'string',
+ inline: require('./dotjs/_formatLimit'),
+ statements: true,
+ errors: 'full',
+ metaSchema: {
+ anyOf: [
+ { type: 'string' },
+ {
+ type: 'object',
+ required: [ '$data' ],
+ properties: {
+ $data: {
+ type: 'string',
+ anyOf: [
+ { format: 'relative-json-pointer' },
+ { format: 'json-pointer' }
+ ]
+ }
+ },
+ additionalProperties: false
+ }
+ ]
+ }
+ };
+
+ ajv.addKeyword(keyword, defFunc.definition);
+ ajv.addKeyword('formatExclusive' + minMax);
+ extendFormats(ajv);
+ return ajv;
+ };
+};
+
+
+function extendFormats(ajv) {
+ var formats = ajv._formats;
+ for (var name in COMPARE_FORMATS) {
+ var format = formats[name];
+ if (typeof format != 'object')
+ format = formats[name] = { validate: format };
+ if (!format.compare)
+ format.compare = COMPARE_FORMATS[name];
+ }
+}
+
+
+function compareDate(d1, d2) {
+ if (!(d1 && d2)) return;
+ if (d1 > d2) return 1;
+ if (d1 < d2) return -1;
+ if (d1 === d2) return 0;
+}
+
+
+function compareTime(t1, t2) {
+ if (!(t1 && t2)) return;
+ t1 = t1.match(TIME);
+ t2 = t2.match(TIME);
+ if (!(t1 && t2)) return;
+ t1 = t1[1] + t1[2] + t1[3] + (t1[4]||'');
+ t2 = t2[1] + t2[2] + t2[3] + (t2[4]||'');
+ if (t1 > t2) return 1;
+ if (t1 < t2) return -1;
+ if (t1 === t2) return 0;
+}
+
+
+function compareDateTime(dt1, dt2) {
+ if (!(dt1 && dt2)) return;
+ dt1 = dt1.split(DATE_TIME_SEPARATOR);
+ dt2 = dt2.split(DATE_TIME_SEPARATOR);
+ var res = compareDate(dt1[0], dt2[0]);
+ if (res === undefined) return;
+ return res || compareTime(dt1[1], dt2[1]);
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/deepProperties.js b/tools/eslint/node_modules/ajv-keywords/keywords/deepProperties.js
new file mode 100644
index 0000000000..daa87426a6
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/deepProperties.js
@@ -0,0 +1,55 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ type: 'object',
+ macro: function (schema) {
+ var schemas = [];
+ for (var pointer in schema)
+ schemas.push(getSchema(pointer, schema[pointer]));
+ return { 'allOf': schemas };
+ },
+ metaSchema: {
+ type: 'object',
+ patternProperties: {
+ '^(\\/([^~\\/]|~0|~1)*)*(\\/)?$': {
+ $ref: ajv._opts.v5
+ ? 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#'
+ : 'http://json-schema.org/draft-04/schema#'
+ }
+ },
+ additionalProperties: false
+ }
+ };
+
+ ajv.addKeyword('deepProperties', defFunc.definition);
+ return ajv;
+};
+
+
+function getSchema(jsonPointer, schema) {
+ var segments = jsonPointer.split('/');
+ var rootSchema = {};
+ var pointerSchema = rootSchema;
+ for (var i=1; i<segments.length; i++) {
+ var segment = segments[i];
+ var isLast = i == segments.length - 1;
+ segment = unescapeJsonPointer(segment);
+ var properties = pointerSchema.properties = {};
+ var items = undefined;
+ if (/[0-9]+/.test(segment)) {
+ var count = +segment;
+ items = pointerSchema.items = [];
+ while (count--) items.push({});
+ }
+ pointerSchema = isLast ? schema : {};
+ properties[segment] = pointerSchema;
+ if (items) items.push(pointerSchema);
+ }
+ return rootSchema;
+}
+
+
+function unescapeJsonPointer(str) {
+ return str.replace(/~1/g, '/').replace(/~0/g, '~');
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/deepRequired.js b/tools/eslint/node_modules/ajv-keywords/keywords/deepRequired.js
new file mode 100644
index 0000000000..29e8ab5600
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/deepRequired.js
@@ -0,0 +1,57 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ type: 'object',
+ inline: function (it, keyword, schema) {
+ var expr = '';
+ for (var i=0; i<schema.length; i++) {
+ if (i) expr += ' && ';
+ expr += '(' + getData(schema[i], it.dataLevel) + ' !== undefined)';
+ }
+ return expr;
+ },
+ metaSchema: {
+ type: 'array',
+ items: {
+ type: 'string',
+ format: 'json-pointer'
+ }
+ }
+ };
+
+ ajv.addKeyword('deepRequired', defFunc.definition);
+ return ajv;
+};
+
+
+function getData(jsonPointer, lvl) {
+ var data = 'data' + (lvl || '');
+ if (!jsonPointer) return data;
+
+ var expr = data;
+ var segments = jsonPointer.split('/');
+ for (var i=1; i<segments.length; i++) {
+ var segment = segments[i];
+ data += getProperty(unescapeJsonPointer(segment));
+ expr += ' && ' + data;
+ }
+ return expr;
+}
+
+
+var IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
+var INTEGER = /^[0-9]+$/;
+var SINGLE_QUOTE = /'|\\/g;
+function getProperty(key) {
+ return INTEGER.test(key)
+ ? '[' + key + ']'
+ : IDENTIFIER.test(key)
+ ? '.' + key
+ : "['" + key.replace(SINGLE_QUOTE, '\\$&') + "']";
+}
+
+
+function unescapeJsonPointer(str) {
+ return str.replace(/~1/g, '/').replace(/~0/g, '~');
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dot/_formatLimit.jst b/tools/eslint/node_modules/ajv-keywords/keywords/dot/_formatLimit.jst
new file mode 100644
index 0000000000..af16b88d84
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dot/_formatLimit.jst
@@ -0,0 +1,116 @@
+{{# def.definitions }}
+{{# def.errors }}
+{{# def.setupKeyword }}
+
+var {{=$valid}} = undefined;
+
+{{## def.skipFormatLimit:
+ {{=$valid}} = true;
+ {{ return out; }}
+#}}
+
+{{## def.compareFormat:
+ {{? $isData }}
+ if ({{=$schemaValue}} === undefined) {{=$valid}} = true;
+ else if (typeof {{=$schemaValue}} != 'string') {{=$valid}} = false;
+ else {
+ {{ $closingBraces += '}'; }}
+ {{?}}
+
+ {{? $isDataFormat }}
+ if (!{{=$compare}}) {{=$valid}} = true;
+ else {
+ {{ $closingBraces += '}'; }}
+ {{?}}
+
+ var {{=$result}} = {{=$compare}}({{=$data}}, {{# def.schemaValueQS }});
+
+ if ({{=$result}} === undefined) {{=$valid}} = false;
+#}}
+
+
+{{? it.opts.format === false }}{{# def.skipFormatLimit }}{{?}}
+
+{{
+ var $schemaFormat = it.schema.format
+ , $isDataFormat = it.opts.v5 && $schemaFormat.$data
+ , $closingBraces = '';
+}}
+
+{{? $isDataFormat }}
+ {{
+ var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr)
+ , $format = 'format' + $lvl
+ , $compare = 'compare' + $lvl;
+ }}
+
+ var {{=$format}} = formats[{{=$schemaValueFormat}}]
+ , {{=$compare}} = {{=$format}} && {{=$format}}.compare;
+{{??}}
+ {{ var $format = it.formats[$schemaFormat]; }}
+ {{? !($format && $format.compare) }}
+ {{# def.skipFormatLimit }}
+ {{?}}
+ {{ var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare'; }}
+{{?}}
+
+{{
+ var $isMax = $keyword == 'formatMaximum'
+ , $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum')
+ , $schemaExcl = it.schema[$exclusiveKeyword]
+ , $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
+ , $op = $isMax ? '<' : '>'
+ , $result = 'result' + $lvl;
+}}
+
+{{# def.$data }}
+
+
+{{? $isDataExcl }}
+ {{
+ var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
+ , $exclusive = 'exclusive' + $lvl
+ , $opExpr = 'op' + $lvl
+ , $opStr = '\' + ' + $opExpr + ' + \'';
+ }}
+ var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
+ {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
+
+ if (typeof {{=$schemaValueExcl}} != 'boolean' && {{=$schemaValueExcl}} !== undefined) {
+ {{=$valid}} = false;
+ {{ var $errorKeyword = $exclusiveKeyword; }}
+ {{# def.error:'_formatExclusiveLimit' }}
+ }
+
+ {{# def.elseIfValid }}
+
+ {{# def.compareFormat }}
+ var {{=$exclusive}} = {{=$schemaValueExcl}} === true;
+
+ if ({{=$valid}} === undefined) {
+ {{=$valid}} = {{=$exclusive}}
+ ? {{=$result}} {{=$op}} 0
+ : {{=$result}} {{=$op}}= 0;
+ }
+
+ if (!{{=$valid}}) var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
+{{??}}
+ {{
+ var $exclusive = $schemaExcl === true
+ , $opStr = $op; /*used in error*/
+ if (!$exclusive) $opStr += '=';
+ var $opExpr = '\'' + $opStr + '\''; /*used in error*/
+ }}
+
+ {{# def.compareFormat }}
+
+ if ({{=$valid}} === undefined)
+ {{=$valid}} = {{=$result}} {{=$op}}{{?!$exclusive}}={{?}} 0;
+{{?}}
+
+{{= $closingBraces }}
+
+if (!{{=$valid}}) {
+ {{ var $errorKeyword = $keyword; }}
+ {{# def.error:'_formatLimit' }}
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dot/patternRequired.jst b/tools/eslint/node_modules/ajv-keywords/keywords/dot/patternRequired.jst
new file mode 100644
index 0000000000..9af2cdc9d0
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dot/patternRequired.jst
@@ -0,0 +1,28 @@
+{{# def.definitions }}
+{{# def.errors }}
+{{# def.setupKeyword }}
+
+{{
+ var $key = 'key' + $lvl
+ , $matched = 'patternMatched' + $lvl
+ , $closingBraces = ''
+ , $ownProperties = it.opts.ownProperties;
+}}
+
+var {{=$valid}} = true;
+{{~ $schema:$pProperty }}
+ var {{=$matched}} = false;
+ for (var {{=$key}} in {{=$data}}) {
+ {{# def.checkOwnProperty }}
+ {{=$matched}} = {{= it.usePattern($pProperty) }}.test({{=$key}});
+ if ({{=$matched}}) break;
+ }
+
+ {{ var $missingPattern = it.util.escapeQuotes($pProperty); }}
+ if (!{{=$matched}}) {
+ {{=$valid}} = false;
+ {{# def.addError:'patternRequired' }}
+ } {{# def.elseIfValid }}
+{{~}}
+
+{{= $closingBraces }}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dot/switch.jst b/tools/eslint/node_modules/ajv-keywords/keywords/dot/switch.jst
new file mode 100644
index 0000000000..7b2906a60b
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dot/switch.jst
@@ -0,0 +1,73 @@
+{{# def.definitions }}
+{{# def.errors }}
+{{# def.setupKeyword }}
+{{# def.setupNextLevel }}
+
+
+{{## def.validateIf:
+ {{# def.setCompositeRule }}
+ {{ $it.createErrors = false; }}
+ {{# def._validateSwitchRule:if }}
+ {{ $it.createErrors = true; }}
+ {{# def.resetCompositeRule }}
+ {{=$ifPassed}} = valid{{=$it.level}};
+#}}
+
+{{## def.validateThen:
+ {{? typeof $sch.then == 'boolean' }}
+ {{? $sch.then === false }}
+ {{# def.error:'switch' }}
+ {{?}}
+ var valid{{=$it.level}} = {{= $sch.then }};
+ {{??}}
+ {{# def._validateSwitchRule:then }}
+ {{?}}
+#}}
+
+{{## def._validateSwitchRule:_clause:
+ {{
+ $it.schema = $sch._clause;
+ $it.schemaPath = $schemaPath + '[' + $caseIndex + ']._clause';
+ $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/_clause';
+ }}
+ {{# def.insertSubschemaCode }}
+#}}
+
+{{## def.switchCase:
+ {{? $sch.if && {{# def.nonEmptySchema:$sch.if }} }}
+ var {{=$errs}} = errors;
+ {{# def.validateIf }}
+ if ({{=$ifPassed}}) {
+ {{# def.validateThen }}
+ } else {
+ {{# def.resetErrors }}
+ }
+ {{??}}
+ {{=$ifPassed}} = true;
+ {{# def.validateThen }}
+ {{?}}
+#}}
+
+
+{{
+ var $ifPassed = 'ifPassed' + it.level
+ , $currentBaseId = $it.baseId
+ , $shouldContinue;
+}}
+var {{=$ifPassed}};
+
+{{~ $schema:$sch:$caseIndex }}
+ {{? $caseIndex && !$shouldContinue }}
+ if (!{{=$ifPassed}}) {
+ {{ $closingBraces+= '}'; }}
+ {{?}}
+
+ {{# def.switchCase }}
+ {{ $shouldContinue = $sch.continue }}
+{{~}}
+
+{{= $closingBraces }}
+
+var {{=$valid}} = valid{{=$it.level}};
+
+{{# def.cleanUp }}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/README.md b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/README.md
new file mode 100644
index 0000000000..e2846c86bf
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/README.md
@@ -0,0 +1,3 @@
+These files are compiled dot templates from dot folder.
+
+Do NOT edit them directly, edit the templates and run `npm run build` from main ajv-keywords folder.
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js
new file mode 100644
index 0000000000..0f2a5e9380
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/_formatLimit.js
@@ -0,0 +1,176 @@
+'use strict';
+module.exports = function generate__formatLimit(it, $keyword) {
+ var out = ' ';
+ var $lvl = it.level;
+ var $dataLvl = it.dataLevel;
+ var $schema = it.schema[$keyword];
+ var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
+ var $breakOnError = !it.opts.allErrors;
+ var $errorKeyword;
+ var $data = 'data' + ($dataLvl || '');
+ var $valid = 'valid' + $lvl;
+ out += 'var ' + ($valid) + ' = undefined;';
+ if (it.opts.format === false) {
+ out += ' ' + ($valid) + ' = true; ';
+ return out;
+ }
+ var $schemaFormat = it.schema.format,
+ $isDataFormat = it.opts.v5 && $schemaFormat.$data,
+ $closingBraces = '';
+ if ($isDataFormat) {
+ var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr),
+ $format = 'format' + $lvl,
+ $compare = 'compare' + $lvl;
+ out += ' var ' + ($format) + ' = formats[' + ($schemaValueFormat) + '] , ' + ($compare) + ' = ' + ($format) + ' && ' + ($format) + '.compare;';
+ } else {
+ var $format = it.formats[$schemaFormat];
+ if (!($format && $format.compare)) {
+ out += ' ' + ($valid) + ' = true; ';
+ return out;
+ }
+ var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare';
+ }
+ var $isMax = $keyword == 'formatMaximum',
+ $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum'),
+ $schemaExcl = it.schema[$exclusiveKeyword],
+ $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data,
+ $op = $isMax ? '<' : '>',
+ $result = 'result' + $lvl;
+ var $isData = it.opts.v5 && $schema && $schema.$data,
+ $schemaValue;
+ if ($isData) {
+ out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';
+ $schemaValue = 'schema' + $lvl;
+ } else {
+ $schemaValue = $schema;
+ }
+ if ($isDataExcl) {
+ var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),
+ $exclusive = 'exclusive' + $lvl,
+ $opExpr = 'op' + $lvl,
+ $opStr = '\' + ' + $opExpr + ' + \'';
+ out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';
+ $schemaValueExcl = 'schemaExcl' + $lvl;
+ out += ' if (typeof ' + ($schemaValueExcl) + ' != \'boolean\' && ' + ($schemaValueExcl) + ' !== undefined) { ' + ($valid) + ' = false; ';
+ var $errorKeyword = $exclusiveKeyword;
+ var $$outStack = $$outStack || [];
+ $$outStack.push(out);
+ out = ''; /* istanbul ignore else */
+ if (it.createErrors !== false) {
+ out += ' { keyword: \'' + ($errorKeyword || '_formatExclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';
+ if (it.opts.messages !== false) {
+ out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' ';
+ }
+ if (it.opts.verbose) {
+ out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
+ }
+ out += ' } ';
+ } else {
+ out += ' {} ';
+ }
+ var __err = out;
+ out = $$outStack.pop();
+ if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
+ if (it.async) {
+ out += ' throw new ValidationError([' + (__err) + ']); ';
+ } else {
+ out += ' validate.errors = [' + (__err) + ']; return false; ';
+ }
+ } else {
+ out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
+ }
+ out += ' } ';
+ if ($breakOnError) {
+ $closingBraces += '}';
+ out += ' else { ';
+ }
+ if ($isData) {
+ out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
+ $closingBraces += '}';
+ }
+ if ($isDataFormat) {
+ out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
+ $closingBraces += '}';
+ }
+ out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ', ';
+ if ($isData) {
+ out += '' + ($schemaValue);
+ } else {
+ out += '' + (it.util.toQuotedString($schema));
+ }
+ out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; var ' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true; if (' + ($valid) + ' === undefined) { ' + ($valid) + ' = ' + ($exclusive) + ' ? ' + ($result) + ' ' + ($op) + ' 0 : ' + ($result) + ' ' + ($op) + '= 0; } if (!' + ($valid) + ') var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';';
+ } else {
+ var $exclusive = $schemaExcl === true,
+ $opStr = $op;
+ if (!$exclusive) $opStr += '=';
+ var $opExpr = '\'' + $opStr + '\'';
+ if ($isData) {
+ out += ' if (' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'string\') ' + ($valid) + ' = false; else { ';
+ $closingBraces += '}';
+ }
+ if ($isDataFormat) {
+ out += ' if (!' + ($compare) + ') ' + ($valid) + ' = true; else { ';
+ $closingBraces += '}';
+ }
+ out += ' var ' + ($result) + ' = ' + ($compare) + '(' + ($data) + ', ';
+ if ($isData) {
+ out += '' + ($schemaValue);
+ } else {
+ out += '' + (it.util.toQuotedString($schema));
+ }
+ out += ' ); if (' + ($result) + ' === undefined) ' + ($valid) + ' = false; if (' + ($valid) + ' === undefined) ' + ($valid) + ' = ' + ($result) + ' ' + ($op);
+ if (!$exclusive) {
+ out += '=';
+ }
+ out += ' 0;';
+ }
+ out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { ';
+ var $errorKeyword = $keyword;
+ var $$outStack = $$outStack || [];
+ $$outStack.push(out);
+ out = ''; /* istanbul ignore else */
+ if (it.createErrors !== false) {
+ out += ' { keyword: \'' + ($errorKeyword || '_formatLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ';
+ if ($isData) {
+ out += '' + ($schemaValue);
+ } else {
+ out += '' + (it.util.toQuotedString($schema));
+ }
+ out += ' , exclusive: ' + ($exclusive) + ' } ';
+ if (it.opts.messages !== false) {
+ out += ' , message: \'should be ' + ($opStr) + ' "';
+ if ($isData) {
+ out += '\' + ' + ($schemaValue) + ' + \'';
+ } else {
+ out += '' + (it.util.escapeQuotes($schema));
+ }
+ out += '"\' ';
+ }
+ if (it.opts.verbose) {
+ out += ' , schema: ';
+ if ($isData) {
+ out += 'validate.schema' + ($schemaPath);
+ } else {
+ out += '' + (it.util.toQuotedString($schema));
+ }
+ out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
+ }
+ out += ' } ';
+ } else {
+ out += ' {} ';
+ }
+ var __err = out;
+ out = $$outStack.pop();
+ if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
+ if (it.async) {
+ out += ' throw new ValidationError([' + (__err) + ']); ';
+ } else {
+ out += ' validate.errors = [' + (__err) + ']; return false; ';
+ }
+ } else {
+ out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
+ }
+ out += '}';
+ return out;
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/patternRequired.js b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/patternRequired.js
new file mode 100644
index 0000000000..196443aefe
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/patternRequired.js
@@ -0,0 +1,52 @@
+'use strict';
+module.exports = function generate_patternRequired(it, $keyword) {
+ var out = ' ';
+ var $lvl = it.level;
+ var $dataLvl = it.dataLevel;
+ var $schema = it.schema[$keyword];
+ var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
+ var $breakOnError = !it.opts.allErrors;
+ var $errorKeyword;
+ var $data = 'data' + ($dataLvl || '');
+ var $valid = 'valid' + $lvl;
+ var $key = 'key' + $lvl,
+ $matched = 'patternMatched' + $lvl,
+ $closingBraces = '',
+ $ownProperties = it.opts.ownProperties;
+ out += 'var ' + ($valid) + ' = true;';
+ var arr1 = $schema;
+ if (arr1) {
+ var $pProperty, i1 = -1,
+ l1 = arr1.length - 1;
+ while (i1 < l1) {
+ $pProperty = arr1[i1 += 1];
+ out += ' var ' + ($matched) + ' = false; for (var ' + ($key) + ' in ' + ($data) + ') { ';
+ if ($ownProperties) {
+ out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
+ }
+ out += ' ' + ($matched) + ' = ' + (it.usePattern($pProperty)) + '.test(' + ($key) + '); if (' + ($matched) + ') break; } ';
+ var $missingPattern = it.util.escapeQuotes($pProperty);
+ out += ' if (!' + ($matched) + ') { ' + ($valid) + ' = false; var err = '; /* istanbul ignore else */
+ if (it.createErrors !== false) {
+ out += ' { keyword: \'' + ($errorKeyword || 'patternRequired') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingPattern: \'' + ($missingPattern) + '\' } ';
+ if (it.opts.messages !== false) {
+ out += ' , message: \'should have property matching pattern \\\'' + ($missingPattern) + '\\\'\' ';
+ }
+ if (it.opts.verbose) {
+ out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
+ }
+ out += ' } ';
+ } else {
+ out += ' {} ';
+ }
+ out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';
+ if ($breakOnError) {
+ $closingBraces += '}';
+ out += ' else { ';
+ }
+ }
+ }
+ out += '' + ($closingBraces);
+ return out;
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/switch.js b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/switch.js
new file mode 100644
index 0000000000..6bef000ad4
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dotjs/switch.js
@@ -0,0 +1,129 @@
+'use strict';
+module.exports = function generate_switch(it, $keyword) {
+ var out = ' ';
+ var $lvl = it.level;
+ var $dataLvl = it.dataLevel;
+ var $schema = it.schema[$keyword];
+ var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
+ var $breakOnError = !it.opts.allErrors;
+ var $errorKeyword;
+ var $data = 'data' + ($dataLvl || '');
+ var $valid = 'valid' + $lvl;
+ var $errs = 'errs__' + $lvl;
+ var $it = it.util.copy(it);
+ var $closingBraces = '';
+ $it.level++;
+ var $nextValid = 'valid' + $it.level;
+ var $ifPassed = 'ifPassed' + it.level,
+ $currentBaseId = $it.baseId,
+ $shouldContinue;
+ out += 'var ' + ($ifPassed) + ';';
+ var arr1 = $schema;
+ if (arr1) {
+ var $sch, $caseIndex = -1,
+ l1 = arr1.length - 1;
+ while ($caseIndex < l1) {
+ $sch = arr1[$caseIndex += 1];
+ if ($caseIndex && !$shouldContinue) {
+ out += ' if (!' + ($ifPassed) + ') { ';
+ $closingBraces += '}';
+ }
+ if ($sch.if && it.util.schemaHasRules($sch.if, it.RULES.all)) {
+ out += ' var ' + ($errs) + ' = errors; ';
+ var $wasComposite = it.compositeRule;
+ it.compositeRule = $it.compositeRule = true;
+ $it.createErrors = false;
+ $it.schema = $sch.if;
+ $it.schemaPath = $schemaPath + '[' + $caseIndex + '].if';
+ $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/if';
+ out += ' ' + (it.validate($it)) + ' ';
+ $it.baseId = $currentBaseId;
+ $it.createErrors = true;
+ it.compositeRule = $it.compositeRule = $wasComposite;
+ out += ' ' + ($ifPassed) + ' = valid' + ($it.level) + '; if (' + ($ifPassed) + ') { ';
+ if (typeof $sch.then == 'boolean') {
+ if ($sch.then === false) {
+ var $$outStack = $$outStack || [];
+ $$outStack.push(out);
+ out = ''; /* istanbul ignore else */
+ if (it.createErrors !== false) {
+ out += ' { keyword: \'' + ($errorKeyword || 'switch') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { caseIndex: ' + ($caseIndex) + ' } ';
+ if (it.opts.messages !== false) {
+ out += ' , message: \'should pass "switch" keyword validation\' ';
+ }
+ if (it.opts.verbose) {
+ out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
+ }
+ out += ' } ';
+ } else {
+ out += ' {} ';
+ }
+ var __err = out;
+ out = $$outStack.pop();
+ if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
+ if (it.async) {
+ out += ' throw new ValidationError([' + (__err) + ']); ';
+ } else {
+ out += ' validate.errors = [' + (__err) + ']; return false; ';
+ }
+ } else {
+ out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
+ }
+ }
+ out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ } else {
+ $it.schema = $sch.then;
+ $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
+ $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';
+ out += ' ' + (it.validate($it)) + ' ';
+ $it.baseId = $currentBaseId;
+ }
+ out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } } ';
+ } else {
+ out += ' ' + ($ifPassed) + ' = true; ';
+ if (typeof $sch.then == 'boolean') {
+ if ($sch.then === false) {
+ var $$outStack = $$outStack || [];
+ $$outStack.push(out);
+ out = ''; /* istanbul ignore else */
+ if (it.createErrors !== false) {
+ out += ' { keyword: \'' + ($errorKeyword || 'switch') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { caseIndex: ' + ($caseIndex) + ' } ';
+ if (it.opts.messages !== false) {
+ out += ' , message: \'should pass "switch" keyword validation\' ';
+ }
+ if (it.opts.verbose) {
+ out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';
+ }
+ out += ' } ';
+ } else {
+ out += ' {} ';
+ }
+ var __err = out;
+ out = $$outStack.pop();
+ if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */
+ if (it.async) {
+ out += ' throw new ValidationError([' + (__err) + ']); ';
+ } else {
+ out += ' validate.errors = [' + (__err) + ']; return false; ';
+ }
+ } else {
+ out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
+ }
+ }
+ out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ } else {
+ $it.schema = $sch.then;
+ $it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
+ $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/then';
+ out += ' ' + (it.validate($it)) + ' ';
+ $it.baseId = $currentBaseId;
+ }
+ }
+ $shouldContinue = $sch.continue
+ }
+ }
+ out += '' + ($closingBraces) + 'var ' + ($valid) + ' = valid' + ($it.level) + '; ';
+ out = it.util.cleanUpCode(out);
+ return out;
+}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/dynamicDefaults.js b/tools/eslint/node_modules/ajv-keywords/keywords/dynamicDefaults.js
new file mode 100644
index 0000000000..e6766d1211
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/dynamicDefaults.js
@@ -0,0 +1,68 @@
+'use strict';
+
+var sequences = {};
+
+var DEFAULTS = {
+ timestamp: function() { return Date.now(); },
+ datetime: function() { return (new Date).toISOString(); },
+ date: function() { return (new Date).toISOString().slice(0, 10); },
+ time: function() { return (new Date).toISOString().slice(11); },
+ random: function() { return Math.random(); },
+ randomint: function (args) {
+ var limit = args && args.max || 2;
+ return function() { return Math.floor(Math.random() * limit); };
+ },
+ seq: function (args) {
+ var name = args && args.name || '';
+ sequences[name] = sequences[name] || 0;
+ return function() { return sequences[name]++; };
+ }
+};
+
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ compile: function (schema, parentSchema, it) {
+ var funcs = {};
+
+ for (var key in schema) {
+ var d = schema[key];
+ var func = getDefault(typeof d == 'string' ? d : d.func);
+ funcs[key] = func.length ? func(d.args) : func;
+ }
+
+ return it.opts.useDefaults && !it.compositeRule
+ ? assignDefaults
+ : noop;
+
+ function assignDefaults(data) {
+ for (var prop in schema)
+ if (data[prop] === undefined) data[prop] = funcs[prop]();
+ return true;
+ }
+
+ function noop() { return true; }
+ },
+ DEFAULTS: DEFAULTS,
+ metaSchema: {
+ type: 'object',
+ additionalProperties: {
+ type: ['string', 'object'],
+ additionalProperties: false,
+ required: ['func', 'args'],
+ properties: {
+ func: { type: 'string' },
+ args: { type: 'object' }
+ }
+ }
+ }
+ };
+
+ ajv.addKeyword('dynamicDefaults', defFunc.definition);
+ return ajv;
+
+ function getDefault(d) {
+ var def = DEFAULTS[d];
+ if (def) return def;
+ throw new Error('invalid "dynamicDefaults" keyword property value: ' + d);
+ }
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/formatMaximum.js b/tools/eslint/node_modules/ajv-keywords/keywords/formatMaximum.js
new file mode 100644
index 0000000000..e7daabf85b
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/formatMaximum.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./_formatLimit')('Maximum');
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/formatMinimum.js b/tools/eslint/node_modules/ajv-keywords/keywords/formatMinimum.js
new file mode 100644
index 0000000000..eddd6e404b
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/formatMinimum.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./_formatLimit')('Minimum');
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/if.js b/tools/eslint/node_modules/ajv-keywords/keywords/if.js
new file mode 100644
index 0000000000..014b0dc0b5
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/if.js
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ if (!ajv._opts.v5) console.warn('keywords if/then/else require v5 option');
+
+ defFunc.definition = {
+ macro: function (schema, parentSchema) {
+ if (parentSchema.then === undefined)
+ throw new Error('keyword "then" is absent');
+ var cases = [ { 'if': schema, 'then': parentSchema.then } ];
+ if (parentSchema.else !== undefined)
+ cases[1] = { 'then': parentSchema.else };
+ return { switch: cases };
+ }
+ };
+
+ ajv.addKeyword('if', defFunc.definition);
+ ajv.addKeyword('then');
+ ajv.addKeyword('else');
+ return ajv;
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/index.js b/tools/eslint/node_modules/ajv-keywords/keywords/index.js
index 246d661c3e..931aa6ad39 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/index.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/index.js
@@ -1,9 +1,18 @@
'use strict';
module.exports = {
- 'typeof': require('./typeof'),
'instanceof': require('./instanceof'),
- range: require('./range'),
propertyNames: require('./propertyNames'),
- regexp: require('./regexp')
+ range: require('./range'),
+ regexp: require('./regexp'),
+ 'typeof': require('./typeof'),
+ dynamicDefaults: require('./dynamicDefaults'),
+ 'if': require('./if'),
+ prohibited: require('./prohibited'),
+ deepProperties: require('./deepProperties'),
+ deepRequired: require('./deepRequired')
+ // formatMinimum: require('./formatMinimum'),
+ // formatMaximum: require('./formatMaximum'),
+ // patternRequired: require('./patternRequired'),
+ // 'switch': require('./switch')
};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/instanceof.js b/tools/eslint/node_modules/ajv-keywords/keywords/instanceof.js
index 15b87173af..d02906032e 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/instanceof.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/instanceof.js
@@ -1,7 +1,5 @@
'use strict';
-module.exports = defFunc;
-
var CONSTRUCTORS = {
Object: Object,
Array: Array,
@@ -12,44 +10,45 @@ var CONSTRUCTORS = {
RegExp: RegExp
};
-/* istanbul ignore else */
-if (typeof Buffer != 'undefined')
- CONSTRUCTORS.Buffer = Buffer;
+module.exports = function defFunc(ajv) {
+ /* istanbul ignore else */
+ if (typeof Buffer != 'undefined')
+ CONSTRUCTORS.Buffer = Buffer;
+
+ defFunc.definition = {
+ compile: function (schema) {
+ if (typeof schema == 'string') {
+ var Constructor = getConstructor(schema);
+ return function (data) {
+ return data instanceof Constructor;
+ };
+ }
-var definition = defFunc.definition = {
- compile: function (schema) {
- if (typeof schema == 'string') {
- var Constructor = getConstructor(schema);
+ var constructors = schema.map(getConstructor);
return function (data) {
- return data instanceof Constructor;
+ for (var i=0; i<constructors.length; i++)
+ if (data instanceof constructors[i]) return true;
+ return false;
};
+ },
+ CONSTRUCTORS: CONSTRUCTORS,
+ metaSchema: {
+ anyOf: [
+ { type: 'string' },
+ {
+ type: 'array',
+ items: { type: 'string' }
+ }
+ ]
}
+ };
- var constructors = schema.map(getConstructor);
- return function (data) {
- for (var i=0; i<constructors.length; i++)
- if (data instanceof constructors[i]) return true;
- return false;
- };
- },
- CONSTRUCTORS: CONSTRUCTORS,
- metaSchema: {
- anyOf: [
- { type: 'string' },
- {
- type: 'array',
- items: { type: 'string' }
- }
- ]
+ ajv.addKeyword('instanceof', defFunc.definition);
+ return ajv;
+
+ function getConstructor(c) {
+ var Constructor = CONSTRUCTORS[c];
+ if (Constructor) return Constructor;
+ throw new Error('invalid "instanceof" keyword value ' + c);
}
};
-
-function defFunc(ajv) {
- ajv.addKeyword('instanceof', definition);
-}
-
-function getConstructor(c) {
- var Constructor = CONSTRUCTORS[c];
- if (Constructor) return Constructor;
- throw new Error('invalid "instanceof" keyword value');
-}
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/patternRequired.js b/tools/eslint/node_modules/ajv-keywords/keywords/patternRequired.js
new file mode 100644
index 0000000000..f3f4ee903a
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/patternRequired.js
@@ -0,0 +1,24 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ if (ajv.RULES.keywords.patternRequired)
+ return console.warn('Keyword patternRequired is already defined');
+
+ defFunc.definition = {
+ type: 'object',
+ inline: require('./dotjs/patternRequired'),
+ statements: true,
+ errors: 'full',
+ metaSchema: {
+ type: 'array',
+ items: {
+ type: 'string',
+ format: 'regex'
+ },
+ uniqueItems: true
+ }
+ };
+
+ ajv.addKeyword('patternRequired', defFunc.definition);
+ return ajv;
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/prohibited.js b/tools/eslint/node_modules/ajv-keywords/keywords/prohibited.js
new file mode 100644
index 0000000000..57172af15f
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/prohibited.js
@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ type: 'object',
+ macro: function (schema) {
+ if (schema.length == 0) return {};
+ if (schema.length == 1) return { not: { required: schema } };
+ var schemas = schema.map(function (prop) {
+ return { required: [prop] };
+ });
+ return { not: { anyOf: schemas } };
+ },
+ metaSchema: {
+ type: 'array',
+ items: {
+ type: 'string'
+ }
+ }
+ };
+
+ ajv.addKeyword('prohibited', defFunc.definition);
+ return ajv;
+};
+
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/propertyNames.js b/tools/eslint/node_modules/ajv-keywords/keywords/propertyNames.js
index 35f4967121..987f236c06 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/propertyNames.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/propertyNames.js
@@ -1,7 +1,7 @@
'use strict';
-module.exports = function (ajv) {
- ajv.addKeyword('propertyNames', {
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
type: 'object',
compile: function(schema) {
var validate = ajv.compile(schema);
@@ -44,5 +44,8 @@ module.exports = function (ajv) {
: 'http://json-schema.org/draft-04/schema#'
},
errors: true
- });
+ };
+
+ ajv.addKeyword('propertyNames', defFunc.definition);
+ return ajv;
};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/range.js b/tools/eslint/node_modules/ajv-keywords/keywords/range.js
index 88b181bfc8..3f25ac24fc 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/range.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/range.js
@@ -1,40 +1,39 @@
'use strict';
-module.exports = defFunc;
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ type: 'number',
+ macro: function (schema, parentSchema) {
+ var min = schema[0]
+ , max = schema[1]
+ , exclusive = parentSchema.exclusiveRange;
-var definition = defFunc.definition = {
- type: 'number',
- macro: function (schema, parentSchema) {
- var min = schema[0]
- , max = schema[1]
- , exclusive = parentSchema.exclusiveRange;
+ validateRangeSchema(min, max, exclusive);
- validateRangeSchema(min, max, exclusive);
+ return {
+ minimum: min,
+ exclusiveMinimum: exclusive,
+ maximum: max,
+ exclusiveMaximum: exclusive
+ };
+ },
+ metaSchema: {
+ type: 'array',
+ minItems: 2,
+ maxItems: 2,
+ items: { type: 'number' }
+ }
+ };
- return {
- minimum: min,
- exclusiveMinimum: exclusive,
- maximum: max,
- exclusiveMaximum: exclusive
- };
- },
- metaSchema: {
- type: 'array',
- minItems: 2,
- maxItems: 2,
- items: { type: 'number' }
- }
-};
-
-function defFunc(ajv) {
- ajv.addKeyword('range', definition);
+ ajv.addKeyword('range', defFunc.definition);
ajv.addKeyword('exclusiveRange');
-}
+ return ajv;
-function validateRangeSchema(min, max, exclusive) {
- if (exclusive !== undefined && typeof exclusive != 'boolean')
- throw new Error('Invalid schema for exclusiveRange keyword, should be boolean');
+ function validateRangeSchema(min, max, exclusive) {
+ if (exclusive !== undefined && typeof exclusive != 'boolean')
+ throw new Error('Invalid schema for exclusiveRange keyword, should be boolean');
- if (min > max || (exclusive && min == max))
- throw new Error('There are no numbers in range');
-}
+ if (min > max || (exclusive && min == max))
+ throw new Error('There are no numbers in range');
+ }
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/regexp.js b/tools/eslint/node_modules/ajv-keywords/keywords/regexp.js
index a1acdd0c2b..84efbd666a 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/regexp.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/regexp.js
@@ -1,7 +1,7 @@
'use strict';
-module.exports = function (ajv) {
- ajv.addKeyword('regexp', {
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
type: 'string',
inline: function (it, keyword, schema) {
return getRegExp() + '.test(data' + (it.dataLevel || '') + ')';
@@ -29,5 +29,8 @@ module.exports = function (ajv) {
required: ['pattern'],
additionalProperties: false
}
- });
+ };
+
+ ajv.addKeyword('regexp', defFunc.definition);
+ return ajv;
};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/switch.js b/tools/eslint/node_modules/ajv-keywords/keywords/switch.js
new file mode 100644
index 0000000000..8c22bf8b9f
--- /dev/null
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/switch.js
@@ -0,0 +1,39 @@
+'use strict';
+
+module.exports = function defFunc(ajv) {
+ if (ajv.RULES.keywords.switch)
+ return console.warn('Keyword switch is already defined');
+
+ var metaSchemaUri = ajv._opts.v5
+ ? 'https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#'
+ : 'http://json-schema.org/draft-04/schema#';
+
+ defFunc.definition = {
+ inline: require('./dotjs/switch'),
+ statements: true,
+ errors: 'full',
+ metaSchema: {
+ type: 'array',
+ items: {
+ required: [ 'then' ],
+ properties: {
+ 'if': { $ref: metaSchemaUri },
+ 'then': {
+ anyOf: [
+ { type: 'boolean' },
+ { $ref: metaSchemaUri }
+ ]
+ },
+ 'continue': { type: 'boolean' }
+ },
+ additionalProperties: false,
+ dependencies: {
+ 'continue': [ 'if' ]
+ }
+ }
+ }
+ };
+
+ ajv.addKeyword('switch', defFunc.definition);
+ return ajv;
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/keywords/typeof.js b/tools/eslint/node_modules/ajv-keywords/keywords/typeof.js
index 2c9348877b..3a3574d83f 100644
--- a/tools/eslint/node_modules/ajv-keywords/keywords/typeof.js
+++ b/tools/eslint/node_modules/ajv-keywords/keywords/typeof.js
@@ -1,33 +1,32 @@
'use strict';
-module.exports = defFunc;
-
var KNOWN_TYPES = ['undefined', 'string', 'number', 'object', 'function', 'boolean', 'symbol'];
-var definition = defFunc.definition = {
- inline: function (it, keyword, schema) {
- var data = 'data' + (it.dataLevel || '');
- if (typeof schema == 'string') return 'typeof ' + data + ' == "' + schema + '"';
- schema = 'validate.schema' + it.schemaPath + '.' + keyword;
- return schema + '.indexOf(typeof ' + data + ') >= 0';
- },
- metaSchema: {
- anyOf: [
- {
- type: 'string',
- enum: KNOWN_TYPES
- },
- {
- type: 'array',
- items: {
+module.exports = function defFunc(ajv) {
+ defFunc.definition = {
+ inline: function (it, keyword, schema) {
+ var data = 'data' + (it.dataLevel || '');
+ if (typeof schema == 'string') return 'typeof ' + data + ' == "' + schema + '"';
+ schema = 'validate.schema' + it.schemaPath + '.' + keyword;
+ return schema + '.indexOf(typeof ' + data + ') >= 0';
+ },
+ metaSchema: {
+ anyOf: [
+ {
type: 'string',
enum: KNOWN_TYPES
+ },
+ {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: KNOWN_TYPES
+ }
}
- }
- ]
- }
-};
+ ]
+ }
+ };
-function defFunc(ajv) {
- ajv.addKeyword('typeof', definition);
-}
+ ajv.addKeyword('typeof', defFunc.definition);
+ return ajv;
+};
diff --git a/tools/eslint/node_modules/ajv-keywords/package.json b/tools/eslint/node_modules/ajv-keywords/package.json
index 8dbe70ffa8..8a03a0cf91 100644
--- a/tools/eslint/node_modules/ajv-keywords/package.json
+++ b/tools/eslint/node_modules/ajv-keywords/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "ajv-keywords@>=1.0.0 <2.0.0",
- "_id": "ajv-keywords@1.1.1",
+ "_id": "ajv-keywords@1.5.0",
"_inCache": true,
"_location": "/ajv-keywords",
- "_nodeVersion": "4.4.4",
+ "_nodeVersion": "4.6.1",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/ajv-keywords-1.1.1.tgz_1474741068795_0.7051337675657123"
+ "tmp": "tmp/ajv-keywords-1.5.0.tgz_1482960345081_0.35162315983325243"
},
"_npmUser": {
"name": "esp",
"email": "e.poberezkin@me.com"
},
- "_npmVersion": "2.15.1",
+ "_npmVersion": "2.15.9",
"_phantomChildren": {},
"_requested": {
"raw": "ajv-keywords@^1.0.0",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/table"
],
- "_resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz",
- "_shasum": "02550bc605a3e576041565628af972e06c549d50",
+ "_resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.0.tgz",
+ "_shasum": "c11e6859eafff83e0dafc416929472eca946aa2c",
"_shrinkwrap": null,
"_spec": "ajv-keywords@^1.0.0",
"_where": "/Users/trott/io.js/tools/node_modules/table",
@@ -54,21 +54,30 @@
"dependencies": {},
"description": "Custom JSON-Schema keywords for ajv validator",
"devDependencies": {
- "ajv": "^4.7.4",
+ "ajv": "^4.10.0",
"ajv-pack": "^0.2.0",
"chai": "^3.5.0",
"coveralls": "^2.11.9",
- "eslint": "^2.11.1",
+ "dot": "^1.1.1",
+ "eslint": "^3.6.0",
+ "glob": "^7.1.1",
"istanbul": "^0.4.3",
- "mocha": "^2.5.3",
- "pre-commit": "^1.1.3"
+ "js-beautify": "^1.6.4",
+ "json-schema-test": "^1.2.1",
+ "mocha": "^3.0.2",
+ "pre-commit": "^1.1.3",
+ "uuid": "^3.0.1"
},
"directories": {},
"dist": {
- "shasum": "02550bc605a3e576041565628af972e06c549d50",
- "tarball": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz"
+ "shasum": "c11e6859eafff83e0dafc416929472eca946aa2c",
+ "tarball": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.0.tgz"
},
- "gitHead": "0d3270f022b24be277952ae9ffdab533464412ed",
+ "files": [
+ "index.js",
+ "keywords"
+ ],
+ "gitHead": "0677af4020d8aee0e322b78932662a2fd59bd93f",
"homepage": "https://github.com/epoberezkin/ajv-keywords#readme",
"keywords": [
"JSON-Schema",
@@ -86,7 +95,7 @@
"name": "ajv-keywords",
"optionalDependencies": {},
"peerDependencies": {
- "ajv": ">=4.2.0"
+ "ajv": ">=4.10.0"
},
"readme": "ERROR: No README data found!",
"repository": {
@@ -94,10 +103,12 @@
"url": "git+https://github.com/epoberezkin/ajv-keywords.git"
},
"scripts": {
+ "build": "node node_modules/ajv/scripts/compile-dots.js node_modules/ajv/lib keywords",
"eslint": "eslint index.js keywords/*.js",
- "test": "npm run eslint && npm run test-cov",
+ "prepublish": "npm run build",
+ "test": "npm run build && npm run eslint && npm run test-cov",
"test-cov": "istanbul cover -x 'spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec",
"test-spec": "mocha spec/*.spec.js -R spec"
},
- "version": "1.1.1"
+ "version": "1.5.0"
}
diff --git a/tools/eslint/node_modules/ajv/README.md b/tools/eslint/node_modules/ajv/README.md
index 04e226ede0..2d086258db 100644
--- a/tools/eslint/node_modules/ajv/README.md
+++ b/tools/eslint/node_modules/ajv/README.md
@@ -5,8 +5,15 @@ The fastest JSON Schema validator for node.js and browser. Supports [v5 proposal
[![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv)
[![npm version](https://badge.fury.io/js/ajv.svg)](https://www.npmjs.com/package/ajv)
+[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)
[![Code Climate](https://codeclimate.com/github/epoberezkin/ajv/badges/gpa.svg)](https://codeclimate.com/github/epoberezkin/ajv)
[![Coverage Status](https://coveralls.io/repos/epoberezkin/ajv/badge.svg?branch=master&service=github)](https://coveralls.io/github/epoberezkin/ajv?branch=master)
+[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)
+
+
+__Please note__: You can start using NEW beta version [5.0.1 (change log)](https://github.com/epoberezkin/ajv/releases/tag/5.0.1-beta.0) with the support of draft 6 (not officially published yet): `npm install ajv@^5.0.1-beta`.
+
+Also see [docs](https://github.com/epoberezkin/ajv/tree/b82905dc771193112c9c016f08c7fadb6ec3e896) for 5.0.1.
## Contents
@@ -87,6 +94,12 @@ Currently Ajv is the only validator that passes all the tests from [JSON Schema
npm install ajv
```
+To install a stable beta version [5.0.0](https://github.com/epoberezkin/ajv/releases/tag/5.0.0-beta.1):
+
+```
+npm install ajv@^5.0.0-beta
+```
+
## <a name="usage"></a>Getting started
@@ -212,6 +225,8 @@ There are two modes of format validation: `fast` and `full`. This mode affects f
You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method.
+The option `unknownFormats` allows to change the behaviour in case an unknown format is encountered - Ajv can either ignore them (default now) or fail schema compilation (will be the default in 5.0.0).
+
You can find patterns used for format validation and the sources that were used in [formats.js](https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js).
@@ -891,10 +906,16 @@ Custom formats can be also added via `formats` option.
Add custom validation keyword to Ajv instance.
-Keyword should be a valid JavaScript identifier.
-
Keyword should be different from all standard JSON schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance.
+Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`.
+It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions.
+
+Example Keywords:
+- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions.
+- `"example"`: valid, but not recommended as it could collide with future versions of JSON schema etc.
+- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword
+
Keyword definition is an object with the following properties:
- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types.
@@ -915,6 +936,20 @@ __Please note__: If the keyword is validating data type that is different from t
See [Defining custom keywords](#defining-custom-keywords) for more details.
+##### .getKeyword(String keyword) -&gt; Object|Boolean
+
+Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown.
+
+
+##### .removeKeyword(String keyword)
+
+Removes custom or pre-defined keyword so you can redefine them.
+
+While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results.
+
+__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again.
+
+
##### .errorsText([Array&lt;Object&gt; errors [, Object options]]) -&gt; String
Returns the text with all errors in a String.
@@ -937,6 +972,7 @@ Defaults:
unicode: true,
format: 'fast',
formats: {},
+ unknownFormats: 'ignore',
schemas: {},
// referenced schema options:
missingRefs: true,
@@ -976,6 +1012,10 @@ Defaults:
- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters.
- _format_: formats validation mode ('fast' by default). Pass 'full' for more correct and slow validation or `false` not to validate formats at all. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode.
- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method.
+- _unknownFormats_: handling of unknown formats. Option values:
+ - `true` (will be default in 5.0.0) - if the unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [v5 $data reference](#data-reference) and it is unknown the validation will fail.
+ - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if some other unknown format is used. If `format` keyword value is [v5 $data reference](#data-reference) and it is not in this array the validation will fail.
+ - `"ignore"` (default now) - to log warning during schema compilation and always pass validation. This option is not recommended, as it allows to mistype format name. This behaviour is required by JSON-schema specification.
- _schemas_: an array or object of schemas that will be added to the instance. If the order is important, pass array. In this case schemas must have IDs in them. Otherwise the object can be passed - `addSchema(value, key)` will be called for each schema in this object.
@@ -1109,6 +1149,7 @@ Properties of `params` object in errors depend on the keyword that failed valida
- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services
- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition
- [jsoneditor](https://github.com/josdejong/jsoneditor) - A web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org
+- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - A web tool to validate JSON/YAML document against a single JSON-schema http://jsonschemalint.com
- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for node.js
- [table](https://github.com/gajus/table) - formats data into a string table
- [ripple-lib](https://github.com/ripple/ripple-lib) - A JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser
@@ -1146,7 +1187,9 @@ Please see [Contributing guidelines](https://github.com/epoberezkin/ajv/blob/mas
See https://github.com/epoberezkin/ajv/releases
-__Please note__: [Changes in version 4.6.0](https://github.com/epoberezkin/ajv/releases/tag/4.6.0).
+__Please note__: [Changes in version 5.0.1-beta](https://github.com/epoberezkin/ajv/releases/tag/5.0.1-beta.0).
+
+[Changes in version 4.6.0](https://github.com/epoberezkin/ajv/releases/tag/4.6.0).
[Changes in version 4.0.0](https://github.com/epoberezkin/ajv/releases/tag/4.0.0).
diff --git a/tools/eslint/node_modules/ajv/dist/ajv.bundle.js b/tools/eslint/node_modules/ajv/dist/ajv.bundle.js
index 82cdd975d5..3d1911a2bd 100644
--- a/tools/eslint/node_modules/ajv/dist/ajv.bundle.js
+++ b/tools/eslint/node_modules/ajv/dist/ajv.bundle.js
@@ -93,7 +93,8 @@ function checkAsyncFunction(opts, required) {
function getRegenerator(opts, required) {
try {
if (!regenerator) {
- regenerator = require('' + 'regenerator');
+ var name = 'regenerator';
+ regenerator = require(name);
regenerator.runtime();
}
if (!opts.async || opts.async === true)
@@ -114,7 +115,10 @@ function regeneratorTranspile(code) {
function getNodent(opts, required) {
/* jshint evil: true */
try {
- if (!nodent) nodent = require('' + 'nodent')({ log: false, dontInstallRequireHook: true });
+ if (!nodent) {
+ var name = 'nodent';
+ nodent = require(name)({ log: false, dontInstallRequireHook: true });
+ }
if (opts.async != 'es7') {
if (opts.async && opts.async !== true) console.warn('nodent transpiles only es7 async functions');
opts.async = 'es7';
@@ -275,6 +279,8 @@ module.exports = {
},{"../dotjs/_limit":14,"../dotjs/_limitItems":15,"../dotjs/_limitLength":16,"../dotjs/_limitProperties":17,"../dotjs/allOf":18,"../dotjs/anyOf":19,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":35,"../dotjs/validate":36}],4:[function(require,module,exports){
'use strict';
+/*eslint complexity: 0*/
+
module.exports = function equal(a, b) {
if (a === b) return true;
@@ -293,11 +299,20 @@ module.exports = function equal(a, b) {
if (a && b && typeof a === 'object' && typeof b === 'object') {
var keys = Object.keys(a);
-
if (keys.length !== Object.keys(b).length) return false;
+ var dateA = a instanceof Date
+ , dateB = b instanceof Date;
+ if (dateA && dateB) return a.getTime() == b.getTime();
+ if (dateA != dateB) return false;
+
+ var regexpA = a instanceof RegExp
+ , regexpB = b instanceof RegExp;
+ if (regexpA && regexpB) return a.toString() == b.toString();
+ if (regexpA != regexpB) return false;
+
for (i = 0; i < keys.length; i++)
- if (b[keys[i]] === undefined) return false;
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
for (i = 0; i < keys.length; i++)
if(!equal(a[keys[i]], b[keys[i]])) return false;
@@ -319,8 +334,8 @@ var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
var HOSTNAME = /^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i;
var URI = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i;
var UUID = /^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;
+var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
+var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;
module.exports = formats;
@@ -482,7 +497,15 @@ var resolve = require('./resolve')
, stableStringify = require('json-stable-stringify')
, async = require('../async');
-var beautify = (function() { try { return require('' + 'js-beautify').js_beautify; } catch(e) {/*empty*/} })();
+var beautify;
+
+function loadBeautify(){
+ if (beautify === undefined) {
+ var name = 'js-beautify';
+ try { beautify = require(name).js_beautify; }
+ catch(e) { beautify = false; }
+ }
+}
var validateGenerator = require('../dotjs/validate');
@@ -589,9 +612,10 @@ function compile(schema, root, localRefs, baseId) {
sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
+ vars(defaults, defaultCode) + vars(customRules, customRuleCode)
- + sourceCode + 'return validate;';
+ + sourceCode;
if (opts.beautify) {
+ loadBeautify();
/* istanbul ignore else */
if (beautify) sourceCode = beautify(sourceCode, opts.beautify);
else console.error('"npm install js-beautify" to use beautify option');
@@ -1483,7 +1507,7 @@ module.exports = function generate__formatLimit(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -1661,7 +1685,7 @@ module.exports = function generate__limit(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -1787,7 +1811,7 @@ module.exports = function generate__limitItems(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -1865,7 +1889,7 @@ module.exports = function generate__limitLength(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -1948,7 +1972,7 @@ module.exports = function generate__limitProperties(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2024,13 +2048,15 @@ module.exports = function generate__limitProperties(it, $keyword) {
module.exports = function generate_allOf(it, $keyword) {
var out = ' ';
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
- var $currentBaseId = $it.baseId;
+ var $nextValid = 'valid' + $it.level;
+ var $currentBaseId = $it.baseId,
+ $allSchemasEmpty = true;
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1,
@@ -2038,20 +2064,25 @@ module.exports = function generate_allOf(it, $keyword) {
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
+ $allSchemasEmpty = false;
$it.schema = $sch;
$it.schemaPath = $schemaPath + '[' + $i + ']';
$it.errSchemaPath = $errSchemaPath + '/' + $i;
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
}
}
if ($breakOnError) {
- out += ' ' + ($closingBraces.slice(0, -1));
+ if ($allSchemasEmpty) {
+ out += ' if (true) { ';
+ } else {
+ out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
+ }
}
out = it.util.cleanUpCode(out);
return out;
@@ -2064,7 +2095,7 @@ module.exports = function generate_anyOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2074,6 +2105,7 @@ module.exports = function generate_anyOf(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $noEmptySchema = $schema.every(function($sch) {
return it.util.schemaHasRules($sch, it.RULES.all);
});
@@ -2093,7 +2125,7 @@ module.exports = function generate_anyOf(it, $keyword) {
$it.errSchemaPath = $errSchemaPath + '/' + $i;
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($valid) + ' || valid' + ($it.level) + '; if (!' + ($valid) + ') { ';
+ out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
$closingBraces += '}';
}
}
@@ -2131,7 +2163,7 @@ module.exports = function generate_constant(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2186,7 +2218,7 @@ module.exports = function generate_custom(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2231,6 +2263,7 @@ module.exports = function generate_custom(it, $keyword) {
} else if ($macro) {
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
$it.schema = $ruleValidate.validate;
$it.schemaPath = '';
var $wasComposite = it.compositeRule;
@@ -2286,7 +2319,7 @@ module.exports = function generate_custom(it, $keyword) {
out += ' (' + ($ruleValidate.validate) + ') ';
}
} else if ($macro) {
- out += ' valid' + ($it.level) + ' ';
+ out += ' ' + ($nextValid) + ' ';
} else {
if ($asyncKeyword) {
if ($rDef.errors === false) {
@@ -2370,7 +2403,7 @@ module.exports = function generate_custom(it, $keyword) {
if (it.async) {
out += ' throw new ValidationError(vErrors); ';
} else {
- out += ' validate.errors = vErrors; return false ';
+ out += ' validate.errors = vErrors; return false; ';
}
}
} else {
@@ -2398,7 +2431,7 @@ module.exports = function generate_dependencies(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2407,6 +2440,7 @@ module.exports = function generate_dependencies(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $schemaDeps = {},
$propertyDeps = {};
for ($property in $schema) {
@@ -2520,7 +2554,7 @@ module.exports = function generate_dependencies(it, $keyword) {
for (var $property in $schemaDeps) {
var $sch = $schemaDeps[$property];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '[\'' + ($property) + '\'] !== undefined) { ';
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '[\'' + ($property) + '\'] !== undefined) { ';
$it.schema = $sch;
$it.schemaPath = $schemaPath + it.util.getProperty($property);
$it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
@@ -2528,7 +2562,7 @@ module.exports = function generate_dependencies(it, $keyword) {
$it.baseId = $currentBaseId;
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -2547,7 +2581,7 @@ module.exports = function generate_enum(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2561,15 +2595,16 @@ module.exports = function generate_enum(it, $keyword) {
} else {
$schemaValue = $schema;
}
- var $i = 'i' + $lvl;
+ var $i = 'i' + $lvl,
+ $vSchema = 'schema' + $lvl;
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';
}
out += 'var ' + ($valid) + ';';
if ($isData) {
out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
}
- out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<schema' + ($lvl) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', schema' + ($lvl) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
+ out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
if ($isData) {
out += ' } ';
}
@@ -2614,7 +2649,7 @@ module.exports = function generate_format(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2633,26 +2668,48 @@ module.exports = function generate_format(it, $keyword) {
} else {
$schemaValue = $schema;
}
+ var $unknownFormats = it.opts.unknownFormats,
+ $allowUnknown = Array.isArray($unknownFormats);
if ($isData) {
var $format = 'format' + $lvl;
- out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var isObject' + ($lvl) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; if (isObject' + ($lvl) + ') { var async' + ($lvl) + ' = ' + ($format) + '.async; ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';
+ out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var isObject' + ($lvl) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; if (isObject' + ($lvl) + ') { ';
+ if (it.async) {
+ out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';
+ }
+ out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';
if ($isData) {
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
}
+ out += ' (';
+ if ($unknownFormats === true || $allowUnknown) {
+ out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
+ if ($allowUnknown) {
+ out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
+ }
+ out += ') || ';
+ }
out += ' (' + ($format) + ' && !(typeof ' + ($format) + ' == \'function\' ? ';
if (it.async) {
out += ' (async' + ($lvl) + ' ? ' + (it.yieldAwait) + ' ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
} else {
out += ' ' + ($format) + '(' + ($data) + ') ';
}
- out += ' : ' + ($format) + '.test(' + ($data) + ')))) {';
+ out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
} else {
var $format = it.formats[$schema];
if (!$format) {
- if ($breakOnError) {
- out += ' if (true) { ';
+ if ($unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1)) {
+ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
+ } else {
+ if (!$allowUnknown) {
+ console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
+ if ($unknownFormats !== 'ignore') console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
+ }
+ if ($breakOnError) {
+ out += ' if (true) { ';
+ }
+ return out;
}
- return out;
}
var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
if ($isObject) {
@@ -2733,7 +2790,7 @@ module.exports = function generate_items(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2743,7 +2800,9 @@ module.exports = function generate_items(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
- var $dataNxt = $it.dataLevel = it.dataLevel + 1,
+ var $nextValid = 'valid' + $it.level;
+ var $idx = 'i' + $lvl,
+ $dataNxt = $it.dataLevel = it.dataLevel + 1,
$nextData = 'data' + $dataNxt,
$currentBaseId = it.baseId;
out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
@@ -2794,7 +2853,7 @@ module.exports = function generate_items(it, $keyword) {
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
var $passData = $data + '[' + $i + ']';
$it.schema = $sch;
$it.schemaPath = $schemaPath + '[' + $i + ']';
@@ -2810,7 +2869,7 @@ module.exports = function generate_items(it, $keyword) {
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -2820,10 +2879,10 @@ module.exports = function generate_items(it, $keyword) {
$it.schema = $additionalItems;
$it.schemaPath = it.schemaPath + '.additionalItems';
$it.errSchemaPath = it.errSchemaPath + '/additionalItems';
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var i' + ($lvl) + ' = ' + ($schema.length) + '; i' + ($lvl) + ' < ' + ($data) + '.length; i' + ($lvl) + '++) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
- var $passData = $data + '[i' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'i' + $lvl;
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
+ var $passData = $data + '[' + $idx + ']';
+ $it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -2832,11 +2891,11 @@ module.exports = function generate_items(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -2844,10 +2903,10 @@ module.exports = function generate_items(it, $keyword) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
- out += ' for (var i' + ($lvl) + ' = ' + (0) + '; i' + ($lvl) + ' < ' + ($data) + '.length; i' + ($lvl) + '++) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
- var $passData = $data + '[i' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'i' + $lvl;
+ out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
+ var $passData = $data + '[' + $idx + ']';
+ $it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -2856,11 +2915,11 @@ module.exports = function generate_items(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -2878,7 +2937,7 @@ module.exports = function generate_multipleOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2957,7 +3016,7 @@ module.exports = function generate_not(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -2965,6 +3024,7 @@ module.exports = function generate_not(it, $keyword) {
var $errs = 'errs__' + $lvl;
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
if (it.util.schemaHasRules($schema, it.RULES.all)) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
@@ -2982,7 +3042,7 @@ module.exports = function generate_not(it, $keyword) {
$it.createErrors = true;
if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = ''; /* istanbul ignore else */
@@ -3042,7 +3102,7 @@ module.exports = function generate_oneOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -3052,6 +3112,7 @@ module.exports = function generate_oneOf(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;';
var $currentBaseId = $it.baseId;
var $wasComposite = it.compositeRule;
@@ -3069,13 +3130,13 @@ module.exports = function generate_oneOf(it, $keyword) {
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
} else {
- out += ' var valid' + ($it.level) + ' = true; ';
+ out += ' var ' + ($nextValid) + ' = true; ';
}
if ($i) {
- out += ' if (valid' + ($it.level) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';
+ out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';
$closingBraces += '}';
}
- out += ' if (valid' + ($it.level) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';
+ out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';
}
}
it.compositeRule = $it.compositeRule = $wasComposite;
@@ -3120,7 +3181,7 @@ module.exports = function generate_pattern(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -3197,7 +3258,7 @@ module.exports = function generate_patternRequired(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -3251,7 +3312,7 @@ module.exports = function generate_properties(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -3261,6 +3322,7 @@ module.exports = function generate_properties(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $key = 'key' + $lvl,
$dataNxt = $it.dataLevel = it.dataLevel + 1,
$nextData = 'data' + $dataNxt;
@@ -3281,7 +3343,7 @@ module.exports = function generate_properties(it, $keyword) {
var $pgProperties = it.schema.patternGroups || {},
$pgPropertyKeys = Object.keys($pgProperties);
}
- out += 'var ' + ($errs) + ' = errors;var valid' + ($it.level) + ' = true;';
+ out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
if ($checkAdditional) {
out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
if ($ownProperties) {
@@ -3332,15 +3394,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' delete ' + ($data) + '[' + ($key) + ']; ';
} else {
var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + key' + $lvl + ' + \'';
+ var $additionalProperty = '\' + ' + $key + ' + \'';
if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
+ it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
}
if ($noAdditional) {
if ($removeAdditional) {
out += ' delete ' + ($data) + '[' + ($key) + ']; ';
} else {
- out += ' valid' + ($it.level) + ' = false; ';
+ out += ' ' + ($nextValid) + ' = false; ';
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + '/additionalProperties';
var $$outStack = $$outStack || [];
@@ -3382,9 +3444,9 @@ module.exports = function generate_properties(it, $keyword) {
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + '.additionalProperties';
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
- $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -3392,15 +3454,15 @@ module.exports = function generate_properties(it, $keyword) {
} else {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
- out += ' if (!valid' + ($it.level) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';
+ out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';
it.compositeRule = $it.compositeRule = $wasComposite;
} else {
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + '.additionalProperties';
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
- $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -3409,7 +3471,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
}
}
@@ -3420,7 +3482,7 @@ module.exports = function generate_properties(it, $keyword) {
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -3455,7 +3517,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' ' + ($code) + ' ';
} else {
if ($requiredHash && $requiredHash[$propertyKey]) {
- out += ' if (' + ($useData) + ' === undefined) { valid' + ($it.level) + ' = false; ';
+ out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = false; ';
var $currentErrorPath = it.errorPath,
$currErrSchemaPath = $errSchemaPath,
$missingProperty = it.util.escapeQuotes($propertyKey);
@@ -3500,7 +3562,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' } else { ';
} else {
if ($breakOnError) {
- out += ' if (' + ($useData) + ' === undefined) { valid' + ($it.level) + ' = true; } else { ';
+ out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = true; } else { ';
} else {
out += ' if (' + ($useData) + ' !== undefined) { ';
}
@@ -3509,7 +3571,7 @@ module.exports = function generate_properties(it, $keyword) {
}
}
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -3531,9 +3593,9 @@ module.exports = function generate_properties(it, $keyword) {
out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
}
out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -3542,15 +3604,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' else valid' + ($it.level) + ' = true; ';
+ out += ' else ' + ($nextValid) + ' = true; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -3574,9 +3636,9 @@ module.exports = function generate_properties(it, $keyword) {
out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
}
out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -3585,15 +3647,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' else valid' + ($it.level) + ' = true; ';
+ out += ' else ' + ($nextValid) + ' = true; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
var $pgMin = $pgSchema.minimum,
@@ -3761,13 +3823,14 @@ module.exports = function generate_ref(it, $keyword) {
} else if ($refVal.inline) {
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
$it.schema = $refVal.schema;
$it.schemaPath = '';
$it.errSchemaPath = $schema;
var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code);
out += ' ' + ($code) + ' ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
}
} else {
$async = $refVal.$async === true;
@@ -3822,7 +3885,7 @@ module.exports = function generate_required(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -3836,6 +3899,7 @@ module.exports = function generate_required(it, $keyword) {
} else {
$schemaValue = $schema;
}
+ var $vSchema = 'schema' + $lvl;
if (!$isData) {
if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {
var $required = [];
@@ -3862,7 +3926,7 @@ module.exports = function generate_required(it, $keyword) {
out += ' var missing' + ($lvl) + '; ';
if ($loopRequired) {
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + '; ';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
}
var $i = 'i' + $lvl,
$propertyPath = 'schema' + $lvl + '[' + $i + ']',
@@ -3874,7 +3938,7 @@ module.exports = function generate_required(it, $keyword) {
if ($isData) {
out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
}
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < schema' + ($lvl) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[schema' + ($lvl) + '[' + ($i) + ']] !== undefined; if (!' + ($valid) + ') break; } ';
+ out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined; if (!' + ($valid) + ') break; } ';
if ($isData) {
out += ' } ';
}
@@ -3970,7 +4034,7 @@ module.exports = function generate_required(it, $keyword) {
} else {
if ($loopRequired) {
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + '; ';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
}
var $i = 'i' + $lvl,
$propertyPath = 'schema' + $lvl + '[' + $i + ']',
@@ -3979,7 +4043,7 @@ module.exports = function generate_required(it, $keyword) {
it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
}
if ($isData) {
- out += ' if (schema' + ($lvl) + ' && !Array.isArray(schema' + ($lvl) + ')) { var err = '; /* istanbul ignore else */
+ out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */
if (it.createErrors !== false) {
out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
if (it.opts.messages !== false) {
@@ -3998,9 +4062,9 @@ module.exports = function generate_required(it, $keyword) {
} else {
out += ' {} ';
}
- out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (schema' + ($lvl) + ' !== undefined) { ';
+ out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';
}
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < schema' + ($lvl) + '.length; ' + ($i) + '++) { if (' + ($data) + '[schema' + ($lvl) + '[' + ($i) + ']] === undefined) { var err = '; /* istanbul ignore else */
+ out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined) { var err = '; /* istanbul ignore else */
if (it.createErrors !== false) {
out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
if (it.opts.messages !== false) {
@@ -4073,7 +4137,7 @@ module.exports = function generate_switch(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -4083,6 +4147,7 @@ module.exports = function generate_switch(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $ifPassed = 'ifPassed' + it.level,
$currentBaseId = $it.baseId,
$shouldContinue;
@@ -4109,7 +4174,7 @@ module.exports = function generate_switch(it, $keyword) {
$it.baseId = $currentBaseId;
$it.createErrors = true;
it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($ifPassed) + ' = valid' + ($it.level) + '; if (' + ($ifPassed) + ') { ';
+ out += ' ' + ($ifPassed) + ' = ' + ($nextValid) + '; if (' + ($ifPassed) + ') { ';
if (typeof $sch.then == 'boolean') {
if ($sch.then === false) {
var $$outStack = $$outStack || [];
@@ -4139,7 +4204,7 @@ module.exports = function generate_switch(it, $keyword) {
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
}
}
- out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
} else {
$it.schema = $sch.then;
$it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
@@ -4179,7 +4244,7 @@ module.exports = function generate_switch(it, $keyword) {
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
}
}
- out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
} else {
$it.schema = $sch.then;
$it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
@@ -4191,7 +4256,7 @@ module.exports = function generate_switch(it, $keyword) {
$shouldContinue = $sch.continue
}
}
- out += '' + ($closingBraces) + 'var ' + ($valid) + ' = valid' + ($it.level) + '; ';
+ out += '' + ($closingBraces) + 'var ' + ($valid) + ' = ' + ($nextValid) + '; ';
out = it.util.cleanUpCode(out);
return out;
}
@@ -4203,7 +4268,7 @@ module.exports = function generate_uniqueItems(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -4652,19 +4717,27 @@ module.exports = function generate_validate(it, $keyword) {
},{}],37:[function(require,module,exports){
'use strict';
-var IDENTIFIER = /^[a-z_$][a-z0-9_$]*$/i;
+var IDENTIFIER = /^[a-z_$][a-z0-9_$\-]*$/i;
var customRuleCode = require('./dotjs/custom');
+module.exports = {
+ add: addKeyword,
+ get: getKeyword,
+ remove: removeKeyword
+};
+
/**
* Define custom keyword
* @this Ajv
- * @param {String} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords.
+ * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).
* @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
*/
-module.exports = function addKeyword(keyword, definition) {
+function addKeyword(keyword, definition) {
+ /* jshint validthis: true */
/* eslint no-shadow: 0 */
- var self = this;
- if (this.RULES.keywords[keyword])
+ var RULES = this.RULES;
+
+ if (RULES.keywords[keyword])
throw new Error('Keyword ' + keyword + ' is already defined');
if (!IDENTIFIER.test(keyword))
@@ -4683,7 +4756,7 @@ module.exports = function addKeyword(keyword, definition) {
var $data = definition.$data === true && this._opts.v5;
if ($data && !definition.validate)
- throw new Error('$data support: neither "validate" nor "compile" functions are defined');
+ throw new Error('$data support: "validate" function is not defined');
var metaSchema = definition.metaSchema;
if (metaSchema) {
@@ -4695,17 +4768,17 @@ module.exports = function addKeyword(keyword, definition) {
]
};
}
- definition.validateSchema = self.compile(metaSchema, true);
+ definition.validateSchema = this.compile(metaSchema, true);
}
}
- this.RULES.keywords[keyword] = this.RULES.all[keyword] = true;
+ RULES.keywords[keyword] = RULES.all[keyword] = true;
function _addRule(keyword, dataType, definition) {
var ruleGroup;
- for (var i=0; i<self.RULES.length; i++) {
- var rg = self.RULES[i];
+ for (var i=0; i<RULES.length; i++) {
+ var rg = RULES[i];
if (rg.type == dataType) {
ruleGroup = rg;
break;
@@ -4714,7 +4787,7 @@ module.exports = function addKeyword(keyword, definition) {
if (!ruleGroup) {
ruleGroup = { type: dataType, rules: [] };
- self.RULES.push(ruleGroup);
+ RULES.push(ruleGroup);
}
var rule = {
@@ -4724,14 +4797,50 @@ module.exports = function addKeyword(keyword, definition) {
code: customRuleCode
};
ruleGroup.rules.push(rule);
- self.RULES.custom[keyword] = rule;
+ RULES.custom[keyword] = rule;
}
function checkDataType(dataType) {
- if (!self.RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
+ if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
}
-};
+}
+
+
+/**
+ * Get keyword
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
+ */
+function getKeyword(keyword) {
+ /* jshint validthis: true */
+ var rule = this.RULES.custom[keyword];
+ return rule ? rule.definition : this.RULES.keywords[keyword] || false;
+}
+
+
+/**
+ * Remove keyword
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ */
+function removeKeyword(keyword) {
+ /* jshint validthis: true */
+ var RULES = this.RULES;
+ delete RULES.keywords[keyword];
+ delete RULES.all[keyword];
+ delete RULES.custom[keyword];
+ for (var i=0; i<RULES.length; i++) {
+ var rules = RULES[i].rules;
+ for (var j=0; j<rules.length; j++) {
+ if (rules[j].keyword == keyword) {
+ rules.splice(j, 1);
+ break;
+ }
+ }
+ }
+}
},{"./dotjs/custom":21}],38:[function(require,module,exports){
module.exports={
@@ -7515,7 +7624,11 @@ var compileSchema = require('./compile')
module.exports = Ajv;
Ajv.prototype.compileAsync = async.compile;
-Ajv.prototype.addKeyword = require('./keyword');
+
+var customKeyword = require('./keyword');
+Ajv.prototype.addKeyword = customKeyword.add;
+Ajv.prototype.getKeyword = customKeyword.get;
+Ajv.prototype.removeKeyword = customKeyword.remove;
Ajv.ValidationError = require('./compile/validation_error');
var META_SCHEMA_ID = 'http://json-schema.org/draft-04/schema';
diff --git a/tools/eslint/node_modules/ajv/dist/ajv.min.js b/tools/eslint/node_modules/ajv/dist/ajv.min.js
index 1096fe4d72..484e0ffab7 100644
--- a/tools/eslint/node_modules/ajv/dist/ajv.min.js
+++ b/tools/eslint/node_modules/ajv/dist/ajv.min.js
@@ -1,6 +1,6 @@
-/* ajv 4.7.7: Another JSON Schema Validator */
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.Ajv=e()}}(function(){var e;return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var h=t[i]={exports:{}};r[i][0].call(h.exports,function(e){var t=r[i][1][e];return s(t?t:e)},h,h.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<a.length;i++)s(a[i]);return s}({1:[function(e,r,t){"use strict";function a(e,r){r!==!1&&(r=!0);var t,s=e.async,o=e.transpile;switch(typeof o){case"string":var i=m[o];if(!i)throw new Error("bad transpiler: "+o);return e._transpileFunc=i(e,r);case"undefined":case"boolean":if("string"==typeof s){if(t=p[s],!t)throw new Error("bad async mode: "+s);return e.transpile=t(e,r)}for(var n=0;n<v.length;n++){var l=v[n];if(a(l,!1))return d.copy(l,e),e.transpile}throw new Error("generators, nodent and regenerator are not available");case"function":return e._transpileFunc=e.transpile;default:throw new Error("bad transpiler: "+o)}}function s(e,r){try{return new Function("(function*(){})()")(),!0}catch(e){if(r)throw new Error("generators not supported")}}function o(e,r){try{return new Function("(async function(){})()")(),!0}catch(e){if(r)throw new Error("es7 async functions not supported")}}function i(r,t){try{return u||(u=e("regenerator"),u.runtime()),r.async&&r.async!==!0||(r.async="es7"),n}catch(e){if(t)throw new Error("regenerator not available")}}function n(e){return u.compile(e).code}function l(r,t){try{return f||(f=e("nodent")({log:!1,dontInstallRequireHook:!0})),"es7"!=r.async&&(r.async&&r.async!==!0&&console.warn("nodent transpiles only es7 async functions"),r.async="es7"),c}catch(e){if(t)throw new Error("nodent not available")}}function c(e){return f.compile(e,"",{promises:!0,sourcemap:!1}).code}function h(e,r){function t(e,r,a){function o(a){function o(a,o){if(a)return r(a);if(!s._refs[i]&&!s._schemas[i])try{s.addSchema(o,i)}catch(e){return void r(e)}t(e,r)}var i=a.missingSchema;if(s._refs[i]||s._schemas[i])return r(new Error("Schema "+i+" is loaded but "+a.missingRef+" cannot be resolved"));var n=s._loadingSchemas[i];n?"function"==typeof n?s._loadingSchemas[i]=[n,o]:n[n.length]=o:(s._loadingSchemas[i]=o,s._opts.loadSchema(i,function(e,r){var t=s._loadingSchemas[i];if(delete s._loadingSchemas[i],"function"==typeof t)t(e,r);else for(var a=0;a<t.length;a++)t[a](e,r)}))}function i(e,t){return a?void setTimeout(function(){r(e,t)}):r(e,t)}var n;try{n=s.compile(e)}catch(e){return void(e.missingSchema?o(e):i(e))}i(null,n)}var a,s=this;try{a=this._addSchema(e)}catch(e){return void setTimeout(function(){r(e)})}if(a.validate)setTimeout(function(){r(null,a.validate)});else{if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");t(e,r,!0)}}r.exports={setup:a,compile:h};var u,f,d=e("./compile/util"),p={"*":s,"co*":s,es7:o},m={nodent:l,regenerator:i},v=[{async:"co*"},{async:"es7",transpile:"nodent"},{async:"co*",transpile:"regenerator"}]},{"./compile/util":11}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),dependencies:e("../dotjs/dependencies"),enum:e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":14,"../dotjs/_limitItems":15,"../dotjs/_limitLength":16,"../dotjs/_limitProperties":17,"../dotjs/allOf":18,"../dotjs/anyOf":19,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":35,"../dotjs/validate":36}],4:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;var a,s=Array.isArray(r),o=Array.isArray(t);if(s&&o){if(r.length!=t.length)return!1;for(a=0;a<r.length;a++)if(!e(r[a],t[a]))return!1;return!0}if(s!=o)return!1;if(r&&t&&"object"==typeof r&&"object"==typeof t){var i=Object.keys(r);if(i.length!==Object.keys(t).length)return!1;for(a=0;a<i.length;a++)if(void 0===t[i[a]])return!1;for(a=0;a<i.length;a++)if(!e(r[i[a]],t[i[a]]))return!1;return!0}return!1}},{}],5:[function(e,r,t){"use strict";function a(e){e="full"==e?"full":"fast";var r=d.copy(a[e]);for(var t in a.compare)r[t]={validate:r[t],compare:a.compare[t]};return r}function s(e){var r=e.match(p);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&t<=12&&a>=1&&a<=m[t]}function o(e,r){var t=e.match(v);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return a<=23&&s<=59&&o<=59&&(!r||i)}function i(e){var r=e.split(w);return 2==r.length&&s(r[0])&&o(r[1],!0)}function n(e){return e.length<=255&&y.test(e)}function l(e){return j.test(e)&&g.test(e)}function c(e){try{return new RegExp(e),!0}catch(e){return!1}}function h(e,r){if(e&&r)return e>r?1:e<r?-1:e===r?0:void 0}function u(e,r){if(e&&r&&(e=e.match(v),r=r.match(v),e&&r))return e=e[1]+e[2]+e[3]+(e[4]||""),r=r[1]+r[2]+r[3]+(r[4]||""),e>r?1:e<r?-1:e===r?0:void 0}function f(e,r){if(e&&r){e=e.split(w),r=r.split(w);var t=h(e[0],r[0]);if(void 0!==t)return t||u(e[1],r[1])}}var d=e("./util"),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,m=[0,31,29,31,30,31,30,31,31,30,31,30,31],v=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,y=/^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,P=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i,b=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:y,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.compare={date:h,time:u,"date-time":f};var w=/t|\s/i,j=/\/|\:/},{"./util":11}],6:[function(e,r,t){"use strict";function a(e,r,t,i){function w(){var e=M.validate,r=e.apply(null,arguments);return w.errors=e.errors,r}function j(e,t,s,o){var i=!t||t&&t.schema==e;if(t.schema!=r.schema)return a.call(A,e,t,s,o);var p=e.$async===!0;p&&!k.transpile&&m.setup(k);var w=y({isTop:!0,schema:e,isRoot:i,baseId:o,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:F,validate:y,util:d,resolve:f,resolveRef:S,usePattern:O,useDefault:R,useCustomRule:I,opts:k,formats:N,self:A});w=u(q,c)+u(D,n)+u(C,l)+u(V,h)+w+"return validate;",k.beautify&&(v?w=v(w,k.beautify):console.error('"npm install js-beautify" to use beautify option'));var j,$,x=k._transpileFunc;try{$=p&&x?x(w):w;var _=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",$);j=_(A,F,N,r,q,C,V,g,E,P,b),q[0]=j}catch(e){throw console.error("Error compiling schema, function code:",$),e}return j.schema=e,j.errors=null,j.refs=L,j.refVal=q,j.root=i?j:t,p&&(j.$async=!0),z&&(j.sourceCode=w),k.sourceCode===!0&&(j.source={patterns:D,defaults:C}),j}function S(e,s,o){s=f.url(e,s);var i,n,l=L[s];if(void 0!==l)return i=q[l],n="refVal["+l+"]",_(i,n);if(!o&&r.refs){var c=r.refs[s];if(void 0!==c)return i=r.refVal[c],n=$(s,i),_(i,n)}n=$(s);var h=f.call(A,j,r,s);if(!h){var u=t&&t[s];u&&(h=f.inlineRef(u,k.inlineRefs)?u:a.call(A,u,r,t,e))}return h?(x(s,h),_(h,n)):void 0}function $(e,r){var t=q.length;return q[t]=r,L[e]=t,"refVal"+t}function x(e,r){var t=L[e];q[t]=r}function _(e,r){return"object"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function O(e){var r=Q[e];return void 0===r&&(r=Q[e]=D.length,D[r]=e),"pattern"+r}function R(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return d.toQuotedString(e);case"object":if(null===e)return"null";var r=p(e),t=U[r];return void 0===t&&(t=U[r]=C.length,C[t]=e),"default"+t}}function I(e,r,t,a){var s=e.definition.validateSchema;if(s&&A._opts.validateSchema!==!1){var o=s(r);if(!o){var i="keyword schema is invalid: "+A.errorsText(s.errors);if("log"!=A._opts.validateSchema)throw new Error(i);console.error(i)}}var n,l=e.definition.compile,c=e.definition.inline,h=e.definition.macro;l?n=l.call(A,r,t,a):h?(n=h.call(A,r,t,a),k.validateSchema!==!1&&A.validateSchema(n,!0)):n=c?c.call(A,a,e.keyword,r,t):e.definition.validate;var u=V.length;return V[u]=n,{code:"customRule"+u,validate:n}}var A=this,k=this._opts,q=[void 0],L={},D=[],Q={},C=[],U={},V=[],z=k.sourceCode!==!1;r=r||{schema:e,refVal:q,refs:L};var T=s.call(this,e,r,i),M=this._compilations[T.index];if(T.compiling)return M.callValidate=w;var N=this._formats,F=this.RULES;try{var H=j(e,r,t,i);M.validate=H;var J=M.callValidate;return J&&(J.schema=H.schema,J.errors=null,J.refs=H.refs,J.refVal=H.refVal,J.root=H.root,J.$async=H.$async,z&&(J.sourceCode=H.sourceCode)),H}finally{o.call(this,e,r,i)}}function s(e,r,t){var a=i.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}function o(e,r,t){var a=i.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function i(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function n(e,r){return"var pattern"+e+" = new RegExp("+d.toQuotedString(r[e])+");"}function l(e){return"var default"+e+" = defaults["+e+"];"}function c(e,r){return r[e]?"var refVal"+e+" = refVal["+e+"];":""}function h(e){return"var customRule"+e+" = customRules["+e+"];"}function u(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}var f=e("./resolve"),d=e("./util"),p=e("json-stable-stringify"),m=e("../async"),v=function(){try{return e("js-beautify").js_beautify}catch(e){}}(),y=e("../dotjs/validate"),g=e("co"),P=d.ucs2length,E=e("./equal"),b=e("./validation_error");r.exports=a},{"../async":1,"../dotjs/validate":36,"./equal":4,"./resolve":7,"./util":11,"./validation_error":12,co:47,"json-stable-stringify":48}],7:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if(o=o||this._schemas[t],o instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,c,h=s.call(this,r,t);return h&&(i=h.schema,r=h.root,c=h.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,c):i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,c)),l}function s(e,r){var t=m.parse(r,!1,!0),a=u(t),s=h(e.schema.id);if(a!==s){var n=f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else{if(l=this._schemas[n],!(l instanceof g))return;if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=h(e.schema.id)}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;return e=a.root,o.id&&(n=d(n,o.id)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;i<o.length;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),t=t[n],!t)break;if(t.id&&!P[n]&&(r=d(r,t.id)),t.$ref){var l=d(r,t.$ref),c=s.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return t&&t!=a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return r!==!1&&(void 0===r||r===!0?l(e):r?c(e)<=r:void 0)}function l(e){var r;if(Array.isArray(e)){for(var t=0;t<e.length;t++)if(r=e[t],"object"==typeof r&&!l(r))return!1}else for(var a in e){if("$ref"==a)return!1;if(r=e[a],"object"==typeof r&&!l(r))return!1}return!0}function c(e){var r,t=0;if(Array.isArray(e)){for(var a=0;a<e.length;a++)if(r=e[a],"object"==typeof r&&(t+=c(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(E[s])t++;else if(r=e[s],"object"==typeof r&&(t+=c(r)+1),t==1/0)return 1/0}return t}function h(e,r){r!==!1&&(e=f(e));var t=m.parse(e,!1,!0);return u(t)}function u(e){var r=e.protocol||"//"==e.href.slice(0,2)?"//":"";return(e.protocol||"")+r+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(b,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){function r(e,t,s){if(Array.isArray(e))for(var o=0;o<e.length;o++)r.call(this,e[o],t+"/"+o,s);else if(e&&"object"==typeof e){if("string"==typeof e.id){var i=s=s?m.resolve(s,e.id):e.id;i=f(i);var n=this._refs[i];if("string"==typeof n&&(n=this._refs[n]),n&&n.schema){if(!v(e,n.schema))throw new Error('id "'+i+'" resolves to more than one schema')}else if(i!=f(t))if("#"==i[0]){if(a[i]&&!v(e,a[i]))throw new Error('id "'+i+'" resolves to more than one schema');a[i]=e}else this._refs[i]=t}for(var l in e)r.call(this,e[l],t+"/"+y.escapeFragment(l),s)}}var t=f(e.id),a={};return r.call(this,e,h(t,!1),t),a}var m=e("url"),v=e("./equal"),y=e("./util"),g=e("./schema_obj");r.exports=a,a.normalizeId=f,a.fullPath=h,a.url=d,a.ids=p,a.inlineRef=n,a.schema=s;var P=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),E=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),b=/#\/?$/},{"./equal":4,"./schema_obj":9,"./util":11,url:45}],8:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util").toHash;r.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}],r=["type","additionalProperties","patternProperties"],t=["additionalItems","$schema","id","title","description","default"],o=["number","integer","string","array","object","boolean","null"];return e.all=s(r),e.forEach(function(t){t.rules=t.rules.map(function(t){r.push(t);var s=e.all[t]={keyword:t,code:a[t]};return s})}),e.keywords=s(r.concat(t)),e.types=s(o),e.custom={},e}},{"./_rules":3,"./util":11}],9:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":11}],10:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,r=e.charCodeAt(s++),r>=55296&&r<=56319&&s<a&&(r=e.charCodeAt(s),56320==(64512&r)&&s++);return t}},{}],11:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];$[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if($[r])return[r];if("array"===e&&"array"===r)return["array"]}}function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":x.test(e)?"."+e:"['"+c(e)+"']"}function c(e){return e.replace(_,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function h(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function u(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function f(e){return e.replace(O,"").replace(R,"").replace(I,"if (!($1))")}function d(e,r){var t=e.match(A);return t&&2===t.length?r?e.replace(q,"").replace(Q,C):e.replace(k,"").replace(L,D):e}function p(e,r){for(var t in e)if(r[t])return!0}function m(e,r,t){for(var a in e)if(a!=t&&r[a])return!0}function v(e){return"'"+c(e)+"'"}function y(e,r,t,a){var s=t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'";return E(e,s)}function g(e,r,t){var a=v(t?"/"+j(r):l(r));return E(e,a)}function P(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!U.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(i=e.match(V),!i)throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],s=i[2],"#"==s){if(a>=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,c=s.split("/"),h=0;h<c.length;h++){var u=c[h];u&&(o+=l(S(u)),n+=" && "+o)}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return S(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function S(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:c,ucs2length:e("./ucs2length"),varOccurences:h,varReplace:u,cleanUpCode:f,cleanUpVarErrors:d,schemaHasRules:p,schemaHasRulesExcept:m,stableStringify:e("json-stable-stringify"),toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,escapeFragment:w,escapeJsonPointer:j};var $=n(["string","number","integer","boolean","null"]),x=/^[a-z$_][a-z$_0-9]*$/i,_=/'|\\/g,O=/else\s*{\s*}/g,R=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,I=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,A=/[^v\.]errors/g,k=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,q=/var errors = 0;|var vErrors = null;/g,L="return errors === 0;",D="validate.errors = null; return true;",Q=/if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/,C="return true;",U=/^\/(?:[^~]|~0|~1)*$/,V=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"./ucs2length":10,"json-stable-stringify":48}],12:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}r.exports=a,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s;if(a+="var "+u+" = undefined;",e.opts.format===!1)return a+=" "+u+" = true; ";var f=e.schema.format,d=e.opts.v5&&f.$data,p="";if(d){var m=e.util.getData(f.$data,o,e.dataPathArr),v="format"+s,y="compare"+s;a+=" var "+v+" = formats["+m+"] , "+y+" = "+v+" && "+v+".compare;"}else{var v=e.formats[f];if(!v||!v.compare)return a+=" "+u+" = true; ";var y="formats"+e.util.getProperty(f)+".compare"}var g,P="formatMaximum"==r,E="formatExclusive"+(P?"Maximum":"Minimum"),b=e.schema[E],w=e.opts.v5&&b&&b.$data,j=P?"<":">",S="result"+s,$=e.opts.v5&&i&&i.$data;if($?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+s):g=i,w){var x=e.util.getData(b.$data,o,e.dataPathArr),_="exclusive"+s,O="op"+s,R="' + "+O+" + '";a+=" var schemaExcl"+s+" = "+x+"; ",x="schemaExcl"+s,a+=" if (typeof "+x+" != 'boolean' && "+x+" !== undefined) { "+u+" = false; ";var t=E,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: '"+E+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(p+="}",a+=" else { "),$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+", ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; var "+_+" = "+x+" === true; if ("+u+" === undefined) { "+u+" = "+_+" ? "+S+" "+j+" 0 : "+S+" "+j+"= 0; } if (!"+u+") var op"+s+" = "+_+" ? '"+j+"' : '"+j+"=';"}else{var _=b===!0,R=j;_||(R+="=");var O="'"+R+"'";$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+", ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; if ("+u+" === undefined) "+u+" = "+S+" "+j,_||(a+="="),a+=" 0;"}a+=""+p+"if (!"+u+") { ";var t=r,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+O+", limit: ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" , exclusive: "+_+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+R+' "',a+=$?"' + "+g+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=$?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;return a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="}"}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.v5&&m&&m.$data,y=d?"<":">",g=d?">":"<";if(v){var P=e.util.getData(m.$data,i,e.dataPathArr),E="exclusive"+o,b="op"+o,w="' + "+b+" + '";s+=" var schemaExcl"+o+" = "+P+"; ",P="schemaExcl"+o,s+=" var exclusive"+o+"; if (typeof "+P+" != 'boolean' && typeof "+P+" != 'undefined') { ";var t=p,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ((exclusive"+o+" = "+P+" === true) ? "+u+" "+g+"= "+a+" : "+u+" "+g+" "+a+") || "+u+" !== "+u+") { var op"+o+" = exclusive"+o+" ? '"+y+"' : '"+y+"=';"}else{var E=m===!0,w=y;E||(w+="=");var b="'"+w+"'";s+=" if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+u+" "+g,E&&(s+="="),s+=" "+a+" || "+u+" !== "+u+") {"}var t=r,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+b+", limit: "+a+", exclusive: "+E+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+w+" ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;return s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxItems"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+u+".length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxLength"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=e.opts.unicode===!1?" "+u+".length ":" ucs2length("+u+") ",s+=" "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",
-s+="} ",h&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxProperties"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+u+").length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],18:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+"."+r,o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c=n.baseId,h=a;if(h)for(var u,f=-1,d=h.length-1;f<d;)u=h[f+=1],e.util.schemaHasRules(u,e.RULES.all)&&(n.schema=u,n.schemaPath=s+"["+f+"]",n.errSchemaPath=o+"/"+f,t+=" "+e.validate(n)+" ",n.baseId=c,i&&(t+=" if (valid"+n.level+") { ",l+="}"));return i&&(t+=" "+l.slice(0,-1)),t=e.util.cleanUpCode(t)}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)});if(m){var v=d.baseId;a+=" var "+f+" = errors; var "+u+" = false; ";var y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v,a+=" "+u+" = "+u+" || valid"+d.level+"; if (!"+u+") { ",p+="}";e.compositeRule=d.compositeRule=y,a+=" "+p+" if (!"+u+") { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"anyOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,d||(s+=" var schema"+o+" = validate.schema"+l+";"),s+="var "+f+" = equal("+u+", schema"+o+"); if (!"+f+") { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"constant")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="errs__"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p,m,v,y,g,P=this,E="definition"+o,b=P.definition;if(d&&b.$data){g="keywordValidate"+o;var w=b.validateSchema;s+=" var "+E+" = RULES.custom['"+r+"'].definition; var "+g+" = "+E+".validate;"}else y=e.useCustomRule(P,n,e.schema,e),a="validate.schema"+l,g=y.code,p=b.compile,m=b.inline,v=b.macro;var j=g+".errors",S="i"+o,$="ruleErr"+o,x=b.async;if(x&&!e.async)throw new Error("async keyword in sync schema");if(m||v||(s+=""+j+" = null;"),s+="var "+f+" = errors;var valid"+o+";",m&&b.statements)s+=" "+y.validate;else if(v){var _=e.util.copy(e);_.level++,_.schema=y.validate,_.schemaPath="";var O=e.compositeRule;e.compositeRule=_.compositeRule=!0;var R=e.validate(_).replace(/validate\.schema/g,g);e.compositeRule=_.compositeRule=O,s+=" "+R}else if(!m){var I=I||[];I.push(s),s="",s+=" "+g+".call( ",s+=e.opts.passContext?"this":"self",s+=p||b.schema===!1?" , "+u+" ":" , "+a+" , "+u+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath),s+=i?" , data"+(i-1||"")+" , "+e.dataPathArr[i]+" ":" , parentData , parentDataProperty ",s+=" , rootData ) ";var A=s;s=I.pop(),b.errors!==!1&&(x?(j="customErrors"+o,s+=" var "+j+" = null; try { valid"+o+" = "+e.yieldAwait+A+"; } catch (e) { valid"+o+" = false; if (e instanceof ValidationError) "+j+" = e.errors; else throw e; } "):s+=" "+g+".errors = null; ")}s+="if (",w&&(s+=" !"+E+".validateSchema("+a+") || "),s+=" ! ",s+=m?b.statements?" valid"+o+" ":" ("+y.validate+") ":v?" valid"+_.level+" ":x?b.errors===!1?" ("+e.yieldAwait+A+") ":" valid"+o+" ":" "+A+" ",s+=") { ",t=P.keyword;var I=I||[];I.push(s),s="";var I=I||[];I.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+P.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+P.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var k=s;s=I.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+k+"]); ":" validate.errors = ["+k+"]; return false; ":" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var q=s;return s=I.pop(),m?b.errors?"full"!=b.errors&&(s+=" for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; if ("+$+".dataPath === undefined) { "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } "):b.errors===!1?s+=" "+q+" ":(s+=" if ("+f+" == errors) { "+q+" } else { for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; if ("+$+".dataPath === undefined) { "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } } "):v?(s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+P.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+P.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false ")):b.errors===!1?s+=" "+q+" ":(s+=" if (Array.isArray("+j+")) { if (vErrors === null) vErrors = "+j+"; else vErrors = vErrors.concat("+j+"); errors = vErrors.length; for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; "+$+'.schemaPath = "'+c+'"; ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } } else { "+q+" } "),s+=" } ",h&&(s+=" else { "),s}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e),d="";f.level++;var p={},m={};for(P in i){var v=i[P],y=Array.isArray(v)?m:p;y[P]=v}a+="var "+u+" = errors;";var g=e.errorPath;a+="var missing"+s+";";for(var P in m){if(y=m[P],a+=" if ("+h+e.util.getProperty(P)+" !== undefined ",c){a+=" && ( ";var E=y;if(E)for(var b,w=-1,j=E.length-1;w<j;){b=E[w+=1],w&&(a+=" || ");var S=e.util.getProperty(b);a+=" ( "+h+S+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?b:S)+") ) "}a+=")) { ";var $="missing"+s,x="' + "+$+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(g,$,!0):g+" + "+$);var _=_||[];_.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+x+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var O=a;a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+O+"]); ":" validate.errors = ["+O+"]; return false; ":" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var R=y;if(R)for(var I,A=-1,k=R.length-1;A<k;){I=R[A+=1];var S=e.util.getProperty(I),x=e.util.escapeQuotes(I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(g,I,e.opts.jsonPointers)),a+=" if ("+h+S+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(P)+"', missingProperty: '"+x+"', depsCount: "+y.length+", deps: '"+e.util.escapeQuotes(1==y.length?y[0]:y.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==y.length?"property "+e.util.escapeQuotes(y[0]):"properties "+e.util.escapeQuotes(y.join(", ")),a+=" when property "+e.util.escapeQuotes(P)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",c&&(d+="}",a+=" else { ")}e.errorPath=g;var q=f.baseId;for(var P in p){var v=p[P];e.util.schemaHasRules(v,e.RULES.all)&&(a+=" valid"+f.level+" = true; if ("+h+"['"+P+"'] !== undefined) { ",f.schema=v,f.schemaPath=n+e.util.getProperty(P),f.errSchemaPath=l+"/"+e.util.escapeFragment(P),a+=" "+e.validate(f)+" ",f.baseId=q,a+=" } ",c&&(a+=" if (valid"+f.level+") { ",d+="}"))}return c&&(a+=" "+d+" if ("+u+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p="i"+o;d||(s+=" var schema"+o+" = validate.schema"+l+";"),s+="var "+f+";",d&&(s+=" if (schema"+o+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+o+")) "+f+" = false; else {"),s+=""+f+" = false;for (var "+p+"=0; "+p+"<schema"+o+".length; "+p+"++) if (equal("+u+", schema"+o+"["+p+"])) { "+f+" = true; break; }",d&&(s+=" } "),s+=" if (!"+f+") { ";var m=m||[];m.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"enum")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+o+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",h&&(s+=" else { "),s}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return c&&(a+=" if (true) { "),a;var u,f=e.opts.v5&&i&&i.$data;if(f?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",u="schema"+s):u=i,f){var d="format"+s;a+=" var "+d+" = formats["+u+"]; var isObject"+s+" = typeof "+d+" == 'object' && !("+d+" instanceof RegExp) && "+d+".validate; if (isObject"+s+") { var async"+s+" = "+d+".async; "+d+" = "+d+".validate; } if ( ",f&&(a+=" ("+u+" !== undefined && typeof "+u+" != 'string') || "),a+=" ("+d+" && !(typeof "+d+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+d+"("+h+") : "+d+"("+h+")) ":" "+d+"("+h+") ",a+=" : "+d+".test("+h+")))) {"}else{var d=e.formats[i];if(!d)return c&&(a+=" if (true) { "),a;var p="object"==typeof d&&!(d instanceof RegExp)&&d.validate;if(p){var m=d.async===!0;d=d.validate}if(m){if(!e.async)throw new Error("async format in sync schema");var v="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+v+"("+h+"))) { "}else{a+=" if (! ";var v="formats"+e.util.getProperty(i);p&&(v+=".validate"),a+="function"==typeof d?" "+v+"("+h+") ":" "+v+".test("+h+") ",a+=") { "}}var y=y||[];y.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"format")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=f?""+u:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match format \"",a+=f?"' + "+u+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=f?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var g=a;return a=y.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m=d.dataLevel=e.dataLevel+1,v="data"+m,y=e.baseId;if(a+="var "+f+" = errors;var "+u+";",Array.isArray(i)){var g=e.schema.additionalItems;if(g===!1){a+=" "+u+" = "+h+".length <= "+i.length+"; ";var P=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+u+") { ";var E=E||[];E.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var b=a;a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+b+"]); ":" validate.errors = ["+b+"]; return false; ":" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=P,c&&(p+="}",a+=" else { ")}var w=i;if(w)for(var j,S=-1,$=w.length-1;S<$;)if(j=w[S+=1],e.util.schemaHasRules(j,e.RULES.all)){a+=" valid"+d.level+" = true; if ("+h+".length > "+S+") { ";var x=h+"["+S+"]";d.schema=j,d.schemaPath=n+"["+S+"]",d.errSchemaPath=l+"/"+S,d.errorPath=e.util.getPathExpr(e.errorPath,S,e.opts.jsonPointers,!0),d.dataPathArr[m]=S;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,x)+" ":" var "+v+" = "+x+"; "+_+" ",a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}if("object"==typeof g&&e.util.schemaHasRules(g,e.RULES.all)){d.schema=g,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" valid"+d.level+" = true; if ("+h+".length > "+i.length+") { for (var i"+s+" = "+i.length+"; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var x=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,x)+" ":" var "+v+" = "+x+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" for (var i"+s+" = 0; i"+s+" < "+h+".length; i"+s+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"i"+s,e.opts.jsonPointers,!0);var x=h+"[i"+s+"]";d.dataPathArr[m]="i"+s;var _=e.validate(d);d.baseId=y,a+=e.util.varOccurences(_,v)<2?" "+e.util.varReplace(_,v,x)+" ":" var "+v+" = "+x+"; "+_+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",f&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+u+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",f&&(s+=" ) "),s+=" ) { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"multipleOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var p=s;return s=d.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e);if(f.level++,e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+u+" = errors; ";var d=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var p;f.opts.allErrors&&(p=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,p&&(f.opts.allErrors=p),e.compositeRule=f.compositeRule=d,a+=" if (valid"+f.level+") { ";var m=m||[];m.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var v=a;a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++,a+="var "+f+" = errors;var prevValid"+s+" = false;var "+u+" = false;";var m=d.baseId,v=e.compositeRule;e.compositeRule=d.compositeRule=!0;var y=i;if(y)for(var g,P=-1,E=y.length-1;P<E;)g=y[P+=1],e.util.schemaHasRules(g,e.RULES.all)?(d.schema=g,d.schemaPath=n+"["+P+"]",d.errSchemaPath=l+"/"+P,a+=" "+e.validate(d)+" ",d.baseId=m):a+=" var valid"+d.level+" = true; ",P&&(a+=" if (valid"+d.level+" && prevValid"+s+") "+u+" = false; else { ",p+="}"),a+=" if (valid"+d.level+") "+u+" = prevValid"+s+" = true;";e.compositeRule=d.compositeRule=v,a+=""+p+"if (!"+u+") { ";var b=b||[];b.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"oneOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var w=a;return a=b.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d=f?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+d+".test("+u+") ) { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"pattern")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",s+=f?""+a:""+e.util.toQuotedString(n),s+=" } ",e.opts.messages!==!1&&(s+=" , message: 'should match pattern \"",s+=f?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+e.util.toQuotedString(n),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="key"+s,d="patternMatched"+s,p="",m=e.opts.ownProperties;a+="var "+u+" = true;";var v=i;if(v)for(var y,g=-1,P=v.length-1;g<P;){y=v[g+=1],a+=" var "+d+" = false; for (var "+f+" in "+h+") { ",m&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+f+")) continue; "),a+=" "+d+" = "+e.usePattern(y)+".test("+f+"); if ("+d+") break; } ";var E=e.util.escapeQuotes(y);a+=" if (!"+d+") { "+u+" = false; var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternRequired")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingPattern: '"+E+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have property matching pattern \\'"+E+"\\'' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ",c&&(p+="}",a+=" else { ")}return a+=""+p}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="key"+s,v=d.dataLevel=e.dataLevel+1,y="data"+v,g=Object.keys(i||{}),P=e.schema.patternProperties||{},E=Object.keys(P),b=e.schema.additionalProperties,w=g.length||E.length,j=b===!1,S="object"==typeof b&&Object.keys(b).length,$=e.opts.removeAdditional,x=j||S||$,_=e.opts.ownProperties,O=e.baseId,R=e.schema.required;if(R&&(!e.opts.v5||!R.$data)&&R.length<e.opts.loopRequired)var I=e.util.toHash(R);if(e.opts.v5)var A=e.schema.patternGroups||{},k=Object.keys(A);if(a+="var "+f+" = errors;var valid"+d.level+" = true;",x){if(a+=" for (var "+m+" in "+h+") { ",_&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+m+")) continue; "),w){if(a+=" var isAdditional"+s+" = !(false ",g.length)if(g.length>5)a+=" || validate.schema"+n+"["+m+"] ";else{var q=g;if(q)for(var L,D=-1,Q=q.length-1;D<Q;)L=q[D+=1],a+=" || "+m+" == "+e.util.toQuotedString(L)+" "}if(E.length){var C=E;if(C)for(var U,V=-1,z=C.length-1;V<z;)U=C[V+=1],a+=" || "+e.usePattern(U)+".test("+m+") "}if(e.opts.v5&&k&&k.length){var T=k;if(T)for(var M,V=-1,N=T.length-1;V<N;)M=T[V+=1],a+=" || "+e.usePattern(M)+".test("+m+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==$)a+=" delete "+h+"["+m+"]; ";else{var F=e.errorPath,H="' + key"+s+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers)),j)if($)a+=" delete "+h+"["+m+"]; ";else{a+=" valid"+d.level+" = false; ";var J=l;l=e.errSchemaPath+"/additionalProperties";var G=G||[];G.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+H+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var K=a;a=G.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+K+"]); ":" validate.errors = ["+K+"]; return false; ":" var err = "+K+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=J,c&&(a+=" break; ")}else if(S)if("failing"==$){a+=" var "+f+" = errors; ";var B=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=b,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var Z=h+"[key"+s+"]";d.dataPathArr[v]="key"+s;var Y=e.validate(d);d.baseId=O,a+=e.util.varOccurences(Y,y)<2?" "+e.util.varReplace(Y,y,Z)+" ":" var "+y+" = "+Z+"; "+Y+" ",a+=" if (!valid"+d.level+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+h+"["+m+"]; } ",e.compositeRule=d.compositeRule=B}else{d.schema=b,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var Z=h+"[key"+s+"]";d.dataPathArr[v]="key"+s;var Y=e.validate(d);d.baseId=O,a+=e.util.varOccurences(Y,y)<2?" "+e.util.varReplace(Y,y,Z)+" ":" var "+y+" = "+Z+"; "+Y+" ",c&&(a+=" if (!valid"+d.level+") break; ")}e.errorPath=F}w&&(a+=" } "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}var W=e.opts.useDefaults&&!e.compositeRule;if(g.length){var X=g;if(X)for(var L,ee=-1,re=X.length-1;ee<re;){L=X[ee+=1];var te=i[L];if(e.util.schemaHasRules(te,e.RULES.all)){var ae=e.util.getProperty(L),Z=h+ae,se=W&&void 0!==te.default;d.schema=te,d.schemaPath=n+ae,d.errSchemaPath=l+"/"+e.util.escapeFragment(L),d.errorPath=e.util.getPath(e.errorPath,L,e.opts.jsonPointers),d.dataPathArr[v]=e.util.toQuotedString(L);var Y=e.validate(d);if(d.baseId=O,e.util.varOccurences(Y,y)<2){Y=e.util.varReplace(Y,y,Z);var oe=Z}else{var oe=y;a+=" var "+y+" = "+Z+"; "}if(se)a+=" "+Y+" ";else{if(I&&I[L]){a+=" if ("+oe+" === undefined) { valid"+d.level+" = false; ";var F=e.errorPath,J=l,ie=e.util.escapeQuotes(L);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(F,L,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";var G=G||[];G.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ie+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+ie+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var K=a;a=G.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+K+"]); ":" validate.errors = ["+K+"]; return false; ":" var err = "+K+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=J,e.errorPath=F,a+=" } else { "}else a+=c?" if ("+oe+" === undefined) { valid"+d.level+" = true; } else { ":" if ("+oe+" !== undefined) { ";a+=" "+Y+" } "}}c&&(a+=" if (valid"+d.level+") { ",p+="}")}}var ne=E;if(ne)for(var U,le=-1,ce=ne.length-1;le<ce;){U=ne[le+=1];var te=P[U];if(e.util.schemaHasRules(te,e.RULES.all)){d.schema=te,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(U),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(U),a+=" for (var "+m+" in "+h+") { ",_&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+m+")) continue; "),a+=" if ("+e.usePattern(U)+".test("+m+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var Z=h+"[key"+s+"]";d.dataPathArr[v]="key"+s;var Y=e.validate(d);d.baseId=O,a+=e.util.varOccurences(Y,y)<2?" "+e.util.varReplace(Y,y,Z)+" ":" var "+y+" = "+Z+"; "+Y+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}")}}if(e.opts.v5){var he=k;if(he)for(var M,ue=-1,fe=he.length-1;ue<fe;){
-M=he[ue+=1];var de=A[M],te=de.schema;if(e.util.schemaHasRules(te,e.RULES.all)){d.schema=te,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(M)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(M)+"/schema",a+=" var pgPropCount"+s+" = 0; for (var "+m+" in "+h+") { ",_&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+m+")) continue; "),a+=" if ("+e.usePattern(M)+".test("+m+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,"key"+s,e.opts.jsonPointers);var Z=h+"[key"+s+"]";d.dataPathArr[v]="key"+s;var Y=e.validate(d);d.baseId=O,a+=e.util.varOccurences(Y,y)<2?" "+e.util.varReplace(Y,y,Z)+" ":" var "+y+" = "+Z+"; "+Y+" ",c&&(a+=" if (!valid"+d.level+") break; "),a+=" } ",c&&(a+=" else valid"+d.level+" = true; "),a+=" } ",c&&(a+=" if (valid"+d.level+") { ",p+="}");var pe=de.minimum,me=de.maximum;if(void 0!==pe||void 0!==me){a+=" var "+u+" = true; ";var J=l;if(void 0!==pe){var ve=pe,ye="minimum",ge="less";a+=" "+u+" = pgPropCount"+s+" >= "+pe+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+u+") { ";var G=G||[];G.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ye+"', limit: "+ve+", pattern: '"+e.util.escapeQuotes(M)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ge+" than "+ve+' properties matching pattern "'+e.util.escapeQuotes(M)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var K=a;a=G.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+K+"]); ":" validate.errors = ["+K+"]; return false; ":" var err = "+K+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==me&&(a+=" else ")}if(void 0!==me){var ve=me,ye="maximum",ge="more";a+=" "+u+" = pgPropCount"+s+" <= "+me+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+u+") { ";var G=G||[];G.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ye+"', limit: "+ve+", pattern: '"+e.util.escapeQuotes(M)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+ge+" than "+ve+' properties matching pattern "'+e.util.escapeQuotes(M)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var K=a;a=G.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+K+"]); ":" validate.errors = ["+K+"]; return false; ":" var err = "+K+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=J,c&&(a+=" if ("+u+") { ",p+="}")}}}}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=e.root.schema.$async===!0,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p="can't resolve reference "+l+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(p);var m=m||[];m.push(o),o="",e.createErrors!==!1?(o+=" { keyword: '"+(t||"$ref")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",e.opts.messages!==!1&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var v=o;o=m.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var y=new Error(p);throw y.missingRef=e.resolve.url(e.baseId,l),y.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(y.missingRef)),y}console.log(p),h&&(o+=" if (true) { ")}}else if(d.inline){var g=e.util.copy(e);g.level++,g.schema=d.schema,g.schemaPath="",g.errSchemaPath=l;var P=e.validate(g).replace(/validate\.schema/g,d.code);o+=" "+P+" ",h&&(o+=" if (valid"+g.level+") { ")}else a=d.$async===!0,s=d.code}if(s){var m=m||[];m.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath),o+=n?" , data"+(n-1||"")+" , "+e.dataPathArr[n]+" ":" , parentData , parentDataProperty ",o+=", rootData) ";var E=o;if(o=m.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");o+=" try { ",h&&(o+="var "+f+" ="),o+=" "+e.yieldAwait+" "+E+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",h&&(o+=" if ("+f+") { ")}else o+=" if (!"+E+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d)if(n.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=n;if(m)for(var v,y=-1,g=m.length-1;y<g;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else var p=n;if(d||p.length){var E=e.errorPath,b=d||p.length>=e.opts.loopRequired;if(h)if(s+=" var missing"+o+"; ",b){d||(s+=" var schema"+o+" = validate.schema"+l+"; ");var w="i"+o,j="schema"+o+"["+w+"]",S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),s+=" var "+f+" = true; ",d&&(s+=" if (schema"+o+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+o+")) "+f+" = false; else {"),s+=" for (var "+w+" = 0; "+w+" < schema"+o+".length; "+w+"++) { "+f+" = "+u+"[schema"+o+"["+w+"]] !== undefined; if (!"+f+") break; } ",d&&(s+=" } "),s+=" if (!"+f+") { ";var $=$||[];$.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var x=s;s=$.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var _=p;if(_)for(var O,w=-1,R=_.length-1;w<R;){O=_[w+=1],w&&(s+=" || ");var I=e.util.getProperty(O);s+=" ( "+u+I+" === undefined && (missing"+o+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:I)+") ) "}s+=") { ";var j="missing"+o,S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,j,!0):E+" + "+j);var $=$||[];$.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var x=s;s=$.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else if(b){d||(s+=" var schema"+o+" = validate.schema"+l+"; ");var w="i"+o,j="schema"+o+"["+w+"]",S="' + "+j+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,j,e.opts.jsonPointers)),d&&(s+=" if (schema"+o+" && !Array.isArray(schema"+o+")) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (schema"+o+" !== undefined) { "),s+=" for (var "+w+" = 0; "+w+" < schema"+o+".length; "+w+"++) { if ("+u+"[schema"+o+"["+w+"]] === undefined) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(s+=" } ")}else{var A=p;if(A)for(var k,q=-1,L=A.length-1;q<L;){k=A[q+=1];var I=e.util.getProperty(k),S=e.util.escapeQuotes(k);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,k,e.opts.jsonPointers)),s+=" if ("+u+I+" === undefined) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+S+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else h&&(s+=" if (true) {");return s}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+"."+r,l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m,v="ifPassed"+e.level,y=d.baseId;a+="var "+v+";";var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;){if(P=g[E+=1],E&&!m&&(a+=" if (!"+v+") { ",p+="}"),P.if&&e.util.schemaHasRules(P.if,e.RULES.all)){a+=" var "+f+" = errors; ";var w=e.compositeRule;if(e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.schema=P.if,d.schemaPath=n+"["+E+"].if",d.errSchemaPath=l+"/"+E+"/if",a+=" "+e.validate(d)+" ",d.baseId=y,d.createErrors=!0,e.compositeRule=d.compositeRule=w,a+=" "+v+" = valid"+d.level+"; if ("+v+") { ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;a+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } } "}else if(a+=" "+v+" = true; ","boolean"==typeof P.then){if(P.then===!1){var j=j||[];j.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+E+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var S=a;a=j.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var valid"+d.level+" = "+P.then+"; "}else d.schema=P.then,d.schemaPath=n+"["+E+"].then",d.errSchemaPath=l+"/"+E+"/then",a+=" "+e.validate(d)+" ",d.baseId=y;m=P.continue}return a+=""+p+"var "+u+" = valid"+d.level+"; ",a=e.util.cleanUpCode(a)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+"."+r,c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||d)&&e.opts.uniqueItems!==!1){d&&(s+=" var "+f+"; if ("+a+" === false || "+a+" === undefined) "+f+" = true; else if (typeof "+a+" != 'boolean') "+f+" = false; else { "),s+=" var "+f+" = true; if ("+u+".length > 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+f+" = false; break outer; } } } } ",d&&(s+=" } "),s+=" if (!"+f+") { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"uniqueItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { ")}else h&&(s+=" if (true) { ");return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){function t(e){for(var r=0;r<e.rules.length;r++)if(a(e.rules[r]))return!0}function a(r){return void 0!==e.schema[r.keyword]||"properties"==r.keyword&&(e.schema.additionalProperties===!1||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var s="",o=e.schema.$async===!0;if(e.isTop){var i=e.isTop,n=e.level=0,l=e.dataLevel=0,c="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,o){e.async=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],s+=" var validate = ",o?h?s+=" (async function ":("co*"==e.opts.async&&(s+="co.wrap"),s+="(function* "):s+=" (function ",s+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data;"}else{var n=e.level,l=e.dataLevel,c="data"+(l||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),o&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+n+" = errors;"}var u,f="valid"+n,d=!e.opts.allErrors,p="",m="",v=e.schema.type,y=Array.isArray(v);if(v&&e.opts.coerceTypes){var g=e.util.coerceToTypes(e.opts.coerceTypes,v);if(g){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var w="dataType"+n,j="coerced"+n;s+=" var "+w+" = typeof "+c+"; ","array"==e.opts.coerceTypes&&(s+=" if ("+w+" == 'object' && Array.isArray("+c+")) "+w+" = 'array'; "),s+=" var "+j+" = undefined; ";var S="",$=g;if($)for(var x,_=-1,O=$.length-1;_<O;)x=$[_+=1],_&&(s+=" if ("+j+" === undefined) { ",S+="}"),"array"==e.opts.coerceTypes&&"array"!=x&&(s+=" if ("+w+" == 'array' && "+c+".length == 1) { "+j+" = "+c+" = "+c+"[0]; "+w+" = typeof "+c+"; } "),"string"==x?s+=" if ("+w+" == 'number' || "+w+" == 'boolean') "+j+" = '' + "+c+"; else if ("+c+" === null) "+j+" = ''; ":"number"==x||"integer"==x?(s+=" if ("+w+" == 'boolean' || "+c+" === null || ("+w+" == 'string' && "+c+" && "+c+" == +"+c+" ","integer"==x&&(s+=" && !("+c+" % 1)"),s+=")) "+j+" = +"+c+"; "):"boolean"==x?s+=" if ("+c+" === 'false' || "+c+" === 0 || "+c+" === null) "+j+" = false; else if ("+c+" === 'true' || "+c+" === 1) "+j+" = true; ":"null"==x?s+=" if ("+c+" === '' || "+c+" === 0 || "+c+" === false) "+j+" = null; ":"array"==e.opts.coerceTypes&&"array"==x&&(s+=" if ("+w+" == 'string' || "+w+" == 'number' || "+w+" == 'boolean' || "+c+" == null) "+j+" = ["+c+"]; ");s+=" "+S+" if ("+j+" === undefined) { ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;if(s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",l){var A="data"+(l-1||""),k=e.dataPathArr[l];s+=" "+c+" = "+A+"["+k+"] = "+j+"; "}else s+=" data = "+j+"; if (parentData !== undefined) parentData[parentDataProperty] = "+j+"; ";s+=" } } "}}var q;if(e.schema.$ref&&(q=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"))){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'"');"ignore"==e.opts.extendRefs?(q=!1,console.log('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"')):e.opts.extendRefs!==!0&&console.log('$ref: all keywords used in schema at path "'+e.errSchemaPath+'". It will change in the next major version, see issue #260. Use option { extendRefs: true } to keep current behaviour')}if(e.schema.$ref&&!q)s+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",d&&(s+=" } if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}");else{var L=e.RULES;if(L)for(var D,Q=-1,C=L.length-1;Q<C;)if(D=L[Q+=1],t(D)){if(D.type&&(s+=" if ("+e.util.checkDataType(D.type,c)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==D.type&&e.schema.properties){var U=e.schema.properties,V=Object.keys(U),z=V;if(z)for(var T,M=-1,N=z.length-1;M<N;){T=z[M+=1];var F=U[T];if(void 0!==F.default){var H=c+e.util.getProperty(T);s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}}else if("array"==D.type&&Array.isArray(e.schema.items)){var J=e.schema.items;if(J)for(var F,_=-1,G=J.length-1;_<G;)if(F=J[_+=1],void 0!==F.default){var H=c+"["+_+"]";s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}var K=D.rules;if(K)for(var B,Z=-1,Y=K.length-1;Z<Y;)B=K[Z+=1],a(B)&&(s+=" "+B.code(e,B.keyword)+" ",d&&(p+="}"));if(d&&(s+=" "+p+" ",p=""),D.type&&(s+=" } ",v&&v===D.type)){var W=!0;s+=" else { ";var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } "}d&&(s+=" if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}")}}if(v&&!W&&(!e.opts.coerceTypes||!g)){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}return d&&(s+=" "+m+" "),i?(o?(s+=" if (errors === 0) return true; ",s+=" else throw new ValidationError(vErrors); "):(s+=" validate.errors = vErrors; ",s+=" return errors === 0; "),s+=" }); return validate;"):s+=" var "+f+" = errors === errs_"+n+";",s=e.util.cleanUpCode(s),i&&d&&(s=e.util.cleanUpVarErrors(s,o)),s}},{}],37:[function(e,r,t){"use strict";var a=/^[a-z_$][a-z0-9_$]*$/i,s=e("./dotjs/custom");r.exports=function(e,r){function t(e,r,t){for(var a,o=0;o<i.RULES.length;o++){var n=i.RULES[o];if(n.type==r){a=n;break}}a||(a={type:r,rules:[]},i.RULES.push(a));var l={keyword:e,definition:t,custom:!0,code:s};a.rules.push(l),i.RULES.custom[e]=l}function o(e){if(!i.RULES.types[e])throw new Error("Unknown type "+e)}var i=this;if(this.RULES.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){var n=r.type;if(Array.isArray(n)){var l,c=n.length;for(l=0;l<c;l++)o(n[l]);for(l=0;l<c;l++)t(e,n[l],r)}else n&&o(n),t(e,n,r);var h=r.$data===!0&&this._opts.v5;if(h&&!r.validate)throw new Error('$data support: neither "validate" nor "compile" functions are defined');var u=r.metaSchema;u&&(h&&(u={anyOf:[u,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#/definitions/$data"}]}),r.validateSchema=i.compile(u,!0))}this.RULES.keywords[e]=this.RULES.all[e]=!0}},{"./dotjs/custom":21}],38:[function(e,r,t){r.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean",default:!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean",default:!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},default:{}}},{}],39:[function(e,r,t){r.exports={id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema (v5 proposals)",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},$data:{type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{anyOf:[{type:"number",minimum:0,exclusiveMinimum:!0},{$ref:"#/definitions/$data"}]},maximum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMaximum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMinimum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},maxLength:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minLength:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},pattern:{anyOf:[{type:"string",format:"regex"},{$ref:"#/definitions/$data"}]},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minItems:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},uniqueItems:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},maxProperties:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minProperties:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},required:{anyOf:[{$ref:"#/definitions/stringArray"},{$ref:"#/definitions/$data"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{anyOf:[{type:"array",minItems:1,uniqueItems:!0},{$ref:"#/definitions/$data"}]},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"},format:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMaximum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMinimum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatExclusiveMaximum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},formatExclusiveMinimum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},constant:{anyOf:[{},{$ref:"#/definitions/$data"}]},contains:{$ref:"#"},patternGroups:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},schema:{$ref:"#"}},additionalProperties:!1},default:{}},switch:{type:"array",items:{required:["then"],properties:{if:{$ref:"#"},then:{anyOf:[{type:"boolean"},{$ref:"#"}]},continue:{type:"boolean"}},additionalProperties:!1,dependencies:{continue:["if"]}}}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"],formatMaximum:["format"],formatMinimum:["format"],formatExclusiveMaximum:["formatMaximum"],formatExclusiveMinimum:["formatMinimum"]},default:{}}},{}],40:[function(e,r,t){"use strict";function a(r){function t(e,t,s){var o={inline:s||a[e],statements:!0,errors:"full"};t&&(o.type=t),r.addKeyword(e,o)}var a={switch:e("./dotjs/switch"),constant:e("./dotjs/constant"),_formatLimit:e("./dotjs/_formatLimit"),patternRequired:e("./dotjs/patternRequired")};if(r._opts.meta!==!1){var i=e("./refs/json-schema-v5.json");r.addMetaSchema(i,o)}t("constant"),r.addKeyword("contains",{type:"array",macro:s}),t("formatMaximum","string",a._formatLimit),t("formatMinimum","string",a._formatLimit),r.addKeyword("formatExclusiveMaximum"),r.addKeyword("formatExclusiveMinimum"),r.addKeyword("patternGroups"),t("patternRequired","object"),t("switch")}function s(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";r.exports={enable:a,META_SCHEMA_ID:o}},{"./dotjs/_formatLimit":13,"./dotjs/constant":20,"./dotjs/patternRequired":30,"./dotjs/switch":34,"./refs/json-schema-v5.json":39}],41:[function(r,t,a){(function(r){!function(s){function o(e){throw new RangeError(L[e])}function i(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function n(e,r){var t=e.split("@"),a="";t.length>1&&(a=t[0]+"@",e=t[1]),e=e.replace(q,".");var s=e.split("."),o=i(s,r).join(".");return a+o}function l(e){for(var r,t,a=[],s=0,o=e.length;s<o;)r=e.charCodeAt(s++),r>=55296&&r<=56319&&s<o?(t=e.charCodeAt(s++),56320==(64512&t)?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--)):a.push(r);return a}function c(e){return i(e,function(e){var r="";return e>65535&&(e-=65536,r+=C(e>>>10&1023|55296),e=56320|1023&e),r+=C(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:j}function u(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function f(e,r,t){var a=0;for(e=t?Q(e/_):e>>1,e+=Q(e/r);e>D*$>>1;a+=j)e=Q(e/D);return Q(a+(D+1)*e/(e+x))}function d(e){var r,t,a,s,i,n,l,u,d,p,m=[],v=e.length,y=0,g=R,P=O;for(t=e.lastIndexOf(I),t<0&&(t=0),a=0;a<t;++a)e.charCodeAt(a)>=128&&o("not-basic"),
-m.push(e.charCodeAt(a));for(s=t>0?t+1:0;s<v;){for(i=y,n=1,l=j;s>=v&&o("invalid-input"),u=h(e.charCodeAt(s++)),(u>=j||u>Q((w-y)/n))&&o("overflow"),y+=u*n,d=l<=P?S:l>=P+$?$:l-P,!(u<d);l+=j)p=j-d,n>Q(w/p)&&o("overflow"),n*=p;r=m.length+1,P=f(y-i,r,0==i),Q(y/r)>w-g&&o("overflow"),g+=Q(y/r),y%=r,m.splice(y++,0,g)}return c(m)}function p(e){var r,t,a,s,i,n,c,h,d,p,m,v,y,g,P,E=[];for(e=l(e),v=e.length,r=R,t=0,i=O,n=0;n<v;++n)m=e[n],m<128&&E.push(C(m));for(a=s=E.length,s&&E.push(I);a<v;){for(c=w,n=0;n<v;++n)m=e[n],m>=r&&m<c&&(c=m);for(y=a+1,c-r>Q((w-t)/y)&&o("overflow"),t+=(c-r)*y,r=c,n=0;n<v;++n)if(m=e[n],m<r&&++t>w&&o("overflow"),m==r){for(h=t,d=j;p=d<=i?S:d>=i+$?$:d-i,!(h<p);d+=j)P=h-p,g=j-p,E.push(C(u(p+P%g,0))),h=Q(P/g);E.push(C(u(h,0))),i=f(t,y,a==s),t=0,++a}++t,++r}return E.join("")}function m(e){return n(e,function(e){return A.test(e)?d(e.slice(4).toLowerCase()):e})}function v(e){return n(e,function(e){return k.test(e)?"xn--"+p(e):e})}var y="object"==typeof a&&a&&!a.nodeType&&a,g="object"==typeof t&&t&&!t.nodeType&&t,P="object"==typeof r&&r;P.global!==P&&P.window!==P&&P.self!==P||(s=P);var E,b,w=2147483647,j=36,S=1,$=26,x=38,_=700,O=72,R=128,I="-",A=/^xn--/,k=/[^\x20-\x7E]/,q=/[\x2E\u3002\uFF0E\uFF61]/g,L={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},D=j-S,Q=Math.floor,C=String.fromCharCode;if(E={version:"1.4.1",ucs2:{decode:l,encode:c},decode:d,encode:p,toASCII:v,toUnicode:m},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return E});else if(y&&g)if(t.exports==y)g.exports=E;else for(b in E)E.hasOwnProperty(b)&&(y[b]=E[b]);else s.punycode=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],42:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var h=0;h<c;++h){var u,f,d,p,m=e[h].replace(n,"%20"),v=m.indexOf(t);v>=0?(u=m.substr(0,v),f=m.substr(v+1)):(u=m,f=""),d=decodeURIComponent(u),p=decodeURIComponent(f),a(i,d)?s(i[d])?i[d].push(p):i[d]=[i[d],p]:i[d]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],43:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;a<e.length;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],44:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":42,"./encode":43}],45:[function(e,r,t){"use strict";function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function s(e,r,t){if(e&&c.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}function o(e){return c.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function i(e,r){return s(e,!1,!0).resolve(r)}function n(e,r){return e?s(e,!1,!0).resolveObject(r):r}var l=e("punycode"),c=e("./util");t.parse=s,t.resolve=i,t.resolveObject=n,t.format=o,t.Url=a;var h=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),m=["'"].concat(p),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,P=/^[+a-z0-9A-Z_-]{0,63}$/,E=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=e("querystring");a.prototype.parse=function(e,r,t){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=a!==-1&&a<e.indexOf("#")?"?":"#",o=e.split(s),i=/\\/g;o[0]=o[0].replace(i,"/"),e=o.join(s);var n=e;if(n=n.trim(),!t&&1===e.split("#").length){var u=f.exec(n);if(u)return this.path=n,this.href=n,this.pathname=u[1],u[2]?(this.search=u[2],this.query=r?S.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var d=h.exec(n);if(d){d=d[0];var p=d.toLowerCase();this.protocol=p,n=n.substr(d.length)}if(t||d||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var $="//"===n.substr(0,2);!$||d&&w[d]||(n=n.substr(2),this.slashes=!0)}if(!w[d]&&($||d&&!j[d])){for(var x=-1,_=0;_<y.length;_++){var O=n.indexOf(y[_]);O!==-1&&(x===-1||O<x)&&(x=O)}var R,I;I=x===-1?n.lastIndexOf("@"):n.lastIndexOf("@",x),I!==-1&&(R=n.slice(0,I),n=n.slice(I+1),this.auth=decodeURIComponent(R)),x=-1;for(var _=0;_<v.length;_++){var O=n.indexOf(v[_]);O!==-1&&(x===-1||O<x)&&(x=O)}x===-1&&(x=n.length),this.host=n.slice(0,x),n=n.slice(x),this.parseHost(),this.hostname=this.hostname||"";var A="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!A)for(var k=this.hostname.split(/\./),_=0,q=k.length;_<q;_++){var L=k[_];if(L&&!L.match(P)){for(var D="",Q=0,C=L.length;Q<C;Q++)D+=L.charCodeAt(Q)>127?"x":L[Q];if(!D.match(P)){var U=k.slice(0,_),V=k.slice(_+1),z=L.match(E);z&&(U.push(z[1]),V.unshift(z[2])),V.length&&(n="/"+V.join(".")+n),this.hostname=U.join(".");break}}}this.hostname=this.hostname.length>g?"":this.hostname.toLowerCase(),A||(this.hostname=l.toASCII(this.hostname));var T=this.port?":"+this.port:"",M=this.hostname||"";this.host=M+T,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==n[0]&&(n="/"+n))}if(!b[p])for(var _=0,q=m.length;_<q;_++){var N=m[_];if(n.indexOf(N)!==-1){var F=encodeURIComponent(N);F===N&&(F=escape(N)),n=n.split(N).join(F)}}var H=n.indexOf("#");H!==-1&&(this.hash=n.substr(H),n=n.slice(0,H));var J=n.indexOf("?");if(J!==-1?(this.search=n.substr(J),this.query=n.substr(J+1),r&&(this.query=S.parse(this.query)),n=n.slice(0,J)):r&&(this.search="",this.query={}),n&&(this.pathname=n),j[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var T=this.pathname||"",G=this.search||"";this.path=T+G}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&c.isObject(this.query)&&Object.keys(this.query).length&&(o=S.stringify(this.query));var i=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||j[r])&&s!==!1?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),i&&"?"!==i.charAt(0)&&(i="?"+i),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),i=i.replace("#","%23"),r+s+t+i+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(c.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;o<s.length;o++){var i=s[o];t[i]=this[i]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var n=Object.keys(e),l=0;l<n.length;l++){var h=n[l];"protocol"!==h&&(t[h]=e[h])}return j[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!j[e.protocol]){for(var u=Object.keys(e),f=0;f<u.length;f++){var d=u[f];t[d]=e[d]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||w[e.protocol])t.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),t.pathname=p.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){var m=t.pathname||"",v=t.search||"";t.path=m+v}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var y=t.pathname&&"/"===t.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),P=g||y||t.host&&e.pathname,E=P,b=t.pathname&&t.pathname.split("/")||[],p=e.pathname&&e.pathname.split("/")||[],S=t.protocol&&!j[t.protocol];if(S&&(t.hostname="",t.port=null,t.host&&(""===b[0]?b[0]=t.host:b.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),P=P&&(""===p[0]||""===b[0])),g)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,b=p;else if(p.length)b||(b=[]),b.pop(),b=b.concat(p),t.search=e.search,t.query=e.query;else if(!c.isNullOrUndefined(e.search)){if(S){t.hostname=t.host=b.shift();var $=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@");$&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return t.search=e.search,t.query=e.query,c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!b.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var x=b.slice(-1)[0],_=(t.host||e.host||b.length>1)&&("."===x||".."===x)||""===x,O=0,R=b.length;R>=0;R--)x=b[R],"."===x?b.splice(R,1):".."===x?(b.splice(R,1),O++):O&&(b.splice(R,1),O--);if(!P&&!E)for(;O--;O)b.unshift("..");!P||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),_&&"/"!==b.join("/").substr(-1)&&b.push("");var I=""===b[0]||b[0]&&"/"===b[0].charAt(0);if(S){t.hostname=t.host=I?"":b.length?b.shift():"";var $=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@");$&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return P=P||t.host&&b.length,P&&!I&&b.unshift(""),b.length?t.pathname=b.join("/"):(t.pathname=null,t.path=null),c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=u.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":46,punycode:41,querystring:44}],46:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],47:[function(e,r,t){function a(e){var r=this,t=f.call(arguments,1);return new Promise(function(a,o){function i(r){var t;try{t=e.next(r)}catch(e){return o(e)}c(t)}function n(r){var t;try{t=e.throw(r)}catch(e){return o(e)}c(t)}function c(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&l(t)?t.then(i,n):n(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}return"function"==typeof e&&(e=e.apply(r,t)),e&&"function"==typeof e.next?void i():a(e)})}function s(e){return e?l(e)?e:h(e)||c(e)?a.call(this,e):"function"==typeof e?o.call(this,e):Array.isArray(e)?i.call(this,e):u(e)?n.call(this,e):e:e}function o(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){return e?a(e):(arguments.length>2&&(r=f.call(arguments,1)),void t(r))})})}function i(e){return Promise.all(e.map(s,this))}function n(e){function r(e,r){t[r]=void 0,o.push(e.then(function(e){t[r]=e}))}for(var t=new e.constructor,a=Object.keys(e),o=[],i=0;i<a.length;i++){var n=a[i],c=s.call(this,e[n]);c&&l(c)?r(c,n):t[n]=e[n]}return Promise.all(o).then(function(){return t})}function l(e){return"function"==typeof e.then}function c(e){return"function"==typeof e.next&&"function"==typeof e.throw}function h(e){var r=e.constructor;return!!r&&("GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName||c(r.prototype))}function u(e){return Object==e.constructor}var f=Array.prototype.slice;r.exports=a.default=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],48:[function(e,r,t){var a="undefined"!=typeof JSON?JSON:e("jsonify");r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t=r.space||"";"number"==typeof t&&(t=Array(t+1).join(" "));var i="boolean"==typeof r.cycles&&r.cycles,n=r.replacer||function(e,r){return r},l=r.cmp&&function(e){return function(r){return function(t,a){var s={key:t,value:r[t]},o={key:a,value:r[a]};return e(s,o)}}}(r.cmp),c=[];return function e(r,h,u,f){var d=t?"\n"+new Array(f+1).join(t):"",p=t?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),u=n.call(r,h,u),void 0!==u){if("object"!=typeof u||null===u)return a.stringify(u);if(s(u)){for(var m=[],v=0;v<u.length;v++){var y=e(u,v,u[v],f+1)||a.stringify(null);m.push(d+t+y)}return"["+m.join(",")+d+"]"}if(c.indexOf(u)!==-1){if(i)return a.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}c.push(u);for(var g=o(u).sort(l&&l(u)),m=[],v=0;v<g.length;v++){var h=g[v],P=e(u,h,u[h],f+1);if(P){var E=a.stringify(h)+p+P;m.push(d+t+E)}}return c.splice(c.indexOf(u),1),"{"+m.join(",")+d+"}"}}({"":e},"",e,0)};var s=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},o=Object.keys||function(e){var r=Object.prototype.hasOwnProperty||function(){return!0},t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}},{jsonify:49}],49:[function(e,r,t){t.parse=e("./lib/parse"),t.stringify=e("./lib/stringify")},{"./lib/parse":50,"./lib/stringify":51}],50:[function(e,r,t){var a,s,o,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},l=function(e){throw{name:"SyntaxError",message:e,at:a,text:o}},c=function(e){return e&&e!==s&&l("Expected '"+e+"' instead of '"+s+"'"),s=o.charAt(a),a+=1,s},h=function(){var e,r="";for("-"===s&&(r="-",c("-"));s>="0"&&s<="9";)r+=s,c();if("."===s)for(r+=".";c()&&s>="0"&&s<="9";)r+=s;if("e"===s||"E"===s)for(r+=s,c(),"-"!==s&&"+"!==s||(r+=s,c());s>="0"&&s<="9";)r+=s,c();return e=+r,isFinite(e)?e:void l("Bad number")},u=function(){var e,r,t,a="";if('"'===s)for(;c();){if('"'===s)return c(),a;if("\\"===s)if(c(),"u"===s){for(t=0,r=0;r<4&&(e=parseInt(c(),16),isFinite(e));r+=1)t=16*t+e;a+=String.fromCharCode(t)}else{if("string"!=typeof n[s])break;a+=n[s]}else a+=s}l("Bad string")},f=function(){for(;s&&s<=" ";)c()},d=function(){switch(s){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+s+"'")},p=function(){var e=[];if("["===s){if(c("["),f(),"]"===s)return c("]"),e;for(;s;){if(e.push(i()),f(),"]"===s)return c("]"),e;c(","),f()}}l("Bad array")},m=function(){var e,r={};if("{"===s){if(c("{"),f(),"}"===s)return c("}"),r;for(;s;){if(e=u(),f(),c(":"),Object.hasOwnProperty.call(r,e)&&l('Duplicate key "'+e+'"'),r[e]=i(),f(),"}"===s)return c("}"),r;c(","),f()}}l("Bad object")};i=function(){switch(f(),s){case"{":return m();case"[":return p();case'"':return u();case"-":return h();default:return s>="0"&&s<="9"?h():d()}},r.exports=function(e,r){var t;return o=e,a=0,s=" ",t=i(),f(),s&&l("Syntax error"),"function"==typeof r?function e(t,a){var s,o,i=t[a];if(i&&"object"==typeof i)for(s in i)Object.prototype.hasOwnProperty.call(i,s)&&(o=e(i,s),void 0!==o?i[s]=o:delete i[s]);return r.call(t,a,i)}({"":t},""):t}},{}],51:[function(e,r,t){function a(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var r=c[e];return"string"==typeof r?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function s(e,r){var t,l,c,h,u,f=o,d=r[e];switch(d&&"object"==typeof d&&"function"==typeof d.toJSON&&(d=d.toJSON(e)),"function"==typeof n&&(d=n.call(r,e,d)),typeof d){case"string":return a(d);case"number":return isFinite(d)?String(d):"null";case"boolean":case"null":return String(d);case"object":if(!d)return"null";if(o+=i,u=[],"[object Array]"===Object.prototype.toString.apply(d)){for(h=d.length,t=0;t<h;t+=1)u[t]=s(t,d)||"null";return c=0===u.length?"[]":o?"[\n"+o+u.join(",\n"+o)+"\n"+f+"]":"["+u.join(",")+"]",o=f,c}if(n&&"object"==typeof n)for(h=n.length,t=0;t<h;t+=1)l=n[t],"string"==typeof l&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));else for(l in d)Object.prototype.hasOwnProperty.call(d,l)&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));return c=0===u.length?"{}":o?"{\n"+o+u.join(",\n"+o)+"\n"+f+"}":"{"+u.join(",")+"}",o=f,c}}var o,i,n,l=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.exports=function(e,r,t){var a;if(o="",i="","number"==typeof t)for(a=0;a<t;a+=1)i+=" ";else"string"==typeof t&&(i=t);if(n=r,r&&"function"!=typeof r&&("object"!=typeof r||"number"!=typeof r.length))throw new Error("JSON.stringify");return s("",{"":e})}},{}],ajv:[function(e,r,t){"use strict";function a(e){return v.test(e)}function Ajv(r){function t(e,r){var t;if("string"==typeof e){if(t=j(e),!t)throw new Error('no schema with key or ref "'+e+'"')}else{var a=O(e);t=a.validate||R(a)}var s=t(r);return t.$async===!0?"*"==C._opts.async?p(s):s:(C.errors=t.errors,s)}function g(e,r){var t=O(e,void 0,r);return t.validate||R(t)}function P(e,r,t,a){if(Array.isArray(e))for(var s=0;s<e.length;s++)P(e[s],void 0,t,a);else r=o.normalizeId(r||e.id),D(r),C._schemas[r]=O(e,t,a,!0)}function E(e,r,t){P(e,r,t,!0)}function b(e,r){var s=e.$schema||C._opts.defaultMeta||w(),o=C._formats.uri;C._formats.uri="function"==typeof o?a:v;var i;try{i=t(s,e)}finally{C._formats.uri=o}if(!i&&r){var n="schema is invalid: "+I();if("log"!=C._opts.validateSchema)throw new Error(n);console.error(n)}return i}function w(){var e=C._opts.meta;return C._opts.defaultMeta="object"==typeof e?e.id||e:C._opts.v5?u.META_SCHEMA_ID:m}function j(e){var r=$(e);switch(typeof r){case"object":return r.validate||R(r);case"string":return j(r);case"undefined":return S(e)}}function S(e){var r=o.schema.call(C,{schema:{}},e);if(r){var t=r.schema,a=r.root,i=r.baseId,l=s.call(C,t,a,void 0,i);return C._fragments[e]=new n({ref:e,fragment:!0,schema:t,root:a,baseId:i,validate:l}),l}}function $(e){return e=o.normalizeId(e),C._schemas[e]||C._refs[e]||C._fragments[e]}function x(e){if(e instanceof RegExp)return _(C._schemas,e),void _(C._refs,e);switch(typeof e){case"undefined":return _(C._schemas),_(C._refs),void C._cache.clear();case"string":var r=$(e);return r&&C._cache.del(r.jsonStr),delete C._schemas[e],void delete C._refs[e];case"object":var t=l(e);C._cache.del(t);var a=e.id;a&&(a=o.normalizeId(a),delete C._schemas[a],delete C._refs[a])}}function _(e,r){for(var t in e){var a=e[t];a.meta||r&&!r.test(t)||(C._cache.del(a.jsonStr),delete e[t])}}function O(e,r,t,a){if("object"!=typeof e)throw new Error("schema should be object");var s=l(e),i=C._cache.get(s);if(i)return i;a=a||C._opts.addUsedSchema!==!1;var c=o.normalizeId(e.id);c&&a&&D(c);var h,u=C._opts.validateSchema!==!1&&!r;u&&!(h=e.id&&e.id==e.$schema)&&b(e,!0);var f=o.ids.call(C,e),d=new n({id:c,schema:e,localRefs:f,jsonStr:s,meta:t});return"#"!=c[0]&&a&&(C._refs[c]=d),C._cache.put(s,d),u&&h&&b(e,!0),d}function R(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r?r:t,e.schema.$async===!0&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=C._opts,C._opts=C._metaOpts);var o;try{o=s.call(C,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(C._opts=a)}return e.validate=o,e.refs=o.refs,e.refVal=o.refVal,e.root=o.root,o}function I(e,r){if(e=e||C.errors,!e)return"No errors";r=r||{};for(var t=void 0===r.separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)}function A(e,r){"string"==typeof r&&(r=new RegExp(r)),C._formats[e]=r}function k(){if(C._opts.meta!==!1){var r=e("./refs/json-schema-draft-04.json");E(r,m,!0),C._refs["http://json-schema.org/schema"]=m}}function q(){var e=C._opts.schemas;if(e)if(Array.isArray(e))P(e);else for(var r in e)P(e[r],r)}function L(){for(var e in C._opts.formats){var r=C._opts.formats[e];A(e,r)}}function D(e){if(C._schemas[e]||C._refs[e])throw new Error('schema with key or id "'+e+'" already exists')}function Q(){for(var e=f.copy(C._opts),r=0;r<y.length;r++)delete e[y[r]];return e}if(!(this instanceof Ajv))return new Ajv(r);var C=this;r=this._opts=f.copy(r)||{},this._schemas={},this._refs={},this._fragments={},this._formats=c(r.format),this._cache=r.cache||new i,this._loadingSchemas={},this._compilations=[],this.RULES=h(),this.validate=t,this.compile=g,this.addSchema=P,this.addMetaSchema=E,this.validateSchema=b,this.getSchema=j,this.removeSchema=x,this.addFormat=A,this.errorsText=I,this._addSchema=O,this._compile=R,r.loopRequired=r.loopRequired||1/0,(r.async||r.transpile)&&d.setup(r),r.beautify===!0&&(r.beautify={indent_size:2}),"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),this._metaOpts=Q(),r.formats&&L(),k(),r.v5&&u.enable(this),"object"==typeof r.meta&&E(r.meta),q()}var s=e("./compile"),o=e("./compile/resolve"),i=e("./cache"),n=e("./compile/schema_obj"),l=e("json-stable-stringify"),c=e("./compile/formats"),h=e("./compile/rules"),u=e("./v5"),f=e("./compile/util"),d=e("./async"),p=e("co");r.exports=Ajv,Ajv.prototype.compileAsync=d.compile,Ajv.prototype.addKeyword=e("./keyword"),Ajv.ValidationError=e("./compile/validation_error");var m="http://json-schema.org/draft-04/schema",v=/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,y=["removeAdditional","useDefaults","coerceTypes"]},{"./async":1,"./cache":2,"./compile":6,"./compile/formats":5,"./compile/resolve":7,"./compile/rules":8,"./compile/schema_obj":9,"./compile/util":11,"./compile/validation_error":12,"./keyword":37,"./refs/json-schema-draft-04.json":38,"./v5":40,co:47,"json-stable-stringify":48}]},{},[])("ajv")});
+/* ajv 4.10.4: Another JSON Schema Validator */
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.Ajv=e()}}(function(){var e;return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var h=t[i]={exports:{}};r[i][0].call(h.exports,function(e){var t=r[i][1][e];return s(t?t:e)},h,h.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<a.length;i++)s(a[i]);return s}({1:[function(e,r,t){"use strict";function a(e,r){r!==!1&&(r=!0);var t,s=e.async,o=e.transpile;switch(typeof o){case"string":var i=m[o];if(!i)throw new Error("bad transpiler: "+o);return e._transpileFunc=i(e,r);case"undefined":case"boolean":if("string"==typeof s){if(t=p[s],!t)throw new Error("bad async mode: "+s);return e.transpile=t(e,r)}for(var n=0;n<v.length;n++){var l=v[n];if(a(l,!1))return d.copy(l,e),e.transpile}throw new Error("generators, nodent and regenerator are not available");case"function":return e._transpileFunc=e.transpile;default:throw new Error("bad transpiler: "+o)}}function s(e,r){try{return new Function("(function*(){})()")(),!0}catch(e){if(r)throw new Error("generators not supported")}}function o(e,r){try{return new Function("(async function(){})()")(),!0}catch(e){if(r)throw new Error("es7 async functions not supported")}}function i(r,t){try{if(!u){var a="regenerator";u=e(a),u.runtime()}return r.async&&r.async!==!0||(r.async="es7"),n}catch(e){if(t)throw new Error("regenerator not available")}}function n(e){return u.compile(e).code}function l(r,t){try{if(!f){var a="nodent";f=e(a)({log:!1,dontInstallRequireHook:!0})}return"es7"!=r.async&&(r.async&&r.async!==!0&&console.warn("nodent transpiles only es7 async functions"),r.async="es7"),c}catch(e){if(t)throw new Error("nodent not available")}}function c(e){return f.compile(e,"",{promises:!0,sourcemap:!1}).code}function h(e,r){function t(e,r,a){function o(a){function o(a,o){if(a)return r(a);if(!s._refs[i]&&!s._schemas[i])try{s.addSchema(o,i)}catch(e){return void r(e)}t(e,r)}var i=a.missingSchema;if(s._refs[i]||s._schemas[i])return r(new Error("Schema "+i+" is loaded but "+a.missingRef+" cannot be resolved"));var n=s._loadingSchemas[i];n?"function"==typeof n?s._loadingSchemas[i]=[n,o]:n[n.length]=o:(s._loadingSchemas[i]=o,s._opts.loadSchema(i,function(e,r){var t=s._loadingSchemas[i];if(delete s._loadingSchemas[i],"function"==typeof t)t(e,r);else for(var a=0;a<t.length;a++)t[a](e,r)}))}function i(e,t){return a?void setTimeout(function(){r(e,t)}):r(e,t)}var n;try{n=s.compile(e)}catch(e){return void(e.missingSchema?o(e):i(e))}i(null,n)}var a,s=this;try{a=this._addSchema(e)}catch(e){return void setTimeout(function(){r(e)})}if(a.validate)setTimeout(function(){r(null,a.validate)});else{if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");t(e,r,!0)}}r.exports={setup:a,compile:h};var u,f,d=e("./compile/util"),p={"*":s,"co*":s,es7:o},m={nodent:l,regenerator:i},v=[{async:"co*"},{async:"es7",transpile:"nodent"},{async:"co*",transpile:"regenerator"}]},{"./compile/util":11}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),dependencies:e("../dotjs/dependencies"),enum:e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":14,"../dotjs/_limitItems":15,"../dotjs/_limitLength":16,"../dotjs/_limitProperties":17,"../dotjs/allOf":18,"../dotjs/anyOf":19,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":35,"../dotjs/validate":36}],4:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;var a,s=Array.isArray(r),o=Array.isArray(t);if(s&&o){if(r.length!=t.length)return!1;for(a=0;a<r.length;a++)if(!e(r[a],t[a]))return!1;return!0}if(s!=o)return!1;if(r&&t&&"object"==typeof r&&"object"==typeof t){var i=Object.keys(r);if(i.length!==Object.keys(t).length)return!1;var n=r instanceof Date,l=t instanceof Date;if(n&&l)return r.getTime()==t.getTime();if(n!=l)return!1;var c=r instanceof RegExp,h=t instanceof RegExp;if(c&&h)return r.toString()==t.toString();if(c!=h)return!1;for(a=0;a<i.length;a++)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=0;a<i.length;a++)if(!e(r[i[a]],t[i[a]]))return!1;return!0}return!1}},{}],5:[function(e,r,t){"use strict";function a(e){e="full"==e?"full":"fast";var r=d.copy(a[e]);for(var t in a.compare)r[t]={validate:r[t],compare:a.compare[t]};return r}function s(e){var r=e.match(p);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&t<=12&&a>=1&&a<=m[t]}function o(e,r){var t=e.match(v);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return a<=23&&s<=59&&o<=59&&(!r||i)}function i(e){var r=e.split(w);return 2==r.length&&s(r[0])&&o(r[1],!0)}function n(e){return e.length<=255&&y.test(e)}function l(e){return j.test(e)&&g.test(e)}function c(e){try{return new RegExp(e),!0}catch(e){return!1}}function h(e,r){if(e&&r)return e>r?1:e<r?-1:e===r?0:void 0}function u(e,r){if(e&&r&&(e=e.match(v),r=r.match(v),e&&r))return e=e[1]+e[2]+e[3]+(e[4]||""),r=r[1]+r[2]+r[3]+(r[4]||""),e>r?1:e<r?-1:e===r?0:void 0}function f(e,r){if(e&&r){e=e.split(w),r=r.split(w);var t=h(e[0],r[0]);if(void 0!==t)return t||u(e[1],r[1])}}var d=e("./util"),p=/^\d\d\d\d-(\d\d)-(\d\d)$/,m=[0,31,29,31,30,31,30,31,31,30,31,30,31],v=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,y=/^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i,g=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i,P=/^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,b=/^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)?(?:\:|\/)\/?[^\s]*$/i,email:/^[a-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:y,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:c,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.compare={date:h,time:u,"date-time":f};var w=/t|\s/i,j=/\/|\:/},{"./util":11}],6:[function(e,r,t){"use strict";function a(){if(void 0===d){var r="js-beautify";try{d=e(r).js_beautify}catch(e){d=!1}}}function s(e,r,t,n){function j(){var e=N.validate,r=e.apply(null,arguments);return j.errors=e.errors,r}function S(e,t,o,i){var n=!t||t&&t.schema==e;if(t.schema!=r.schema)return s.call(k,e,t,o,i);var v=e.$async===!0;v&&!q.transpile&&y.setup(q);var j=g({isTop:!0,schema:e,isRoot:n,baseId:i,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',RULES:H,validate:g,util:m,resolve:p,resolveRef:$,usePattern:R,useDefault:I,useCustomRule:A,opts:q,formats:F,self:k});j=f(D,h)+f(Q,l)+f(V,c)+f(U,u)+j,q.beautify&&(a(),d?j=d(j,q.beautify):console.error('"npm install js-beautify" to use beautify option'));var S,x,_=q._transpileFunc;try{x=v&&_?_(j):j;var O=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",x);S=O(k,H,F,r,D,V,U,P,b,E,w),D[0]=S}catch(e){throw console.error("Error compiling schema, function code:",x),e}return S.schema=e,S.errors=null,S.refs=L,S.refVal=D,S.root=n?S:t,v&&(S.$async=!0),T&&(S.sourceCode=j),q.sourceCode===!0&&(S.source={patterns:Q,defaults:V}),S}function $(e,a,o){a=p.url(e,a);var i,n,l=L[a];if(void 0!==l)return i=D[l],n="refVal["+l+"]",O(i,n);if(!o&&r.refs){var c=r.refs[a];if(void 0!==c)return i=r.refVal[c],n=x(a,i),O(i,n)}n=x(a);var h=p.call(k,S,r,a);if(!h){var u=t&&t[a];u&&(h=p.inlineRef(u,q.inlineRefs)?u:s.call(k,u,r,t,e))}return h?(_(a,h),O(h,n)):void 0}function x(e,r){var t=D.length;return D[t]=r,L[e]=t,"refVal"+t}function _(e,r){var t=L[e];D[t]=r}function O(e,r){return"object"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function R(e){var r=C[e];return void 0===r&&(r=C[e]=Q.length,Q[r]=e),"pattern"+r}function I(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return m.toQuotedString(e);case"object":if(null===e)return"null";var r=v(e),t=z[r];return void 0===t&&(t=z[r]=V.length,V[t]=e),"default"+t}}function A(e,r,t,a){var s=e.definition.validateSchema;if(s&&k._opts.validateSchema!==!1){var o=s(r);if(!o){var i="keyword schema is invalid: "+k.errorsText(s.errors);if("log"!=k._opts.validateSchema)throw new Error(i);console.error(i)}}var n,l=e.definition.compile,c=e.definition.inline,h=e.definition.macro;l?n=l.call(k,r,t,a):h?(n=h.call(k,r,t,a),q.validateSchema!==!1&&k.validateSchema(n,!0)):n=c?c.call(k,a,e.keyword,r,t):e.definition.validate;var u=U.length;return U[u]=n,{code:"customRule"+u,validate:n}}var k=this,q=this._opts,D=[void 0],L={},Q=[],C={},V=[],z={},U=[],T=q.sourceCode!==!1;r=r||{schema:e,refVal:D,refs:L};var M=o.call(this,e,r,n),N=this._compilations[M.index];if(M.compiling)return N.callValidate=j;var F=this._formats,H=this.RULES;try{var J=S(e,r,t,n);N.validate=J;var G=N.callValidate;return G&&(G.schema=J.schema,G.errors=null,G.refs=J.refs,G.refVal=J.refVal,G.root=J.root,G.$async=J.$async,T&&(G.sourceCode=J.sourceCode)),J}finally{i.call(this,e,r,n)}}function o(e,r,t){var a=n.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}function i(e,r,t){var a=n.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function n(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function l(e,r){return"var pattern"+e+" = new RegExp("+m.toQuotedString(r[e])+");"}function c(e){return"var default"+e+" = defaults["+e+"];"}function h(e,r){return r[e]?"var refVal"+e+" = refVal["+e+"];":""}function u(e){return"var customRule"+e+" = customRules["+e+"];"}function f(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}var d,p=e("./resolve"),m=e("./util"),v=e("json-stable-stringify"),y=e("../async"),g=e("../dotjs/validate"),P=e("co"),E=m.ucs2length,b=e("./equal"),w=e("./validation_error");r.exports=s},{"../async":1,"../dotjs/validate":36,"./equal":4,"./resolve":7,"./util":11,"./validation_error":12,co:47,"json-stable-stringify":48}],7:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if(o=o||this._schemas[t],o instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,c,h=s.call(this,r,t);return h&&(i=h.schema,r=h.root,c=h.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,c):i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,c)),l}function s(e,r){var t=m.parse(r,!1,!0),a=u(t),s=h(e.schema.id);if(a!==s){var n=f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else{if(l=this._schemas[n],!(l instanceof g))return;if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=h(e.schema.id)}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;return e=a.root,o.id&&(n=d(n,o.id)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;i<o.length;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),t=t[n],!t)break;if(t.id&&!P[n]&&(r=d(r,t.id)),t.$ref){var l=d(r,t.$ref),c=s.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return t&&t!=a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return r!==!1&&(void 0===r||r===!0?l(e):r?c(e)<=r:void 0)}function l(e){var r;if(Array.isArray(e)){for(var t=0;t<e.length;t++)if(r=e[t],"object"==typeof r&&!l(r))return!1}else for(var a in e){if("$ref"==a)return!1;if(r=e[a],"object"==typeof r&&!l(r))return!1}return!0}function c(e){var r,t=0;if(Array.isArray(e)){for(var a=0;a<e.length;a++)if(r=e[a],"object"==typeof r&&(t+=c(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(E[s])t++;else if(r=e[s],"object"==typeof r&&(t+=c(r)+1),t==1/0)return 1/0}return t}function h(e,r){r!==!1&&(e=f(e));var t=m.parse(e,!1,!0);return u(t)}function u(e){var r=e.protocol||"//"==e.href.slice(0,2)?"//":"";return(e.protocol||"")+r+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(b,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){function r(e,t,s){if(Array.isArray(e))for(var o=0;o<e.length;o++)r.call(this,e[o],t+"/"+o,s);else if(e&&"object"==typeof e){if("string"==typeof e.id){var i=s=s?m.resolve(s,e.id):e.id;i=f(i);var n=this._refs[i];if("string"==typeof n&&(n=this._refs[n]),n&&n.schema){if(!v(e,n.schema))throw new Error('id "'+i+'" resolves to more than one schema')}else if(i!=f(t))if("#"==i[0]){if(a[i]&&!v(e,a[i]))throw new Error('id "'+i+'" resolves to more than one schema');a[i]=e}else this._refs[i]=t}for(var l in e)r.call(this,e[l],t+"/"+y.escapeFragment(l),s)}}var t=f(e.id),a={};return r.call(this,e,h(t,!1),t),a}var m=e("url"),v=e("./equal"),y=e("./util"),g=e("./schema_obj");r.exports=a,a.normalizeId=f,a.fullPath=h,a.url=d,a.ids=p,a.inlineRef=n,a.schema=s;var P=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),E=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),b=/#\/?$/},{"./equal":4,"./schema_obj":9,"./util":11,url:45}],8:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util").toHash;r.exports=function(){var e=[{type:"number",rules:["maximum","minimum","multipleOf"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","properties"]},{rules:["$ref","enum","not","anyOf","oneOf","allOf"]}],r=["type","additionalProperties","patternProperties"],t=["additionalItems","$schema","id","title","description","default"],o=["number","integer","string","array","object","boolean","null"];return e.all=s(r),e.forEach(function(t){t.rules=t.rules.map(function(t){r.push(t);var s=e.all[t]={keyword:t,code:a[t]};return s})}),e.keywords=s(r.concat(t)),e.types=s(o),e.custom={},e}},{"./_rules":3,"./util":11}],9:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":11}],10:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,r=e.charCodeAt(s++),r>=55296&&r<=56319&&s<a&&(r=e.charCodeAt(s),56320==(64512&r)&&s++);return t}},{}],11:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];$[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if($[r])return[r];if("array"===e&&"array"===r)return["array"]}}function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":x.test(e)?"."+e:"['"+c(e)+"']"}function c(e){return e.replace(_,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function h(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function u(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function f(e){return e.replace(O,"").replace(R,"").replace(I,"if (!($1))")}function d(e,r){var t=e.match(A);return t&&2===t.length?r?e.replace(q,"").replace(Q,C):e.replace(k,"").replace(D,L):e}function p(e,r){for(var t in e)if(r[t])return!0}function m(e,r,t){for(var a in e)if(a!=t&&r[a])return!0}function v(e){return"'"+c(e)+"'"}function y(e,r,t,a){var s=t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'";return E(e,s)}function g(e,r,t){var a=v(t?"/"+j(r):l(r));return E(e,a)}function P(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!V.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(i=e.match(z),!i)throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],s=i[2],"#"==s){if(a>=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,c=s.split("/"),h=0;h<c.length;h++){var u=c[h];u&&(o+=l(S(u)),n+=" && "+o)}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return S(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function S(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:c,ucs2length:e("./ucs2length"),varOccurences:h,varReplace:u,cleanUpCode:f,cleanUpVarErrors:d,schemaHasRules:p,schemaHasRulesExcept:m,stableStringify:e("json-stable-stringify"),toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,escapeFragment:w,escapeJsonPointer:j};var $=n(["string","number","integer","boolean","null"]),x=/^[a-z$_][a-z$_0-9]*$/i,_=/'|\\/g,O=/else\s*{\s*}/g,R=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,I=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,A=/[^v\.]errors/g,k=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,q=/var errors = 0;|var vErrors = null;/g,D="return errors === 0;",L="validate.errors = null; return true;",Q=/if \(errors === 0\) return true;\s*else throw new ValidationError\(vErrors\);/,C="return true;",V=/^\/(?:[^~]|~0|~1)*$/,z=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"./ucs2length":10,"json-stable-stringify":48}],12:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}r.exports=a,a.prototype=Object.create(Error.prototype),a.prototype.constructor=a},{}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s;if(a+="var "+u+" = undefined;",e.opts.format===!1)return a+=" "+u+" = true; ";var f=e.schema.format,d=e.opts.v5&&f.$data,p="";if(d){var m=e.util.getData(f.$data,o,e.dataPathArr),v="format"+s,y="compare"+s;a+=" var "+v+" = formats["+m+"] , "+y+" = "+v+" && "+v+".compare;"}else{var v=e.formats[f];if(!v||!v.compare)return a+=" "+u+" = true; ";var y="formats"+e.util.getProperty(f)+".compare"}var g,P="formatMaximum"==r,E="formatExclusive"+(P?"Maximum":"Minimum"),b=e.schema[E],w=e.opts.v5&&b&&b.$data,j=P?"<":">",S="result"+s,$=e.opts.v5&&i&&i.$data;if($?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",g="schema"+s):g=i,w){var x=e.util.getData(b.$data,o,e.dataPathArr),_="exclusive"+s,O="op"+s,R="' + "+O+" + '";a+=" var schemaExcl"+s+" = "+x+"; ",x="schemaExcl"+s,a+=" if (typeof "+x+" != 'boolean' && "+x+" !== undefined) { "+u+" = false; ";var t=E,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: '"+E+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(p+="}",a+=" else { "),$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+", ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; var "+_+" = "+x+" === true; if ("+u+" === undefined) { "+u+" = "+_+" ? "+S+" "+j+" 0 : "+S+" "+j+"= 0; } if (!"+u+") var op"+s+" = "+_+" ? '"+j+"' : '"+j+"=';"}else{var _=b===!0,R=j;_||(R+="=");var O="'"+R+"'";$&&(a+=" if ("+g+" === undefined) "+u+" = true; else if (typeof "+g+" != 'string') "+u+" = false; else { ",p+="}"),d&&(a+=" if (!"+y+") "+u+" = true; else { ",p+="}"),a+=" var "+S+" = "+y+"("+h+", ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" ); if ("+S+" === undefined) "+u+" = false; if ("+u+" === undefined) "+u+" = "+S+" "+j,_||(a+="="),a+=" 0;"}a+=""+p+"if (!"+u+") { ";var t=r,I=I||[];I.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+O+", limit: ",a+=$?""+g:""+e.util.toQuotedString(i),a+=" , exclusive: "+_+" } ",e.opts.messages!==!1&&(a+=" , message: 'should be "+R+' "',a+=$?"' + "+g+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=$?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var A=a;return a=I.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+A+"]); ":" validate.errors = ["+A+"]; return false; ":" var err = "+A+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="}"}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.v5&&m&&m.$data,y=d?"<":">",g=d?">":"<";if(v){var P=e.util.getData(m.$data,i,e.dataPathArr),E="exclusive"+o,b="op"+o,w="' + "+b+" + '";s+=" var schemaExcl"+o+" = "+P+"; ",P="schemaExcl"+o,s+=" var exclusive"+o+"; if (typeof "+P+" != 'boolean' && typeof "+P+" != 'undefined') { ";var t=p,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ((exclusive"+o+" = "+P+" === true) ? "+u+" "+g+"= "+a+" : "+u+" "+g+" "+a+") || "+u+" !== "+u+") { var op"+o+" = exclusive"+o+" ? '"+y+"' : '"+y+"=';"}else{var E=m===!0,w=y;E||(w+="=");var b="'"+w+"'";s+=" if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+u+" "+g,E&&(s+="="),s+=" "+a+" || "+u+" !== "+u+") {"}var t=r,j=j||[];j.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+b+", limit: "+a+", exclusive: "+E+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+w+" ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var S=s;return s=j.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxItems"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+u+".length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxLength"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=e.opts.unicode===!1?" "+u+".length ":" ucs2length("+u+") ",s+=" "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",
+s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxProperties"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+u+").length "+d+" "+a+") { ";var t=r,p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=f?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],18:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c="valid"+n.level,h=n.baseId,u=!0,f=a;if(f)for(var d,p=-1,m=f.length-1;p<m;)d=f[p+=1],e.util.schemaHasRules(d,e.RULES.all)&&(u=!1,n.schema=d,n.schemaPath=s+"["+p+"]",n.errSchemaPath=o+"/"+p,t+=" "+e.validate(n)+" ",n.baseId=h,i&&(t+=" if ("+c+") { ",l+="}"));return i&&(t+=u?" if (true) { ":" "+l.slice(0,-1)+" "),t=e.util.cleanUpCode(t)}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level,v=i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)});if(v){var y=d.baseId;a+=" var "+f+" = errors; var "+u+" = false; ";var g=e.compositeRule;e.compositeRule=d.compositeRule=!0;var P=i;if(P)for(var E,b=-1,w=P.length-1;b<w;)E=P[b+=1],d.schema=E,d.schemaPath=n+"["+b+"]",d.errSchemaPath=l+"/"+b,a+=" "+e.validate(d)+" ",d.baseId=y,a+=" "+u+" = "+u+" || "+m+"; if (!"+u+") { ",p+="}";e.compositeRule=d.compositeRule=g,a+=" "+p+" if (!"+u+") { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"anyOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match some schema in anyOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,d||(s+=" var schema"+o+" = validate.schema"+l+";"),s+="var "+f+" = equal("+u+", schema"+o+"); if (!"+f+") { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"constant")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="errs__"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p,m,v,y,g,P=this,E="definition"+o,b=P.definition;if(d&&b.$data){g="keywordValidate"+o;var w=b.validateSchema;s+=" var "+E+" = RULES.custom['"+r+"'].definition; var "+g+" = "+E+".validate;"}else y=e.useCustomRule(P,n,e.schema,e),a="validate.schema"+l,g=y.code,p=b.compile,m=b.inline,v=b.macro;var j=g+".errors",S="i"+o,$="ruleErr"+o,x=b.async;if(x&&!e.async)throw new Error("async keyword in sync schema");if(m||v||(s+=""+j+" = null;"),s+="var "+f+" = errors;var valid"+o+";",m&&b.statements)s+=" "+y.validate;else if(v){var _=e.util.copy(e);_.level++;var O="valid"+_.level;_.schema=y.validate,_.schemaPath="";var R=e.compositeRule;e.compositeRule=_.compositeRule=!0;var I=e.validate(_).replace(/validate\.schema/g,g);e.compositeRule=_.compositeRule=R,s+=" "+I}else if(!m){var A=A||[];A.push(s),s="",s+=" "+g+".call( ",s+=e.opts.passContext?"this":"self",s+=p||b.schema===!1?" , "+u+" ":" , "+a+" , "+u+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath),s+=i?" , data"+(i-1||"")+" , "+e.dataPathArr[i]+" ":" , parentData , parentDataProperty ",s+=" , rootData ) ";var k=s;s=A.pop(),b.errors!==!1&&(x?(j="customErrors"+o,s+=" var "+j+" = null; try { valid"+o+" = "+e.yieldAwait+k+"; } catch (e) { valid"+o+" = false; if (e instanceof ValidationError) "+j+" = e.errors; else throw e; } "):s+=" "+g+".errors = null; ")}s+="if (",w&&(s+=" !"+E+".validateSchema("+a+") || "),s+=" ! ",s+=m?b.statements?" valid"+o+" ":" ("+y.validate+") ":v?" "+O+" ":x?b.errors===!1?" ("+e.yieldAwait+k+") ":" valid"+o+" ":" "+k+" ",s+=") { ",t=P.keyword;var A=A||[];A.push(s),s="";var A=A||[];A.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+P.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+P.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var q=s;s=A.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+q+"]); ":" validate.errors = ["+q+"]; return false; ":" var err = "+q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var D=s;return s=A.pop(),m?b.errors?"full"!=b.errors&&(s+=" for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; if ("+$+".dataPath === undefined) { "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } "):b.errors===!1?s+=" "+D+" ":(s+=" if ("+f+" == errors) { "+D+" } else { for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; if ("+$+".dataPath === undefined) { "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; } if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } } "):v?(s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+P.keyword+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should pass \""+P.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):b.errors===!1?s+=" "+D+" ":(s+=" if (Array.isArray("+j+")) { if (vErrors === null) vErrors = "+j+"; else vErrors = vErrors.concat("+j+"); errors = vErrors.length; for (var "+S+"="+f+"; "+S+"<errors; "+S+"++) { var "+$+" = vErrors["+S+"]; "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; "+$+'.schemaPath = "'+c+'"; ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+u+"; "),s+=" } } else { "+D+" } "),s+=" } ",h&&(s+=" else { "),s}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e),d="";f.level++;var p="valid"+f.level,m={},v={};for(E in i){var y=i[E],g=Array.isArray(y)?v:m;g[E]=y}a+="var "+u+" = errors;";var P=e.errorPath;a+="var missing"+s+";";for(var E in v){if(g=v[E],a+=" if ("+h+e.util.getProperty(E)+" !== undefined ",c){a+=" && ( ";var b=g;if(b)for(var w,j=-1,S=b.length-1;j<S;){w=b[j+=1],j&&(a+=" || ");var $=e.util.getProperty(w);a+=" ( "+h+$+" === undefined && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?w:$)+") ) "}a+=")) { ";var x="missing"+s,_="' + "+x+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,x,!0):P+" + "+x);var O=O||[];O.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+_+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),a+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var R=a;a=O.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+R+"]); ":" validate.errors = ["+R+"]; return false; ":" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var I=g;if(I)for(var A,k=-1,q=I.length-1;k<q;){A=I[k+=1];var $=e.util.getProperty(A),_=e.util.escapeQuotes(A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,A,e.opts.jsonPointers)),a+=" if ("+h+$+" === undefined) { var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"dependencies")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+_+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have ",a+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),a+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",c&&(d+="}",a+=" else { ")}e.errorPath=P;var D=f.baseId;for(var E in m){var y=m[E];e.util.schemaHasRules(y,e.RULES.all)&&(a+=" "+p+" = true; if ("+h+"['"+E+"'] !== undefined) { ",f.schema=y,f.schemaPath=n+e.util.getProperty(E),f.errSchemaPath=l+"/"+e.util.escapeFragment(E),a+=" "+e.validate(f)+" ",f.baseId=D,a+=" } ",c&&(a+=" if ("+p+") { ",d+="}"))}return c&&(a+=" "+d+" if ("+u+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p="i"+o,m="schema"+o;d||(s+=" var "+m+" = validate.schema"+l+";"),s+="var "+f+";",d&&(s+=" if (schema"+o+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+o+")) "+f+" = false; else {"),s+=""+f+" = false;for (var "+p+"=0; "+p+"<"+m+".length; "+p+"++) if (equal("+u+", "+m+"["+p+"])) { "+f+" = true; break; }",d&&(s+=" } "),s+=" if (!"+f+") { ";var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"enum")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+o+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var y=s;return s=v.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",h&&(s+=" else { "),s}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||"");if(e.opts.format===!1)return c&&(a+=" if (true) { "),a;var u,f=e.opts.v5&&i&&i.$data;f?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",u="schema"+s):u=i;var d=e.opts.unknownFormats,p=Array.isArray(d);if(f){var m="format"+s;a+=" var "+m+" = formats["+u+"]; var isObject"+s+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; if (isObject"+s+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",f&&(a+=" ("+u+" !== undefined && typeof "+u+" != 'string') || "),a+=" (",(d===!0||p)&&(a+=" ("+u+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+u+") == -1 "),a+=") || "),a+=" ("+m+" && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+m+"("+h+") : "+m+"("+h+")) ":" "+m+"("+h+") ",a+=" : "+m+".test("+h+"))))) {"}else{var m=e.formats[i];if(!m){if(d===!0||p&&d.indexOf(i)==-1)throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"');return p||(console.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),"ignore"!==d&&console.warn("In the next major version it will throw exception. See option unknownFormats for more information")),c&&(a+=" if (true) { "),a}var v="object"==typeof m&&!(m instanceof RegExp)&&m.validate;if(v){var y=m.async===!0;m=m.validate}if(y){if(!e.async)throw new Error("async format in sync schema");var g="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+g+"("+h+"))) { "}else{a+=" if (! ";var g="formats"+e.util.getProperty(i);v&&(g+=".validate"),a+="function"==typeof m?" "+g+"("+h+") ":" "+g+".test("+h+") ",a+=") { "}}var P=P||[];P.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"format")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=f?""+u:""+e.util.toQuotedString(i),a+=" } ",e.opts.messages!==!1&&(a+=" , message: 'should match format \"",a+=f?"' + "+u+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=f?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var E=a;return a=P.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+E+"]); ":" validate.errors = ["+E+"]; return false; ":" var err = "+E+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level,v="i"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+f+" = errors;var "+u+";",Array.isArray(i)){var E=e.schema.additionalItems;if(E===!1){a+=" "+u+" = "+h+".length <= "+i.length+"; ";var b=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+u+") { ";var w=w||[];w.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var j=a;a=w.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=b,c&&(p+="}",a+=" else { ")}var S=i;if(S)for(var $,x=-1,_=S.length-1;x<_;)if($=S[x+=1],e.util.schemaHasRules($,e.RULES.all)){a+=" "+m+" = true; if ("+h+".length > "+x+") { ";var O=h+"["+x+"]";d.schema=$,d.schemaPath=n+"["+x+"]",d.errSchemaPath=l+"/"+x,d.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),d.dataPathArr[y]=x;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){d.schema=E,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+h+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+h+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);var O=h+"["+v+"]";d.dataPathArr[y]=v;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+h+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);var O=h+"["+v+"]";d.dataPathArr[y]=v;var R=e.validate(d);d.baseId=P,a+=e.util.varOccurences(R,g)<2?" "+e.util.varReplace(R,g,O)+" ":" var "+g+" = "+O+"; "+R+" ",c&&(a+=" if (!"+m+") break; "),a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",f&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+u+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",f&&(s+=" ) "),s+=" ) { ";var d=d||[];d.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"multipleOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",s+=f?"' + "+a:""+n+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var p=s;return s=d.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="errs__"+s,f=e.util.copy(e);f.level++;var d="valid"+f.level;if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+u+" = errors; ";var p=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var m;f.opts.allErrors&&(m=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,m&&(f.opts.allErrors=m),e.compositeRule=f.compositeRule=p,a+=" if ("+d+") { ";var v=v||[];v.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"not")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level;a+="var "+f+" = errors;var prevValid"+s+" = false;var "+u+" = false;";var v=d.baseId,y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],e.util.schemaHasRules(P,e.RULES.all)?(d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v):a+=" var "+m+" = true; ",E&&(a+=" if ("+m+" && prevValid"+s+") "+u+" = false; else { ",p+="}"),a+=" if ("+m+") "+u+" = prevValid"+s+" = true;";e.compositeRule=d.compositeRule=y,a+=""+p+"if (!"+u+") { ";var w=w||[];w.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"oneOf")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",e.opts.messages!==!1&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var j=a;return a=w.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f=e.opts.v5&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d=f?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+d+".test("+u+") ) { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"pattern")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",s+=f?""+a:""+e.util.toQuotedString(n),s+=" } ",e.opts.messages!==!1&&(s+=" , message: 'should match pattern \"",s+=f?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+e.util.toQuotedString(n),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",h&&(s+=" else { "),s}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="key"+s,d="patternMatched"+s,p="",m=e.opts.ownProperties;a+="var "+u+" = true;";var v=i;if(v)for(var y,g=-1,P=v.length-1;g<P;){y=v[g+=1],a+=" var "+d+" = false; for (var "+f+" in "+h+") { ",m&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+f+")) continue; "),a+=" "+d+" = "+e.usePattern(y)+".test("+f+"); if ("+d+") break; } ";var E=e.util.escapeQuotes(y);a+=" if (!"+d+") { "+u+" = false; var err = ",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternRequired")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingPattern: '"+E+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should have property matching pattern \\'"+E+"\\'' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ",c&&(p+="}",a+=" else { ")}return a+=""+p}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m="valid"+d.level,v="key"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P=Object.keys(i||{}),E=e.schema.patternProperties||{},b=Object.keys(E),w=e.schema.additionalProperties,j=P.length||b.length,S=w===!1,$="object"==typeof w&&Object.keys(w).length,x=e.opts.removeAdditional,_=S||$||x,O=e.opts.ownProperties,R=e.baseId,I=e.schema.required;if(I&&(!e.opts.v5||!I.$data)&&I.length<e.opts.loopRequired)var A=e.util.toHash(I);if(e.opts.v5)var k=e.schema.patternGroups||{},q=Object.keys(k);if(a+="var "+f+" = errors;var "+m+" = true;",_){if(a+=" for (var "+v+" in "+h+") { ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),j){if(a+=" var isAdditional"+s+" = !(false ",P.length)if(P.length>5)a+=" || validate.schema"+n+"["+v+"] ";else{var D=P;if(D)for(var L,Q=-1,C=D.length-1;Q<C;)L=D[Q+=1],a+=" || "+v+" == "+e.util.toQuotedString(L)+" "}if(b.length){var V=b;if(V)for(var z,U=-1,T=V.length-1;U<T;)z=V[U+=1],a+=" || "+e.usePattern(z)+".test("+v+") "}if(e.opts.v5&&q&&q.length){var M=q;if(M)for(var N,U=-1,F=M.length-1;U<F;)N=M[U+=1],a+=" || "+e.usePattern(N)+".test("+v+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==x)a+=" delete "+h+"["+v+"]; ";else{var H=e.errorPath,J="' + "+v+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers)),S)if(x)a+=" delete "+h+"["+v+"]; ";else{a+=" "+m+" = false; ";var G=l;l=e.errSchemaPath+"/additionalProperties";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"additionalProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+J+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=G,c&&(a+=" break; ")}else if($)if("failing"==x){a+=" var "+f+" = errors; ";var Z=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=w,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",a+=" if (!"+m+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+h+"["+v+"]; } ",e.compositeRule=d.compositeRule=Z}else{d.schema=w,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; ")}e.errorPath=H}j&&(a+=" } "),a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}var X=e.opts.useDefaults&&!e.compositeRule;if(P.length){var ee=P;if(ee)for(var L,re=-1,te=ee.length-1;re<te;){L=ee[re+=1];var ae=i[L];if(e.util.schemaHasRules(ae,e.RULES.all)){var se=e.util.getProperty(L),Y=h+se,oe=X&&void 0!==ae.default;d.schema=ae,d.schemaPath=n+se,d.errSchemaPath=l+"/"+e.util.escapeFragment(L),d.errorPath=e.util.getPath(e.errorPath,L,e.opts.jsonPointers),d.dataPathArr[y]=e.util.toQuotedString(L);var W=e.validate(d);if(d.baseId=R,e.util.varOccurences(W,g)<2){W=e.util.varReplace(W,g,Y);var ie=Y}else{var ie=g;a+=" var "+g+" = "+Y+"; "}if(oe)a+=" "+W+" ";else{if(A&&A[L]){a+=" if ("+ie+" === undefined) { "+m+" = false; ";var H=e.errorPath,G=l,ne=e.util.escapeQuotes(L);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(H,L,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ne+"' } ",e.opts.messages!==!1&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+ne+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=G,e.errorPath=H,a+=" } else { ";
+}else a+=c?" if ("+ie+" === undefined) { "+m+" = true; } else { ":" if ("+ie+" !== undefined) { ";a+=" "+W+" } "}}c&&(a+=" if ("+m+") { ",p+="}")}}var le=b;if(le)for(var z,ce=-1,he=le.length-1;ce<he;){z=le[ce+=1];var ae=E[z];if(e.util.schemaHasRules(ae,e.RULES.all)){d.schema=ae,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(z),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(z),a+=" for (var "+v+" in "+h+") { ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),a+=" if ("+e.usePattern(z)+".test("+v+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; "),a+=" } ",c&&(a+=" else "+m+" = true; "),a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}}if(e.opts.v5){var ue=q;if(ue)for(var N,fe=-1,de=ue.length-1;fe<de;){N=ue[fe+=1];var pe=k[N],ae=pe.schema;if(e.util.schemaHasRules(ae,e.RULES.all)){d.schema=ae,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(N)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(N)+"/schema",a+=" var pgPropCount"+s+" = 0; for (var "+v+" in "+h+") { ",O&&(a+=" if (!Object.prototype.hasOwnProperty.call("+h+", "+v+")) continue; "),a+=" if ("+e.usePattern(N)+".test("+v+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var Y=h+"["+v+"]";d.dataPathArr[y]=v;var W=e.validate(d);d.baseId=R,a+=e.util.varOccurences(W,g)<2?" "+e.util.varReplace(W,g,Y)+" ":" var "+g+" = "+Y+"; "+W+" ",c&&(a+=" if (!"+m+") break; "),a+=" } ",c&&(a+=" else "+m+" = true; "),a+=" } ",c&&(a+=" if ("+m+") { ",p+="}");var me=pe.minimum,ve=pe.maximum;if(void 0!==me||void 0!==ve){a+=" var "+u+" = true; ";var G=l;if(void 0!==me){var ye=me,ge="minimum",Pe="less";a+=" "+u+" = pgPropCount"+s+" >= "+me+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+u+") { ";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(N)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(N)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==ve&&(a+=" else ")}if(void 0!==ve){var ye=ve,ge="maximum",Pe="more";a+=" "+u+" = pgPropCount"+s+" <= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+u+") { ";var K=K||[];K.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"patternGroups")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(N)+"' } ",e.opts.messages!==!1&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(N)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var B=a;a=K.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=G,c&&(a+=" if ("+u+") { ",p+="}")}}}}return c&&(a+=" "+p+" if ("+f+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=e.root.schema.$async===!0,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p="can't resolve reference "+l+" from id "+e.baseId;if("fail"==e.opts.missingRefs){console.log(p);var m=m||[];m.push(o),o="",e.createErrors!==!1?(o+=" { keyword: '"+(t||"$ref")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",e.opts.messages!==!1&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var v=o;o=m.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs){var y=new Error(p);throw y.missingRef=e.resolve.url(e.baseId,l),y.missingSchema=e.resolve.normalizeId(e.resolve.fullPath(y.missingRef)),y}console.log(p),h&&(o+=" if (true) { ")}}else if(d.inline){var g=e.util.copy(e);g.level++;var P="valid"+g.level;g.schema=d.schema,g.schemaPath="",g.errSchemaPath=l;var E=e.validate(g).replace(/validate\.schema/g,d.code);o+=" "+E+" ",h&&(o+=" if ("+P+") { ")}else a=d.$async===!0,s=d.code}if(s){var m=m||[];m.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath),o+=n?" , data"+(n-1||"")+" , "+e.dataPathArr[n]+" ":" , parentData , parentDataProperty ",o+=", rootData) ";var b=o;if(o=m.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");o+=" try { ",h&&(o+="var "+f+" ="),o+=" "+e.yieldAwait+" "+b+"; } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; } ",h&&(o+=" if ("+f+") { ")}else o+=" if (!"+b+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p="schema"+o;if(!d)if(n.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var m=[],v=n;if(v)for(var y,g=-1,P=v.length-1;g<P;){y=v[g+=1];var E=e.schema.properties[y];E&&e.util.schemaHasRules(E,e.RULES.all)||(m[m.length]=y)}}else var m=n;if(d||m.length){var b=e.errorPath,w=d||m.length>=e.opts.loopRequired;if(h)if(s+=" var missing"+o+"; ",w){d||(s+=" var "+p+" = validate.schema"+l+"; ");var j="i"+o,S="schema"+o+"["+j+"]",$="' + "+S+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(b,S,e.opts.jsonPointers)),s+=" var "+f+" = true; ",d&&(s+=" if (schema"+o+" === undefined) "+f+" = true; else if (!Array.isArray(schema"+o+")) "+f+" = false; else {"),s+=" for (var "+j+" = 0; "+j+" < "+p+".length; "+j+"++) { "+f+" = "+u+"["+p+"["+j+"]] !== undefined; if (!"+f+") break; } ",d&&(s+=" } "),s+=" if (!"+f+") { ";var x=x||[];x.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;s=x.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+_+"]); ":" validate.errors = ["+_+"]; return false; ":" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var O=m;if(O)for(var R,j=-1,I=O.length-1;j<I;){R=O[j+=1],j&&(s+=" || ");var A=e.util.getProperty(R);s+=" ( "+u+A+" === undefined && (missing"+o+" = "+e.util.toQuotedString(e.opts.jsonPointers?R:A)+") ) "}s+=") { ";var S="missing"+o,$="' + "+S+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(b,S,!0):b+" + "+S);var x=x||[];x.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var _=s;s=x.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+_+"]); ":" validate.errors = ["+_+"]; return false; ":" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else if(w){d||(s+=" var "+p+" = validate.schema"+l+"; ");var j="i"+o,S="schema"+o+"["+j+"]",$="' + "+S+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(b,S,e.opts.jsonPointers)),d&&(s+=" if ("+p+" && !Array.isArray("+p+")) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+p+" !== undefined) { "),s+=" for (var "+j+" = 0; "+j+" < "+p+".length; "+j+"++) { if ("+u+"["+p+"["+j+"]] === undefined) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(s+=" } ")}else{var k=m;if(k)for(var q,D=-1,L=k.length-1;D<L;){q=k[D+=1];var A=e.util.getProperty(q),$=e.util.escapeQuotes(q);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(b,q,e.opts.jsonPointers)),s+=" if ("+u+A+" === undefined) { var err = ",e.createErrors!==!1?(s+=" { keyword: '"+(t||"required")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+$+"' } ",e.opts.messages!==!1&&(s+=" , message: '",s+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+$+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=b}else h&&(s+=" if (true) {");return s}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,h="data"+(o||""),u="valid"+s,f="errs__"+s,d=e.util.copy(e),p="";d.level++;var m,v="valid"+d.level,y="ifPassed"+e.level,g=d.baseId;a+="var "+y+";";var P=i;if(P)for(var E,b=-1,w=P.length-1;b<w;){if(E=P[b+=1],b&&!m&&(a+=" if (!"+y+") { ",p+="}"),E.if&&e.util.schemaHasRules(E.if,e.RULES.all)){a+=" var "+f+" = errors; ";var j=e.compositeRule;if(e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.schema=E.if,d.schemaPath=n+"["+b+"].if",d.errSchemaPath=l+"/"+b+"/if",a+=" "+e.validate(d)+" ",d.baseId=g,d.createErrors=!0,e.compositeRule=d.compositeRule=j,a+=" "+y+" = "+v+"; if ("+y+") { ","boolean"==typeof E.then){if(E.then===!1){var S=S||[];S.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+b+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=S.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var "+v+" = "+E.then+"; "}else d.schema=E.then,d.schemaPath=n+"["+b+"].then",d.errSchemaPath=l+"/"+b+"/then",a+=" "+e.validate(d)+" ",d.baseId=g;a+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } } "}else if(a+=" "+y+" = true; ","boolean"==typeof E.then){if(E.then===!1){var S=S||[];S.push(a),a="",e.createErrors!==!1?(a+=" { keyword: '"+(t||"switch")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+b+" } ",e.opts.messages!==!1&&(a+=" , message: 'should pass \"switch\" keyword validation' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),a+=" } "):a+=" {} ";var $=a;a=S.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" var "+v+" = "+E.then+"; "}else d.schema=E.then,d.schemaPath=n+"["+b+"].then",d.errSchemaPath=l+"/"+b+"/then",a+=" "+e.validate(d)+" ",d.baseId=g;m=E.continue}return a+=""+p+"var "+u+" = "+v+"; ",a=e.util.cleanUpCode(a)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),f="valid"+o,d=e.opts.v5&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||d)&&e.opts.uniqueItems!==!1){d&&(s+=" var "+f+"; if ("+a+" === false || "+a+" === undefined) "+f+" = true; else if (typeof "+a+" != 'boolean') "+f+" = false; else { "),s+=" var "+f+" = true; if ("+u+".length > 1) { var i = "+u+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+f+" = false; break outer; } } } } ",d&&(s+=" } "),s+=" if (!"+f+") { ";var p=p||[];p.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(t||"uniqueItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var m=s;s=p.pop(),s+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",h&&(s+=" else { ")}else h&&(s+=" if (true) { ");return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){function t(e){for(var r=0;r<e.rules.length;r++)if(a(e.rules[r]))return!0}function a(r){return void 0!==e.schema[r.keyword]||"properties"==r.keyword&&(e.schema.additionalProperties===!1||"object"==typeof e.schema.additionalProperties||e.schema.patternProperties&&Object.keys(e.schema.patternProperties).length||e.opts.v5&&e.schema.patternGroups&&Object.keys(e.schema.patternGroups).length)}var s="",o=e.schema.$async===!0;if(e.isTop){var i=e.isTop,n=e.level=0,l=e.dataLevel=0,c="data";if(e.rootId=e.resolve.fullPath(e.root.schema.id),e.baseId=e.baseId||e.rootId,o){e.async=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}delete e.isTop,e.dataPathArr=[void 0],s+=" var validate = ",o?h?s+=" (async function ":("co*"==e.opts.async&&(s+="co.wrap"),s+="(function* "):s+=" (function ",s+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data;"}else{var n=e.level,l=e.dataLevel,c="data"+(l||"");if(e.schema.id&&(e.baseId=e.resolve.url(e.baseId,e.schema.id)),o&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+n+" = errors;"}var u,f="valid"+n,d=!e.opts.allErrors,p="",m="",v=e.schema.type,y=Array.isArray(v);if(v&&e.opts.coerceTypes){var g=e.util.coerceToTypes(e.opts.coerceTypes,v);if(g){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var w="dataType"+n,j="coerced"+n;s+=" var "+w+" = typeof "+c+"; ","array"==e.opts.coerceTypes&&(s+=" if ("+w+" == 'object' && Array.isArray("+c+")) "+w+" = 'array'; "),s+=" var "+j+" = undefined; ";var S="",$=g;if($)for(var x,_=-1,O=$.length-1;_<O;)x=$[_+=1],_&&(s+=" if ("+j+" === undefined) { ",S+="}"),"array"==e.opts.coerceTypes&&"array"!=x&&(s+=" if ("+w+" == 'array' && "+c+".length == 1) { "+j+" = "+c+" = "+c+"[0]; "+w+" = typeof "+c+"; } "),"string"==x?s+=" if ("+w+" == 'number' || "+w+" == 'boolean') "+j+" = '' + "+c+"; else if ("+c+" === null) "+j+" = ''; ":"number"==x||"integer"==x?(s+=" if ("+w+" == 'boolean' || "+c+" === null || ("+w+" == 'string' && "+c+" && "+c+" == +"+c+" ","integer"==x&&(s+=" && !("+c+" % 1)"),s+=")) "+j+" = +"+c+"; "):"boolean"==x?s+=" if ("+c+" === 'false' || "+c+" === 0 || "+c+" === null) "+j+" = false; else if ("+c+" === 'true' || "+c+" === 1) "+j+" = true; ":"null"==x?s+=" if ("+c+" === '' || "+c+" === 0 || "+c+" === false) "+j+" = null; ":"array"==e.opts.coerceTypes&&"array"==x&&(s+=" if ("+w+" == 'string' || "+w+" == 'number' || "+w+" == 'boolean' || "+c+" == null) "+j+" = ["+c+"]; ");s+=" "+S+" if ("+j+" === undefined) { ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;if(s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",l){var A="data"+(l-1||""),k=e.dataPathArr[l];s+=" "+c+" = "+A+"["+k+"] = "+j+"; "}else s+=" data = "+j+"; if (parentData !== undefined) parentData[parentDataProperty] = "+j+"; ";s+=" } } "}}var q;if(e.schema.$ref&&(q=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"))){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'"');"ignore"==e.opts.extendRefs?(q=!1,console.log('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"')):e.opts.extendRefs!==!0&&console.log('$ref: all keywords used in schema at path "'+e.errSchemaPath+'". It will change in the next major version, see issue #260. Use option { extendRefs: true } to keep current behaviour')}if(e.schema.$ref&&!q)s+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",d&&(s+=" } if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}");else{var D=e.RULES;if(D)for(var L,Q=-1,C=D.length-1;Q<C;)if(L=D[Q+=1],t(L)){if(L.type&&(s+=" if ("+e.util.checkDataType(L.type,c)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==L.type&&e.schema.properties){var V=e.schema.properties,z=Object.keys(V),U=z;if(U)for(var T,M=-1,N=U.length-1;M<N;){T=U[M+=1];var F=V[T];if(void 0!==F.default){var H=c+e.util.getProperty(T);s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}}else if("array"==L.type&&Array.isArray(e.schema.items)){var J=e.schema.items;if(J)for(var F,_=-1,G=J.length-1;_<G;)if(F=J[_+=1],void 0!==F.default){var H=c+"["+_+"]";s+=" if ("+H+" === undefined) "+H+" = ",s+="shared"==e.opts.useDefaults?" "+e.useDefault(F.default)+" ":" "+JSON.stringify(F.default)+" ",s+="; "}}var K=L.rules;if(K)for(var B,Z=-1,Y=K.length-1;Z<Y;)B=K[Z+=1],a(B)&&(s+=" "+B.code(e,B.keyword)+" ",d&&(p+="}"));if(d&&(s+=" "+p+" ",p=""),L.type&&(s+=" } ",v&&v===L.type)){var W=!0;s+=" else { ";var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } "}d&&(s+=" if (errors === ",s+=i?"0":"errs_"+n,s+=") { ",m+="}")}}if(v&&!W&&(!e.opts.coerceTypes||!g)){var P=e.schemaPath+".type",E=e.errSchemaPath+"/type",b=y?"checkDataTypes":"checkDataType";s+=" if ("+e.util[b](v,c,!0)+") { ";var R=R||[];R.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(u||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(E)+" , params: { type: '",s+=y?""+v.join(","):""+v,s+="' } ",e.opts.messages!==!1&&(s+=" , message: 'should be ",s+=y?""+v.join(","):""+v,s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+P+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var I=s;s=R.pop(),s+=!e.compositeRule&&d?e.async?" throw new ValidationError(["+I+"]); ":" validate.errors = ["+I+"]; return false; ":" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }"}return d&&(s+=" "+m+" "),i?(o?(s+=" if (errors === 0) return true; ",s+=" else throw new ValidationError(vErrors); "):(s+=" validate.errors = vErrors; ",s+=" return errors === 0; "),s+=" }); return validate;"):s+=" var "+f+" = errors === errs_"+n+";",s=e.util.cleanUpCode(s),i&&d&&(s=e.util.cleanUpVarErrors(s,o)),s}},{}],37:[function(e,r,t){"use strict";function a(e,r){function t(e,r,t){for(var a,o=0;o<s.length;o++){var i=s[o];if(i.type==r){a=i;break}}a||(a={type:r,rules:[]},s.push(a));var l={keyword:e,definition:t,custom:!0,code:n};a.rules.push(l),s.custom[e]=l}function a(e){if(!s.types[e])throw new Error("Unknown type "+e)}var s=this.RULES;if(s.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){var o=r.type;if(Array.isArray(o)){var l,c=o.length;for(l=0;l<c;l++)a(o[l]);for(l=0;l<c;l++)t(e,o[l],r)}else o&&a(o),t(e,o,r);var h=r.$data===!0&&this._opts.v5;if(h&&!r.validate)throw new Error('$data support: "validate" function is not defined');var u=r.metaSchema;u&&(h&&(u={anyOf:[u,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#/definitions/$data"}]}),r.validateSchema=this.compile(u,!0))}s.keywords[e]=s.all[e]=!0}function s(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1}function o(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}}var i=/^[a-z_$][a-z0-9_$\-]*$/i,n=e("./dotjs/custom");r.exports={add:a,get:s,remove:o}},{"./dotjs/custom":21}],38:[function(e,r,t){r.exports={id:"http://json-schema.org/draft-04/schema#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean",default:!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean",default:!1},maxLength:{$ref:"#/definitions/positiveInteger"},minLength:{$ref:"#/definitions/positiveIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/positiveInteger"},minItems:{$ref:"#/definitions/positiveIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},maxProperties:{$ref:"#/definitions/positiveInteger"},minProperties:{$ref:"#/definitions/positiveIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},default:{}}},{}],39:[function(e,r,t){r.exports={id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json#",$schema:"http://json-schema.org/draft-04/schema#",description:"Core schema meta-schema (v5 proposals)",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0},$data:{type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{anyOf:[{type:"number",minimum:0,exclusiveMinimum:!0},{$ref:"#/definitions/$data"}]},maximum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMaximum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{type:"number"},{$ref:"#/definitions/$data"}]},exclusiveMinimum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},maxLength:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minLength:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},pattern:{anyOf:[{type:"string",format:"regex"},{$ref:"#/definitions/$data"}]},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minItems:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},uniqueItems:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},maxProperties:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minProperties:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},required:{anyOf:[{$ref:"#/definitions/stringArray"},{$ref:"#/definitions/$data"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"},{$ref:"#/definitions/$data"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{anyOf:[{type:"array",minItems:1,uniqueItems:!0},{$ref:"#/definitions/$data"}]},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"},format:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMaximum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatMinimum:{anyOf:[{type:"string"},{$ref:"#/definitions/$data"}]},formatExclusiveMaximum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},formatExclusiveMinimum:{anyOf:[{type:"boolean",default:!1},{$ref:"#/definitions/$data"}]},constant:{anyOf:[{},{$ref:"#/definitions/$data"}]},contains:{$ref:"#"},patternGroups:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{anyOf:[{$ref:"#/definitions/positiveInteger"},{$ref:"#/definitions/$data"}]},minimum:{anyOf:[{$ref:"#/definitions/positiveIntegerDefault0"},{$ref:"#/definitions/$data"}]},schema:{$ref:"#"}},additionalProperties:!1},default:{}},switch:{type:"array",items:{required:["then"],properties:{if:{$ref:"#"},then:{anyOf:[{type:"boolean"},{$ref:"#"}]},continue:{type:"boolean"}},additionalProperties:!1,dependencies:{continue:["if"]}}}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"],formatMaximum:["format"],formatMinimum:["format"],formatExclusiveMaximum:["formatMaximum"],formatExclusiveMinimum:["formatMinimum"]},default:{}}},{}],40:[function(e,r,t){"use strict";function a(r){function t(e,t,s){var o={inline:s||a[e],statements:!0,errors:"full"};t&&(o.type=t),r.addKeyword(e,o)}var a={switch:e("./dotjs/switch"),constant:e("./dotjs/constant"),_formatLimit:e("./dotjs/_formatLimit"),patternRequired:e("./dotjs/patternRequired")};if(r._opts.meta!==!1){var i=e("./refs/json-schema-v5.json");r.addMetaSchema(i,o)}t("constant"),r.addKeyword("contains",{type:"array",macro:s}),t("formatMaximum","string",a._formatLimit),t("formatMinimum","string",a._formatLimit),r.addKeyword("formatExclusiveMaximum"),r.addKeyword("formatExclusiveMinimum"),r.addKeyword("patternGroups"),t("patternRequired","object"),t("switch")}function s(e){return{not:{items:{not:e}}}}var o="https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-v5.json";
+r.exports={enable:a,META_SCHEMA_ID:o}},{"./dotjs/_formatLimit":13,"./dotjs/constant":20,"./dotjs/patternRequired":30,"./dotjs/switch":34,"./refs/json-schema-v5.json":39}],41:[function(r,t,a){(function(r){!function(s){function o(e){throw new RangeError(D[e])}function i(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function n(e,r){var t=e.split("@"),a="";t.length>1&&(a=t[0]+"@",e=t[1]),e=e.replace(q,".");var s=e.split("."),o=i(s,r).join(".");return a+o}function l(e){for(var r,t,a=[],s=0,o=e.length;s<o;)r=e.charCodeAt(s++),r>=55296&&r<=56319&&s<o?(t=e.charCodeAt(s++),56320==(64512&t)?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--)):a.push(r);return a}function c(e){return i(e,function(e){var r="";return e>65535&&(e-=65536,r+=C(e>>>10&1023|55296),e=56320|1023&e),r+=C(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:j}function u(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function f(e,r,t){var a=0;for(e=t?Q(e/_):e>>1,e+=Q(e/r);e>L*$>>1;a+=j)e=Q(e/L);return Q(a+(L+1)*e/(e+x))}function d(e){var r,t,a,s,i,n,l,u,d,p,m=[],v=e.length,y=0,g=R,P=O;for(t=e.lastIndexOf(I),t<0&&(t=0),a=0;a<t;++a)e.charCodeAt(a)>=128&&o("not-basic"),m.push(e.charCodeAt(a));for(s=t>0?t+1:0;s<v;){for(i=y,n=1,l=j;s>=v&&o("invalid-input"),u=h(e.charCodeAt(s++)),(u>=j||u>Q((w-y)/n))&&o("overflow"),y+=u*n,d=l<=P?S:l>=P+$?$:l-P,!(u<d);l+=j)p=j-d,n>Q(w/p)&&o("overflow"),n*=p;r=m.length+1,P=f(y-i,r,0==i),Q(y/r)>w-g&&o("overflow"),g+=Q(y/r),y%=r,m.splice(y++,0,g)}return c(m)}function p(e){var r,t,a,s,i,n,c,h,d,p,m,v,y,g,P,E=[];for(e=l(e),v=e.length,r=R,t=0,i=O,n=0;n<v;++n)m=e[n],m<128&&E.push(C(m));for(a=s=E.length,s&&E.push(I);a<v;){for(c=w,n=0;n<v;++n)m=e[n],m>=r&&m<c&&(c=m);for(y=a+1,c-r>Q((w-t)/y)&&o("overflow"),t+=(c-r)*y,r=c,n=0;n<v;++n)if(m=e[n],m<r&&++t>w&&o("overflow"),m==r){for(h=t,d=j;p=d<=i?S:d>=i+$?$:d-i,!(h<p);d+=j)P=h-p,g=j-p,E.push(C(u(p+P%g,0))),h=Q(P/g);E.push(C(u(h,0))),i=f(t,y,a==s),t=0,++a}++t,++r}return E.join("")}function m(e){return n(e,function(e){return A.test(e)?d(e.slice(4).toLowerCase()):e})}function v(e){return n(e,function(e){return k.test(e)?"xn--"+p(e):e})}var y="object"==typeof a&&a&&!a.nodeType&&a,g="object"==typeof t&&t&&!t.nodeType&&t,P="object"==typeof r&&r;P.global!==P&&P.window!==P&&P.self!==P||(s=P);var E,b,w=2147483647,j=36,S=1,$=26,x=38,_=700,O=72,R=128,I="-",A=/^xn--/,k=/[^\x20-\x7E]/,q=/[\x2E\u3002\uFF0E\uFF61]/g,D={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=j-S,Q=Math.floor,C=String.fromCharCode;if(E={version:"1.4.1",ucs2:{decode:l,encode:c},decode:d,encode:p,toASCII:v,toUnicode:m},"function"==typeof e&&"object"==typeof e.amd&&e.amd)e("punycode",function(){return E});else if(y&&g)if(t.exports==y)g.exports=E;else for(b in E)E.hasOwnProperty(b)&&(y[b]=E[b]);else s.punycode=E}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],42:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var c=e.length;l>0&&c>l&&(c=l);for(var h=0;h<c;++h){var u,f,d,p,m=e[h].replace(n,"%20"),v=m.indexOf(t);v>=0?(u=m.substr(0,v),f=m.substr(v+1)):(u=m,f=""),d=decodeURIComponent(u),p=decodeURIComponent(f),a(i,d)?s(i[d])?i[d].push(p):i[d]=[i[d],p]:i[d]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],43:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;a<e.length;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],44:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":42,"./encode":43}],45:[function(e,r,t){"use strict";function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function s(e,r,t){if(e&&c.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}function o(e){return c.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function i(e,r){return s(e,!1,!0).resolve(r)}function n(e,r){return e?s(e,!1,!0).resolveObject(r):r}var l=e("punycode"),c=e("./util");t.parse=s,t.resolve=i,t.resolveObject=n,t.format=o,t.Url=a;var h=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),m=["'"].concat(p),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,P=/^[+a-z0-9A-Z_-]{0,63}$/,E=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,b={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},j={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=e("querystring");a.prototype.parse=function(e,r,t){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=a!==-1&&a<e.indexOf("#")?"?":"#",o=e.split(s),i=/\\/g;o[0]=o[0].replace(i,"/"),e=o.join(s);var n=e;if(n=n.trim(),!t&&1===e.split("#").length){var u=f.exec(n);if(u)return this.path=n,this.href=n,this.pathname=u[1],u[2]?(this.search=u[2],this.query=r?S.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var d=h.exec(n);if(d){d=d[0];var p=d.toLowerCase();this.protocol=p,n=n.substr(d.length)}if(t||d||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var $="//"===n.substr(0,2);!$||d&&w[d]||(n=n.substr(2),this.slashes=!0)}if(!w[d]&&($||d&&!j[d])){for(var x=-1,_=0;_<y.length;_++){var O=n.indexOf(y[_]);O!==-1&&(x===-1||O<x)&&(x=O)}var R,I;I=x===-1?n.lastIndexOf("@"):n.lastIndexOf("@",x),I!==-1&&(R=n.slice(0,I),n=n.slice(I+1),this.auth=decodeURIComponent(R)),x=-1;for(var _=0;_<v.length;_++){var O=n.indexOf(v[_]);O!==-1&&(x===-1||O<x)&&(x=O)}x===-1&&(x=n.length),this.host=n.slice(0,x),n=n.slice(x),this.parseHost(),this.hostname=this.hostname||"";var A="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!A)for(var k=this.hostname.split(/\./),_=0,q=k.length;_<q;_++){var D=k[_];if(D&&!D.match(P)){for(var L="",Q=0,C=D.length;Q<C;Q++)L+=D.charCodeAt(Q)>127?"x":D[Q];if(!L.match(P)){var V=k.slice(0,_),z=k.slice(_+1),U=D.match(E);U&&(V.push(U[1]),z.unshift(U[2])),z.length&&(n="/"+z.join(".")+n),this.hostname=V.join(".");break}}}this.hostname=this.hostname.length>g?"":this.hostname.toLowerCase(),A||(this.hostname=l.toASCII(this.hostname));var T=this.port?":"+this.port:"",M=this.hostname||"";this.host=M+T,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==n[0]&&(n="/"+n))}if(!b[p])for(var _=0,q=m.length;_<q;_++){var N=m[_];if(n.indexOf(N)!==-1){var F=encodeURIComponent(N);F===N&&(F=escape(N)),n=n.split(N).join(F)}}var H=n.indexOf("#");H!==-1&&(this.hash=n.substr(H),n=n.slice(0,H));var J=n.indexOf("?");if(J!==-1?(this.search=n.substr(J),this.query=n.substr(J+1),r&&(this.query=S.parse(this.query)),n=n.slice(0,J)):r&&(this.search="",this.query={}),n&&(this.pathname=n),j[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var T=this.pathname||"",G=this.search||"";this.path=T+G}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&c.isObject(this.query)&&Object.keys(this.query).length&&(o=S.stringify(this.query));var i=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||j[r])&&s!==!1?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),i&&"?"!==i.charAt(0)&&(i="?"+i),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),i=i.replace("#","%23"),r+s+t+i+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(c.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;o<s.length;o++){var i=s[o];t[i]=this[i]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var n=Object.keys(e),l=0;l<n.length;l++){var h=n[l];"protocol"!==h&&(t[h]=e[h])}return j[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!j[e.protocol]){for(var u=Object.keys(e),f=0;f<u.length;f++){var d=u[f];t[d]=e[d]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||w[e.protocol])t.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),t.pathname=p.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){var m=t.pathname||"",v=t.search||"";t.path=m+v}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var y=t.pathname&&"/"===t.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),P=g||y||t.host&&e.pathname,E=P,b=t.pathname&&t.pathname.split("/")||[],p=e.pathname&&e.pathname.split("/")||[],S=t.protocol&&!j[t.protocol];if(S&&(t.hostname="",t.port=null,t.host&&(""===b[0]?b[0]=t.host:b.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),P=P&&(""===p[0]||""===b[0])),g)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,b=p;else if(p.length)b||(b=[]),b.pop(),b=b.concat(p),t.search=e.search,t.query=e.query;else if(!c.isNullOrUndefined(e.search)){if(S){t.hostname=t.host=b.shift();var $=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@");$&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return t.search=e.search,t.query=e.query,c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!b.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var x=b.slice(-1)[0],_=(t.host||e.host||b.length>1)&&("."===x||".."===x)||""===x,O=0,R=b.length;R>=0;R--)x=b[R],"."===x?b.splice(R,1):".."===x?(b.splice(R,1),O++):O&&(b.splice(R,1),O--);if(!P&&!E)for(;O--;O)b.unshift("..");!P||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),_&&"/"!==b.join("/").substr(-1)&&b.push("");var I=""===b[0]||b[0]&&"/"===b[0].charAt(0);if(S){t.hostname=t.host=I?"":b.length?b.shift():"";var $=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@");$&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return P=P||t.host&&b.length,P&&!I&&b.unshift(""),b.length?t.pathname=b.join("/"):(t.pathname=null,t.path=null),c.isNull(t.pathname)&&c.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=u.exec(e);r&&(r=r[0],":"!==r&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":46,punycode:41,querystring:44}],46:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],47:[function(e,r,t){function a(e){var r=this,t=f.call(arguments,1);return new Promise(function(a,o){function i(r){var t;try{t=e.next(r)}catch(e){return o(e)}c(t)}function n(r){var t;try{t=e.throw(r)}catch(e){return o(e)}c(t)}function c(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&l(t)?t.then(i,n):n(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}return"function"==typeof e&&(e=e.apply(r,t)),e&&"function"==typeof e.next?void i():a(e)})}function s(e){return e?l(e)?e:h(e)||c(e)?a.call(this,e):"function"==typeof e?o.call(this,e):Array.isArray(e)?i.call(this,e):u(e)?n.call(this,e):e:e}function o(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){return e?a(e):(arguments.length>2&&(r=f.call(arguments,1)),void t(r))})})}function i(e){return Promise.all(e.map(s,this))}function n(e){function r(e,r){t[r]=void 0,o.push(e.then(function(e){t[r]=e}))}for(var t=new e.constructor,a=Object.keys(e),o=[],i=0;i<a.length;i++){var n=a[i],c=s.call(this,e[n]);c&&l(c)?r(c,n):t[n]=e[n]}return Promise.all(o).then(function(){return t})}function l(e){return"function"==typeof e.then}function c(e){return"function"==typeof e.next&&"function"==typeof e.throw}function h(e){var r=e.constructor;return!!r&&("GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName||c(r.prototype))}function u(e){return Object==e.constructor}var f=Array.prototype.slice;r.exports=a.default=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],48:[function(e,r,t){var a="undefined"!=typeof JSON?JSON:e("jsonify");r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t=r.space||"";"number"==typeof t&&(t=Array(t+1).join(" "));var i="boolean"==typeof r.cycles&&r.cycles,n=r.replacer||function(e,r){return r},l=r.cmp&&function(e){return function(r){return function(t,a){var s={key:t,value:r[t]},o={key:a,value:r[a]};return e(s,o)}}}(r.cmp),c=[];return function e(r,h,u,f){var d=t?"\n"+new Array(f+1).join(t):"",p=t?": ":":";if(u&&u.toJSON&&"function"==typeof u.toJSON&&(u=u.toJSON()),u=n.call(r,h,u),void 0!==u){if("object"!=typeof u||null===u)return a.stringify(u);if(s(u)){for(var m=[],v=0;v<u.length;v++){var y=e(u,v,u[v],f+1)||a.stringify(null);m.push(d+t+y)}return"["+m.join(",")+d+"]"}if(c.indexOf(u)!==-1){if(i)return a.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}c.push(u);for(var g=o(u).sort(l&&l(u)),m=[],v=0;v<g.length;v++){var h=g[v],P=e(u,h,u[h],f+1);if(P){var E=a.stringify(h)+p+P;m.push(d+t+E)}}return c.splice(c.indexOf(u),1),"{"+m.join(",")+d+"}"}}({"":e},"",e,0)};var s=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},o=Object.keys||function(e){var r=Object.prototype.hasOwnProperty||function(){return!0},t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}},{jsonify:49}],49:[function(e,r,t){t.parse=e("./lib/parse"),t.stringify=e("./lib/stringify")},{"./lib/parse":50,"./lib/stringify":51}],50:[function(e,r,t){var a,s,o,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},l=function(e){throw{name:"SyntaxError",message:e,at:a,text:o}},c=function(e){return e&&e!==s&&l("Expected '"+e+"' instead of '"+s+"'"),s=o.charAt(a),a+=1,s},h=function(){var e,r="";for("-"===s&&(r="-",c("-"));s>="0"&&s<="9";)r+=s,c();if("."===s)for(r+=".";c()&&s>="0"&&s<="9";)r+=s;if("e"===s||"E"===s)for(r+=s,c(),"-"!==s&&"+"!==s||(r+=s,c());s>="0"&&s<="9";)r+=s,c();return e=+r,isFinite(e)?e:void l("Bad number")},u=function(){var e,r,t,a="";if('"'===s)for(;c();){if('"'===s)return c(),a;if("\\"===s)if(c(),"u"===s){for(t=0,r=0;r<4&&(e=parseInt(c(),16),isFinite(e));r+=1)t=16*t+e;a+=String.fromCharCode(t)}else{if("string"!=typeof n[s])break;a+=n[s]}else a+=s}l("Bad string")},f=function(){for(;s&&s<=" ";)c()},d=function(){switch(s){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null}l("Unexpected '"+s+"'")},p=function(){var e=[];if("["===s){if(c("["),f(),"]"===s)return c("]"),e;for(;s;){if(e.push(i()),f(),"]"===s)return c("]"),e;c(","),f()}}l("Bad array")},m=function(){var e,r={};if("{"===s){if(c("{"),f(),"}"===s)return c("}"),r;for(;s;){if(e=u(),f(),c(":"),Object.hasOwnProperty.call(r,e)&&l('Duplicate key "'+e+'"'),r[e]=i(),f(),"}"===s)return c("}"),r;c(","),f()}}l("Bad object")};i=function(){switch(f(),s){case"{":return m();case"[":return p();case'"':return u();case"-":return h();default:return s>="0"&&s<="9"?h():d()}},r.exports=function(e,r){var t;return o=e,a=0,s=" ",t=i(),f(),s&&l("Syntax error"),"function"==typeof r?function e(t,a){var s,o,i=t[a];if(i&&"object"==typeof i)for(s in i)Object.prototype.hasOwnProperty.call(i,s)&&(o=e(i,s),void 0!==o?i[s]=o:delete i[s]);return r.call(t,a,i)}({"":t},""):t}},{}],51:[function(e,r,t){function a(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var r=c[e];return"string"==typeof r?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function s(e,r){var t,l,c,h,u,f=o,d=r[e];switch(d&&"object"==typeof d&&"function"==typeof d.toJSON&&(d=d.toJSON(e)),"function"==typeof n&&(d=n.call(r,e,d)),typeof d){case"string":return a(d);case"number":return isFinite(d)?String(d):"null";case"boolean":case"null":return String(d);case"object":if(!d)return"null";if(o+=i,u=[],"[object Array]"===Object.prototype.toString.apply(d)){for(h=d.length,t=0;t<h;t+=1)u[t]=s(t,d)||"null";return c=0===u.length?"[]":o?"[\n"+o+u.join(",\n"+o)+"\n"+f+"]":"["+u.join(",")+"]",o=f,c}if(n&&"object"==typeof n)for(h=n.length,t=0;t<h;t+=1)l=n[t],"string"==typeof l&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));else for(l in d)Object.prototype.hasOwnProperty.call(d,l)&&(c=s(l,d),c&&u.push(a(l)+(o?": ":":")+c));return c=0===u.length?"{}":o?"{\n"+o+u.join(",\n"+o)+"\n"+f+"}":"{"+u.join(",")+"}",o=f,c}}var o,i,n,l=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,c={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.exports=function(e,r,t){var a;if(o="",i="","number"==typeof t)for(a=0;a<t;a+=1)i+=" ";else"string"==typeof t&&(i=t);if(n=r,r&&"function"!=typeof r&&("object"!=typeof r||"number"!=typeof r.length))throw new Error("JSON.stringify");return s("",{"":e})}},{}],ajv:[function(e,r,t){"use strict";function a(e){return y.test(e)}function Ajv(r){function t(e,r){var t;if("string"==typeof e){if(t=j(e),!t)throw new Error('no schema with key or ref "'+e+'"')}else{var a=O(e);t=a.validate||R(a)}var s=t(r);return t.$async===!0?"*"==C._opts.async?p(s):s:(C.errors=t.errors,s)}function m(e,r){var t=O(e,void 0,r);return t.validate||R(t)}function P(e,r,t,a){if(Array.isArray(e))for(var s=0;s<e.length;s++)P(e[s],void 0,t,a);else r=o.normalizeId(r||e.id),L(r),C._schemas[r]=O(e,t,a,!0)}function E(e,r,t){P(e,r,t,!0)}function b(e,r){var s=e.$schema||C._opts.defaultMeta||w(),o=C._formats.uri;C._formats.uri="function"==typeof o?a:y;var i;try{i=t(s,e)}finally{C._formats.uri=o}if(!i&&r){var n="schema is invalid: "+I();if("log"!=C._opts.validateSchema)throw new Error(n);console.error(n)}return i}function w(){var e=C._opts.meta;return C._opts.defaultMeta="object"==typeof e?e.id||e:C._opts.v5?u.META_SCHEMA_ID:v}function j(e){var r=$(e);switch(typeof r){case"object":return r.validate||R(r);case"string":return j(r);case"undefined":return S(e)}}function S(e){var r=o.schema.call(C,{schema:{}},e);if(r){var t=r.schema,a=r.root,i=r.baseId,l=s.call(C,t,a,void 0,i);return C._fragments[e]=new n({ref:e,fragment:!0,schema:t,root:a,baseId:i,validate:l}),l}}function $(e){return e=o.normalizeId(e),C._schemas[e]||C._refs[e]||C._fragments[e]}function x(e){if(e instanceof RegExp)return _(C._schemas,e),void _(C._refs,e);switch(typeof e){case"undefined":return _(C._schemas),_(C._refs),void C._cache.clear();case"string":var r=$(e);return r&&C._cache.del(r.jsonStr),delete C._schemas[e],void delete C._refs[e];case"object":var t=l(e);C._cache.del(t);var a=e.id;a&&(a=o.normalizeId(a),delete C._schemas[a],delete C._refs[a])}}function _(e,r){for(var t in e){var a=e[t];a.meta||r&&!r.test(t)||(C._cache.del(a.jsonStr),delete e[t])}}function O(e,r,t,a){if("object"!=typeof e)throw new Error("schema should be object");var s=l(e),i=C._cache.get(s);if(i)return i;a=a||C._opts.addUsedSchema!==!1;var c=o.normalizeId(e.id);c&&a&&L(c);var h,u=C._opts.validateSchema!==!1&&!r;u&&!(h=e.id&&e.id==e.$schema)&&b(e,!0);var f=o.ids.call(C,e),d=new n({id:c,schema:e,localRefs:f,jsonStr:s,meta:t});return"#"!=c[0]&&a&&(C._refs[c]=d),C._cache.put(s,d),u&&h&&b(e,!0),d}function R(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r?r:t,e.schema.$async===!0&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=C._opts,C._opts=C._metaOpts);var o;try{o=s.call(C,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(C._opts=a)}return e.validate=o,e.refs=o.refs,e.refVal=o.refVal,e.root=o.root,o}function I(e,r){if(e=e||C.errors,!e)return"No errors";r=r||{};for(var t=void 0===r.separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)}function A(e,r){"string"==typeof r&&(r=new RegExp(r)),C._formats[e]=r}function k(){if(C._opts.meta!==!1){var r=e("./refs/json-schema-draft-04.json");E(r,v,!0),C._refs["http://json-schema.org/schema"]=v}}function q(){var e=C._opts.schemas;if(e)if(Array.isArray(e))P(e);else for(var r in e)P(e[r],r)}function D(){for(var e in C._opts.formats){var r=C._opts.formats[e];A(e,r)}}function L(e){if(C._schemas[e]||C._refs[e])throw new Error('schema with key or id "'+e+'" already exists')}function Q(){for(var e=f.copy(C._opts),r=0;r<g.length;r++)delete e[g[r]];return e}if(!(this instanceof Ajv))return new Ajv(r);var C=this;r=this._opts=f.copy(r)||{},this._schemas={},this._refs={},this._fragments={},this._formats=c(r.format),this._cache=r.cache||new i,this._loadingSchemas={},this._compilations=[],this.RULES=h(),this.validate=t,this.compile=m,this.addSchema=P,this.addMetaSchema=E,this.validateSchema=b,this.getSchema=j,this.removeSchema=x,this.addFormat=A,this.errorsText=I,this._addSchema=O,this._compile=R,r.loopRequired=r.loopRequired||1/0,(r.async||r.transpile)&&d.setup(r),r.beautify===!0&&(r.beautify={indent_size:2}),"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),this._metaOpts=Q(),r.formats&&D(),k(),r.v5&&u.enable(this),"object"==typeof r.meta&&E(r.meta),q()}var s=e("./compile"),o=e("./compile/resolve"),i=e("./cache"),n=e("./compile/schema_obj"),l=e("json-stable-stringify"),c=e("./compile/formats"),h=e("./compile/rules"),u=e("./v5"),f=e("./compile/util"),d=e("./async"),p=e("co");r.exports=Ajv,Ajv.prototype.compileAsync=d.compile;var m=e("./keyword");Ajv.prototype.addKeyword=m.add,Ajv.prototype.getKeyword=m.get,Ajv.prototype.removeKeyword=m.remove,Ajv.ValidationError=e("./compile/validation_error");var v="http://json-schema.org/draft-04/schema",y=/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,g=["removeAdditional","useDefaults","coerceTypes"]},{"./async":1,"./cache":2,"./compile":6,"./compile/formats":5,"./compile/resolve":7,"./compile/rules":8,"./compile/schema_obj":9,"./compile/util":11,"./compile/validation_error":12,"./keyword":37,"./refs/json-schema-draft-04.json":38,"./v5":40,co:47,"json-stable-stringify":48}]},{},[])("ajv")});
//# sourceMappingURL=dist/ajv.min.js.map \ No newline at end of file
diff --git a/tools/eslint/node_modules/ajv/dist/ajv.min.js.map b/tools/eslint/node_modules/ajv/dist/ajv.min.js.map
index 58591b21de..7ceac1998b 100644
--- a/tools/eslint/node_modules/ajv/dist/ajv.min.js.map
+++ b/tools/eslint/node_modules/ajv/dist/ajv.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["dist/ajv.bundle.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","setupAsync","opts","required","check","async","transpile","get","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","util","copy","checkGenerators","Function","checkAsyncFunction","getRegenerator","regenerator","runtime","regeneratorTranspile","compile","getNodent","nodent","log","dontInstallRequireHook","console","warn","nodentTranspile","promises","sourcemap","compileAsync","schema","callback","_compileAsync","firstCall","loadMissingSchema","schemaLoaded","err","sch","_refs","ref","_schemas","addSchema","missingSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","deferCallback","validate","setTimeout","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","prototype","put","key","value","del","clear","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","isArray","arrB","keys","Object","undefined","5","formats","mode","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","RegExp","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","root","localRefs","baseId","callValidate","compilation","result","apply","arguments","errors","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","beautify","error","validateCode","makeValidate","co","ucs2length","ValidationError","refs","keepSourceCode","source","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","validateSchema","definition","valid","message","errorsText","macro","keyword","c","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","js_beautify","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","resolveSchema","p","parse","refPath","_getFullPath","getFullPath","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","ALL","KEYWORDS","TYPES","all","forEach","group","map","push","keywords","concat","types","custom","./_rules","9","obj","10","len","pos","charCodeAt","11","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","./ucs2length","12","ajv","validation","create","constructor","13","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$schemaValue","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","14","$notOp","15","16","unicode","17","18","$it","$currentBaseId","arr1","$sch","$i","l1","19","$errs","$noEmptySchema","every","$wasComposite","20","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$code","passContext","def_callRuleValidate","def_customError","22","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","23","24","$isObject","$formatRef","25","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$matched","$ownProperties","ownProperties","$pProperty","i1","$missingPattern","31","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","32","$refCode","$refVal","$message","missingRefs","$error","__callValidate","33","$propertySch","$loopRequired","i3","34","$shouldContinue","$ifPassed","$caseIndex","if","then","continue","35","36","$shouldUseGroup","$rulesGroup","$shouldUseRule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$parentData","$dataProperty","$refKeywords","extendRefs","JSON","stringify","$typeChecked","37","_addRule","ruleGroup","rg","metaSchema","./dotjs/custom","38","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","39","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","40","enableV5","_addKeyword","inlineFunc","inlineFunctions","addKeyword","_formatLimit","patternRequired","meta","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","41","RangeError","fn","mapDomain","string","regexSeparators","labels","encoded","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","j","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","hasOwnProperty","42","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","x","idx","indexOf","substr","xs","toString","43","stringifyPrimitive","isFinite","name","objectKeys","ks","44","./decode","./encode","45","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","46","arg","47","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","defer","promise","results","displayName","val","wrap","createPromise","__generatorFunction__","48","json","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","sort","keyValue","","has","jsonify","49","./lib/parse","./lib/stringify","50","at","ch","text","escapee","\"","\\","/","hex","uffff","parseInt","white","word","reviver","walk","holder","51","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","_fragments","fragment","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_metaOpts","separator","dataPath","addFormat","addDraft4MetaSchema","addInitialSchemas","optsSchemas","addInitialFormats","getMetaSchemaOptions","metaOpts","META_IGNORE_OPTIONS","cache","indent_size","errorDataPath","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5"],"mappings":"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","file":"dist/ajv.min.js"} \ No newline at end of file
+{"version":3,"sources":["dist/ajv.bundle.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","setupAsync","opts","required","check","async","transpile","get","TRANSPILE","_transpileFunc","ASYNC","MODES","_opts","util","copy","checkGenerators","Function","checkAsyncFunction","getRegenerator","regenerator","name","runtime","regeneratorTranspile","compile","getNodent","nodent","log","dontInstallRequireHook","console","warn","nodentTranspile","promises","sourcemap","compileAsync","schema","callback","_compileAsync","firstCall","loadMissingSchema","schemaLoaded","err","sch","_refs","ref","_schemas","addSchema","missingSchema","missingRef","_callbacks","_loadingSchemas","loadSchema","deferCallback","validate","setTimeout","schemaObj","_addSchema","setup","*","co*","es7","./compile/util","2","Cache","_cache","prototype","put","key","value","del","clear","3","$ref","allOf","anyOf","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","uniqueItems","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","equal","b","arrA","Array","isArray","arrB","keys","Object","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","toString","hasOwnProperty","5","formats","mode","formatDefs","fName","compare","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","split","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","compareDate","d1","d2","compareTime","t1","t2","compareDateTime","dt1","dt2","res","undefined","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","6","loadBeautify","beautify","js_beautify","root","localRefs","baseId","callValidate","compilation","result","apply","arguments","errors","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","RULES","resolve","resolveRef","usePattern","useDefault","useCustomRule","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","error","validateCode","makeValidate","co","ucs2length","ValidationError","refs","keepSourceCode","source","url","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","v","localSchema","inlineRef","inlineRefs","replaceLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","validateSchema","definition","valid","message","errorsText","macro","keyword","c","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","../async","./equal","./resolve","./validation_error","json-stable-stringify","7","SchemaObject","_compile","resolveSchema","p","parse","refPath","_getFullPath","getFullPath","id","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","_resolveIds","fullPath","escapeFragment","ids","toHash","./schema_obj","8","ruleModules","type","rules","ALL","KEYWORDS","TYPES","all","forEach","group","map","push","keywords","concat","types","custom","./_rules","9","obj","10","len","pos","charCodeAt","11","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","cleanUpVarErrors","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_TRUE_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","./ucs2length","12","ajv","validation","create","constructor","13","$keyword","$errorKeyword","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$valid","$schemaFormat","$isDataFormat","v5","$closingBraces","$schemaValueFormat","dataPathArr","$format","$compare","$schemaValue","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$result","$isData","$schemaValueExcl","$exclusive","$opExpr","$opStr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","14","$notOp","15","16","unicode","17","18","$it","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","19","$errs","$noEmptySchema","every","$wasComposite","20","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$code","passContext","def_callRuleValidate","def_customError","22","$schemaDeps","$propertyDeps","$property","$deps","$currentErrorPath","_$property","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","$reqProperty","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","indexOf","$isObject","$formatRef","25","$idx","$dataNxt","$nextData","$additionalItems","additionalItems","$currErrSchemaPath","$passData","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$matched","$ownProperties","ownProperties","$pProperty","i1","$missingPattern","31","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","$pgProperties","patternGroups","$pgPropertyKeys","$propertyKey","arr3","$pgProperty","l3","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","$useData","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","32","$refCode","$refVal","$message","missingRefs","$error","__callValidate","33","$propertySch","$loopRequired","i3","34","$shouldContinue","$ifPassed","$caseIndex","if","then","continue","35","36","$shouldUseGroup","$rulesGroup","$shouldUseRule","$top","rootId","$es7","yieldAwait","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","$parentData","$dataProperty","$refKeywords","extendRefs","JSON","stringify","$typeChecked","37","addKeyword","_addRule","ruleGroup","rg","metaSchema","getKeyword","removeKeyword","j","add","remove","./dotjs/custom","38","description","definitions","schemaArray","positiveInteger","positiveIntegerDefault0","simpleTypes","stringArray","title","exclusiveMinimum","exclusiveMaximum","39","formatMaximum","formatMinimum","formatExclusiveMaximum","formatExclusiveMinimum","constant","contains","switch","40","enableV5","_addKeyword","inlineFunc","inlineFunctions","_formatLimit","patternRequired","meta","addMetaSchema","META_SCHEMA_ID","containsMacro","enable","./dotjs/_formatLimit","./dotjs/constant","./dotjs/patternRequired","./dotjs/switch","./refs/json-schema-v5.json","41","RangeError","fn","mapDomain","string","regexSeparators","labels","encoded","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","42","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","x","idx","substr","xs","43","stringifyPrimitive","isFinite","objectKeys","ks","44","./decode","./encode","45","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","isObject","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","TypeError","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","46","arg","47","gen","ctx","args","Promise","reject","onFulfilled","ret","next","onRejected","throw","done","toPromise","isPromise","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","objectToPromise","defer","promise","results","displayName","val","wrap","createPromise","__generatorFunction__","48","json","cmp","space","cycles","replacer","node","aobj","bobj","seen","parent","indent","colonSeparator","toJSON","sort","keyValue","","has","jsonify","49","./lib/parse","./lib/stringify","50","at","ch","text","escapee","\"","\\","/","hex","uffff","parseInt","white","word","reviver","walk","holder","51","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","SCHEMA_URI_FORMAT_FUNC","SCHEMA_URI_FORMAT","schemaKeyRef","getSchema","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","defaultMeta","currentUriFormat","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","_fragments","fragment","removeSchema","_removeAllSchemas","jsonStr","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_metaOpts","separator","dataPath","addFormat","addDraft4MetaSchema","addInitialSchemas","optsSchemas","addInitialFormats","getMetaSchemaOptions","metaOpts","META_IGNORE_OPTIONS","cache","indent_size","errorDataPath","customKeyword","./async","./cache","./compile","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/validation_error","./keyword","./refs/json-schema-draft-04.json","./v5"],"mappings":"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","file":"dist/ajv.min.js"} \ No newline at end of file
diff --git a/tools/eslint/node_modules/ajv/dist/nodent.min.js b/tools/eslint/node_modules/ajv/dist/nodent.min.js
index 7368224b4f..6db29e363c 100644
--- a/tools/eslint/node_modules/ajv/dist/nodent.min.js
+++ b/tools/eslint/node_modules/ajv/dist/nodent.min.js
@@ -1,8 +1,8 @@
-/* nodent 2.6.10: NoDent - Asynchronous Javascript language extensions */
-require=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return o.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=o.prototype):(null===e&&(e=new o(t)),e.length=t),e}function o(e,t,n){if(!(o.TYPED_ARRAY_SUPPORT||this instanceof o))return new o(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,n)}function a(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?f(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t,n,r){return u(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}function l(e,t){if(u(t),e=s(e,t<0?0:0|y(t)),!o.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!o.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|g(t,n);e=s(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function h(e,t){var n=t.length<0?0:0|y(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function f(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),o.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=o.prototype):e=h(e,t),e}function d(e,t){if(o.isBuffer(t)){var n=0|y(t.length);return e=s(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||Q(t.length)?s(e,0):h(e,t);if("Buffer"===t.type&&K(t.data))return h(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function y(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function g(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return L(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t=255&t,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;c<a;c++)if(s(e,c)===s(t,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===u)return l*o}else l!==-1&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;h<u;h++)if(s(e,c+h)!==s(t,h)){p=!1;break}if(p)return c}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var s=t.length;if(s%2!==0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function S(e,t,n,r){return H(z(t,e.length-n),e,n,r)}function k(e,t,n,r){return H(Y(t),e,n,r)}function A(e,t,n,r){return k(e,t,n,r)}function _(e,t,n,r){return H(J(t),e,n,r)}function C(e,t,n,r){return H(G(t,e.length-n),e,n,r)}function L(e,t,n){return 0===t&&n===e.length?X.fromByteArray(e):X.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s=e[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=n){var u,c,l,p;switch(a){case 1:s<128&&(o=s);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&s)<<6|63&u,p>127&&(o=p));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(p=(15&s)<<12|(63&u)<<6|63&c,p>2047&&(p<55296||p>57343)&&(o=p));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(p=(15&s)<<18|(63&u)<<12|(63&c)<<6|63&l,p>65535&&p<1114112&&(o=p))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return R(r)}function R(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function N(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s<n;++s)i+=W(e[s]);return i}function B(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function F(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function I(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function D(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function $(e,t,n,r,i){return i||D(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function V(e,t,n,r,i){return i||D(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function U(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function Y(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function G(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,s.push(i),s.push(r);return s}function J(e){return X.toByteArray(U(e))}function H(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e){return e!==e}var X=e("base64-js"),Z=e("ieee754"),K=e("isarray");n.Buffer=o,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return a(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,n){return c(null,e,t,n)},o.allocUnsafe=function(e){return l(null,e)},o.allocUnsafeSlow=function(e){return l(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(e,t){if(!K(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return o.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=o.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var s=e[n];if(!o.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(r,i),i+=s.length}return r},o.byteLength=g,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},o.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},o.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},o.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):v.apply(this,arguments)},o.prototype.equals=function(e){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===o.compare(this,e)},o.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var s=i-r,a=n-t,u=Math.min(s,a),c=this.slice(r,i),l=e.slice(t,n),p=0;p<u;++p)if(c[p]!==l[p]){s=c[p],a=l[p];break}return s<a?-1:a<s?1:0},o.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},o.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},o.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},o.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t=0|t,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;o.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(o.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=o.prototype;else{var i=t-e;r=new o(i,void 0);for(var s=0;s<i;++s)r[s]=this[s+e]}return r},o.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||F(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},o.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||F(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||F(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||F(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||F(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||F(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||F(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},o.prototype.readInt8=function(e,t){return t||F(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},o.prototype.readInt16LE=function(e,t){t||F(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||F(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||F(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||F(e,4,this.length),Z.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||F(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||F(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var s=1,o=0;for(this[t]=255&e;++o<n&&(s*=256);)this[t+o]=e/s&255;return t+n},o.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var s=n-1,o=1;for(this[t+s]=255&e;--s>=0&&(o*=256);)this[t+s]=e/o&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):I(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):I(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return $(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return $(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},o.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!o.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e=255&e);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var a=o.isBuffer(e)?e:z(new o(e,r).toString()),u=a.length;for(s=0;s<n-t;++s)this[s+t]=a[s%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":3,ieee754:4,isarray:5}],3:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function s(e){var t,n,i,s,o,a,u=e.length;o=r(e),a=new p(3*u/4-o),i=o>0?u-4:u;var c=0;for(t=0,n=0;t<i;t+=4,n+=3)s=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[c++]=s>>16&255,a[c++]=s>>8&255,a[c++]=255&s;return 2===o?(s=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[c++]=255&s):1===o&&(s=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[c++]=s>>8&255,a[c++]=255&s),a}function o(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function a(e,t,n){for(var r,i=[],s=t;s<n;s+=3)r=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(o(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",s=[],o=16383,u=0,l=n-r;u<l;u+=o)s.push(a(e,u,u+o>l?l:u+o));return 1===r?(t=e[n-1],i+=c[t>>2],i+=c[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=c[t>>10],i+=c[t>>4&63],i+=c[t<<2&63],i+="="),s.push(i),s.join("")}n.byteLength=i,n.toByteArray=s,n.fromByteArray=u;for(var c=[],l=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=h.length;f<d;++f)c[f]=h[f],l[h.charCodeAt(f)]=f;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},{}],4:[function(e,t,n){n.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,p=n?i-1:0,h=n?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+p],p+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+p],p+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:(f?-1:1)*(1/0);o+=Math.pow(2,r),s-=c}return(f?-1:1)*o*Math.pow(2,s-r)},n.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<<c)-1,p=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+p>=1?h/u:h*Math.pow(2,1-p),t*u>=2&&(o++,u/=2),o+p>=l?(a=0,o=l):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],5:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],6:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),s="/"===o(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),o=Math.min(i.length,s.length),a=o,u=0;u<o;u++)if(i[u]!==s[u]){a=u;break}for(var c=[],u=a;u<i.length;u++)c.push("..");return c=c.concat(s.slice(a)),c.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=s(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=s(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return s(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:7}],7:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===i||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?y=d.concat(y):g=-1,y.length&&u())}function u(){if(!m){var e=s(a);m=!0;for(var t=y.length;t;){for(d=y,y=[];++g<t;)d&&d[g].run();g=-1,t=y.length}d=null,m=!1,o(e)}}function c(e,t){this.fun=e,this.array=t}function l(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{h="function"==typeof clearTimeout?clearTimeout:i}catch(e){h=i}}();var d,y=[],m=!1,g=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new c(e,t)),1!==y.length||m||s(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=l,f.addListener=l,f.once=l,f.off=l,f.removeListener=l,f.removeAllListeners=l,f.emit=l,f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],8:[function(e,t,n){t.exports=function(e,t,n,r){var i=[[],[]],s=[/(.*)(<script[^>]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u<t.length;){var c=s[o].exec(t[u]);c&&0==o&&c[2].match("src=")&&(c=null),c?(1==o?(i[o].push(c[1]),pr=e.compile(i[1].join("\n"),n,3,r.compiler).code,a&&r.runtime&&(a=!1,r.runtime&&i[0].push("Function.prototype.$asyncbind = "+e.$asyncbind.toString()+";\n")),i[0].push(pr),i[1]=[],o=0,i[o].push(c[2])):(i[o].push(c[1]),i[o].push(c[2]),o=1),t[u]=c[3]):i[o].push(t[u++])}return i[0].join("\n")}},{}],9:[function(e,t,n){"use strict";function r(e){if(!e)return"";if(Array.isArray(e))return e.map(r).join("|\n");try{return m(e)}catch(t){return t.message+": "+(e&&e.type)}}function i(e){if(Array.isArray(e))return e.map(function(e){return i(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function s(e,t){e!==t&&(e.__proto__=Object.getPrototypeOf(t),Object.keys(e).forEach(function(t){t in g||delete e[t]}),Object.keys(t).forEach(function(n){n in e||(e[n]=t[n])}))}function o(e){return e?(b.node=e,b):{}}function a(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return a(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var u=0;u<e.length;u++)if(i=a(e[u],t))return i;return null}var c=n;"function"!=typeof n&&(c=n?function(e){return!0}:function(e){return!o(e).isScope});try{y.treeWalker(e,function(n,r,i){if(t(n))throw s.path=i,s;(n===e||c(n))&&r()})}catch(e){if(e===s)return s.path;throw e}return null}function u(e){return a(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden})}function c(e){return a(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden},function(e){var t=o(e);return!t.isBlockStatement&&!t.isScope})}function l(e){return a(e,{type:"ThisExpression"})}function p(e){if(null===e)return{type:"NullLiteral",value:null,raw:"null"};if(e===!0||e===!1)return{type:"BooleanLiteral",value:e,raw:JSON.stringify(e)};if(e instanceof RegExp){var t=e.toString(),n=t.split("/");return{type:"RegExpLiteral",value:e,raw:t,pattern:n[1],flags:n[2]}}return"number"==typeof e?{type:"NumericLiteral",value:e,raw:JSON.stringify(e)}:{type:"StringLiteral",value:e,raw:JSON.stringify(e)}}function h(e,t){return{type:"Identifier",name:e,loc:t}}function f(e){var t={};for(var n in e)t[n]="string"==typeof e[n]?h(e[n]):e[n];return t}function d(e,t,n,d){function m(t){return e.filename+(t&&t.loc&&t.loc.start?"("+t.loc.start.line+":"+t.loc.start.column+")\t":"\t")}function g(e){return n.babelTree?p(e):{type:"Literal",value:e,raw:JSON.stringify(e)}}function v(e){return e?!n.babelTree||"ClassMethod"!==e.type&&"ObjectMethod"!==e.type?(!n.babelTree&&"MethodDefinition"===e.type||"Property"===e.type&&(e.method||"get"==e.kind||"set"==e.kind))&&o(e.value).isFunction?e.value:null:e:null}function b(e){if(!e)return!1;var t=!1;if(Array.isArray(e)){for(var r=0;r<e.length;r++)b(e[r])&&(t=!0);return t}return y.treeWalker(e,function(r,i,s){"Identifier"===r.type&&"arguments"===r.name?(r.name=n.$arguments,t=!0):r!==e&&o(r).isFunction||i()}),t}function x(e){return"string"!=typeof e&&(e=e.type),n.generatedSymbolPrefix+e+"_"+pe++}function w(e,t){return e&&(e.$exit=f({$error:t.$error,$return:t.$return})),e}function E(e){for(var t=0;t<e.length;t++){if(e[t].self.$exit)return e[t].self;if(e[t].parent&&e[t].parent.$exit)return e[t].parent}return null}function S(e,t){var n=E(e);if(n)return n.$exit;if(t)for(var r=0;r<t.length;r++)if(t[r])return f(t[r]);return null}function k(e,t){se(e),ne(e),M(e),G(e),Y(e),W(e),N(e),P(e),$(e,[B,D,F,j]),V(e,t),oe(e),ce(e)}function A(e,t,n,r){return{type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(e),init:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"FunctionExpression",id:null,generator:!1,expression:!1,params:n||[],body:t},property:he.asyncbind,computed:!1},arguments:[{type:"ThisExpression"},r]}}]}}function _(e,t){var n={$continuation:!0,type:e?"FunctionDeclaration":"FunctionExpression",id:e?"string"==typeof e?h(e):e:void 0,params:[],body:{type:"BlockStatement",body:i(t)}};return e&&(le[e]={def:n}),n}function C(e){return{type:"AwaitExpression",argument:G({type:"FunctionExpression",generator:!1,expression:!1,async:!0,params:[],body:{type:"BlockStatement",body:e}}).body.body[0].argument}}function L(e,t){"string"==typeof e&&(e=h(e));var n={type:"CallExpression",callee:{type:"MemberExpression",object:e,property:h("call"),computed:!1},arguments:[{type:"ThisExpression"}].concat(t||[])};return e.$thisCall=n,n.$thisCallName=e.name,n}function T(e,t){return{type:"ReturnStatement",argument:L(e,t)}}function R(e,t){return{type:"CallExpression",callee:h(e.$seh+"Finally"),arguments:t?[t]:[]}}function O(e,t){if(Array.isArray(e))return e.map(function(e){return O(e,t)});var r=0;return y.treeWalker(e,function(e,t,i){if("ReturnStatement"!==e.type||e.$mapped){if("ThrowStatement"===e.type){if(r>0){if(!o(e).isAsync)return t(e);delete e.async}return e.type="ReturnStatement",e.$mapped=!0,void(e.argument={type:"CallExpression",callee:S(i,[n]).$error,arguments:[e.argument]})}return o(e).isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!o(e).isAsync)return t(e);delete e.async}return e.$mapped=!0,void(o(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:S(i,[n]).$return,arguments:e.argument?[e.argument]:[]
-})},t)}function P(e,t){return Array.isArray(e)?e.map(function(e){return P(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(u(e.alternate)||u(e.consequent))){var r=(h(x("condOp")),C([{type:"IfStatement",test:e.test,consequent:{type:"ReturnStatement",argument:e.consequent},alternate:null},{type:"ReturnStatement",argument:e.alternate}]));s(e,r)}},t),e)}function N(e,t){return Array.isArray(e)?e.map(function(e){return N(e,t)}):(y.treeWalker(e,function(e,t,n){function r(e,t){return C([{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:o,init:null}],kind:"var"},{type:"IfStatement",test:e,consequent:t,alternate:null},{type:"ReturnStatement",argument:o}])}if(t(),"LogicalExpression"===e.type&&u(e.right)){var i,o=h(x("logical"+("&&"===e.operator?"And":"Or")));if("||"===e.operator)i=r({type:"UnaryExpression",operator:"!",prefix:!0,argument:{type:"AssignmentExpression",operator:"=",left:o,right:e.left}},{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:o,right:e.right}});else{if("&&"!==e.operator)throw new Error(m(e)+"Illegal logical operator: "+e.operator);i=r({type:"AssignmentExpression",operator:"=",left:o,right:e.left},{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:o,right:e.right}})}s(e,i)}},t),e)}function B(e,t,n){if("SwitchCase"!==e.type&&o(e).isBlockStatement)for(var r=0;r<e.body.length;){var i=e.body[r];if("SwitchCase"!==i.type&&o(i).isBlockStatement){var s=ue(i.body);if(s)if(c(i)){var a=x(i),u=e.body.splice(r+1,e.body.length-(r+1));if(u.length){var l=_(a,u);delete le[a],i.body.push(T(a)),e.body.push(l),r++}else r++}else r++;else e.body.splice.apply(e.body,[r,1].concat(i.body))}else r++}}function F(e,t,n){if("IfStatement"===e.type&&u([e.consequent,e.alternate])){var r=x(e),a=t[0],c={type:"BlockStatement",body:[e]};if("index"in a){var l=a.index,p=a.parent[a.field].splice(l+1,a.parent[a.field].length-(l+1));if(a.replace(c),p.length){var h=T(r);c.body.unshift(n(_(r,p))),[e.consequent,e.alternate].forEach(function(e){if(e){var t;t=o(e).isBlockStatement?e.body[e.body.length-1]:e,t&&"ReturnStatement"===t.type||("BlockStatement"!==e.type&&s(e,{type:"BlockStatement",body:[i(e)]}),e.$deferred=!0,e.body.push(i(h))),n(e)}}),e.consequent&&e.alternate&&e.consequent.$deferred&&e.alternate.$deferred||c.body.push(i(h))}}else a.parent[a.field]=c}}function j(e,t,n){if(!e.$switched&&"SwitchStatement"===e.type&&u(e.cases)){e.$switched=!0;var r,s,o,a=t[0];if("index"in a){var c=a.index+1;o=a.parent[a.field].splice(c,a.parent[a.field].length-c),o.length&&"BreakStatement"===o[o.length-1].type&&a.parent[a.field].push(o.pop()),r=x(e),s=T(r),a.parent[a.field].unshift(_(r,o)),a.parent[a.field].push(i(s))}return e.cases.forEach(function(e,t){if("SwitchCase"!==e.type)throw new Error("switch contains non-case/default statement: "+e.type);if(u(e.consequent)){var n=e.consequent[e.consequent.length-1];"BreakStatement"===n.type?e.consequent[e.consequent.length-1]=i(s):"ReturnStatement"===n.type||"ThrowStatement"===n.type||(d(m(e)+"switch-case fall-through not supported - added break. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"),e.consequent.push(i(s)))}}),!0}}function M(t){return y.treeWalker(t,function(t,r,i){if("TryStatement"===t.type&&u(t)){t.$containedAwait=!0;var s=S(i,[n]);if(t.$seh=x("Try")+"_",t.finalizer&&!t.handler){var o=h(x("exception"));t.handler={type:"CatchClause",param:o,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:o}]}}}if(!t.handler&&!t.finalizer){var a=new SyntaxError(m(t.value)+"try requires catch and/or finally clause",e.filename,t.start);throw a.pos=t.start,a.loc=t.loc.start,a}t.finalizer?(w(t.block,{$error:t.$seh+"Catch",$return:R(t,s.$return)}),w(t.handler,{$error:R(t,s.$error),$return:R(t,s.$return)})):w(t.block,{$error:t.$seh+"Catch",$return:s.$return})}r()}),t}function I(e,t){for(var n=0;n<e.length;n++)if(!o(e[n]).isDirective)return void e.splice.apply(e,[n,0].concat(t));e.splice.apply(e,[e.length,0].concat(t))}function D(t,r,s){if("TryStatement"===t.type&&(t.$containedAwait||u(t))&&!t.$mapped){var o,a,c,l=r[0];if(!("index"in l))throw new Error(e.filename+" - malformed try/catch blocks");var p=l.index+1,f=l.parent[l.field].splice(p,l.parent[l.field].length-p);if(f.length){a=t.$seh+"Post";var d=_(a,f);d=s(d),l.parent[l.field].splice(l.index,0,d),o=T(t.finalizer?R(t,h(a)):a)}else t.finalizer&&(o=T(R(t)));t.$mapped=!0,o&&(t.block.body.push(i(o)),t.handler.body.body.push(i(o)));var y=S(r,[n]);if(t.handler){var m=h(t.$seh+"Catch");c=i(t.handler.body);var g=A(m.name,c,[i(t.handler.param)],t.finalizer?R(t,y.$error):y.$error);t.handler.body.body=[{type:"CallExpression",callee:m,arguments:[i(t.handler.param)]}],l.parent[l.field].splice(l.index,0,g)}if(t.finalizer){var v={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(t.$seh+"Finally"),init:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"FunctionExpression",params:[h(t.$seh+"Exit")],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"CallExpression",arguments:[{type:"ThisExpression"},y.$error],callee:{type:"MemberExpression",property:he.asyncbind,object:{type:"FunctionExpression",params:[h(t.$seh+"Value")],body:{type:"BlockStatement",body:i(t.finalizer.body).concat([{type:"ReturnStatement",argument:{type:"BinaryExpression",operator:"&&",left:h(t.$seh+"Exit"),right:L(h(t.$seh+"Exit"),[h(t.$seh+"Value")])}}])}}}}}]}},property:he.asyncbind,computed:!1},arguments:[{type:"ThisExpression"}]}}]};I(l.parent[l.field],[v]);var b=T(R(t,a&&h(a)));c.body[c.length-1]=b,t.block.body[t.block.body.length-1]=b,delete t.finalizer}}}function $(e,t,n){function r(e,n){return y.treeWalker(e,function(e,n,s){function o(e){return r(e,s)}i.indexOf(e)<0&&(i.push(e),t.forEach(function(t){t(e,s,o)})),n()},n)}var i=[];return r(e,n),e}function V(e,t,a){return y.treeWalker(e,function(e,c,l){if("IfStatement"==e.type&&("BlockStatement"!=e.consequent.type&&u(e.consequent)&&(e.consequent={type:"BlockStatement",body:[e.consequent]}),e.alternate&&"BlockStatement"!=e.alternate.type&&u(e.alternate)&&(e.alternate={type:"BlockStatement",body:[e.alternate]})),c(),o(e).isAwait){var p=e.loc;if(t=t||l.some(function(e){return e.self&&e.self.$wasAsync}),!t||"warn"===t){var f=m(e)+"'await' used inside non-async function. ";f+=n.promises?"'return' value Promise runtime-specific":"'return' value from await is synchronous",d(f+". See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification")}var y=l[0].parent;"LogicalExpression"===y.type&&y.right===e&&d(m(e.argument)+"'"+r(y)+"' on right of "+y.operator+" will always evaluate '"+r(e.argument)+"'"),"ConditionalExpression"===y.type&&y.test!==e&&d(m(e.argument)+"'"+r(y)+"' will always evaluate '"+r(e.argument)+"'");var g=h(x("await")),v=i(e.argument);s(e,g);for(var b,w,E=1;E<l.length;E++)if(w=o(l[E].self).isBlockStatement){b=l[E-1];break}if(!b)throw new Error(m(e)+"Illegal await not contained in a statement");var k,A,_=S(l,[a,n]),C=b.index,L=w.splice(C,w.length-C).slice(1);"ReturnStatement"===b.self.type&&"CallExpression"===b.self.argument.type&&1===b.self.argument.arguments.length&&b.self.argument.arguments[0].name===g.name?A=k=b.self.argument.callee:"Identifier"===b.self.type||b.self.name===g.name||"ExpressionStatement"===b.self.type&&"Identifier"===b.self.expression.type&&b.self.expression.name===g.name?k=L.length?{type:"FunctionExpression",params:[i(g)],body:V({type:"BlockStatement",body:i(L)},t,_)}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}:(L.unshift(b.self),k={type:"FunctionExpression",params:[i(g)],body:V({type:"BlockStatement",body:i(L)},t,_)}),A||(A=k?{type:"CallExpression",callee:{type:"MemberExpression",object:k,property:h("$asyncbind",p),computed:!1},arguments:[{type:"ThisExpression"},_.$error]}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}),n.wrapAwait&&(v=n.promises||n.generators?{type:"CallExpression",arguments:[v],callee:{type:"MemberExpression",object:h("Promise"),property:h("resolve")}}:{type:"CallExpression",arguments:[v],callee:{type:"MemberExpression",object:h("Object"),property:h("$makeThenable")}});var T={type:"CallExpression",callee:{type:"MemberExpression",object:v,property:h("then",p),computed:!1},arguments:[A,_.$error]};w.push({loc:p,type:"ReturnStatement",argument:T})}return!0}),e}function U(e,t){var n=h(x("in")),r="VariableDeclaration"===e.left.type?e.left.declarations[0].id:e.left,i={type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:n,init:{type:"ArrayExpression",elements:[]}}],kind:"var"},s=e.body;e.body={type:"ExpressionStatement",expression:{type:"CallExpression",callee:{type:"MemberExpression",object:n,property:h("push"),computed:!1},arguments:[r]}};var o={type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:r,right:{type:"CallExpression",callee:{type:"MemberExpression",object:n,property:h("shift"),computed:!1},arguments:[]}}};"BlockStatement"===s.type?s.body.unshift(o):s={type:"BlockStatement",body:[o].concat(s)};var a={type:"WhileStatement",test:{type:"MemberExpression",object:n,property:h("length"),computed:!1},body:s};"index"in t[0]?t[0].parent.body.splice(t[0].index,1,i,e,a):t[0].parent[t[0].ref]={type:"BlockStatement",body:[i,e,a]}}function q(e,t){e.type="ForStatement","BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[e.body]});var n,r,i={type:"ArrayExpression",elements:[{type:"CallExpression",callee:{type:"MemberExpression",object:e.right,property:{type:"MemberExpression",object:h("Symbol"),property:h("iterator"),computed:!1},computed:!0},arguments:[]}]};if("VariableDeclaration"===e.left.type){"const"===e.left.kind&&(e.left.kind="let"),n=e.left.declarations[0].id;var s=ee(e.left.declarations[0].id);r=h("$iterator_"+s.join("_")),e.left.declarations=s.map(function(e){return{type:"VariableDeclarator",id:h(e)}}),e.left.declarations.push({type:"VariableDeclarator",id:r,init:i}),e.init=e.left}else{n=e.left,r=h("$iterator_"+n.name);var o={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:r,init:i}]};t[0].parent.body.splice(t[0].index,0,o),e.init=null}e.test={type:"LogicalExpression",left:{type:"UnaryExpression",operator:"!",prefix:!0,argument:{type:"MemberExpression",object:{type:"AssignmentExpression",operator:"=",left:{type:"MemberExpression",object:r,property:g(1),computed:!0},right:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"MemberExpression",object:r,property:g(0),computed:!0},property:h("next"),computed:!1},arguments:[]}},property:h("done"),computed:!1}},operator:"&&",right:{type:"LogicalExpression",operator:"||",left:{type:"AssignmentExpression",operator:"=",left:n,right:{type:"MemberExpression",object:{type:"MemberExpression",object:r,property:g(1),computed:!0},property:h("value"),computed:!1}},right:g(!0)}},delete e.left,delete e.right}function W(e){return y.treeWalker(e,function(e,t,r){function a(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:L(e||E)}}}function c(t,r){if("BreakStatement"===t.type)s(t,i(k(t.label&&n.generatedSymbolPrefix+e.type+"_"+t.label.name+"_exit")));else if("ContinueStatement"===t.type)s(t,i(a(t.label&&n.generatedSymbolPrefix+e.type+"_"+t.label.name+"_next")));else if(o(t).isFunction)return!0;r()}"ForInStatement"===e.type&&u(e)?U(e,r):"ForOfStatement"===e.type&&u(e)&&q(e,r),t();var p;if(o(e).isLoop&&u(e)){var f=e.init,d=e.test||g(!0),m=e.update,v=e.body,b=l(v);f&&(o(f).isStatement||(f={type:"ExpressionStatement",expression:f})),m=m&&{type:"ExpressionStatement",expression:m},v=o(v).isBlockStatement?i(v).body:[i(v)];var x="LabeledStatement"===r[0].parent.type&&r[0].parent.label.name;x=e.type+"_"+(x||pe++);var w=n.generatedSymbolPrefix+(x+"_exit"),E=n.generatedSymbolPrefix+(x+"_next"),S=h(n.generatedSymbolPrefix+(x+"_loop")),k=function(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:{type:"CallExpression",callee:h(e||w),arguments:[]}}}},A=_(E,[{type:"ReturnStatement",argument:{type:"CallExpression",callee:b?{type:"CallExpression",arguments:[{type:"ThisExpression"}],callee:{type:"MemberExpression",object:S,property:he.asyncbind,computed:!1}}:S,arguments:[h(w),he.error]}}]);m&&A.body.body.unshift(m);for(var C=0;C<v.length;C++)y.treeWalker(v[C],c);v.push(i(a()));var T={type:"FunctionExpression",id:S,params:[h(w),he.error],body:{type:"BlockStatement",body:[A]}};if("DoWhileStatement"===e.type)A.body.body=[{type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:i(A.body.body)},alternate:{type:"ReturnStatement",argument:{type:"CallExpression",callee:h(w),arguments:[]}}}],T.body.body=[A].concat(v);else{var R={type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:v},alternate:i(k())};T.body.body.push(R)}var O={type:"ExpressionStatement",expression:{type:"AwaitExpression",argument:{type:"CallExpression",arguments:[{type:"ThisExpression"}],callee:{type:"MemberExpression",object:T,property:he.asyncbind,computed:!1}}}};for(!f||"VariableDeclaration"!==f.type||"let"!==f.kind&&"const"!==f.kind||("const"===f.kind&&(f.kind="let"),O={type:"BlockStatement",body:[i(f),O]},f=null),p=0;p<r.length;p++){var P=r[p];if("index"in P)return f?P.parent[P.field].splice(P.index,1,i(f),O):P.parent[P.field][P.index]=O,!0}}return!0}),e}function z(e){try{return Array.isArray(e)?e.some(z):(y.treeWalker(e,function(e,t,r){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(o(e).isFunction){var i=a(e,function(e){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(("ReturnStatement"===e.type||"ThrowStatement"===e.type)&&o(e).isAsync)throw e});if(i)throw i;return!1}t()}),!1)}catch(e){return e}}function Y(t){return y.treeWalker(t,function(t,r,i){var s=v(t);if(r(),s&&o(s).isAsync){if("set"==t.kind){var a=new SyntaxError(m(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw a.pos=t.start,a.loc=t.loc.start,a}s.async=!1;var u=b(s);z(s)||0!==s.body.body.length&&"ReturnStatement"===s.body.body[s.body.body.length-1].type||s.body.body.push({type:"ReturnStatement"});var c={type:"CallExpression",arguments:[{type:"ThisExpression"}],callee:{type:"MemberExpression",object:w({type:"FunctionExpression",params:[he.return,he.error],body:Y(O(s.body,i)),$wasAsync:!0},n),property:he.asyncbind,computed:!1}};n.promises?s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"NewExpression",callee:h("Promise"),arguments:[c]}}]}:(n.lazyThenables||c.arguments.push(g(!0)),s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:c}]}),u&&I(s.body.body,[fe])}})}function G(e,t){return y.treeWalker(e,function(e,r,i){if(r(),o(e).isAsync&&o(e).isFunction){var s;(s=v(i[0].parent))&&o(s).isAsync&&"get"===i[0].parent.kind&&Q(i[0].parent.key),delete e.async;var a,u=b(e);return o(e.body).isBlockStatement?(t||z(e.body)||0!==e.body.body.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),a={type:"BlockStatement",body:e.body.body.map(function(e){return O(e,i)})}):(a={type:"BlockStatement",body:[O({type:"ReturnStatement",argument:e.body},i)]},e.expression=!1),a={type:"CallExpression",arguments:[{type:"ThisExpression"}],callee:{type:"MemberExpression",object:w({type:"FunctionExpression",params:[he.return,he.error],body:a,$wasAsync:!0},n),property:he.asyncbind,computed:!1}},n.promises?a={type:"NewExpression",callee:h("Promise"),arguments:[a]}:n.lazyThenables||a.arguments.push(g(!0)),a={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:a}]},u&&I(a.body,[fe]),void(e.body=a)}}),e}function J(e){if(Array.isArray(e))return e.map(J);var t=0;return y.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(o(e).isFunction)return t++,n(e),void t--}else if(t>0&&o(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?he.error:he.return,arguments:e.argument?[e.argument]:[]},void(e.type="ReturnStatement");n(e)})}function H(e,t){return{type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"FunctionExpression",id:null,generator:!0,expression:!1,params:[he.return,he.error],body:{type:"BlockStatement",body:J(e).concat(t?[{type:"ReturnStatement",argument:he.return}]:[])}},property:he.asyncspawn,computed:!1},arguments:[h("Promise"),{type:"ThisExpression"}]}}]}}function Q(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,d(m(e)+"'async get "+r(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function X(e,t){function r(e,t){y.treeWalker(e,function(n,r,i){n!==e&&o(n).isFunction||(o(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function i(e){var t=n.promises;n.promises=!0,k(e,!0),n.promises=t}function a(e){return"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),e}function u(e,n){n.$asyncexitwarninig||(n.$asyncexitwarninig=!0,d(m(e)+"'async "+{ReturnStatement:"return",ThrowStatement:"throw"}[e.type]+"' not possible in "+(t?"engine":"generator")+" mode. Using Promises for function at "+m(n)))}y.treeWalker(e,function(e,n,c){n();var l,p,h;if(o(e).isAsync&&o(e).isFunction){var f;(f=v(c[0].parent))&&o(f).isAsync&&"get"===c[0].parent.kind&&Q(c[0].parent.key),(p=z(e.body))?(u(p,e.body),i(e)):t?"get"!==c[0].parent.kind&&r(e,!0):(l=e,delete l.async,h=b(l),r(l,!1),l=a(l),l.body=H(l.body.body,p),h&&I(l.body.body,[fe]),l.id&&"ExpressionStatement"===c[0].parent.type?(l.type="FunctionDeclaration",c[1].replace(l)):c[0].replace(l))}else(l=v(e))&&o(l).isAsync&&((p=z(l))?(u(p,l),i(e)):t&&"get"!==e.kind||(t?i(e):(e.async=!1,h=b(l),r(l,!1),s(l,a(l)),l.body=H(l.body.body,p)),h&&I(l.body.body,[fe])))});var c=n.promises;return n.promises=!0,se(e),ne(e),M(e),W(e),N(e),P(e),$(e,[B,D,F,j]),V(e,"warn"),n.promises=c,e}function Z(e,t,n){var r=[];return y.treeWalker(e,function(i,s,a){return i===e?s():t(i,a)?void r.push([].concat(a)):void(n||o(i).isScope||s())}),r}function K(e,t){var n=[],r={};if(e=e.filter(function(e){return"ExportNamedDeclaration"!==e[0].parent.type}),e.length){var s={};e.forEach(function(e){function t(e){e in s?r[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u<o.declarations.length;u++){var c=o.declarations[u];if(ee(c.id).forEach(t),c.init){var l={type:"AssignmentExpression",left:i(c.id),operator:"=",right:i(c.init)};"ForStatement"!==n.parent.type&&(l={type:"ExpressionStatement",expression:l}),a.push(l)}}0==a.length?n.remove():n.replace(a)});var o=Object.keys(s);o.length&&(o=o.map(function(e){return{type:"VariableDeclarator",id:h(e),loc:s[e].loc,start:s[e].start,end:s[e].end}}),n[0]&&"VariableDeclaration"===n[0].type?n[0].declarations=n[0].declarations.concat(o):n.unshift({type:"VariableDeclaration",kind:t,declarations:o}))}return{decls:n,duplicates:r}}function ee(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(ee(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(ee(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(ee(t))},[]);case"ObjectProperty":case"Property":return ee(e.value);case"RestElement":case"RestProperty":return ee(e.argument)}}function te(e){function t(e){d(m(e)+"Possible assignment to 'const "+r(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===i[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===i[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===i[e.key.name]&&t(e)})}}var i={};y.treeWalker(e,function(e,t,r){var s=o(e).isBlockStatement;if(s){i=Object.create(i);for(var a=0;a<s.length;a++)if("VariableDeclaration"===s[a].type)for(var u=0;u<s[a].declarations.length;u++)ee(s[a].declarations[u].id).forEach(function(e){i[e]=s[a].kind})}t(),"AssignmentExpression"===e.type?n(e.left):"UpdateExpression"===e.type&&n(e.argument),s&&(i=Object.getPrototypeOf(i))})}function ne(e){function t(e){return function(t,n){if(t.kind||(t.kind="var"),"VariableDeclaration"===t.type&&e.indexOf(t.kind)>=0){var r=n[0];return("left"!=r.field||"ForInStatement"!==r.parent.type&&"ForOfStatement"!==r.parent.type)&&("init"!=r.field||"ForStatement"!==r.parent.type||"const"!==t.kind&&"let"!==t.kind)}}}function n(e,t){return!!(o(e).isAsync&&o(e).isFunction&&e.id)||!(!o(e).isFunction||!e.id)&&!e.$continuation}te(e);var i=!1;return y.treeWalker(e,function(e,s,a){var c=i;if(i=i||ae(e),o(e).isBlockStatement){var l=u(e);if(l){var p,f,y,g,v,b=!a[0].parent||o(a[0].parent).isScope;if(b){f=Z(e,t(["const"]),!1);var x={},w={};f.forEach(function(e){e[0].self.declarations.forEach(function(e){ee(e.id).forEach(function(t){x[t]||w[t]?(delete x[t],w[t]=e):x[t]=e})})}),f.forEach(function(e){for(var t=0;t<e.length&&!o(e[t].parent).isBlockStatement;t++);var n=e[t];n.append({type:"ExpressionStatement",expression:{type:"SequenceExpression",expressions:e[0].self.declarations.map(function(e){var t={type:"AssignmentExpression",operator:"=",left:e.id,right:e.init};return e.init=null,t})}});var r=ee(e[0].self.declarations),i=r.filter(function(e){return e in w});i.length&&e[0].append({type:"VariableDeclaration",kind:"let",declarations:i.map(function(e){return{type:"VariableDeclarator",id:h(e)}})}),e[0].self.kind="var",i=r.filter(function(e){return e in x}),i.length?e[0].self.declarations=i.map(function(e){return{type:"VariableDeclarator",id:h(e)}}):n.remove()}),y=Z(e,t(["var"]),!1),g=[]}else g=Z(e,t(["const"]),!0);g=g.concat(Z(e,t(["let"]),!0)),p=Z(e,function(e){return o(e).isDirective},!0),v=Z(e,n,i),y=y?K(y,"var"):{duplicates:{},decls:[]},g=g?K(g,"let"):{duplicates:{},decls:[]},Object.keys(y.duplicates).forEach(function(e){d(m(y.duplicates[e])+"Duplicate declaration '"+r(y.duplicates[e])+"'")}),Object.keys(g.duplicates).forEach(function(e){d(m(g.duplicates[e])+"Duplicate declaration '"+r(g.duplicates[e])+"'")}),v=v.map(function(e){var t,n=e[0];if(o(n.self).isAsync)return t=n.self.id.name,o(n.parent).isBlockStatement?(n.self.type="FunctionDeclaration",n.remove(),n.self):n.replace(h(t));t=n.self.id.name;var r="FunctionDeclaration"===n.self.type?n.remove():n.replace(h(t));return r}),p=p.map(function(e){var t=e[0];return t.remove()}),(p.length||y.decls.length||g.decls.length||v.length)&&(e.body=p.concat(y.decls).concat(g.decls).concat(v).concat(e.body))}i=c}return s(),!0}),e}function re(e){function t(){return e.$superID=e.$superID||h("$super$"+pe++)}return function(e){e=v(e),e&&o(e).isAsync&&y.treeWalker(e.body,function(e,n,r){var i;o(e).isClass||(n(),"Super"===e.type&&("MemberExpression"===r[0].parent.type?"CallExpression"===r[1].parent.type&&"callee"===r[1].field?r[0].parent.computed?(i={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"ThisExpression"},property:t(),computed:!1},arguments:[r[0].parent.property]},property:h("call"),computed:!1},arguments:[{type:"ThisExpression"}].concat(r[1].parent.arguments)},r[2].replace(i)):(i={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"CallExpression",callee:{type:"MemberExpression",object:{type:"ThisExpression"},property:t(),computed:!1},arguments:[g(r[0].parent.property.name)]},property:h("call"),computed:!1},arguments:[{type:"ThisExpression"}].concat(r[1].parent.arguments)},r[2].replace(i)):r[0].parent.computed?(i={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"ThisExpression"},property:t(),computed:!1},arguments:[r[0].parent.property]},r[1].replace(i)):(i={type:"CallExpression",callee:{type:"MemberExpression",object:{type:"ThisExpression"},property:t(),computed:!1},arguments:[g(r[0].parent.property.name)]},r[1].replace(i)):d(m(e)+"'super' in async methods must be deferenced. 'async constructor()'/'await super()' not valid.")))})}}function ie(e){return y.treeWalker(e,function(e,t,r){if(t(),("ClassDeclaration"===e.type||"ClassExpression"===e.type)&&(e.body.body.forEach(re(e)),e.$superID)){var i={type:"FunctionExpression",params:[h("$field")],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"MemberExpression",object:{type:"Super"},property:h("$field"),computed:!0}}]}};n.babelTree?(i.type="ClassMethod",i.key=e.$superID,i.kind="method",e.body.body.push(i)):e.body.body.push({type:"MethodDefinition",key:e.$superID,kind:"method",value:i})}})}function se(e){return y.treeWalker(e,function(e,t,n){var r=u(e);return r&&"ArrowFunctionExpression"===e.type&&"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),t(),!0}),e}function oe(e){return y.treeWalker(e,function(e,t,r){t(),"Identifier"===e.type&&"__nodent"===e.name&&s(e,g(n))}),e}function ae(e){if("Program"===e.type&&"module"===e.sourceType)return!0;var t;if("Program"===e.type)t=e.body;else{if(!o(e).isFunction)return!1;t=e.body.body}if(t)for(var n=0;n<t.length;n++)if(o(t[n]).isDirective&&t[n].expression.value.match(/^\s*use\s+strict\s*$/))return!0;return!1}function ue(e){for(var t=0;t<e.length;t++){var n=e[t];if("ClassDeclaration"===n.type||"VariableDeclaration"===n.type&&("let"===n.kind||"const"===n.kind)||"FunctionDeclaration"===n.type&&n.id&&n.id.name&&!n.$continuation)return!0}return!1}function ce(e){y.treeWalker(e,function(e,t,n){t();var r,i;if(r=o(e).isBlockStatement)for(var s=0;s<r.length;s++)(i=o(r[s]).isBlockStatement)&&!ue(i)&&(ue(r[s])||[].splice.apply(r,[s,1].concat(i)))}),y.treeWalker(e,function(e,t,n){if(t(),o(e).isJump){var r=n[0];if("index"in r)for(var i=r.index+1,s=r.parent[r.field];i<s.length;)"VariableDeclaration"===s[i].type||o(s[i]).isFunction&&s[i].id?i+=1:s.splice(i,1)}}),y.treeWalker(e,function(e,t,n){t(),e.$thisCall&&le[e.name]&&(le[e.name].ref?delete le[e.name]:le[e.name].ref=e.$thisCall)});var t=Object.keys(le).map(function(e){return le[e].ref});if(t.length){y.treeWalker(e,function(e,n,r){if(n(),t.indexOf(e)>=0&&"ReturnStatement"===r[1].self.type){var s=e.$thisCallName,a=i(le[s].def.body.body);le[s].$inlined=!0,o(r[1].self).isJump||a.push({type:"ReturnStatement"}),r[1].replace(a)}});var n=Object.keys(le).map(function(e){return le[e].$inlined&&le[e].def});y.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}var r="Program"===e.type||"module"===e.sourceType;if(!r||!a(e,function(e){return o(e).isES6},!0)){var s=ae(e);!function(e){y.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var r=s;if(s=s||ae(e)){t();var i="Program"===e.type?e:e.body,o=Z(i,function(e,t){if("FunctionDeclaration"===e.type)return t[0].parent!==i});o=o.map(function(e){return e[0].remove()}),[].push.apply(i.body,o)}else t();s=r}else t()})}(e)}return e}var le={},pe=1,he={};Object.keys(n).filter(function(e){return"$"===e[0]}).forEach(function(e){he[e.slice(1)]=h(n[e])});var fe={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:he.arguments,init:h("arguments")}]};return n.engine?(e.ast=X(e.ast,n.engine),e.ast=oe(e.ast)):n.generators?(e.ast=ie(e.ast),e.ast=X(e.ast),e.ast=oe(e.ast)):(e.ast=ie(e.ast),k(e.ast)),e}var y=e("./parser"),m=e("./output"),g={start:!0,end:!0,loc:!0,range:!0},v={getScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type?this.node.body.body:"Program"===this.node.type?this.node.body:null},isScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"Program"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type},isFunction:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type},isClass:function(){return"ClassDeclaration"===this.node.type||"ClassExpression"===this.node.type},isBlockStatement:function(){return"ClassBody"===this.node.type||"Program"===this.node.type||"BlockStatement"===this.node.type?this.node.body:"SwitchCase"===this.node.type&&this.node.consequent},isExpressionStatement:function(){return"ExpressionStatement"===this.node.type},isLiteral:function(){return"Literal"===this.node.type||"BooleanLiteral"===this.node.type||"RegExpLiteral"===this.node.type||"NumericLiteral"===this.node.type||"StringLiteral"===this.node.type||"NullLiteral"===this.node.type},isDirective:function(){return"ExpressionStatement"===this.node.type&&("StringLiteral"===this.node.expression.type||"Literal"===this.node.expression.type&&"string"==typeof this.node.expression.value)},isUnaryExpression:function(){return"UnaryExpression"===this.node.type},isAwait:function(){return"AwaitExpression"===this.node.type&&!this.node.$hidden},isAsync:function(){return this.node.async},isStatement:function(){return null!==this.node.type.match(/[a-zA-Z]+Declaration/)||null!==this.node.type.match(/[a-zA-Z]+Statement/)},isExpression:function(){return null!==this.node.type.match(/[a-zA-Z]+Expression/)},isLoop:function(){return"ForStatement"===this.node.type||"WhileStatement"===this.node.type||"DoWhileStatement"===this.node.type},isJump:function(){return"ReturnStatement"===this.node.type||"ThrowStatement"===this.node.type||"BreakStatement"===this.node.type||"ContinueStatement"===this.node.type},isES6:function(){switch(this.node.type){case"ExportNamedDeclaration":case"ExportSpecifier":case"ExportDefaultDeclaration":case"ExportAllDeclaration":case"ImportDeclaration":case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ArrowFunctionExpression":case"ForOfStatement":case"YieldExpression":case"Super":case"RestElement":case"RestProperty":case"SpreadElement":case"TemplateLiteral":case"ClassDeclaration":case"ClassExpression":return!0;case"VariableDeclaration":return this.node.kind&&"var"!==this.node.kind;case"FunctionDeclaration":case"FunctionExpression":return!!this.node.generator}}},b={};Object.keys(v).forEach(function(e){Object.defineProperty(b,e,{get:v[e]})}),t.exports={babelLiteralNode:p,asynchronize:function(e,t,n,r){try{return d(e,t,n,r)}catch(t){if(t instanceof SyntaxError){var i=e.origCode.substr(t.pos-t.loc.column);i=i.split("\n")[0],t.message+=" (nodent)\n"+i+"\n"+i.replace(/[\S ]/g,"-").substring(0,t.loc.column)+"^",t.stack=""}throw t}}}},{"./output":11,"./parser":12}],10:[function(e,t,n){(function(e){function n(t){function n(){for(var e=0;e<s.length;e+=2)for(var t=s[e+1],n=s[e],r=0;r<t.length;r++)t[r].call(null,n);s=[]}function r(e){return e&&e instanceof Object&&"function"==typeof e.then}function i(e){function i(e){var r;f||d<0||0===(r=h[d]).length||(s.push(p,r),h=[[],[]],2===s.length&&(e?n():t(n)))}function o(e){if(!(d>=0)){if(r(e))return e.then(o,a);d=0,p=e,i(!0)}}function a(e){if(!(d>=0)){if(r(e))return e.then(o,a);d=1,p=e,i(!0)}}function u(e,t){h[0].push(e),h[1].push(t),i()}function c(){return"EagerThenable{"+{"-1":"pending",0:"resolved",1:"rejected"}[d]+"}="+p.toString()}function l(){try{e.call(null,o,a)}catch(e){a(e)}}this.then=u,this.toString=c;var p,h=[[],[]],f=!0,d=-1;l(),f=!1,i()}var s=[];if(!t)try{t=e.nextTick}catch(e){t=function(e){setTimeout(e,0)}}return i.resolve=function(e){return r(e)?e:{then:function(t,n){return t(e)}}},i}t.exports=n}).call(this,e("_process"))},{_process:7}],11:[function(e,t,n){"use strict";function r(e){var t=y[e.type]||y[e.type+e.operator]||y[e.type+e.operator+(e.prefix?"prefix":"")];
-return void 0!==t?t:20}function i(e,t,n){var r=this[n||e.type];r?r.call(this,e,t):t.write(e,t.sourceAt(e.start,e.end))}function s(e,t,n,i){2===i||r(n)<r(t)||r(n)==r(t)&&(i||t.right===n)?(e.write(null,"("),this.out(n,e,n.type),e.write(null,")")):this.out(n,e,n.type)}function o(e,t){var n;if(t.write(null,"("),null!=e&&e.length>0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r<i;r++)n=e[r],t.write(n,", "),this.out(n,t,n.type)}t.write(null,") ")}var a,u,c,l,p,h,f=e("source-map").SourceMapGenerator;if("".repeat)h=function(e,t){return t&&e?e.repeat(t):""};else{var d={};h=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!d[n]){for(var r=[];t--;)r.push(e);d[n]=r.join("")}return d[n]}}var y={ExpressionStatement:-1,Identifier:21,Literal:21,BooleanLiteral:21,RegExpLiteral:21,NumericLiteral:21,StringLiteral:21,NullLiteral:21,ThisExpression:21,SuperExpression:21,ObjectExpression:21,ClassExpression:21,MemberExpression:19,CallExpression:18,NewExpression:18,ArrayExpression:17.5,FunctionExpression:17.5,FunctionDeclaration:17.5,ArrowFunctionExpression:17.5,"UpdateExpression++":17,"UpdateExpression--":17,"UpdateExpression++prefix":16,"UpdateExpression--prefix":16,UnaryExpression:16,AwaitExpression:16,"BinaryExpression**":15,"BinaryExpression*":15,"BinaryExpression/":15,"BinaryExpression%":15,"BinaryExpression+":14,"BinaryExpression-":14,"BinaryExpression<<":13,"BinaryExpression>>":13,"BinaryExpression>>>":13,"BinaryExpression<":12,"BinaryExpression<=":12,"BinaryExpression>":12,"BinaryExpression>=":12,BinaryExpressionin:12,BinaryExpressioninstanceof:12,"BinaryExpression==":11,"BinaryExpression===":11,"BinaryExpression!=":11,"BinaryExpression!==":11,"BinaryExpression&":10,"BinaryExpression^":9,"BinaryExpression|":8,"LogicalExpression&&":7,"LogicalExpression||":6,ConditionalExpression:5,AssignmentPattern:4,AssignmentExpression:4,yield:3,YieldExpression:3,SpreadElement:2,"comma-separated-list":1.5,SequenceExpression:1},m={type:"comma-separated-list"},g={out:i,expr:s,formatParameters:o,Program:function(e,t){var n,r,i=h(t.indent,t.indentLevel),s=t.lineEnd;n=e.body;for(var o=0,a=n.length;o<a;o++)r=n[o],t.write(null,i),this.out(r,t,r.type),t.write(null,s)},BlockStatement:p=function(e,t){var n,r,i=h(t.indent,t.indentLevel++),s=t.lineEnd,o=i+t.indent;if(t.write(e,"{"),n=e.body,null!=n&&n.length>0){t.write(null,s);for(var a=0,u=n.length;a<u;a++)r=n[a],t.write(null,o),this.out(r,t,r.type),t.write(null,s);t.write(null,i)}t.write(e.loc?{loc:{start:{line:e.loc.end.line,column:0}}}:null,"}"),t.indentLevel--},ClassBody:p,EmptyStatement:function(e,t){t.write(e,";")},ParenthesizedExpression:function(e,t){this.expr(t,e,e.expression,2)},ExpressionStatement:function(e,t){"FunctionExpression"===e.expression.type||"ObjectExpression"===e.expression.type?(t.write(null,"("),this.expr(t,e,e.expression),t.write(null,")")):this.expr(t,e,e.expression),t.write(null,";")},IfStatement:function(e,t){t.write(e,"if ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.consequent,t,e.consequent.type),null!=e.alternate&&("BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel)),t.write(null," else "),"BlockStatement"!==e.alternate.type&&"IfStatement"!==e.alternate.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.alternate,t,e.alternate.type))},LabeledStatement:function(e,t){this.out(e.label,t,e.label.type),t.write(null,":"),this.out(e.body,t,e.body.type)},BreakStatement:function(e,t){t.write(e,"break"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},ContinueStatement:function(e,t){t.write(e,"continue"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},WithStatement:function(e,t){t.write(e,"with ("),this.out(e.object,t,e.object.type),t.write(null,") "),this.out(e.body,t,e.body.type)},SwitchStatement:function(e,t){var n,r,i,s=h(t.indent,t.indentLevel++),o=t.lineEnd;t.indentLevel++;var a=s+t.indent,u=a+t.indent;t.write(e,"switch ("),this.out(e.discriminant,t,e.discriminant.type),t.write(null,") {",o);for(var c=e.cases,l=0;l<c.length;l++){n=c[l],n.test?(t.write(n,a,"case "),this.out(n.test,t,n.test.type),t.write(null,":",o)):t.write(n,a,"default:",o),r=n.consequent;for(var p=0;p<r.length;p++)i=r[p],t.write(null,u),this.out(i,t,i.type),t.write(null,o)}t.indentLevel-=2,t.write(null,s,"}")},ReturnStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"return"),e.argument&&(t.write(null," "),this.out(e.argument,t,e.argument.type)),t.write(null,";")},ThrowStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"throw "),this.out(e.argument,t,e.argument.type),t.write(null,";")},TryStatement:function(e,t){var n;t.write(e,"try "),this.out(e.block,t,e.block.type),e.handler&&(n=e.handler,t.write(n," catch ("),this.out(n.param,t,n.param.type),t.write(null,") "),this.out(n.body,t,n.body.type)),e.finalizer&&(t.write(e.finalizer," finally "),this.out(e.finalizer,t,e.finalizer.type))},WhileStatement:function(e,t){t.write(e,"while ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},DoWhileStatement:function(e,t){t.write(e,"do "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type),t.write(null," while ("),this.out(e.test,t,e.test.type),t.write(null,");")},ForStatement:function(e,t){if(t.write(e,"for ("),null!=e.init){var n=e.init,r=n.type;t.inForInit++,this.out(n,t,r),t.inForInit--,"VariableDeclaration"!==r&&t.write(null,"; ")}else t.write(null,"; ");e.test&&this.out(e.test,t,e.test.type),t.write(null,"; "),e.update&&this.out(e.update,t,e.update.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForInStatement:a=function(e,t){t.write(e,"for (");var n=e.left,r=n.type;t.inForInit++,this.out(n,t,r),"V"===r[0]&&19===r.length&&t.back(),t.inForInit--,t.write(null,"I"===e.type[3]?" in ":" of "),this.out(e.right,t,e.right.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForOfStatement:a,DebuggerStatement:function(e,t){t.write(e,"debugger;")},Function:function(e,t){e.async&&t.write(e,"async "),t.write(e,e.generator?"function* ":"function "),e.id&&t.write(e.id,e.id.name),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},FunctionDeclaration:function(e,t){this.Function(e,t),t.write(null,t.lineEnd,h(t.indent,t.indentLevel))},FunctionExpression:function(e,t){this.Function(e,t)},VariableDeclaration:function(e,t){var n=e.declarations;t.write(e,e.kind," ");var r=n.length;if(r>0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i<r;i++)t.write(null,", "),this.out(n[i],t,"VariableDeclarator")}t.write(null,";")},VariableDeclarator:function(e,t){this.out(e.id,t,e.id.type),null!=e.init&&(t.write(null," = "),this.expr(t,m,e.init))},ClassDeclaration:function(e,t){t.write(e,"class "),e.id&&t.write(e.id,e.id.name+" "),e.superClass&&(t.write(null,"extends "),this.out(e.superClass,t,e.superClass.type),t.write(null," ")),this.out(e.body,t,"BlockStatement")},ImportSpecifier:function(e,t){e.local.name==e.imported.name?this.out(e.local,t,e.local.type):(this.out(e.imported,t,e.imported.type),t.write(null," as "),this.out(e.local,t,e.local.type))},ImportDefaultSpecifier:function(e,t){this.out(e.local,t,e.local.type)},ImportNamespaceSpecifier:function(e,t){t.write(null,"* as "),this.out(e.local,t,e.local.type)},ImportDeclaration:function(e,t){var n;t.write(e,"import ");var r=e.specifiers,i=r.length,s=!0;if(i>0){for(var n=0;n<i;n++)"ImportSpecifier"===r[n].type&&s&&(s=!1,t.write(null,"{")),this.out(r[n],t,r[n].type),n<i-1&&t.write(null,", ");"ImportSpecifier"===r[i-1].type&&t.write(null,"}"),t.write(null," from ")}t.write(e.source,e.source.raw),t.write(null,";")},ExportDefaultDeclaration:function(e,t){t.write(e,"export default "),this.out(e.declaration,t,e.declaration.type)},ExportSpecifier:function(e,t){e.local.name==e.exported.name?this.out(e.local,t,e.local.type):(this.out(e.local,t,e.local.type),t.write(null," as "),this.out(e.exported,t,e.exported.type))},ExportNamedDeclaration:function(e,t){if(t.write(e,"export "),e.declaration)this.out(e.declaration,t,e.declaration.type);else{var n=e.specifiers;if(t.write(e,"{"),n&&n.length>0)for(var r=0;r<n.length;r++)this.out(n[r],t,n[r].type),r<n.length-1&&t.write(null,", ");t.write(null,"}"),e.source&&t.write(e.source," from ",e.source.raw),t.write(null,";")}},ExportAllDeclaration:function(e,t){t.write(e,"export * from "),t.write(e.source,e.source.raw,";")},MethodDefinition:function(e,t){switch(e.value.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.value.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.value.params,t),this.out(e.value.body,t,e.value.body.type)},ClassMethod:function(e,t){switch(e.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},ClassExpression:function(e,t){this.out(e,t,"ClassDeclaration")},ArrowFunctionExpression:function(e,t){e.async&&t.write(e,"async "),this.formatParameters(e.params,t),t.write(e,"=> "),"ObjectExpression"===e.body.type||"SequenceExpression"===e.body.type?(t.write(null,"("),this.out(e.body,t,e.body.type),t.write(null,")")):this.out(e.body,t,e.body.type)},ThisExpression:function(e,t){t.write(e,"this")},Super:function(e,t){t.write(e,"super")},RestElement:u=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:u,YieldExpression:function(e,t){t.write(e,e.delegate?"yield*":"yield"),e.argument&&(t.write(null," "),this.expr(t,e,e.argument))},AwaitExpression:function(e,t){t.write(e,"await "),this.expr(t,e,e.argument)},TemplateLiteral:function(e,t){var n,r=e.quasis,i=e.expressions;t.write(e,"`");for(var s=0,o=i.length;s<o;s++)n=i[s],t.write(r[s].value,r[s].value.raw),t.write(null,"${"),this.out(n,t,n.type),t.write(null,"}");t.write(r[r.length-1].value,r[r.length-1].value.raw),t.write(e,"`")},TaggedTemplateExpression:function(e,t){this.out(e.tag,t,e.tag.type),this.out(e.quasi,t,e.quasi.type)},ArrayExpression:l=function(e,t){if(t.write(e,"["),e.elements.length>0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,m,s),i+=1,(i<r||null===s)&&t.write(null,","),i>=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:l,ObjectExpression:function(e,t){var n,r=h(t.indent,t.indentLevel++),i=t.lineEnd,s=r+t.indent;if(t.write(e,"{"),e.properties.length>0){t.write(null,i);for(var o=e.properties,a=o.length,u=0;n=o[u],t.write(null,s),this.out(n,t,"Property"),++u<a;)t.write(e,",",i),t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1));t.write(null,i,r,"}")}else t.write(null,"}");t.indentLevel--},Property:function(e,t){e.method||"get"===e.kind||"set"===e.kind?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),t.write(null,": ")),this.expr(t,m,e.value))},ObjectPattern:function(e,t){if(t.write(e,"{"),e.properties.length>0)for(var n=e.properties,r=n.length,i=0;this.out(n[i],t,"Property"),++i<r;)t.write(null,", ");t.write(null,"}")},SequenceExpression:function(e,t){var n,r=e.expressions;if(r.length>0)for(var i=r.length,s=0;s<i;s++)n=r[s],s&&t.write(null,", "),this.expr(t,m,n)},UnaryExpression:function(e,t){e.prefix?(t.write(e,e.operator),e.operator.length>1&&t.write(e," "),this.expr(t,e,e.argument,!0)):(this.expr(t,e,e.argument),t.write(e,e.operator))},UpdateExpression:function(e,t){e.prefix?(t.write(e,e.operator),this.out(e.argument,t,e.argument.type)):(this.out(e.argument,t,e.argument.type),t.write(e,e.operator))},BinaryExpression:c=function(e,t){var n=e.operator;"in"===n&&t.inForInit&&t.write(null,"("),this.expr(t,e,e.left),t.write(e," ",n," "),this.expr(t,e,e.right,"ArrowFunctionExpression"===e.right.type?2:0),"in"===n&&t.inForInit&&t.write(null,")")},LogicalExpression:c,AssignmentExpression:function(e,t){"ObjectPattern"===e.left.type&&t.write(null,"("),this.BinaryExpression(e,t),"ObjectPattern"===e.left.type&&t.write(null,")")},AssignmentPattern:function(e,t){this.expr(t,e,e.left),t.write(e," = "),this.expr(t,e,e.right)},ConditionalExpression:function(e,t){this.expr(t,e,e.test,!0),t.write(e," ? "),this.expr(t,e,e.consequent),t.write(null," : "),this.expr(t,e,e.alternate)},NewExpression:function(e,t){t.write(e,"new "),this.out(e,t,"CallExpression")},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),t.write(e,"(");var n=e.arguments;if(n.length>0)for(var r=n.length,i=0;i<r;i++)0!=i&&t.write(null,", "),this.expr(t,m,n[i]);t.write(null,")")},MemberExpression:function(e,t){var n="ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&e.object.raw.match(/^[0-9]/),i=!n&&("ArrayExpression"===e.object.type||"CallExpression"===e.object.type||"NewExpression"===e.object.type||r(e)<=r(e.object));i?this.out(e.object,t,e.object.type):(t.write(null,"("),this.out(e.object,t,e.object.type),t.write(null,")")),e.computed?(t.write(e,"["),this.out(e.property,t,e.property.type),t.write(null,"]")):(t.write(e,"."),this.out(e.property,t,e.property.type))},Identifier:function(e,t){t.write(e,e.name)},Literal:function(e,t){t.write(e,e.raw)},NullLiteral:function(e,t){t.write(e,"null")},BooleanLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},StringLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},RegExpLiteral:function(e,t){t.write(e,e.extra.raw||"/"+e.pattern+"/"+e.flags)},NumericLiteral:function(e,t){t.write(e,JSON.stringify(e.value))}};t.exports=function(e,t,n){function r(e){l=arguments[arguments.length-1];for(var n=1;n<arguments.length;n++){if(c&&e&&e.loc&&e.loc.start){var r=!1;c.addMapping({source:t.map.file,original:{line:e.loc.start.line,column:r?0:e.loc.start.column},generated:{line:t.map.startLine+u.length+1,column:r?0:a.length}})}if(arguments[n]===y.lineEnd){if(d.length&&(d.forEach(function(e){"Line"===e.type?a+=" // "+e.value:((" /*"+e.value+"*/").split("\n").forEach(function(e){a+=e,u.push(a),a=""}),a=u.pop())}),d=[]),u.push(a),a="",p.length){var i=u.pop();p.forEach(function(e){var t=h(y.indent,e.indent);"Line"===e.type?u.push(t+"//"+e.value):(t+"/*"+e.value+"*/").split("\n").forEach(function(e){u.push(e)})}),u.push(i),p=[]}}else a+=arguments[n],e&&e.$comments&&(e.$comments.forEach(function(t){var n=e.loc.start.column<t.loc.start.column;t.indent=y.indentLevel,n?d.push(t):p.push(t)}),e.$comments=null)}}function i(){return a.length}function s(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"}function o(){a=a.substring(0,a.length-l.length)}t=t||{};var a="",u=[],c=t.map&&new f(t.map);c&&t.map.sourceContent&&c.setSourceContent(t.map.file,t.map.sourceContent);var l="",p=[],d=[],y={inForInit:0,lineLength:i,sourceAt:s,write:r,back:o,indent:" ",lineEnd:"\n",indentLevel:0,wrapColumn:80};g[e.type](e,y),d=e.$comments||[],y.write(e,y.lineEnd);var m=u.join(y.lineEnd);return t&&t.map?{code:m,map:c}:m}},{"source-map":37}],12:[function(e,t,n){"use strict";function r(e,t){["start","end","loc","range"].forEach(function(n){n in e&&!(n in t)&&(t[n]=e[n])})}function i(e,t,n){function r(e){e.replace=l.replace,e.append=l.append,e.index?(Object.defineProperties(e,{index:{enumerable:!0,get:l.index}}),e.remove=l.removeElement):e.remove=l.removeNode,n.unshift(e),i(e.self,t,n),n.shift()}function s(){e.type in c&&c[e.type](e,n,function t(i,s,o){if(i===e)return c[o||e.type](e,n,t);for(var a=Object.keys(e),u=0;u<a.length;u++){var l=e[a[u]];Array.isArray(l)?l.indexOf(i)>=0&&r({self:i,parent:e,field:a[u],index:!0}):l instanceof Object&&i===l&&r({self:i,parent:e,field:a[u]})}})}return n||(n=[{self:e}],n.replace=function(e,t){n[e].replace(t)}),t(e,s,n),e}function s(e,t){var n=[],r={plugins:{asyncawait:{asyncExits:!0,awaitAnywhere:!0}},ecmaVersion:7,allowHashBang:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,locations:!0,onComment:n};if(t)for(var s in t)r[s]=t[s];var a=o.parse(e,r);return i(a,function(e,t,r){for(t();n.length&&e.loc&&e.loc.start.line>=n[0].loc.start.line&&e.loc.end.line>=n[0].loc.end.line;)e.$comments=e.$comments||[],e.$comments.push(n.shift())}),a}var o=e("acorn"),a=e("acorn/dist/walk"),u={AwaitExpression:function(e,t,n){n(e.argument,t,"Expression")},SwitchStatement:function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r)n(e.cases[r],t)},SwitchCase:function(e,t,n){e.test&&n(e.test,t,"Expression");for(var r=0;r<e.consequent.length;++r)n(e.consequent[r],t,"Statement")},TryStatement:function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t,"Statement"),e.finalizer&&n(e.finalizer,t,"Statement")},CatchClause:function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},Class:function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression"),n(e.body,t)},ClassBody:function(e,t,n){for(var r=0;r<e.body.length;r++)n(e.body[r],t)},ClassProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ClassMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")},ObjectProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ObjectMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")}},c=a.make(u),l={replace:function(e){return Array.isArray(e)&&1===e.length&&(e=e[0]),"index"in this?(r(this.parent[this.field][this.index],e),Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index,1].concat(e)):this.parent[this.field][this.index]=e):(r(this.parent[this.field],e),Array.isArray(e)?this.parent[this.field]={type:"BlockStatement",body:e}:this.parent[this.field]=e),this.self},append:function(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),!("index"in this))throw new Error("Cannot append Element node to non-array");return Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index+1,0].concat(e)):this.parent[this.field].splice(this.index+1,0,e),this.self},index:function(){return this.parent[this.field].indexOf(this.self)},removeElement:function(){return this.parent[this.field].splice(this.index,1)[0]},removeNode:function(){var e=this.parent[this.field];return delete this.parent[this.field],e}};e("acorn-es7-plugin")(o),t.exports={parse:s,treeWalker:i,_acorn:o}},{acorn:18,"acorn-es7-plugin":15,"acorn/dist/walk":19}],13:[function(e,t,n){function r(e,t){var n=this;return new e(function(e,r){function i(t,n){var o;try{if(o=t.call(s,n),o.done){if(o.value!==e){if(o.value&&o.value===o.value.then)return o.value(e,r);e&&e(o.value),e=null}return}o.value.then?o.value.then(function(e){i(s.next,e)},function(e){i(s.throw,e)}):i(s.next,o.value)}catch(e){return r&&r(e),void(r=null)}}var s=n.call(t,e,r);i(s.next)})}var i=new Function("self","catcher",(" var resolver = this; if (catcher===true) { if (!Function.prototype.$asyncbind.EagerThenable) Function.prototype.$asyncbind.EagerThenable = "+e("./eager.js").toString()+"(); return new (Function.prototype.$asyncbind.EagerThenable)(boundThen); } if (catcher) { if (Function.prototype.$asyncbind.wrapAsyncStack) catcher = Function.prototype.$asyncbind.wrapAsyncStack(catcher); return then; } function then(result,error){ try { return result && (result instanceof Object) && typeof result.then==='function' ? result.then(then,catcher) : resolver.call(self,result,error||catcher); } catch (ex) { return (error||catcher)(ex); } } function boundThen(result,error) { return resolver.call(self,result,error); } boundThen.then = boundThen; return boundThen; ").replace(/\s+/g," "));t.exports={$asyncbind:i,$asyncspawn:r}},{"./eager.js":10}],14:[function(e,t,n){function r(e){return e.then=e}r.resolve=function(e){return r.isThenable(e)?e:{then:function(t){return t(e)}}},r.isThenable=function(e){return e&&e instanceof Object&&"function"==typeof e.then},t.exports=r},{}],15:[function(e,t,n){t.exports=function(t){switch(parseInt(t.version)){case 2:case 3:t.plugins.asyncawait=e("./acorn-v3");break;case 4:t.plugins.asyncawait=e("./acorn-v4");break;default:throw new Error("acorn-es7-plugin requires Acorn v2, 3 or 4")}return t}},{"./acorn-v3":16,"./acorn-v4":17}],16:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(h,"$1 $3")),e.test(r)}function s(e){return"state"in e&&e.state.constructor&&"State"===e.state.constructor.name?e.state:e}function o(e,t,n,r){var i=new e.constructor(e.options,e.input,t);if(n)for(var o in n)i[o]=n[o];var a=s(e),u=s(i);return["inFunction","inAsyncFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in a&&(u[e]=a[e])}),r&&(i.options.preserveParens=!0),i.nextToken(),i}function a(e,t){var n=function(){};e.extend("initialContext",function(r){return function(){return this.options.ecmaVersion<7&&(n=function(t){e.raise(t.start,"async/await keywords only available when ecmaVersion>=7")}),this.reservedWords=new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrict=new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrictBind=new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.inAsyncFunction=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),r.apply(this,arguments)}}),e.extend("shouldParseExportStatement",function(e){return function(){return!("name"!==this.type.label||"async"!==this.value||!i(l,s(this)))||e.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var o=s(this),a=o.start,u=o.startLoc;if("name"===o.type.label)if(i(l,o,!0)){var p=o.inAsyncFunction;try{o.inAsyncFunction=!0,this.next();var h=this.parseStatement(n,r);return h.async=!0,h.start=a,h.loc&&(h.loc.start=u),h.range&&(h.range[0]=a),h}finally{o.inAsyncFunction=p}}else if("object"==typeof t&&t.asyncExits&&i(c,o)){this.next();var h=this.parseStatement(n,r);return h.async=!0,h.start=a,h.loc&&(h.loc.start=u),h.range&&(h.range[0]=a),h}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(t){var n=e.apply(this,arguments),r=s(this);return r.inAsyncFunction&&"await"===n.name&&0===arguments.length&&this.raise(n.start,"'await' is reserved within async functions"),n}}),e.extend("parseExprAtom",function(e){return function(i){var a,c=s(this),l=c.start,h=c.startLoc,f=e.apply(this,arguments);if("Identifier"===f.type)if("async"!==f.name||r(c,f.end)){if("await"===f.name){var d=this.startNodeAt(f.start,f.loc&&f.loc.start);if(c.inAsyncFunction)return a=this.parseExprSubscripts(),d.operator="await",d.argument=a,d=this.finishNodeAt(d,"AwaitExpression",a.end,a.loc&&a.loc.end),n(d),d;if(c.input.slice(f.end).match(p))return f;if("object"==typeof t&&t.awaitAnywhere&&(l=c.start,a=o(this,l-4).parseExprSubscripts(),a.end<=l))return a=o(this,l).parseExprSubscripts(),d.operator="await",d.argument=a,d=this.finishNodeAt(d,"AwaitExpression",a.end,a.loc&&a.loc.end),c.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(d),d;if(!t.awaitAnywhere&&"module"===this.options.sourceType)return this.raise(f.start,"'await' is reserved within modules")}}else{var y=c.inAsyncFunction;try{c.inAsyncFunction=!0;var m=this,g=!1,v={parseFunctionBody:function(e,t){try{var n=g;return g=!0,m.parseFunctionBody.apply(this,arguments)}finally{g=n}},raise:function(){try{return m.raise.apply(this,arguments)}catch(e){throw g?e:u}}};if(a=o(this,c.start,v,!0).parseExpression(),"SequenceExpression"===a.type&&(a=a.expressions[0]),"FunctionExpression"===a.type||"FunctionDeclaration"===a.type||"ArrowFunctionExpression"===a.type)return a=o(this,c.start,v).parseExpression(),"SequenceExpression"===a.type&&(a=a.expressions[0]),a.async=!0,a.start=l,a.loc&&(a.loc.start=h),a.range&&(a.range[0]=l),c.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(a),a}catch(e){if(e!==u)throw e}finally{c.inAsyncFunction=y}}return f}}),e.extend("finishNodeAt",function(e){return function(t,n,r,i){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("finishNode",function(e){return function(t,n){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("parsePropertyName",function(e){return function(t){var i=s(this),o=e.apply(this,arguments);return"Identifier"!==o.type||"async"!==o.name||r(i,o.end)||i.input.slice(o.end).match(p)||(n(t),o=e.apply(this,arguments),"Identifier"===o.type&&("constructor"===o.name?this.raise(o.start,"'constructor()' cannot be be async"):"set"===o.name&&this.raise(o.start,"'set <member>(value)' cannot be be async")),t.__asyncValue=!0),o}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i,o;n.__asyncValue&&(i=s(this),o=i.inAsyncFunction,i.inAsyncFunction=!0);var a=e.apply(this,arguments);return i&&(i.inAsyncFunction=o),a}}),e.extend("parsePropertyValue",function(e){return function(t,n,r,i,o,a){var u,c;t.__asyncValue&&(u=s(this),c=u.inAsyncFunction,u.inAsyncFunction=!0);var l=e.apply(this,arguments);return u&&(u.inAsyncFunction=c),l}})}var u={},c=/^async[\t ]+(return|throw)/,l=/^async[\t ]+function/,p=/^\s*[):;]/,h=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=a},{}],17:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(l,"$1 $3")),e.test(r)}function s(e){return"state"in e&&e.state.constructor&&"State"===e.state.constructor.name?e.state:e}function o(e,t,n){var r=new e.constructor(e.options,e.input,t);if(n)for(var i in n)r[i]=n[i];var o=s(e),a=s(r);return["inFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in o&&(a[e]=o[e])}),r.nextToken(),r}function a(e,t){t&&"object"==typeof t||(t={}),e.extend("parse",function(n){return function(){return this.inAsync=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),n.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var o=s(this),a=o.start,c=o.startLoc;if("name"===o.type.label&&t.asyncExits&&i(u,o)){this.next();var l=this.parseStatement(n,r);return l.async=!0,l.start=a,l.loc&&(l.loc.start=c),l.range&&(l.range[0]=a),l}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(n){return"module"===this.options.sourceType&&this.options.ecmaVersion>=8&&t.awaitAnywhere?e.call(this,!0):e.apply(this,arguments)}}),e.extend("parseExprAtom",function(e){var n={};return function(r){var i,a=s(this),u=a.start,c=(a.startLoc,e.apply(this,arguments));if("Identifier"===c.type&&"await"===c.name&&!a.inAsync&&t.awaitAnywhere){var l=this.startNodeAt(c.start,c.loc&&c.loc.start);u=a.start;var p={raise:function(){try{return pp.raise.apply(this,arguments)}catch(e){throw n}}};try{if(i=o(this,u-4,p).parseExprSubscripts(),i.end<=u)return i=o(this,u,p).parseExprSubscripts(),l.argument=i,l=this.finishNodeAt(l,"AwaitExpression",i.end,i.loc&&i.loc.end),a.pos=i.end,this.end=i.end,this.endLoc=i.endLoc,this.next(),l}catch(e){if(e===n)return c;throw e}}return c}}),e.extend("parsePropertyName",function(e){return function(t){var n=s(this),i=e.apply(this,arguments);return"Identifier"!==i.type||"async"!==i.name||r(n,i.end)||n.input.slice(i.end).match(c)||(n.__isAsyncProp=!0,i=e.apply(this,arguments),"Identifier"===i.type&&("constructor"===i.name?this.raise(i.start,"'constructor()' cannot be be async"):"set"===i.name&&this.raise(i.start,"'set <member>(value)' cannot be be async"))),i}}),e.extend("parseFunctionBody",function(e){return function(t,n){var r=s(this),i=r.inAsync;r.__isAsyncProp&&(t.async=!0,r.inAsync=!0,delete r.__isAsyncProp);var o=e.apply(this,arguments);return r.inAsync=i,o}})}var u=/^async[\t ]+(return|throw)/,c=/^\s*[):;]/,l=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=a},{}],18:[function(e,t,n){!function(e,r){"object"==typeof n&&"undefined"!=typeof t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(e.acorn=e.acorn||{})}(this,function(e){"use strict";function t(e,t){for(var n=65536,r=0;r<t.length;r+=2){if(n+=t[r],n>e)return!1;if(n+=t[r+1],n>=e)return!0}}function n(e,n){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&k.test(String.fromCharCode(e)):n!==!1&&t(e,_)))}function r(e,n){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):n!==!1&&(t(e,_)||t(e,C)))))}function i(e,t){return new L(e,{beforeExpr:!0,binop:t})}function s(e,t){return void 0===t&&(t={}),t.keyword=e,O[e]=new L(e,t)}function o(e){return 10===e||13===e||8232===e||8233==e}function a(e){return"[object Array]"===Object.prototype.toString.call(e)}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){for(var n=1,r=0;;){B.lastIndex=r;var i=B.exec(e);if(!(i&&i.index<t))return new M(n,t-r);++n,r=i.index+i[0].length}}function l(e){var t={};for(var n in D)t[n]=e&&u(e,n)?e[n]:D[n];if(null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),a(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return a(t.onComment)&&(t.onComment=p(t,t.onComment)),t}function p(e,t){return function(n,r,i,s,o,a){var u={type:n?"Block":"Line",value:r,start:i,end:s};e.locations&&(u.loc=new I(this,o,a)),e.ranges&&(u.range=[i,s]),t.push(u)}}function h(e){return new RegExp("^("+e.replace(/ /g,"|")+")$")}function f(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}function d(e,t,n,r){try{return new RegExp(e,t)}catch(e){if(void 0!==n)throw e instanceof SyntaxError&&r.raise(n,"Error parsing regular expression: "+e.message),
-e}}function y(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(1023&e)+56320))}function m(e,t){return new V(t,e).parse()}function g(e,t,n){var r=new V(n,e,t);return r.nextToken(),r.parseExpression()}function v(e,t){return new V(t,e)}var b={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",7:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},x="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",w={5:x,6:x+" const class extends export import super"},E="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",S="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",k=new RegExp("["+E+"]"),A=new RegExp("["+E+S+"]");E=S=null;var _=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],C=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],L=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null},T={beforeExpr:!0},R={startsExpr:!0},O={},P={num:new L("num",R),regexp:new L("regexp",R),string:new L("string",R),name:new L("name",R),eof:new L("eof"),bracketL:new L("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new L("]"),braceL:new L("{",{beforeExpr:!0,startsExpr:!0}),braceR:new L("}"),parenL:new L("(",{beforeExpr:!0,startsExpr:!0}),parenR:new L(")"),comma:new L(",",T),semi:new L(";",T),colon:new L(":",T),dot:new L("."),question:new L("?",T),arrow:new L("=>",T),template:new L("template"),ellipsis:new L("...",T),backQuote:new L("`",R),dollarBraceL:new L("${",{beforeExpr:!0,startsExpr:!0}),eq:new L("=",{beforeExpr:!0,isAssign:!0}),assign:new L("_=",{beforeExpr:!0,isAssign:!0}),incDec:new L("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new L("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:i("||",1),logicalAND:i("&&",2),bitwiseOR:i("|",3),bitwiseXOR:i("^",4),bitwiseAND:i("&",5),equality:i("==/!=",6),relational:i("</>",7),bitShift:i("<</>>",8),plusMin:new L("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:i("%",10),star:i("*",10),slash:i("/",10),starstar:new L("**",{beforeExpr:!0}),_break:s("break"),_case:s("case",T),_catch:s("catch"),_continue:s("continue"),_debugger:s("debugger"),_default:s("default",T),_do:s("do",{isLoop:!0,beforeExpr:!0}),_else:s("else",T),_finally:s("finally"),_for:s("for",{isLoop:!0}),_function:s("function",R),_if:s("if"),_return:s("return",T),_switch:s("switch"),_throw:s("throw",T),_try:s("try"),_var:s("var"),_const:s("const"),_while:s("while",{isLoop:!0}),_with:s("with"),_new:s("new",{beforeExpr:!0,startsExpr:!0}),_this:s("this",R),_super:s("super",R),_class:s("class"),_extends:s("extends",T),_export:s("export"),_import:s("import"),_null:s("null",R),_true:s("true",R),_false:s("false",R),_in:s("in",{beforeExpr:!0,binop:7}),_instanceof:s("instanceof",{beforeExpr:!0,binop:7}),_typeof:s("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:s("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:s("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},N=/\r\n?|\n|\u2028|\u2029/,B=new RegExp(N.source,"g"),F=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,M=function(e,t){this.line=e,this.column=t};M.prototype.offset=function(e){return new M(this.line,this.column+e)};var I=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)},D={ecmaVersion:6,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},$={},V=function(e,t,n){this.options=e=l(e),this.sourceFile=e.sourceFile,this.keywords=h(w[e.ecmaVersion>=6?6:5]);var r=e.allowReserved?"":b[e.ecmaVersion]+("module"==e.sourceType?" await":"");this.reservedWords=h(r);var i=(r?r+" ":"")+b.strict;this.reservedWordsStrict=h(i),this.reservedWordsStrictBind=h(i+" "+b.strictBind),this.input=String(t),this.containsEsc=!1,this.loadPlugins(e.plugins),n?(this.pos=n,this.lineStart=Math.max(0,this.input.lastIndexOf("\n",n)),this.curLine=this.input.slice(0,this.lineStart).split(N).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=P.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.strict=this.inModule="module"===e.sourceType,this.potentialArrowAt=-1,this.inFunction=this.inGenerator=!1,this.labels=[],0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2)};V.prototype.isKeyword=function(e){return this.keywords.test(e)},V.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},V.prototype.extend=function(e,t){this[e]=t(this[e])},V.prototype.loadPlugins=function(e){var t=this;for(var n in e){var r=$[n];if(!r)throw new Error("Plugin '"+n+"' not found");r(t,e[n])}},V.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var U=V.prototype;U.isUseStrict=function(e){return this.options.ecmaVersion>=5&&"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"use strict"===e.expression.raw.slice(1,-1)},U.eat=function(e){return this.type===e&&(this.next(),!0)},U.isContextual=function(e){return this.type===P.name&&this.value===e},U.eatContextual=function(e){return this.value===e&&this.eat(P.name)},U.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},U.canInsertSemicolon=function(){return this.type===P.eof||this.type===P.braceR||N.test(this.input.slice(this.lastTokEnd,this.start))},U.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},U.semicolon=function(){this.eat(P.semi)||this.insertSemicolon()||this.unexpected()},U.afterTrailingComma=function(e){if(this.type==e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),this.next(),!0},U.expect=function(e){this.eat(e)||this.unexpected()},U.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")};var q=function(){this.shorthandAssign=0,this.trailingComma=0};U.checkPatternErrors=function(e,t){var n=e&&e.trailingComma;return t?void(n&&this.raise(n,"Comma is not permitted after the rest element")):!!n},U.checkExpressionErrors=function(e,t){var n=e&&e.shorthandAssign;return t?void(n&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns")):!!n};var W=V.prototype;W.parseTopLevel=function(e){var t=this,n=!0;for(e.body||(e.body=[]);this.type!==P.eof;){var r=t.parseStatement(!0,!0);e.body.push(r),n&&(t.isUseStrict(r)&&t.setStrict(!0),n=!1)}return this.next(),this.options.ecmaVersion>=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var z={kind:"loop"},Y={kind:"switch"};W.isLet=function(){if(this.type!==P.name||this.options.ecmaVersion<6||"let"!=this.value)return!1;j.lastIndex=this.pos;var e=j.exec(this.input),t=this.pos+e[0].length,i=this.input.charCodeAt(t);if(91===i||123==i)return!0;if(n(i,!0)){for(var s=t+1;r(this.input.charCodeAt(s),!0);++s);var o=this.input.slice(t,s);if(!this.isKeyword(o))return!0}return!1},W.parseStatement=function(e,t){var n,r=this.type,i=this.startNode();switch(this.isLet()&&(r=P._var,n="let"),r){case P._break:case P._continue:return this.parseBreakContinueStatement(i,r.keyword);case P._debugger:return this.parseDebuggerStatement(i);case P._do:return this.parseDoStatement(i);case P._for:return this.parseForStatement(i);case P._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(i);case P._class:return e||this.unexpected(),this.parseClass(i,!0);case P._if:return this.parseIfStatement(i);case P._return:return this.parseReturnStatement(i);case P._switch:return this.parseSwitchStatement(i);case P._throw:return this.parseThrowStatement(i);case P._try:return this.parseTryStatement(i);case P._const:case P._var:return n=n||this.value,e||"var"==n||this.unexpected(),this.parseVarStatement(i,n);case P._while:return this.parseWhileStatement(i);case P._with:return this.parseWithStatement(i);case P.braceL:return this.parseBlock();case P.semi:return this.parseEmptyStatement(i);case P._export:case P._import:return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===P._import?this.parseImport(i):this.parseExport(i);default:var s=this.value,o=this.parseExpression();return r===P.name&&"Identifier"===o.type&&this.eat(P.colon)?this.parseLabeledStatement(i,s,o):this.parseExpressionStatement(i,o)}},W.parseBreakContinueStatement=function(e,t){var n=this,r="break"==t;this.next(),this.eat(P.semi)||this.insertSemicolon()?e.label=null:this.type!==P.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var s=n.labels[i];if(null==e.label||s.name===e.label.name){if(null!=s.kind&&(r||"loop"===s.kind))break;if(e.label&&r)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},W.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},W.parseDoStatement=function(e){return this.next(),this.labels.push(z),e.body=this.parseStatement(!1),this.labels.pop(),this.expect(P._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(P.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},W.parseForStatement=function(e){if(this.next(),this.labels.push(z),this.expect(P.parenL),this.type===P.semi)return this.parseFor(e,null);var t=this.isLet();if(this.type===P._var||this.type===P._const||t){var n=this.startNode(),r=t?"let":this.value;return this.next(),this.parseVar(n,!0,r),this.finishNode(n,"VariableDeclaration"),!(this.type===P._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==n.declarations.length||"var"!==r&&n.declarations[0].init?this.parseFor(e,n):this.parseForIn(e,n)}var i=new q,s=this.parseExpression(!0,i);return this.type===P._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.checkPatternErrors(i,!0),this.toAssignable(s),this.checkLVal(s),this.parseForIn(e,s)):(this.checkExpressionErrors(i,!0),this.parseFor(e,s))},W.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},W.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(P._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},W.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(P.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},W.parseSwitchStatement=function(e){var t=this;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(P.braceL),this.labels.push(Y);for(var n,r=!1;this.type!=P.braceR;)if(t.type===P._case||t.type===P._default){var i=t.type===P._case;n&&t.finishNode(n,"SwitchCase"),e.cases.push(n=t.startNode()),n.consequent=[],t.next(),i?n.test=t.parseExpression():(r&&t.raiseRecoverable(t.lastTokStart,"Multiple default clauses"),r=!0,n.test=null),t.expect(P.colon)}else n||t.unexpected(),n.consequent.push(t.parseStatement(!0));return n&&this.finishNode(n,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},W.parseThrowStatement=function(e){return this.next(),N.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var G=[];W.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===P._catch){var t=this.startNode();this.next(),this.expect(P.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0),this.expect(P.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(P._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},W.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},W.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(z),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},W.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},W.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},W.parseLabeledStatement=function(e,t,n){for(var r=this,i=0;i<this.labels.length;++i)r.labels[i].name===t&&r.raise(n.start,"Label '"+t+"' is already declared");for(var s=this.type.isLoop?"loop":this.type===P._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var a=r.labels[o];if(a.statementStart!=e.start)break;a.statementStart=r.start,a.kind=s}return this.labels.push({name:t,kind:s,statementStart:this.start}),e.body=this.parseStatement(!0),this.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},W.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},W.parseBlock=function(e){var t,n=this,r=this.startNode(),i=!0;for(r.body=[],this.expect(P.braceL);!this.eat(P.braceR);){var s=n.parseStatement(!0);r.body.push(s),i&&e&&n.isUseStrict(s)&&(t=n.strict,n.setStrict(n.strict=!0)),i=!1}return t===!1&&this.setStrict(!1),this.finishNode(r,"BlockStatement")},W.parseFor=function(e,t){return e.init=t,this.expect(P.semi),e.test=this.type===P.semi?null:this.parseExpression(),this.expect(P.semi),e.update=this.type===P.parenR?null:this.parseExpression(),this.expect(P.parenR),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},W.parseForIn=function(e,t){var n=this.type===P._in?"ForInStatement":"ForOfStatement";return this.next(),e.left=t,e.right=this.parseExpression(),this.expect(P.parenR),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},W.parseVar=function(e,t,n){var r=this;for(e.declarations=[],e.kind=n;;){var i=r.startNode();if(r.parseVarId(i),r.eat(P.eq)?i.init=r.parseMaybeAssign(t):"const"!==n||r.type===P._in||r.options.ecmaVersion>=6&&r.isContextual("of")?"Identifier"==i.id.type||t&&(r.type===P._in||r.isContextual("of"))?i.init=null:r.raise(r.lastTokEnd,"Complex binding patterns require an initialization value"):r.unexpected(),e.declarations.push(r.finishNode(i,"VariableDeclarator")),!r.eat(P.comma))break}return e},W.parseVarId=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0)},W.parseFunction=function(e,t,n){this.initFunction(e),this.options.ecmaVersion>=6&&(e.generator=this.eat(P.star));var r=this.inGenerator;return this.inGenerator=e.generator,(t||this.type===P.name)&&(e.id=this.parseIdent()),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.inGenerator=r,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},W.parseFunctionParams=function(e){this.expect(P.parenL),e.params=this.parseBindingList(P.parenR,!1,!1,!0)},W.parseClass=function(e,t){var n=this;this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var r=this.startNode(),i=!1;for(r.body=[],this.expect(P.braceL);!this.eat(P.braceR);)if(!n.eat(P.semi)){var s=n.startNode(),o=n.eat(P.star),a=n.type===P.name&&"static"===n.value;n.parsePropertyName(s),s.static=a&&n.type!==P.parenL,s.static&&(o&&n.unexpected(),o=n.eat(P.star),n.parsePropertyName(s)),s.kind="method";var u=!1;if(!s.computed){var c=s.key;o||"Identifier"!==c.type||n.type===P.parenL||"get"!==c.name&&"set"!==c.name||(u=!0,s.kind=c.name,c=n.parsePropertyName(s)),!s.static&&("Identifier"===c.type&&"constructor"===c.name||"Literal"===c.type&&"constructor"===c.value)&&(i&&n.raise(c.start,"Duplicate constructor in the same class"),u&&n.raise(c.start,"Constructor can't have get/set modifier"),o&&n.raise(c.start,"Constructor can't be a generator"),s.kind="constructor",i=!0)}if(n.parseClassMethod(r,s,o),u){var l="get"===s.kind?0:1;if(s.value.params.length!==l){var p=s.value.start;"get"===s.kind?n.raiseRecoverable(p,"getter should have no params"):n.raiseRecoverable(p,"setter should have exactly one param")}"set"===s.kind&&"RestElement"===s.value.params[0].type&&n.raise(s.value.params[0].start,"Setter cannot use rest params")}}return e.body=this.finishNode(r,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},W.parseClassMethod=function(e,t,n){t.value=this.parseMethod(n),e.body.push(this.finishNode(t,"MethodDefinition"))},W.parseClassId=function(e,t){e.id=this.type===P.name?this.parseIdent():t?this.unexpected():null},W.parseClassSuper=function(e){e.superClass=this.eat(P._extends)?this.parseExprSubscripts():null},W.parseExport=function(e){var t=this;if(this.next(),this.eat(P.star))return this.expectContextual("from"),e.source=this.type===P.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(P._default)){var n=this.type==P.parenL,r=this.parseMaybeAssign(),i=!0;return n||"FunctionExpression"!=r.type&&"ClassExpression"!=r.type||(i=!1,r.id&&(r.type="FunctionExpression"==r.type?"FunctionDeclaration":"ClassDeclaration")),e.declaration=r,i&&this.semicolon(),this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(!0),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.eatContextual("from"))e.source=this.type===P.string?this.parseExprAtom():this.unexpected();else{for(var s=0;s<e.specifiers.length;s++)(t.keywords.test(e.specifiers[s].local.name)||t.reservedWords.test(e.specifiers[s].local.name))&&t.unexpected(e.specifiers[s].local.start);e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},W.shouldParseExportStatement=function(){return this.type.keyword||this.isLet()},W.parseExportSpecifiers=function(){var e=this,t=[],n=!0;for(this.expect(P.braceL);!this.eat(P.braceR);){if(n)n=!1;else if(e.expect(P.comma),e.afterTrailingComma(P.braceR))break;var r=e.startNode();r.local=e.parseIdent(e.type===P._default),r.exported=e.eatContextual("as")?e.parseIdent(!0):r.local,t.push(e.finishNode(r,"ExportSpecifier"))}return t},W.parseImport=function(e){return this.next(),this.type===P.string?(e.specifiers=G,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===P.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},W.parseImportSpecifiers=function(){var e=this,t=[],n=!0;if(this.type===P.name){var r=this.startNode();if(r.local=this.parseIdent(),this.checkLVal(r.local,!0),t.push(this.finishNode(r,"ImportDefaultSpecifier")),!this.eat(P.comma))return t}if(this.type===P.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,!0),t.push(this.finishNode(i,"ImportNamespaceSpecifier")),t}for(this.expect(P.braceL);!this.eat(P.braceR);){if(n)n=!1;else if(e.expect(P.comma),e.afterTrailingComma(P.braceR))break;var s=e.startNode();s.imported=e.parseIdent(!0),e.eatContextual("as")?s.local=e.parseIdent():(s.local=s.imported,e.isKeyword(s.local.name)&&e.unexpected(s.local.start),e.reservedWordsStrict.test(s.local.name)&&e.raise(s.local.start,"The keyword '"+s.local.name+"' is reserved")),e.checkLVal(s.local,!0),t.push(e.finishNode(s,"ImportSpecifier"))}return t};var J=V.prototype;J.toAssignable=function(e,t){var n=this;if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var r=0;r<e.properties.length;r++){var i=e.properties[r];"init"!==i.kind&&n.raise(i.key.start,"Object pattern can't contain getter or setter"),n.toAssignable(i.value,t)}break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t);break;case"AssignmentExpression":if("="!==e.operator){this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break}e.type="AssignmentPattern",delete e.operator;case"AssignmentPattern":"YieldExpression"===e.right.type&&this.raise(e.right.start,"Yield expression cannot be a default value");break;case"ParenthesizedExpression":e.expression=this.toAssignable(e.expression,t);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}return e},J.toAssignableList=function(e,t){var n=this,r=e.length;if(r){var i=e[r-1];if(i&&"RestElement"==i.type)--r;else if(i&&"SpreadElement"==i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--r}t&&i&&"RestElement"===i.type&&"Identifier"!==i.argument.type&&this.unexpected(i.argument.start)}for(var o=0;o<r;o++){var a=e[o];a&&n.toAssignable(a,t)}return e},J.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},J.parseRest=function(e){var t=this.startNode();return this.next(),e?t.argument=this.type===P.name?this.parseIdent():this.unexpected():t.argument=this.type===P.name||this.type===P.bracketL?this.parseBindingAtom():this.unexpected(),this.finishNode(t,"RestElement")},J.parseBindingAtom=function(){if(this.options.ecmaVersion<6)return this.parseIdent();switch(this.type){case P.name:return this.parseIdent();case P.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(P.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case P.braceL:return this.parseObj(!0);default:this.unexpected()}},J.parseBindingList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);)if(o?o=!1:i.expect(P.comma),t&&i.type===P.comma)s.push(null);else{if(n&&i.afterTrailingComma(e))break;if(i.type===P.ellipsis){var a=i.parseRest(r);i.parseBindingListItem(a),s.push(a),i.type===P.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(e);break}var u=i.parseMaybeDefault(i.start,i.startLoc);i.parseBindingListItem(u),s.push(u)}return s},J.parseBindingListItem=function(e){return e},J.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(P.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")},J.checkLVal=function(e,t,n){var r=this;switch(e.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),n&&(u(n,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),n[e.name]=!0);break;case"MemberExpression":t&&this.raiseRecoverable(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var i=0;i<e.properties.length;i++)r.checkLVal(e.properties[i].value,t,n);break;case"ArrayPattern":for(var s=0;s<e.elements.length;s++){var o=e.elements[s];o&&r.checkLVal(o,t,n)}break;case"AssignmentPattern":this.checkLVal(e.left,t,n);break;case"RestElement":this.checkLVal(e.argument,t,n);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,n);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var H=V.prototype;H.checkPropClash=function(e,t){if(!(this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var n,r=e.key;switch(r.type){case"Identifier":n=r.name;break;case"Literal":n=String(r.value);break;default:return}var i=e.kind;if(this.options.ecmaVersion>=6)return void("__proto__"===n&&"init"===i&&(t.proto&&this.raiseRecoverable(r.start,"Redefinition of __proto__ property"),t.proto=!0));n="$"+n;var s=t[n];if(s){var o="init"!==i;(!this.strict&&!o||!s[i])&&o^s.init||this.raiseRecoverable(r.start,"Redefinition of property")}else s=t[n]={init:!1,get:!1,set:!1};s[i]=!0}},H.parseExpression=function(e,t){var n=this,r=this.start,i=this.startLoc,s=this.parseMaybeAssign(e,t);if(this.type===P.comma){var o=this.startNodeAt(r,i);for(o.expressions=[s];this.eat(P.comma);)o.expressions.push(n.parseMaybeAssign(e,t));return this.finishNode(o,"SequenceExpression")}return s},H.parseMaybeAssign=function(e,t,n){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var r=!1;t||(t=new q,r=!0);var i=this.start,s=this.startLoc;this.type!=P.parenL&&this.type!=P.name||(this.potentialArrowAt=this.start);var o=this.parseMaybeConditional(e,t);if(n&&(o=n.call(this,o,i,s)),this.type.isAssign){this.checkPatternErrors(t,!0),r||q.call(t);var a=this.startNodeAt(i,s);return a.operator=this.value,a.left=this.type===P.eq?this.toAssignable(o):o,t.shorthandAssign=0,this.checkLVal(o),this.next(),a.right=this.parseMaybeAssign(e),this.finishNode(a,"AssignmentExpression")}return r&&this.checkExpressionErrors(t,!0),o},H.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(P.question)){var s=this.startNodeAt(n,r);return s.test=i,s.consequent=this.parseMaybeAssign(),this.expect(P.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return i},H.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?i:this.parseExprOp(i,n,r,-1,e)},H.parseExprOp=function(e,t,n,r,i){var s=this.type.binop;if(null!=s&&(!i||this.type!==P._in)&&s>r){var o=this.type===P.logicalOR||this.type===P.logicalAND,a=this.value;this.next();var u=this.start,c=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1),u,c,s,i),p=this.buildBinary(t,n,e,l,a,o);return this.parseExprOp(p,t,n,r,i)}return e},H.buildBinary=function(e,t,n,r,i,s){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,s?"LogicalExpression":"BinaryExpression")},H.parseMaybeUnary=function(e,t){var n,r=this,i=this.start,s=this.startLoc;if(this.type.prefix){var o=this.startNode(),a=this.type===P.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLVal(o.argument):this.strict&&"delete"===o.operator&&"Identifier"===o.argument.type?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(o,a?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var u=r.startNodeAt(i,s);u.operator=r.value,u.prefix=!1,u.argument=n,r.checkLVal(n),r.next(),n=r.finishNode(u,"UpdateExpression")}}return!t&&this.eat(P.starstar)?this.buildBinary(i,s,n,this.parseMaybeUnary(null,!1),"**",!1):n},H.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e),i="ArrowFunctionExpression"===r.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);return this.checkExpressionErrors(e)||i?r:this.parseSubscripts(r,t,n)},H.parseSubscripts=function(e,t,n,r){for(var i=this;;)if(i.eat(P.dot)){var s=i.startNodeAt(t,n);s.object=e,s.property=i.parseIdent(!0),s.computed=!1,e=i.finishNode(s,"MemberExpression")}else if(i.eat(P.bracketL)){var o=i.startNodeAt(t,n);o.object=e,o.property=i.parseExpression(),o.computed=!0,i.expect(P.bracketR),e=i.finishNode(o,"MemberExpression")}else if(!r&&i.eat(P.parenL)){var a=i.startNodeAt(t,n);a.callee=e,a.arguments=i.parseExprList(P.parenR,!1),e=i.finishNode(a,"CallExpression")}else{if(i.type!==P.backQuote)return e;var u=i.startNodeAt(t,n);u.tag=e,u.quasi=i.parseTemplate(),e=i.finishNode(u,"TaggedTemplateExpression")}},H.parseExprAtom=function(e){var t,n=this.potentialArrowAt==this.start;switch(this.type){case P._super:this.inFunction||this.raise(this.start,"'super' outside of function or class");case P._this:var r=this.type===P._this?"ThisExpression":"Super";return t=this.startNode(),this.next(),this.finishNode(t,r);case P.name:var i=this.start,s=this.startLoc,o=this.parseIdent(this.type!==P.name);return n&&!this.canInsertSemicolon()&&this.eat(P.arrow)?this.parseArrowExpression(this.startNodeAt(i,s),[o]):o;
-case P.regexp:var a=this.value;return t=this.parseLiteral(a.value),t.regex={pattern:a.pattern,flags:a.flags},t;case P.num:case P.string:return this.parseLiteral(this.value);case P._null:case P._true:case P._false:return t=this.startNode(),t.value=this.type===P._null?null:this.type===P._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case P.parenL:return this.parseParenAndDistinguishExpression(n);case P.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(P.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case P.braceL:return this.parseObj(!1,e);case P._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case P._class:return this.parseClass(this.startNode(),!1);case P._new:return this.parseNew();case P.backQuote:return this.parseTemplate();default:this.unexpected()}},H.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(t,"Literal")},H.parseParenExpression=function(){this.expect(P.parenL);var e=this.parseExpression();return this.expect(P.parenR),e},H.parseParenAndDistinguishExpression=function(e){var t,n=this,r=this.start,i=this.startLoc;if(this.options.ecmaVersion>=6){this.next();for(var s,o,a=this.start,u=this.startLoc,c=[],l=!0,p=new q;this.type!==P.parenR;){if(l?l=!1:n.expect(P.comma),n.type===P.ellipsis){s=n.start,c.push(n.parseParenItem(n.parseRest()));break}n.type!==P.parenL||o||(o=n.start),c.push(n.parseMaybeAssign(!1,p,n.parseParenItem))}var h=this.start,f=this.startLoc;if(this.expect(P.parenR),e&&!this.canInsertSemicolon()&&this.eat(P.arrow))return this.checkPatternErrors(p,!0),o&&this.unexpected(o),this.parseParenArrowList(r,i,c);c.length||this.unexpected(this.lastTokStart),s&&this.unexpected(s),this.checkExpressionErrors(p,!0),c.length>1?(t=this.startNodeAt(a,u),t.expressions=c,this.finishNodeAt(t,"SequenceExpression",h,f)):t=c[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var d=this.startNodeAt(r,i);return d.expression=t,this.finishNode(d,"ParenthesizedExpression")}return t},H.parseParenItem=function(e){return e},H.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var Q=[];H.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(P.dot))return e.meta=t,e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty");var n=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,r,!0),this.eat(P.parenL)?e.arguments=this.parseExprList(P.parenR,!1):e.arguments=Q,this.finishNode(e,"NewExpression")},H.parseTemplateElement=function(){var e=this.startNode();return e.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),e.tail=this.type===P.backQuote,this.finishNode(e,"TemplateElement")},H.parseTemplate=function(){var e=this,t=this.startNode();this.next(),t.expressions=[];var n=this.parseTemplateElement();for(t.quasis=[n];!n.tail;)e.expect(P.dollarBraceL),t.expressions.push(e.parseExpression()),e.expect(P.braceR),t.quasis.push(n=e.parseTemplateElement());return this.next(),this.finishNode(t,"TemplateLiteral")},H.parseObj=function(e,t){var n=this,r=this.startNode(),i=!0,s={};for(r.properties=[],this.next();!this.eat(P.braceR);){if(i)i=!1;else if(n.expect(P.comma),n.afterTrailingComma(P.braceR))break;var o,a,u,c=n.startNode();n.options.ecmaVersion>=6&&(c.method=!1,c.shorthand=!1,(e||t)&&(a=n.start,u=n.startLoc),e||(o=n.eat(P.star))),n.parsePropertyName(c),n.parsePropertyValue(c,e,o,a,u,t),n.checkPropClash(c,s),r.properties.push(n.finishNode(c,"Property"))}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},H.parsePropertyValue=function(e,t,n,r,i,s){if(this.eat(P.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,s),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===P.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n);else if(this.options.ecmaVersion>=5&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&this.type!=P.comma&&this.type!=P.braceR){(n||t)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var o="get"===e.kind?0:1;if(e.value.params.length!==o){var a=e.value.start;"get"===e.kind?this.raiseRecoverable(a,"getter should have no params"):this.raiseRecoverable(a,"setter should have exactly one param")}"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}else this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((this.keywords.test(e.key.name)||(this.strict?this.reservedWordsStrictBind:this.reservedWords).test(e.key.name)||this.inGenerator&&"yield"==e.key.name)&&this.raiseRecoverable(e.key.start,"'"+e.key.name+"' can not be used as shorthand property"),e.kind="init",t?e.value=this.parseMaybeDefault(r,i,e.key):this.type===P.eq&&s?(s.shorthandAssign||(s.shorthandAssign=this.start),e.value=this.parseMaybeDefault(r,i,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected()},H.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(P.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(P.bracketR),e.key;e.computed=!1}return e.key=this.type===P.num||this.type===P.string?this.parseExprAtom():this.parseIdent(!0)},H.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1)},H.parseMethod=function(e){var t=this.startNode(),n=this.inGenerator;return this.inGenerator=e,this.initFunction(t),this.expect(P.parenL),t.params=this.parseBindingList(P.parenR,!1,!1),this.options.ecmaVersion>=6&&(t.generator=e),this.parseFunctionBody(t,!1),this.inGenerator=n,this.finishNode(t,"FunctionExpression")},H.parseArrowExpression=function(e,t){var n=this.inGenerator;return this.inGenerator=!1,this.initFunction(e),e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0),this.inGenerator=n,this.finishNode(e,"ArrowFunctionExpression")},H.parseFunctionBody=function(e,t){var n=t&&this.type!==P.braceL;if(n)e.body=this.parseMaybeAssign(),e.expression=!0;else{var r=this.inFunction,i=this.labels;this.inFunction=!0,this.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.inFunction=r,this.labels=i}var s=!n&&e.body.body.length&&this.isUseStrict(e.body.body[0])?e.body.body[0]:null;if(this.strict||s){var o=this.strict;this.strict=!0,e.id&&this.checkLVal(e.id,!0),this.checkParams(e,s),this.strict=o}else t&&this.checkParams(e,s)},H.checkParams=function(e,t){for(var n=this,r={},i=0;i<e.params.length;i++)t&&n.options.ecmaVersion>=7&&"Identifier"!==e.params[i].type&&n.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list"),n.checkLVal(e.params[i],!0,r)},H.parseExprList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);){if(o)o=!1;else if(i.expect(P.comma),t&&i.afterTrailingComma(e))break;var a;n&&i.type===P.comma?a=null:i.type===P.ellipsis?(a=i.parseSpread(r),i.type===P.comma&&r&&!r.trailingComma&&(r.trailingComma=i.lastTokStart)):a=i.parseMaybeAssign(!1,r),s.push(a)}return s},H.parseIdent=function(e){var t=this.startNode();return e&&"never"==this.options.allowReserved&&(e=!1),this.type===P.name?(!e&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(this.value)&&(this.options.ecmaVersion>=6||this.input.slice(this.start,this.end).indexOf("\\")==-1)&&this.raiseRecoverable(this.start,"The keyword '"+this.value+"' is reserved"),!e&&this.inGenerator&&"yield"===this.value&&this.raiseRecoverable(this.start,"Can not use 'yield' as identifier inside a generator"),t.name=this.value):e&&this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"Identifier")},H.parseYield=function(){var e=this.startNode();return this.next(),this.type==P.semi||this.canInsertSemicolon()||this.type!=P.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(P.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var X=V.prototype;X.raise=function(e,t){var n=c(this.input,e);t+=" ("+n.line+":"+n.column+")";var r=new SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},X.raiseRecoverable=X.raise,X.curPosition=function(){if(this.options.locations)return new M(this.curLine,this.pos-this.lineStart)};var Z=function(e,t,n){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new I(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},K=V.prototype;K.startNode=function(){return new Z(this,this.start,this.startLoc)},K.startNodeAt=function(e,t){return new Z(this,e,t)},K.finishNode=function(e,t){return f.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},K.finishNodeAt=function(e,t,n,r){return f.call(this,e,t,n,r)};var ee=function(e,t,n,r){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r},te={b_stat:new ee("{",!1),b_expr:new ee("{",!0),b_tmpl:new ee("${",!0),p_stat:new ee("(",!1),p_expr:new ee("(",!0),q_tmpl:new ee("`",!0,!0,function(e){return e.readTmplToken()}),f_expr:new ee("function",!0)},ne=V.prototype;ne.initialContext=function(){return[te.b_stat]},ne.braceIsBlock=function(e){if(e===P.colon){var t=this.curContext();if(t===te.b_stat||t===te.b_expr)return!t.isExpr}return e===P._return?N.test(this.input.slice(this.lastTokEnd,this.start)):e===P._else||e===P.semi||e===P.eof||e===P.parenR||(e==P.braceL?this.curContext()===te.b_stat:!this.exprAllowed)},ne.updateContext=function(e){var t,n=this.type;n.keyword&&e==P.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},P.parenR.updateContext=P.braceR.updateContext=function(){if(1==this.context.length)return void(this.exprAllowed=!0);var e=this.context.pop();e===te.b_stat&&this.curContext()===te.f_expr?(this.context.pop(),this.exprAllowed=!1):e===te.b_tmpl?this.exprAllowed=!0:this.exprAllowed=!e.isExpr},P.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?te.b_stat:te.b_expr),this.exprAllowed=!0},P.dollarBraceL.updateContext=function(){this.context.push(te.b_tmpl),this.exprAllowed=!0},P.parenL.updateContext=function(e){var t=e===P._if||e===P._for||e===P._with||e===P._while;this.context.push(t?te.p_stat:te.p_expr),this.exprAllowed=!0},P.incDec.updateContext=function(){},P._function.updateContext=function(e){e.beforeExpr&&e!==P.semi&&e!==P._else&&(e!==P.colon&&e!==P.braceL||this.curContext()!==te.b_stat)&&this.context.push(te.f_expr),this.exprAllowed=!1},P.backQuote.updateContext=function(){this.curContext()===te.q_tmpl?this.context.pop():this.context.push(te.q_tmpl),this.exprAllowed=!1};var re=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new I(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},ie=V.prototype,se="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);ie.next=function(){this.options.onToken&&this.options.onToken(new re(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},ie.getToken=function(){return this.next(),new re(this)},"undefined"!=typeof Symbol&&(ie[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===P.eof,value:t}}}}),ie.setStrict=function(e){var t=this;if(this.strict=e,this.type===P.num||this.type===P.string){if(this.pos=this.start,this.options.locations)for(;this.pos<this.lineStart;)t.lineStart=t.input.lastIndexOf("\n",t.lineStart-2)+1,--t.curLine;this.nextToken()}},ie.curContext=function(){return this.context[this.context.length-1]},ie.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(P.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},ie.readToken=function(e){return n(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},ie.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=57344)return e;var t=this.input.charCodeAt(this.pos+1);return(e<<10)+t-56613888},ie.skipBlockComment=function(){var e=this,t=this.options.onComment&&this.curPosition(),n=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations){B.lastIndex=n;for(var i;(i=B.exec(this.input))&&i.index<this.pos;)++e.curLine,e.lineStart=i.index+i[0].length}this.options.onComment&&this.options.onComment(!0,this.input.slice(n+2,r),n,this.pos,t,this.curPosition())},ie.skipLineComment=function(e){for(var t=this,n=this.pos,r=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&10!==i&&13!==i&&8232!==i&&8233!==i;)++t.pos,i=t.input.charCodeAt(t.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(n+e,this.pos),n,this.pos,r,this.curPosition())},ie.skipSpace=function(){var e=this;e:for(;this.pos<this.input.length;){var t=e.input.charCodeAt(e.pos);switch(t){case 32:case 160:++e.pos;break;case 13:10===e.input.charCodeAt(e.pos+1)&&++e.pos;case 10:case 8232:case 8233:++e.pos,e.options.locations&&(++e.curLine,e.lineStart=e.pos);break;case 47:switch(e.input.charCodeAt(e.pos+1)){case 42:e.skipBlockComment();break;case 47:e.skipLineComment(2);break;default:break e}break;default:if(!(t>8&&t<14||t>=5760&&F.test(String.fromCharCode(t))))break e;++e.pos}}},ie.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},ie.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(P.ellipsis)):(++this.pos,this.finishToken(P.dot))},ie.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(P.assign,2):this.finishOp(P.slash,1)},ie.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?P.star:P.modulo;return this.options.ecmaVersion>=7&&42===t&&(++n,r=P.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(P.assign,n+1):this.finishOp(r,n)},ie.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?P.logicalOR:P.logicalAND,2):61===t?this.finishOp(P.assign,2):this.finishOp(124===e?P.bitwiseOR:P.bitwiseAND,1)},ie.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(P.assign,2):this.finishOp(P.bitwiseXOR,1)},ie.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45==t&&62==this.input.charCodeAt(this.pos+2)&&N.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(P.incDec,2):61===t?this.finishOp(P.assign,2):this.finishOp(P.plusMin,1)},ie.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(P.assign,n+1):this.finishOp(P.bitShift,n)):33==t&&60==e&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(n=2),this.finishOp(P.relational,n))},ie.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(P.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(P.arrow)):this.finishOp(61===e?P.eq:P.prefix,1)},ie.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(P.parenL);case 41:return++this.pos,this.finishToken(P.parenR);case 59:return++this.pos,this.finishToken(P.semi);case 44:return++this.pos,this.finishToken(P.comma);case 91:return++this.pos,this.finishToken(P.bracketL);case 93:return++this.pos,this.finishToken(P.bracketR);case 123:return++this.pos,this.finishToken(P.braceL);case 125:return++this.pos,this.finishToken(P.braceR);case 58:return++this.pos,this.finishToken(P.colon);case 63:return++this.pos,this.finishToken(P.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(P.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(P.prefix,1)}this.raise(this.pos,"Unexpected character '"+y(e)+"'")},ie.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)};var oe=!!d("￿","u");ie.readRegexp=function(){for(var e,t,n=this,r=this.pos;;){n.pos>=n.input.length&&n.raise(r,"Unterminated regular expression");var i=n.input.charAt(n.pos);if(N.test(i)&&n.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++n.pos}var s=this.input.slice(r,this.pos);++this.pos;var o=this.readWord1(),a=s,u="";if(o){var c=/^[gim]*$/;this.options.ecmaVersion>=6&&(c=/^[gimuy]*$/),c.test(o)||this.raise(r,"Invalid regular expression flag"),o.indexOf("u")>=0&&(oe?u="u":(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t,i){return t=Number("0x"+t),t>1114111&&n.raise(r+i+3,"Code point out of bounds"),"x"}),a=a.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),u=u.replace("u","")))}var l=null;return se||(d(a,u,r,this),l=d(s,o)),this.finishToken(P.regexp,{pattern:s,flags:o,value:l})},ie.readInt=function(e,t){for(var n=this,r=this.pos,i=0,s=0,o=null==t?1/0:t;s<o;++s){var a,u=n.input.charCodeAt(n.pos);if(a=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0,a>=e)break;++n.pos,i=i*e+a}return this.pos===r||null!=t&&this.pos-r!==t?null:i},ie.readRadixNumber=function(e){this.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.start+2,"Expected number in radix "+e),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(P.num,t)},ie.readNumber=function(e){var t=this.pos,r=!1,i=48===this.input.charCodeAt(this.pos);e||null!==this.readInt(10)||this.raise(t,"Invalid number");var s=this.input.charCodeAt(this.pos);46===s&&(++this.pos,this.readInt(10),r=!0,s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||(s=this.input.charCodeAt(++this.pos),43!==s&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),r=!0),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var o,a=this.input.slice(t,this.pos);return r?o=parseFloat(a):i&&1!==a.length?/[89]/.test(a)||this.strict?this.raise(t,"Invalid number"):o=parseInt(a,8):o=parseInt(a,10),this.finishToken(P.num,o)},ie.readCodePoint=function(){var e,t=this.input.charCodeAt(this.pos);if(123===t){this.options.ecmaVersion<6&&this.unexpected();var n=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.raise(n,"Code point out of bounds")}else e=this.readHexChar(4);return e},ie.readString=function(e){for(var t=this,n="",r=++this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated string constant");var i=t.input.charCodeAt(t.pos);if(i===e)break;92===i?(n+=t.input.slice(r,t.pos),n+=t.readEscapedChar(!1),r=t.pos):(o(i)&&t.raise(t.start,"Unterminated string constant"),++t.pos)}return n+=this.input.slice(r,this.pos++),this.finishToken(P.string,n)},ie.readTmplToken=function(){for(var e=this,t="",n=this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated template");var r=e.input.charCodeAt(e.pos);if(96===r||36===r&&123===e.input.charCodeAt(e.pos+1))return e.pos===e.start&&e.type===P.template?36===r?(e.pos+=2,e.finishToken(P.dollarBraceL)):(++e.pos,e.finishToken(P.backQuote)):(t+=e.input.slice(n,e.pos),e.finishToken(P.template,t));if(92===r)t+=e.input.slice(n,e.pos),t+=e.readEscapedChar(!0),n=e.pos;else if(o(r)){switch(t+=e.input.slice(n,e.pos),++e.pos,r){case 13:10===e.input.charCodeAt(e.pos)&&++e.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(r)}e.options.locations&&(++e.curLine,e.lineStart=e.pos),n=e.pos}else++e.pos}},ie.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return y(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(t>=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),"0"!==n&&(this.strict||e)&&this.raise(this.pos-2,"Octal literal in strict mode"),this.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},ie.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.raise(t,"Bad character escape sequence"),n},ie.readWord1=function(){var e=this;this.containsEsc=!1;for(var t="",i=!0,s=this.pos,o=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=e.fullCharCodeAtPos();if(r(a,o))e.pos+=a<=65535?1:2;else{if(92!==a)break;e.containsEsc=!0,t+=e.input.slice(s,e.pos);var u=e.pos;117!=e.input.charCodeAt(++e.pos)&&e.raise(e.pos,"Expecting Unicode escape sequence \\uXXXX"),++e.pos;var c=e.readCodePoint();(i?n:r)(c,o)||e.raise(u,"Invalid Unicode escape"),t+=y(c),s=e.pos}i=!1}return t+this.input.slice(s,this.pos)},ie.readWord=function(){var e=this.readWord1(),t=P.name;return(this.options.ecmaVersion>=6||!this.containsEsc)&&this.keywords.test(e)&&(t=O[e]),this.finishToken(t,e)};var ae="3.3.0";e.version=ae,e.parse=m,e.parseExpressionAt=g,e.tokenizer=v,e.Parser=V,e.plugins=$,e.defaultOptions=D,e.Position=M,e.SourceLocation=I,e.getLineInfo=c,e.Node=Z,e.TokenType=L,e.tokTypes=P,e.TokContext=ee,e.tokContexts=te,e.isIdentifierChar=r,e.isIdentifierStart=n,e.Token=re,e.isNewLine=o,e.lineBreak=N,e.lineBreakG=B,Object.defineProperty(e,"__esModule",{value:!0})})},{}],19:[function(e,t,n){!function(e,r){"object"==typeof n&&"undefined"!=typeof t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r((e.acorn=e.acorn||{},e.acorn.walk=e.acorn.walk||{}))}(this,function(e){"use strict";function t(t,n,r,i,s){r||(r=e.base),function e(t,i,s){var o=s||t.type,a=n[o];r[o](t,i,e),a&&a(t,i)}(t,i,s)}function n(t,n,r,i){r||(r=e.base);var s=[];!function e(t,i,o){var a=o||t.type,u=n[a],c=t!=s[s.length-1];c&&s.push(t),r[a](t,i,e),u&&u(t,i||s,s),c&&s.pop()}(t,i)}function r(t,n,r,i,s){var o=r?e.make(r,i):i;!function e(t,n,r){o[r||t.type](t,n,e)}(t,n,s)}function i(e){return"string"==typeof e?function(t){return t==e}:e?e:function(){return!0}}function s(t,n,r,s,o,a){s=i(s),o||(o=e.base);try{!function e(t,i,a){var u=a||t.type;if((null==n||t.start<=n)&&(null==r||t.end>=r)&&o[u](t,i,e),(null==n||t.start==n)&&(null==r||t.end==r)&&s(u,t))throw new h(t,i)}(t,a)}catch(e){if(e instanceof h)return e;throw e}}function o(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){var a=o||t.type;if(!(t.start>n||t.end<n)&&(s[a](t,i,e),r(a,t)))throw new h(t,i)}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function a(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){if(!(t.end<n)){var a=o||t.type;if(t.start>=n&&r(a,t))throw new h(t,i);s[a](t,i,e)}}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function u(t,n,r,s,o){r=i(r),s||(s=e.base);var a;return function e(t,i,o){if(!(t.start>n)){var u=o||t.type;t.end<=n&&(!a||a.node.end<t.end)&&r(u,t)&&(a=new h(t,i)),s[u](t,i,e)}}(t,o),a}function c(t,n){n||(n=e.base);var r=f(n);for(var i in t)r[i]=t[i];return r}function l(e,t,n){n(e,t)}function p(e,t,n){}var h=function(e,t){this.node=e,this.state=t},f=Object.create||function(e){function t(){}return t.prototype=e,new t},d={};d.Program=d.BlockStatement=function(e,t,n){for(var r=0;r<e.body.length;++r)n(e.body[r],t,"Statement")},d.Statement=l,d.EmptyStatement=p,d.ExpressionStatement=d.ParenthesizedExpression=function(e,t,n){return n(e.expression,t,"Expression")},d.IfStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Statement"),e.alternate&&n(e.alternate,t,"Statement")},d.LabeledStatement=function(e,t,n){return n(e.body,t,"Statement")},d.BreakStatement=d.ContinueStatement=p,d.WithStatement=function(e,t,n){n(e.object,t,"Expression"),n(e.body,t,"Statement")},d.SwitchStatement=function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r){var i=e.cases[r];i.test&&n(i.test,t,"Expression");for(var s=0;s<i.consequent.length;++s)n(i.consequent[s],t,"Statement")}},d.ReturnStatement=d.YieldExpression=function(e,t,n){e.argument&&n(e.argument,t,"Expression")},d.ThrowStatement=d.SpreadElement=function(e,t,n){return n(e.argument,t,"Expression")},d.TryStatement=function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t),e.finalizer&&n(e.finalizer,t,"Statement")},d.CatchClause=function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},d.WhileStatement=d.DoWhileStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.body,t,"Statement")},d.ForStatement=function(e,t,n){e.init&&n(e.init,t,"ForInit"),e.test&&n(e.test,t,"Expression"),e.update&&n(e.update,t,"Expression"),n(e.body,t,"Statement")},d.ForInStatement=d.ForOfStatement=function(e,t,n){n(e.left,t,"ForInit"),n(e.right,t,"Expression"),n(e.body,t,"Statement")},d.ForInit=function(e,t,n){"VariableDeclaration"==e.type?n(e,t):n(e,t,"Expression")},d.DebuggerStatement=p,d.FunctionDeclaration=function(e,t,n){return n(e,t,"Function")},d.VariableDeclaration=function(e,t,n){for(var r=0;r<e.declarations.length;++r)n(e.declarations[r],t)},d.VariableDeclarator=function(e,t,n){n(e.id,t,"Pattern"),e.init&&n(e.init,t,"Expression")},d.Function=function(e,t,n){e.id&&n(e.id,t,"Pattern");for(var r=0;r<e.params.length;r++)n(e.params[r],t,"Pattern");n(e.body,t,e.expression?"ScopeExpression":"ScopeBody")},d.ScopeBody=function(e,t,n){return n(e,t,"Statement")},d.ScopeExpression=function(e,t,n){return n(e,t,"Expression")},d.Pattern=function(e,t,n){"Identifier"==e.type?n(e,t,"VariablePattern"):"MemberExpression"==e.type?n(e,t,"MemberPattern"):n(e,t)},d.VariablePattern=p,d.MemberPattern=l,d.RestElement=function(e,t,n){return n(e.argument,t,"Pattern")},d.ArrayPattern=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Pattern")}},d.ObjectPattern=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r].value,t,"Pattern")},d.Expression=l,d.ThisExpression=d.Super=d.MetaProperty=p,d.ArrayExpression=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Expression")}},d.ObjectExpression=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r],t)},d.FunctionExpression=d.ArrowFunctionExpression=d.FunctionDeclaration,d.SequenceExpression=d.TemplateLiteral=function(e,t,n){for(var r=0;r<e.expressions.length;++r)n(e.expressions[r],t,"Expression")},d.UnaryExpression=d.UpdateExpression=function(e,t,n){n(e.argument,t,"Expression")},d.BinaryExpression=d.LogicalExpression=function(e,t,n){n(e.left,t,"Expression"),n(e.right,t,"Expression")},d.AssignmentExpression=d.AssignmentPattern=function(e,t,n){n(e.left,t,"Pattern"),n(e.right,t,"Expression")},d.ConditionalExpression=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Expression"),n(e.alternate,t,"Expression")},d.NewExpression=d.CallExpression=function(e,t,n){if(n(e.callee,t,"Expression"),e.arguments)for(var r=0;r<e.arguments.length;++r)n(e.arguments[r],t,"Expression")},d.MemberExpression=function(e,t,n){n(e.object,t,"Expression"),e.computed&&n(e.property,t,"Expression")},d.ExportNamedDeclaration=d.ExportDefaultDeclaration=function(e,t,n){e.declaration&&n(e.declaration,t,"ExportNamedDeclaration"==e.type||e.declaration.id?"Statement":"Expression"),e.source&&n(e.source,t,"Expression")},d.ExportAllDeclaration=function(e,t,n){n(e.source,t,"Expression")},d.ImportDeclaration=function(e,t,n){for(var r=0;r<e.specifiers.length;r++)n(e.specifiers[r],t);n(e.source,t,"Expression")},d.ImportSpecifier=d.ImportDefaultSpecifier=d.ImportNamespaceSpecifier=d.Identifier=d.Literal=p,d.TaggedTemplateExpression=function(e,t,n){n(e.tag,t,"Expression"),n(e.quasi,t)},d.ClassDeclaration=d.ClassExpression=function(e,t,n){return n(e,t,"Class")},d.Class=function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression");for(var r=0;r<e.body.body.length;r++)n(e.body.body[r],t)},d.MethodDefinition=d.Property=function(e,t,n){e.computed&&n(e.key,t,"Expression"),n(e.value,t,"Expression")},e.simple=t,e.ancestor=n,e.recursive=r,e.findNodeAt=s,e.findNodeAround=o,e.findNodeAfter=a,e.findNodeBefore=u,e.make=c,e.base=d,Object.defineProperty(e,"__esModule",{value:!0})})},{}],20:[function(e,t,n){var r=e("./lib/core");n=t.exports=e("./lib/async"),n.core=r,n.isCore=function(e){return r[e]},n.sync=e("./lib/sync")},{"./lib/async":21,"./lib/core":24,"./lib/sync":26}],21:[function(e,t,n){(function(n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");"win32"===n.platform?/[\/\\]/:/\//;t.exports=function(e,t,u){function c(t,n,r){t?u(t):n?u(null,n,r):h(v,function(t,n,r){t?u(t):n?u(null,n,r):u(new Error("Cannot find module '"+e+"' from '"+g+"'"))})}function l(e,n,r){function i(e,n,o){function a(a,l,p){if(o=l,a)return r(a);if(p&&o&&t.pathFilter){var h=s.relative(p,c),f=h.slice(0,h.length-e[0].length),y=t.pathFilter(o,n,f);if(y)return i([""].concat(m.slice()),s.resolve(p,y),o)}d(c,u)}function u(t,s){t?r(t):s?r(null,c,o):i(e.slice(1),n,o)}if(0===e.length)return r(null,void 0,o);var c=n+e[0];o?a(null,o):p(s.dirname(c),a)}"function"==typeof n&&(r=n,n=void 0);var o=[""].concat(m);i(o,e,n)}function p(e,r){if(""===e||"/"===e)return r(null);if("win32"===n.platform&&/^\w:[\\\/]*$/.test(e))return r(null);if(/[\\\/]node_modules[\\\/]*$/.test(e))return r(null);var i=s.join(e,"package.json");d(i,function(n,o){return o?void y(i,function(n,s){n&&r(n);try{var o=JSON.parse(s)}catch(e){}o&&t.packageFilter&&(o=t.packageFilter(o,i)),r(null,o,e)}):p(s.dirname(e),r)})}function h(e,n,r){"function"==typeof n&&(r=n,n=t.package);var i=s.join(e,"/package.json");d(i,function(o,a){return o?r(o):a?void y(i,function(n,o){if(n)return r(n);try{var a=JSON.parse(o)}catch(e){}return t.packageFilter&&(a=t.packageFilter(a,i)),a.main?("."!==a.main&&"./"!==a.main||(a.main="index"),void l(s.resolve(e,a.main),a,function(t,n,i){if(t)return r(t);if(n)return r(null,n,i);if(!i)return l(s.join(e,"/index"),i,r);var o=s.resolve(e,i.main);h(o,i,function(t,n,i){return t?r(t):n?r(null,n,i):void l(s.join(e,"/index"),i,r)})})):void l(s.join(e,"/index"),a,r)}):l(s.join(e,"/index"),n,r)})}function f(e,n,r){!function t(n){function i(t,n,i){return t?r(t):n?r(null,n,i):void h(s.join(a,"/",e),void 0,o)}function o(e,i,s){return e?r(e):i?r(null,i,s):void t(n.slice(1));
-}if(0===n.length)return r(null,void 0);var a=n[0],u=s.join(a,"/",e);l(u,void 0,i)}(a(n,t))}if("function"==typeof t&&(u=t,t={}),t||(t={}),"string"!=typeof e)return n.nextTick(function(){u(new Error("path must be a string"))});var d=t.isFile||function(e,t){i.stat(e,function(e,n){e&&"ENOENT"===e.code?t(null,!1):e?t(e):t(null,n.isFile()||n.isFIFO())})},y=t.readFile||i.readFile,m=t.extensions||[".js"],g=t.basedir||s.dirname(o());if(t.paths=t.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(e)){var v=s.resolve(g,e);".."===e&&(v+="/"),/\/$/.test(e)&&v===g?h(v,t.package,c):l(v,t.package,c)}else f(e,g,function(t,n,i){if(t)u(t);else if(n)u(null,n,i);else{if(r[e])return u(null,e);u(new Error("Cannot find module '"+e+"' from '"+g+"'"))}})}}).call(this,e("_process"))},{"./caller.js":22,"./core":24,"./node-modules-paths.js":25,_process:7,fs:1,path:6}],22:[function(e,t,n){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;return Error.prepareStackTrace=e,t[2].getFileName()}},{}],23:[function(e,t,n){t.exports=["assert","buffer_ieee754","buffer","child_process","cluster","console","constants","crypto","_debugger","dgram","dns","domain","events","freelist","fs","http","https","_linklist","module","net","os","path","punycode","querystring","readline","repl","stream","string_decoder","sys","timers","tls","tty","url","util","vm","zlib"]},{}],24:[function(e,t,n){t.exports=e("./core.json").reduce(function(e,t){return e[t]=!0,e},{})},{"./core.json":23}],25:[function(e,t,n){(function(n){var r=e("path");t.exports=function(e,t){var i=t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"];e=r.resolve(e);var s="/";/^([A-Za-z]:)/.test(e)?s="":/^\\\\/.test(e)&&(s="\\\\");for(var o="win32"===n.platform?/[\/\\]/:/\/+/,a=e.split(o),u=[],c=a.length-1;c>=0;c--)i.indexOf(a[c])===-1&&(u=u.concat(i.map(function(e){return s+r.join(r.join.apply(r,a.slice(0,c+1)),e)})));return"win32"===n.platform&&(u[u.length-1]=u[u.length-1].replace(":",":\\")),u.concat(t.paths)}}).call(this,e("_process"))},{_process:7,path:6}],26:[function(e,t,n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");t.exports=function(e,t){function n(e){if(l(e))return e;for(var t=0;t<h.length;t++){var n=e+h[t];if(l(n))return n}}function u(e){var r=s.join(e,"/package.json");if(l(r)){var i=p(r,"utf8");try{var o=JSON.parse(i);if(t.packageFilter&&(o=t.packageFilter(o,e)),o.main){var a=n(s.resolve(e,o.main));if(a)return a;var c=u(s.resolve(e,o.main));if(c)return c}}catch(e){}}return n(s.join(e,"/index"))}function c(e,r){for(var i=a(r,t),o=0;o<i.length;o++){var c=i[o],l=n(s.join(c,"/",e));if(l)return l;var p=u(s.join(c,"/",e));if(p)return p}}t||(t={});var l=t.isFile||function(e){try{var t=i.statSync(e)}catch(e){if(e&&"ENOENT"===e.code)return!1}return t.isFile()||t.isFIFO()},p=t.readFileSync||i.readFileSync,h=t.extensions||[".js"],f=t.basedir||s.dirname(o());if(t.paths=t.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(e)){var d=s.resolve(f,e);".."===e&&(d+="/");var y=n(d)||u(d);if(y)return y}else{var m=c(e,f);if(m)return m}if(r[e])return e;throw new Error("Cannot find module '"+e+"' from '"+f+"'")}},{"./caller.js":22,"./core":24,"./node-modules-paths.js":25,fs:1,path:6}],27:[function(e,t,n){function r(){this._array=[],this._set={}}var i=e("./util");r.fromArray=function(e,t){for(var n=new r,i=0,s=e.length;i<s;i++)n.add(e[i],t);return n},r.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=i.toSetString(e),r=this._set.hasOwnProperty(n),s=this._array.length;r&&!t||this._array.push(e),r||(this._set[n]=s)},r.prototype.has=function(e){var t=i.toSetString(e);return this._set.hasOwnProperty(t)},r.prototype.indexOf=function(e){var t=i.toSetString(e);if(this._set.hasOwnProperty(t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":36}],28:[function(e,t,n){function r(e){return e<0?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var s=e("./base64"),o=5,a=1<<o,u=a-1,c=a;n.encode=function(e){var t,n="",i=r(e);do t=i&u,i>>>=o,i>0&&(t|=c),n+=s.encode(t);while(i>0);return n},n.decode=function(e,t,n){var r,a,l=e.length,p=0,h=0;do{if(t>=l)throw new Error("Expected more digits in base 64 VLQ value.");if(a=s.decode(e.charCodeAt(t++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(a&c),a&=u,p+=a<<h,h+=o}while(r);n.value=i(p),n.rest=t}},{"./base64":29}],29:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){var t=65,n=90,r=97,i=122,s=48,o=57,a=43,u=47,c=26,l=52;return t<=e&&e<=n?e-t:r<=e&&e<=i?e-r+c:s<=e&&e<=o?e-s+l:e==a?62:e==u?63:-1}},{}],30:[function(e,t,n){function r(e,t,i,s,o,a){var u=Math.floor((t-e)/2)+e,c=o(i,s[u],!0);return 0===c?u:c>0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?r(e,u,i,s,o,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,s){if(0===t.length)return-1;var o=r(-1,t.length,e,t,i,s||n.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(t[o],t[o-1],!0);)--o;return o}},{}],31:[function(e,t,n){function r(e,t){var n=e.generatedLine,r=t.generatedLine,i=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){r(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=i},{"./util":36}],32:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t){return Math.round(e+Math.random()*(t-e))}function s(e,t,n,o){if(n<o){var a=i(n,o),u=n-1;r(e,a,o);for(var c=e[o],l=n;l<o;l++)t(e[l],c)<=0&&(u+=1,r(e,u,l));r(e,u+1,l);var p=u+1;s(e,t,n,p-1),s(e,t,p+1,o)}}n.quickSort=function(e,t){s(e,t,0,e.length-1)}},{}],33:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new o(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),r=a.getArg(t,"sources"),i=a.getArg(t,"names",[]),s=a.getArg(t,"sourceRoot",null),o=a.getArg(t,"sourcesContent",null),u=a.getArg(t,"mappings"),l=a.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(a.normalize).map(function(e){return s&&a.isAbsolute(s)&&a.isAbsolute(e)?a.relative(s,e):e}),this._names=c.fromArray(i,!0),this._sources=c.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=o,this._mappings=u,this.file=l}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function o(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),i=a.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new c,this._names=new c;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=a.getArg(e,"offset"),n=a.getArg(t,"line"),i=a.getArg(t,"column");if(n<s.line||n===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(a.getArg(e,"map"))}})}var a=e("./util"),u=e("./binary-search"),c=e("./array-set").ArraySet,l=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,s=t||null,o=n||r.GENERATED_ORDER;switch(o){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=a.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},r.prototype.allGeneratedPositionsFor=function(e){var t=a.getArg(e,"line"),n={source:a.getArg(e,"source"),originalLine:t,originalColumn:a.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=a.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(void 0===e.column)for(var o=s.originalLine;s&&s.originalLine===o;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var c=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==c;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,i.prototype=Object.create(r.prototype),i.prototype.consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=c.fromArray(e._names.toArray(),!0),r=t._sources=c.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var o=e._mappings.toArray().slice(),u=t.__generatedMappings=[],l=t.__originalMappings=[],h=0,f=o.length;h<f;h++){var d=o[h],y=new s;y.generatedLine=d.generatedLine,y.generatedColumn=d.generatedColumn,d.source&&(y.source=r.indexOf(d.source),y.originalLine=d.originalLine,y.originalColumn=d.originalColumn,d.name&&(y.name=n.indexOf(d.name)),l.push(y)),u.push(y)}return p(t.__originalMappings,a.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?a.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,o,u,c=1,h=0,f=0,d=0,y=0,m=0,g=e.length,v=0,b={},x={},w=[],E=[];v<g;)if(";"===e.charAt(v))c++,v++,h=0;else if(","===e.charAt(v))v++;else{for(n=new s,n.generatedLine=c,o=v;o<g&&!this._charIsMappingSeparator(e,o);o++);if(r=e.slice(v,o),i=b[r])v+=r.length;else{for(i=[];v<o;)l.decode(e,v,x),u=x.value,v=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[r]=i}n.generatedColumn=h+i[0],h=n.generatedColumn,i.length>1&&(n.source=y+i[1],y+=i[1],n.originalLine=f+i[2],f=n.originalLine,n.originalLine+=1,n.originalColumn=d+i[3],d=n.originalColumn,i.length>4&&(n.name=m+i[4],m+=i[4])),E.push(n),"number"==typeof n.originalLine&&w.push(n)}p(E,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,p(w,a.compareByOriginalPositions),this.__originalMappings=w},i.prototype._findMapping=function(e,t,n,r,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",a.compareByGeneratedPositionsDeflated,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var s=a.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=a.join(this.sourceRoot,s)));var o=a.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:s,line:a.getArg(i,"originalLine",null),column:a.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=a.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=a.getArg(e,"source");if(null!=this.sourceRoot&&(t=a.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var n={source:t,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===n.source)return{line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,o.prototype=Object.create(r.prototype),o.prototype.constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),o.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=u.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n?n:e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},o.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n],i=r.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(n.consumer.sources.indexOf(a.getArg(e,"source"))!==-1){var r=n.consumer.generatedPositionFor(e);if(r){var i={line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},o.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,s=0;s<i.length;s++){var o=i[s],u=r.consumer._sources.at(o.source);null!==r.consumer.sourceRoot&&(u=a.join(r.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var c=r.consumer._names.at(o.name);this._names.add(c),c=this._names.indexOf(c);var l={source:u,generatedLine:o.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(r.generatedOffset.generatedLine===o.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:c};this.__generatedMappings.push(l),"number"==typeof l.originalLine&&this.__originalMappings.push(l)}p(this.__generatedMappings,a.compareByGeneratedPositionsDeflated),p(this.__originalMappings,a.compareByOriginalPositions)},n.IndexedSourceMapConsumer=o},{"./array-set":27,"./base64-vlq":28,"./binary-search":30,"./quick-sort":32,"./util":36}],34:[function(e,t,n){function r(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new o,this._names=new o,this._mappings=new a,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),o=e("./array-set").ArraySet,a=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=s.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),n=s.getArg(e,"original",null),r=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null==r||this._sources.has(r)||this._sources.add(r),null==i||this._names.has(i)||this._names.add(i),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=s.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[s.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=s.relative(i,r));var a=new o,u=new o;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var o=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=o.source&&(t.source=o.source,null!=n&&(t.source=s.join(n,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=o.line,t.originalColumn=o.column,null!=o.name&&(t.name=o.name))}var c=t.source;null==c||a.has(c)||a.add(c);var l=t.name;null==l||u.has(l)||u.add(l)},this),this._sources=a,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=s.join(n,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r=0,o=1,a=0,u=0,c=0,l=0,p="",h=this._mappings.toArray(),f=0,d=h.length;f<d;f++){if(e=h[f],e.generatedLine!==o)for(r=0;e.generatedLine!==o;)p+=";",o++;else if(f>0){if(!s.compareByGeneratedPositionsInflated(e,h[f-1]))continue;p+=","}p+=i.encode(e.generatedColumn-r),r=e.generatedColumn,null!=e.source&&(n=this._sources.indexOf(e.source),p+=i.encode(n-l),l=n,p+=i.encode(e.originalLine-1-u),u=e.originalLine-1,p+=i.encode(e.originalColumn-a),a=e.originalColumn,null!=e.name&&(t=this._names.indexOf(e.name),p+=i.encode(t-c),c=t))}return p},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var n=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":27,"./base64-vlq":28,"./mapping-list":31,"./util":36}],35:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[u]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),o=/(\r?\n)/,a=10,u="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)a.add(t);else{var i=n?s.join(n,e.source):e.source;a.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var a=new r,u=e.split(o),c=function(){var e=u.shift(),t=u.shift()||"";return e+t},l=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(l<e.generatedLine)){var t=u[0],n=t.substr(0,e.generatedColumn-p);return u[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,n),void(h=e)}i(h,c()),l++,p=0}for(;l<e.generatedLine;)a.add(c()),l++;if(p<e.generatedColumn){var t=u[0];a.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),u.length>0&&(h&&i(h,c()),a.add(u.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=s.join(n,e)),a.setSourceContent(e,r))}),a},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n<r;n++)t=this.children[n],t[u]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[u]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][u]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(s.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,s=null,o=null,u=null,c=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&o===i.line&&u===i.column&&c===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,o=i.line,u=i.column,c=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),s=null,r=!1);for(var l=0,p=e.length;l<p;l++)e.charCodeAt(l)===a?(t.line++,t.column=0,l+1===p?(s=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":34,"./util":36}],36:[function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(y);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function s(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var t=e,r=i(e);if(r){if(!r.path)return e;t=r.path}for(var o,a=n.isAbsolute(t),u=t.split(/\/+/),c=0,l=u.length-1;l>=0;l--)o=u[l],"."===o?u.splice(l,1):".."===o?c++:c>0&&(""===o?(u.splice(l+1,c),c=0):(u.splice(l,2),c--));return t=u.join("/"),""===t&&(t=a?"/":"."),r?(r.path=t,s(r)):t}function a(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),s(n);if(n||t.match(m))return t;if(r&&!r.host&&!r.path)return r.host=t,s(r);var a="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=a,s(r)):a}function u(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}function c(e){return"$"+e}function l(e){return e.substr(1)}function p(e,t,n){var r=e.source-t.source;return 0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r||n?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=e.generatedLine-t.generatedLine,0!==r?r:e.name-t.name))))}function h(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r||n?r:(r=e.source-t.source,0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:e.name-t.name))))}function f(e,t){return e===t?0:e>t?1:-1}function d(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:(n=e.generatedColumn-t.generatedColumn,0!==n?n:(n=f(e.source,t.source),0!==n?n:(n=e.originalLine-t.originalLine,0!==n?n:(n=e.originalColumn-t.originalColumn,0!==n?n:f(e.name,t.name)))))}n.getArg=r;var y=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,m=/^data:.+\,.+$/;n.urlParse=i,n.urlGenerate=s,n.normalize=o,n.join=a,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(y)},n.relative=u,n.toSetString=c,n.fromSetString=l,n.compareByOriginalPositions=p,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=d},{}],37:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":33,"./lib/source-map-generator":34,"./lib/source-node":35}],38:[function(e,t,n){t.exports={name:"nodent",version:"2.6.10",description:"NoDent - Asynchronous Javascript language extensions",main:"nodent.js",scripts:{cover:"istanbul cover ./nodent.js tests -- --quick --quiet --syntax --generators --forceStrict ; open ./coverage/lcov-report/index.html",test:"cd tests && npm i --prod && cd .. && ./nodent.js tests --syntax --quick --quiet --generators","test-loader":"cd tests/loader/app && npm test && cd ../../..",start:"./nodent.js"},dependencies:{acorn:"3.3.0","acorn-es7-plugin":"^1.0.18",resolve:"1.1.7","source-map":"0.5.3"},repository:{type:"git",url:"git+https://github.com/MatAtBread/nodent.git"},engines:"node >= 0.10.0",keywords:["Javascript","ES7","async","await","language","extensions","Node","callback","generator","Promise","asynchronous"],author:{name:"Mat At Bread",email:"nodent@mailed.me.uk"},license:"BSD-2-Clause",bugs:{url:"https://github.com/MatAtBread/nodent/issues"},gitHead:"385def047a46b19fa5abc698742e63159a96f47d",homepage:"https://github.com/MatAtBread/nodent#readme",_id:"nodent@2.6.10",_shasum:"bfab2501276e87db183573de321533e6e51dff7a",_from:"nodent@>=2.5.3 <3.0.0",_npmVersion:"3.10.3",_nodeVersion:"6.6.0",_npmUser:{name:"matatbread",email:"npm@mailed.me.uk"},maintainers:[{name:"matatbread",email:"npm@mailed.me.uk"}],dist:{shasum:"bfab2501276e87db183573de321533e6e51dff7a",tarball:"https://registry.npmjs.org/nodent/-/nodent-2.6.10.tgz"},_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/nodent-2.6.10.tgz_1475078302539_0.5869635329581797"},directories:{},_resolved:"https://registry.npmjs.org/nodent/-/nodent-2.6.10.tgz"}},{}],nodent:[function(e,t,n){(function(n,r,i,s,o,a,u,c){"use strict";function l(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}function p(e){throw e}function h(){}function f(e){return"ExpressionStatement"===e.type&&("StringLiteral"===e.expression.type||"Literal"===e.expression.type&&"string"==typeof e.expression.value)}function d(t,n,r){var i,s,o={};if("string"==typeof t)(i=t.match(V))&&(s=i[1]||"default");else for(var a=0;a<t.body.length&&f(t.body[a].type);a++){var u="'"+t.body[a].value+"'";if(i=u.match(V)){s=i[1]||"default";break}}if(!i){if(!D.noUseDirective)return null;s="default",i=[null,null,"{}"]}if(s)try{r?e("fs").lstatSync(r).isDirectory()&&(r=e("path").dirname(r)):r=e("path").resolve(".");var c=e("resolve").sync("package.json",{moduleDirectory:[""],extensions:[""],basedir:r}),p=JSON.parse(N.readFileSync(c)).nodent.directive[s]}catch(e){}try{o=l([$[s],p,i[2]&&JSON.parse(i[2])])}catch(e){n("Invalid literal compiler option: "+(i&&i[0]||"<no options found>"))}return o.promises||o.es7||o.generators||o.engine?((o.promises||o.es7)&&o.generators&&(n("No valid 'use nodent' directive, assumed -es7 mode"),o=$.es7),o):null}function y(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),"#!"===e.substring(0,2)&&(e="//"+e),e}function m(e){var t;return t=e instanceof i?e:new i(e.toString(),"binary"),t.toString("base64")}function g(e,t,n,r){r=r||z;var i=this;return function(){var s=this,o=Array.prototype.slice.apply(arguments),a=function(r,a){return void 0==e&&(e=o.length),void 0==t?o[e]=r:o[e]=function(){var e=arguments[t];if(e)return a(e);if(Array.isArray(n)&&0===n.length)return r(arguments);var i=arguments[void 0===n?t+1:n];return r(i)},i.apply(s,o)};return new r(a)}}function v(e,t){return t=t||e.log,
-function(n,r,i){var s=y(N.readFileSync(r,"utf8")),o=e.parse(s,r,i);i=i||d(o.ast,t,r),e.asynchronize(o,void 0,i,t),e.prettyPrint(o,i),n._compile(o.code,o.filename)}}function b(e){return e=e||z,function(t,n,r){if(Array.isArray(n)){var i=n;n=function(e,t){return i.indexOf(e)>=0}}else n=n||function(e,t){return!(e.match(/Sync$/)&&e.replace(/Sync$/,"")in t)};r||(r="");var s=Object.create(t);for(var o in s)(function(){var i=o;try{"function"!=typeof t[i]||s[i+r]&&s[i+r].isAsync||!n(i,s)||(s[i+r]=function(){var n=Array.prototype.slice.call(arguments),r=function(e,r){var s=function(t,n){if(t)return r(t);switch(arguments.length){case 0:return e();case 2:return e(n);default:return e(Array.prototype.slice.call(arguments,1))}};n.length>t[i].length?n.push(s):n[t[i].length-1]=s;t[i].apply(t,n)};return new e(r)},s[i+r].isAsync=!0)}catch(e){}})();return s.super=t,s}}function x(t,n){var r=t.filename.split("/"),i=r.pop(),s=B(t.ast,n&&n.sourcemap?{map:{startLine:n.mapStartLine||0,file:i+"(original)",sourceMapRoot:r.join("/"),sourceContent:t.origCode}}:null,t.origCode);if(n&&n.sourcemap)try{var o="",a=s.map.toJSON();if(a){var u=e("source-map").SourceMapConsumer;t.sourcemap=a,P[t.filename]={map:a,smc:new u(a)},o="\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+m(JSON.stringify(a))+"\n"}t.code=s.code+o}catch(e){t.code=s}else t.code=s;return t}function w(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n);var i={origCode:e.toString(),filename:t};try{return i.ast=F.parse(i.origCode,r&&r.parser),r.babelTree&&F.treeWalker(i.ast,function(e,t,n){"Literal"===e.type?n[0].replace(j.babelLiteralNode(e.value)):"Property"===e.type&&("ClassBody"===n[0].parent.type?e.type="ClassProperty":e.type="ObjectProperty"),t()}),i}catch(e){if(e instanceof SyntaxError){var s=i.origCode.substr(e.pos-e.loc.column);s=s.split("\n")[0],e.message+=" "+t+" (nodent)\n"+s+"\n"+s.replace(/[\S ]/g,"-").substring(0,e.loc.column)+"^",e.stack=""}throw e}}function E(e){var t={};return Error.captureStackTrace(t,q),function(n){if(n instanceof Error&&t){try{n.stack=n.stack.split("\n").slice(0,3).filter(function(e){return!e.match(/^\s*at.*nodent\.js/)}).join("\n")+n.stack.split("\n").slice(3).map(function(e){return"\n "+e}).join("")+t.stack.split("\n").slice(2).filter(function(e){return!e.match(/^\s*at.*nodent\.js/)}).map(function(e,t){return t?"\n"+e:e.replace(/^(\s*)at /g,"\n$1await ")}).join("")}catch(e){}t=null}return e.call(this,n)}}function S(t,n){n=n||{};var r=t+"|"+Object.keys(n).sort().reduce(function(e,t){return e+t+JSON.stringify(n[t])},"");return this.covers[r]||(t.indexOf("/")>=0?this.covers[r]=e(t):this.covers[r]=e(c+"/covers/"+t)),this.covers[r](this,n)}function k(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n),r=r||{};for(var i in D)i in r||(r[i]=D[i]);var s=this.parse(e,t,null,r);return this.asynchronize(s,null,r,this.log||h),this.prettyPrint(s,r),s}function A(t,n,r){var i={},s=this;n||(n=/\.njs$/),r?r.compiler||(r.compiler={}):r={compiler:{}};var o=l([I,r.compiler]);return function(a,u,c){function l(e){u.statusCode=500,u.write(e.toString()),u.end()}if(i[a.url])return u.setHeader("Content-Type",i[a.url].contentType),r.setHeaders&&r.setHeaders(u),u.write(i[a.url].output),void u.end();if(!(a.url.match(n)||r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)))return c&&c();var p=t+a.url;if(r.extensions&&!N.existsSync(p))for(var h=0;h<r.extensions.length;h++)if(N.existsSync(p+"."+r.extensions[h])){p=p+"."+r.extensions[h];break}N.readFile(p,function(t,n){if(t)return l(t);try{var c,p;r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)?(c=e("./htmlScriptParser")(s,n.toString(),a.url,r),p="text/html"):(r.runtime?(c="Function.prototype."+o.$asyncbind+" = "+q.toString()+";",o.generators&&(c+="Function.prototype."+o.$asyncspawn+" = "+W.toString()+";"),o.wrapAwait&&!o.promises&&(c+="Object."+o.$makeThenable+" = "+z.resolve.toString()+";"),o.mapStartLine=c.split("\n").length,c+="\n"):c="",c+=s.compile(n.toString(),a.url,null,o).code,p="application/javascript"),u.setHeader("Content-Type",p),r.enableCache&&(i[a.url]={output:c,contentType:p}),r.setHeaders&&r.setHeaders(u),u.write(c),u.end()}catch(e){return l(e)}})}}function _(e){this.covers={},this._ident=_.prototype.version+"_"+Math.random(),this.setOptions(e)}function C(e,t){function n(e){var t=e.getFileName();if(t&&P[t]){var n=P[t].smc.originalPositionFor({line:e.getLineNumber(),column:e.getColumnNumber()});if(n&&n.line){var r=e.toString();return"\n at "+r.substring(0,r.length-1)+" => …"+n.source+":"+n.line+":"+n.column+(e.getFunctionName()?")":"")}}return"\n at "+e}return e+t.map(n).join("")}function L(e){var t={};t[D.$asyncbind]={value:q,writable:!0,enumerable:!1,configurable:!0},t[D.$asyncspawn]={value:W,writable:!0,enumerable:!1,configurable:!0},t.noDentify={value:g,configurable:!0,enumerable:!1,writable:!0};try{Object.defineProperties(Function.prototype,t)}catch(t){e.log("Function prototypes already assigned: ",t.messsage)}D[D.$error]in r||(r[D[D.$error]]=p),e.asyncStackTrace&&(q.wrapAsyncStack=E),e.augmentObject&&Object.defineProperties(Object.prototype,{asyncify:{value:function(e,t,n){return b(e)(this,t,n)},writable:!0,configurable:!0},isThenable:{value:function(){return z.isThenable(this)},writable:!0,configurable:!0}}),Object[D.$makeThenable]=z.resolve}function T(t){function n(e,t){e=e.split("."),t=t.split(".");for(var n=0;n<3;n++){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}function r(i,s){if(!s.match(/nodent\/nodent.js$/)){for(var u=0;u<o.length;u++)if(s.slice(0,o[u].path.length)==o[u].path){if(o[u].jsCompiler){if(o[u].jsCompiler===r)break;return o[u].jsCompiler.apply(this,arguments)}return O(i,s)}var c=y(N.readFileSync(s,"utf8")),l=d(c,t.log,s);return l?a(i,s,l):O(i,s)}var p={path:s.replace(/\/node_modules\/nodent\/nodent.js$/,"")};p.path&&(p.version=JSON.parse(N.readFileSync(s.replace(/nodent\.js$/,"package.json"))).version,O(i,s),n(p.version,_.prototype.version)<0&&(p.originalNodentLoader=i.exports,i.exports=function(){var n=e.extensions[".js"],r=p.originalNodentLoader.apply(this,arguments);return p.jsCompiler=e.extensions[".js"],e.extensions[".js"]=n,L(t),r},Object.keys(p.originalNodentLoader).forEach(function(e){i.exports[e]=p.originalNodentLoader[e]}),o.push(p),o=o.sort(function(e,t){return t.path.length-e.path.length})))}function i(n){if(Array.isArray(n))return n.forEach(i);if(e.extensions[n]){var r=Object.keys(t).filter(function(e){return Y[e]!=t[e]});r.length&&t.log("File extension "+n+" already configured for async/await compilation.")}e.extensions[n]=v(Y,t.log)}if(t){for(var s in t)if("use"!==s&&!M.hasOwnProperty(s))throw new Error("NoDent: unknown option: "+s+"="+JSON.stringify(t[s]))}else t={};Y?Y.setOptions(t):(Object.keys(M).forEach(function(e){e in t||(t[e]=M[e])}),Y=new _(t)),t.dontMapStackTraces||(Error.prepareStackTrace=C),L(t);var o=[];if(!t.dontInstallRequireHook){if(!O){O=e.extensions[".js"];var a=v(Y,t.log);e.extensions[".js"]=r}t.extension&&i(t.extension)}return t.use&&(Array.isArray(t.use)?(t.log("Warning: nodent({use:[...]}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),t.use.length&&t.use.forEach(function(e){Y[e]=Y.require(e)})):(t.log("Warning: nodent({use:{...}}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),Object.keys(t.use).forEach(function(e){Y[e]=Y.require(e,t.use[e])}))),Y}function R(){function t(e){return new z(function(t,n){var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var e=r.map(function(e){return e.toString()}).join("");return t(e)}),e.on("error",n)}.$asyncbind(this))}function i(e){for(var t=[],r=e||2;r<n.argv.length;r++)if("--"===n.argv[r].slice(0,2)){var i=n.argv[r].slice(2).split("=");t[i[0]]=i[1]||!0}else t.push(n.argv[r]);return t}function s(e){var t,n;u.fromast?(e=JSON.parse(e),t={origCode:"",filename:o,ast:e},n=d(e,c.log),n||(u.use=u.use?'"use nodent-'+u.use+'";':'"use nodent";',n=d(u.use,c.log),console.warn("/* "+o+": No 'use nodent*' directive, assumed "+u.use+" */"))):(n=d(u.use?'"use nodent-'+u.use+'";':e,c.log),n||(u.use='"use nodent";',n=d(u.use,c.log),console.warn("/* "+o+": 'use nodent*' directive missing/ignored, assumed "+u.use+" */")),t=c.parse(e,o,n)),u.parseast||u.pretty||c.asynchronize(t,void 0,n,c.log),c.prettyPrint(t,n),(u.out||u.pretty)&&(u.runtime&&(console.log("Function.prototype.$asyncbind = "+Function.prototype.$asyncbind.toString()+";\n"),console.log("global.$error = global.$error || "+r.$error.toString()+";\n")),console.log(t.code)),(u.minast||u.parseast)&&console.log(JSON.stringify(t.ast,function(e,t){return"$"===e[0]||e.match(/^(start|end|loc)$/)?void 0:t},2,null)),u.ast&&console.log(JSON.stringify(t.ast,function(e,t){return"$"===e[0]?void 0:t},0)),u.exec&&new Function(t.code)()}var o,a=e("path"),u=(n.env.NODENT_OPTS&&JSON.parse(n.env.NODENT_OPTS)||{},i());T.setDefaultCompileOptions({sourcemap:u.sourcemap,wrapAwait:u.wrapAwait,lazyThenables:u.lazyThenables,noUseDirective:!!u.use});var c=T({augmentObject:!0});if(!(u.fromast||u.parseast||u.pretty||u.out||u.ast||u.minast||u.exec))try{var l=a.resolve(u[0]);return e(l)}catch(e){throw e&&(e.message=u[0]+": "+e.message),e}return 0==u.length||"-"===u[0]?(o="(stdin)",t(n.stdin).then(s,p)):(o=a.resolve(u[0]),s(y(N.readFileSync(o,"utf8"))))}var O,P={},N=e("fs"),B=e("./lib/output"),F=e("./lib/parser"),j=e("./lib/arboriculture"),M={log:function(e){console.warn("Nodent: "+e)},augmentObject:!1,extension:".njs",dontMapStackTraces:!1,asyncStackTrace:!1,babelTree:!1,dontInstallRequireHook:!1},I={lazyThenables:!1,noUseDirective:!1,wrapAwait:null,mapStartLine:0,sourcemap:!0,parser:{sourceType:"script"},$return:"$return",$error:"$error",$arguments:"$args",$asyncspawn:"$asyncspawn",$asyncbind:"$asyncbind",generatedSymbolPrefix:"$",$makeThenable:"$makeThenable"},D=Object.create(I,{es7:{value:!0,writable:!0,enumerable:!0}}),$={default:D,es7:Object.create(D),promise:Object.create(D,{promises:{value:!0,writable:!0,enumerable:!0}}),generator:Object.create(D,{generators:{value:!0,writable:!0,enumerable:!0},es7:{value:!1,writable:!0,enumerable:!0}}),engine:Object.create(D,{engine:{value:!0,writable:!0,enumerable:!0},promises:{value:!0,writable:!0,enumerable:!0}})};$.promises=$.promise,$.generators=$.generator;var V=/^\s*['"]use\s+nodent-?([a-zA-Z0-9]*)?(\s*.*)?['"]\s*;/,U=e("./lib/runtime"),q=U.$asyncbind,W=U.$asyncspawn,z=e("./lib/thenable");_.prototype.setOptions=function(e){return this.log=e.log===!1?h:e.log||this.log,this.options=l([this.options,e]),delete this.options.log,this},_.prototype.version=e("./package.json").version,_.prototype.Thenable=z,_.prototype.EagerThenable=e("./lib/eager.js"),_.prototype.isThenable=z.isThenable,_.prototype.asyncify=b,_.prototype.require=S,_.prototype.generateRequestHandler=A,_.prototype.$asyncspawn=W,_.prototype.$asyncbind=q,_.prototype.parse=w,_.prototype.compile=k,_.prototype.asynchronize=j.asynchronize,_.prototype.prettyPrint=x,_.prototype.parseCompilerOptions=d,_.prototype.getDefaultCompileOptions=void 0,Object.defineProperty(_.prototype,"Promise",{get:function(){return initOpts.log("Warning: nodent.Promise is deprecated. Use nodent.Thenable instead"),z},enumerable:!1,configurable:!1});var Y;T.setDefaultCompileOptions=function(e,t){return e&&Object.keys(e).forEach(function(t){if(!(t in D))throw new Error("NoDent: unknown compiler option: "+t);D[t]=e[t]}),t&&Object.keys(t).forEach(function(e){if(!(e in t))throw new Error("NoDent: unknown configuration option: "+e);M[e]=t[e]}),T},T.setCompileOptions=function(e,t){return optionSet[e]=optionSet[e]||l([D]),t&&Object.keys(t).forEach(function(n){if(!(n in D))throw new Error("NoDent: unknown compiler option: "+n);optionSet[e][n]=t[n]}),T},T.asyncify=b,T.Thenable=z,T.EagerThenable=e("./lib/eager.js"),t.exports=T,e.main===t&&n.argv.length>=3&&R()}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/nodent")},{"./htmlScriptParser":8,"./lib/arboriculture":9,"./lib/eager.js":10,"./lib/output":11,"./lib/parser":12,"./lib/runtime":13,"./lib/thenable":14,"./package.json":38,_process:7,buffer:2,fs:1,path:6,resolve:20,"source-map":37}]},{},[]); \ No newline at end of file
+/* nodent 3.0.7: NoDent - Asynchronous Javascript language extensions */
+require=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return o.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=o.prototype):(null===e&&(e=new o(t)),e.length=t),e}function o(e,t,n){if(!(o.TYPED_ARRAY_SUPPORT||this instanceof o))return new o(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,n)}function a(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?f(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t,n,r){return u(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}function l(e,t){if(u(t),e=s(e,t<0?0:0|y(t)),!o.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!o.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|g(t,n);e=s(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function h(e,t){var n=t.length<0?0:0|y(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function f(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),o.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=o.prototype):e=h(e,t),e}function d(e,t){if(o.isBuffer(t)){var n=0|y(t.length);return e=s(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||Q(t.length)?s(e,0):h(e,t);if("Buffer"===t.type&&K(t.data))return h(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function y(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),o.alloc(+e)}function g(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return F(this,t,n);case"utf8":case"utf-8":return P(this,t,n);case"ascii":return R(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return L(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;c<a;c++)if(s(e,c)===s(t,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===u)return l*o}else l!==-1&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;h<u;h++)if(s(e,c+h)!==s(t,h)){p=!1;break}if(p)return c}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var s=t.length;if(s%2!==0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o<r;++o){var a=parseInt(t.substr(2*o,2),16);if(isNaN(a))return o;e[n+o]=a}return o}function S(e,t,n,r){return H(z(t,e.length-n),e,n,r)}function k(e,t,n,r){return H(Y(t),e,n,r)}function A(e,t,n,r){return k(e,t,n,r)}function _(e,t,n,r){return H(J(t),e,n,r)}function C(e,t,n,r){return H(G(t,e.length-n),e,n,r)}function L(e,t,n){return 0===t&&n===e.length?X.fromByteArray(e):X.fromByteArray(e.slice(t,n))}function P(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s=e[i],o=null,a=s>239?4:s>223?3:s>191?2:1;if(i+a<=n){var u,c,l,p;switch(a){case 1:s<128&&(o=s);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&s)<<6|63&u,p>127&&(o=p));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(p=(15&s)<<12|(63&u)<<6|63&c,p>2047&&(p<55296||p>57343)&&(o=p));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(p=(15&s)<<18|(63&u)<<12|(63&c)<<6|63&l,p>65535&&p<1114112&&(o=p))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return T(r)}function T(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function R(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function F(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s<n;++s)i+=W(e[s]);return i}function N(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function $(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function B(e,t,n,r,i,s){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function I(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-n,2);i<s;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function j(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-n,4);i<s;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function M(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return i||M(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function V(e,t,n,r,i){return i||M(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function U(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function Y(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function G(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,s.push(i),s.push(r);return s}function J(e){return X.toByteArray(U(e))}function H(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e){return e!==e}var X=e("base64-js"),Z=e("ieee754"),K=e("isarray");n.Buffer=o,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return a(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,n){return c(null,e,t,n)},o.allocUnsafe=function(e){return l(null,e)},o.allocUnsafeSlow=function(e){return l(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(e,t){if(!K(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return o.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=o.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var s=e[n];if(!o.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(r,i),i+=s.length}return r},o.byteLength=g,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},o.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},o.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},o.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},o.prototype.equals=function(e){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===o.compare(this,e)},o.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var s=i-r,a=n-t,u=Math.min(s,a),c=this.slice(r,i),l=e.slice(t,n),p=0;p<u;++p)if(c[p]!==l[p]){s=c[p],a=l[p];break}return s<a?-1:a<s?1:0},o.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},o.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},o.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},o.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;o.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(o.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=o.prototype;else{var i=t-e;r=new o(i,void 0);for(var s=0;s<i;++s)r[s]=this[s+e]}return r},o.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},o.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||$(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||$(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||$(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||$(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||$(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||$(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},o.prototype.readInt8=function(e,t){return t||$(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},o.prototype.readInt16LE=function(e,t){t||$(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||$(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||$(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||$(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||$(e,4,this.length),Z.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||$(e,4,this.length),Z.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||$(e,8,this.length),Z.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||$(e,8,this.length),Z.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;B(this,e,t,n,i,0)}var s=1,o=0;for(this[t]=255&e;++o<n&&(s*=256);)this[t+o]=e/s&255;return t+n},o.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;B(this,e,t,n,i,0)}var s=n-1,o=1;for(this[t+s]=255&e;--s>=0&&(o*=256);)this[t+s]=e/o&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):j(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(o*=256);)e<0&&0===a&&0!==this[t+s-1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);B(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):I(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):I(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):j(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||B(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):j(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},o.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!o.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var s;if("number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{var a=o.isBuffer(e)?e:z(new o(e,r).toString()),u=a.length;for(s=0;s<n-t;++s)this[s+t]=a[s%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":3,ieee754:4,isarray:5}],3:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function s(e){var t,n,i,s,o,a,u=e.length;o=r(e),a=new p(3*u/4-o),i=o>0?u-4:u;var c=0;for(t=0,n=0;t<i;t+=4,n+=3)s=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[c++]=s>>16&255,a[c++]=s>>8&255,a[c++]=255&s;return 2===o?(s=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[c++]=255&s):1===o&&(s=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[c++]=s>>8&255,a[c++]=255&s),a}function o(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function a(e,t,n){for(var r,i=[],s=t;s<n;s+=3)r=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(o(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",s=[],o=16383,u=0,l=n-r;u<l;u+=o)s.push(a(e,u,u+o>l?l:u+o));return 1===r?(t=e[n-1],i+=c[t>>2],i+=c[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=c[t>>10],i+=c[t>>4&63],i+=c[t<<2&63],i+="="),s.push(i),s.join("")}n.byteLength=i,n.toByteArray=s,n.fromByteArray=u;for(var c=[],l=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=h.length;f<d;++f)c[f]=h[f],l[h.charCodeAt(f)]=f;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},{}],4:[function(e,t,n){n.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,p=n?i-1:0,h=n?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+p],p+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+p],p+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:(f?-1:1)*(1/0);o+=Math.pow(2,r),s-=c}return(f?-1:1)*o*Math.pow(2,s-r)},n.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<<c)-1,p=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+p>=1?h/u:h*Math.pow(2,1-p),t*u>=2&&(o++,u/=2),o+p>=l?(a=0,o=l):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<<i|a,c+=i;c>0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],5:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],6:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),s="/"===o(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),o=Math.min(i.length,s.length),a=o,u=0;u<o;u++)if(i[u]!==s[u]){a=u;break}for(var c=[],u=a;u<i.length;u++)c.push("..");return c=c.concat(s.slice(a)),c.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=s(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=s(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return s(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:7}],7:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===i||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?y=d.concat(y):g=-1,y.length&&u())}function u(){if(!m){var e=s(a);m=!0;for(var t=y.length;t;){for(d=y,y=[];++g<t;)d&&d[g].run();g=-1,t=y.length}d=null,m=!1,o(e)}}function c(e,t){this.fun=e,this.array=t}function l(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{h="function"==typeof clearTimeout?clearTimeout:i}catch(e){h=i}}();var d,y=[],m=!1,g=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new c(e,t)),1!==y.length||m||s(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=l,f.addListener=l,f.once=l,f.off=l,f.removeListener=l,f.removeAllListeners=l,f.emit=l,f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],8:[function(e,t,n){t.exports=function(e,t,n,r){var i=[[],[]],s=[/(.*)(<script[^>]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u<t.length;){var c=s[o].exec(t[u]);c&&0==o&&c[2].match("src=")&&(c=null),c?(1==o?(i[o].push(c[1]),pr=e.compile(i[1].join("\n"),n,3,r.compiler).code,a&&r.runtime&&(a=!1,r.runtime&&i[0].push("Function.prototype.$asyncbind = "+e.$asyncbind.toString()+";\n")),i[0].push(pr),i[1]=[],o=0,i[o].push(c[2])):(i[o].push(c[1]),i[o].push(c[2]),o=1),t[u]=c[3]):i[o].push(t[u++])}return i[0].join("\n")}},{}],9:[function(e,t,n){"use strict";function r(e){if(!e)return"";if(Array.isArray(e))return e.map(r).join("|\n");try{return g(e)}catch(t){return t.message+": "+(e&&e.type)}}function i(e){if(Array.isArray(e))return e.map(function(e){return i(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function s(e,t){e!==t&&(e.__proto__=Object.getPrototypeOf(t),Object.keys(e).forEach(function(t){t in v||delete e[t]}),Object.keys(t).forEach(function(n){n in e||(e[n]=t[n])}))}function o(){}function a(e){return e?(x.node=e,x):{}}function u(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return u(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var o=0;o<e.length;o++)if(i=u(e[o],t))return i;return null}var c=n;"function"!=typeof n&&(c=n?function(e){return!0}:function(e){return!a(e).isScope});try{m.treeWalker(e,function(n,r,i){if(t(n))throw s.path=i,s;(n===e||c(n))&&r()})}catch(e){if(e===s)return s.path;throw e}return null}function c(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden})}function l(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden},function(e){var t=a(e);return!t.isBlockStatement&&!t.isScope})}function p(e){return u(e,{type:"ThisExpression"})}function h(e){if(null===e)return{type:"NullLiteral",value:null,raw:"null"};if(e===!0||e===!1)return{type:"BooleanLiteral",value:e,raw:JSON.stringify(e)};if(e instanceof RegExp){var t=e.toString(),n=t.split("/");return{type:"RegExpLiteral",value:e,raw:t,pattern:n[1],flags:n[2]}}return"number"==typeof e?{type:"NumericLiteral",value:e,raw:JSON.stringify(e)}:{type:"StringLiteral",value:e,raw:JSON.stringify(e)}}function f(e,t){return{type:"Identifier",name:e,loc:t}}function d(e){var t={};for(var n in e)t[n]="string"==typeof e[n]?f(e[n]):e[n];return t}function y(e,t,n,y){function g(e,t){if(n.noRuntime){if(t){if(a(t).isLiteral)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");e.body.body=m.part("try {$:0} catch($2) {return $1($2)}",[i(e.body),t,f("$boundEx")]).body}return m.part("$0.bind(this)",[e]).expr}return t?m.part("$0.$1(this,$2)",[e,ge.asyncbind,t]).expr:m.part("$0.$1(this)",[e,ge.asyncbind]).expr}function v(e,t,n,r){return m.part("var $0 = $1",[f(e),g({type:"FunctionExpression",id:null,generator:!1,expression:!1,params:n||[],body:t},r)]).body[0]}function b(t){return e.filename+(t&&t.loc&&t.loc.start?"("+t.loc.start.line+":"+t.loc.start.column+")\t":"\t")}function x(e){return n.babelTree?h(e):{type:"Literal",value:e,raw:JSON.stringify(e)}}function w(e){return e?!n.babelTree||"ClassMethod"!==e.type&&"ObjectMethod"!==e.type?(!n.babelTree&&"MethodDefinition"===e.type||"Property"===e.type&&(e.method||"get"==e.kind||"set"==e.kind))&&a(e.value).isFunction?e.value:null:e:null}function E(e){if(!e)return!1;var t=!1;if(Array.isArray(e)){for(var r=0;r<e.length;r++)E(e[r])&&(t=!0);return t}return m.treeWalker(e,function(r,i,s){"Identifier"===r.type&&"arguments"===r.name?(r.name=n.$arguments,t=!0):r!==e&&a(r).isFunction||i()}),t}function S(e){return"string"!=typeof e&&(e=e.type.replace(/Statement|Expression/g,"")),n.generatedSymbolPrefix+e+"_"+me++}function k(e,t){return e&&(e.$exit=d({$error:t.$error,$return:t.$return})),e}function A(e){for(var t=0;t<e.length;t++){if(e[t].self.$exit)return e[t].self;if(e[t].parent&&e[t].parent.$exit)return e[t].parent}return null}function _(e,t){var n=A(e);if(n)return n.$exit;if(t)for(var r=0;r<t.length;r++)if(t[r])return d(t[r]);return null}function C(e,t){var r=!(n.promises||n.generators||n.engine)&&n.lazyThenables;le(e),ae(e),D(e),Z(e),X(e),(r?H:o)(e),$(e),N(e),W(e,[q,r?o:J,I,j,B]),z(e,t),pe(e),de(e)}function L(e,t){var n={$continuation:!0,type:e?"FunctionDeclaration":"FunctionExpression",id:e?"string"==typeof e?f(e):e:void 0,params:[],body:{type:"BlockStatement",body:i(t)}};return e&&(ye[e]={def:n}),n}function P(e){return{type:"AwaitExpression",argument:Z({type:"FunctionExpression",generator:!1,expression:!1,async:!0,params:[],body:{type:"BlockStatement",body:e}}).body.body[0].argument}}function T(e,t){"string"==typeof e&&(e=f(e));var n=m.part("$0.call($1)",[e,[{type:"ThisExpression"}].concat(t||[])]).expr;return e.$thisCall=n,n.$thisCallName=e.name,n}function R(e,t){return{type:"ReturnStatement",argument:T(e,t)}}function O(e,t){return{type:"CallExpression",callee:f(e.$seh+"Finally"),arguments:t?[t]:[]}}function F(e,t){if(Array.isArray(e))return e.map(function(e){return F(e,t)});var r=0;return m.treeWalker(e,function(e,t,i){if("ReturnStatement"!==e.type||e.$mapped){if("ThrowStatement"===e.type){if(r>0){if(!a(e).isAsync)return t(e);delete e.async}return e.type="ReturnStatement",e.$mapped=!0,void(e.argument={type:"CallExpression",callee:_(i,[n]).$error,arguments:[e.argument]})}return a(e).isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!a(e).isAsync)return t(e);delete e.async;
+}return e.$mapped=!0,void(a(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:_(i,[n]).$return,arguments:e.argument?[e.argument]:[]})},t)}function N(e,t){return Array.isArray(e)?e.map(function(e){return N(e,t)}):(m.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(c(e.alternate)||c(e.consequent))){var r=(f(S("condOp")),P(m.part("if ($0) return $1 ; return $2",[e.test,e.consequent,e.alternate]).body));s(e,r)}},t),e)}function $(e,t){return Array.isArray(e)?e.map(function(e){return $(e,t)}):(m.treeWalker(e,function(e,t,n){if(t(),"LogicalExpression"===e.type&&c(e.right)){var r,i=f(S("logical"+("&&"===e.operator?"And":"Or")));if("||"===e.operator)r="var $0; if (!($0 = $1)) {$0 = $2} return $0";else{if("&&"!==e.operator)throw new Error(b(e)+"Illegal logical operator: "+e.operator);r="var $0; if ($0 = $1) {$0 = $2} return $0"}s(e,P(m.part(r,[i,e.left,e.right]).body))}},t),e)}function B(e,t,n){if("SwitchCase"!==e.type&&a(e).isBlockStatement)for(var r=0;r<e.body.length;){var i=e.body[r];if("SwitchCase"!==i.type&&a(i).isBlockStatement){var s=fe(i.body);if(s)if(l(i)){var o=S(i),u=e.body.splice(r+1,e.body.length-(r+1));if(u.length){var c=L(o,u);delete ye[o],i.body.push(R(o)),e.body.push(c),r++}else r++}else r++;else e.body.splice.apply(e.body,[r,1].concat(i.body))}else r++}}function I(e,t,n){if("IfStatement"===e.type&&c([e.consequent,e.alternate])){var r=S(e),o=t[0],u={type:"BlockStatement",body:[e]};if("index"in o){var l=o.index,p=o.parent[o.field].splice(l+1,o.parent[o.field].length-(l+1));if(o.replace(u),p.length){var h=R(r);u.body.push(n(L(r,p))),[e.consequent,e.alternate].forEach(function(e){if(e){var t;t=a(e).isBlockStatement?e.body[e.body.length-1]:e,t&&"ReturnStatement"===t.type||("BlockStatement"!==e.type&&s(e,{type:"BlockStatement",body:[i(e)]}),e.$deferred=!0,e.body.push(i(h))),n(e)}}),e.consequent&&e.alternate&&e.consequent.$deferred&&e.alternate.$deferred||u.body.push(i(h))}}else o.parent[o.field]=u}}function j(e,t,n){if(!e.$switched&&"SwitchStatement"===e.type&&c(e.cases)){e.$switched=!0;var r,s,o,a=t[0];if("index"in a){var u=a.index+1;o=a.parent[a.field].splice(u,a.parent[a.field].length-u),o.length&&"BreakStatement"===o[o.length-1].type&&a.parent[a.field].push(o.pop()),r=S(e),s=R(r),a.parent[a.field].unshift(L(r,o)),a.parent[a.field].push(i(s))}return e.cases.forEach(function(e,t){if("SwitchCase"!==e.type)throw new Error("switch contains non-case/default statement: "+e.type);if(c(e.consequent)){var n=e.consequent[e.consequent.length-1];"BreakStatement"===n.type?e.consequent[e.consequent.length-1]=i(s):"ReturnStatement"===n.type||"ThrowStatement"===n.type||(y(b(e)+"switch-case fall-through not supported - added break. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"),e.consequent.push(i(s)))}}),!0}}function M(e){return"ReturnStatement"===e.type||"ThrowStatement"===e.type}function D(t,r){return m.treeWalker(t,function(t,i,s){if("TryStatement"===t.type&&(t.$seh=S("Try")+"_",t.$containedAwait=!!c(t),t.$finallyExit=t.finalizer&&U(s)&&!!u(t.finalizer.body,M),t.$containedAwait||t.$finallyExit)){t.$needsMapping=!r||!t.$finallyExit;var o=_(s,[n]);if(t.finalizer&&!t.handler){var a=f(S("exception"));t.handler={type:"CatchClause",param:a,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:a}]}}}if(!t.handler&&!t.finalizer){var l=new SyntaxError(b(t.value)+"try requires catch and/or finally clause",e.filename,t.start);throw l.pos=t.start,l.loc=t.loc.start,l}t.finalizer?(k(t.block,{$error:t.$seh+"Catch",$return:O(t,o.$return)}),k(t.handler,{$error:O(t,o.$error),$return:O(t,o.$return)})):k(t.block,{$error:t.$seh+"Catch",$return:o.$return})}i()}),t}function V(e,t){for(var n=0;n<e.length;n++)if(!a(e[n]).isDirective)return void e.splice.apply(e,[n,0].concat(t));e.splice.apply(e,[e.length,0].concat(t))}function U(e){for(var t=0;t<e.length;t++)if(a(e[t].self).isFunction)return e[t].self.async||e[t].self.$wasAsync;return!1}function q(t,r,s){if(t.$needsMapping){var o,a,u,c=r[0];if(!("index"in c))throw new Error(e.filename+" - malformed try/catch blocks");var l=c.index+1,p=c.parent[c.field].splice(l,c.parent[c.field].length-l);if(p.length){a=t.$seh+"Post";var h=L(a,p);h=s(h),c.parent[c.field].splice(c.index,0,h),o=R(t.finalizer?O(t,f(a)):a)}else t.finalizer&&(o=R(O(t)));t.$mapped=!0,o&&(t.block.body.push(i(o)),t.handler.body.body.push(i(o)));var d=_(r,[n]);if(t.handler){var y=f(t.$seh+"Catch");u=i(t.handler.body);var g=v(y.name,u,[i(t.handler.param)],t.finalizer?O(t,d.$error):d.$error);t.handler.body.body=[{type:"CallExpression",callee:y,arguments:[i(t.handler.param)]}],c.parent[c.field].splice(c.index,0,g)}if(t.finalizer){var b=m.part("var $decl = (function ($exit) { return (function ($value) { {$:body} return $exit && ($exit.call(this, $value)); }).$asyncbind(this, $error); }).$asyncbind(this);",{decl:f(t.$seh+"Finally"),exit:f(t.$seh+"Exit"),value:f(t.$seh+"Value"),body:i(t.finalizer.body),error:d.$error,asyncbind:ge.asyncbind}).body[0];V(c.parent[c.field],[b]);var x=R(O(t,a&&f(a)));u.body[u.length-1]=x,t.block.body[t.block.body.length-1]=x,delete t.finalizer}}}function W(e,t,n){function r(e,n){return m.treeWalker(e,function(e,n,s){function o(e){return r(e,s)}i.indexOf(e)<0&&(i.push(e),t.forEach(function(t){t(e,s,o)})),n()},n)}var i=[];return r(e,n),e}function z(e,t,o){return m.treeWalker(e,function(e,u,l){if("IfStatement"==e.type&&("BlockStatement"!=e.consequent.type&&c(e.consequent)&&(e.consequent={type:"BlockStatement",body:[e.consequent]}),e.alternate&&"BlockStatement"!=e.alternate.type&&c(e.alternate)&&(e.alternate={type:"BlockStatement",body:[e.alternate]})),u(),a(e).isAwait){var p=e.loc;if(t=t||l.some(function(e){return e.self&&e.self.$wasAsync}),!t||"warn"===t){var h=b(e)+"'await' used inside non-async function. ";h+=n.promises?"'return' value Promise runtime-specific":"'return' value from await is synchronous",y(h+". See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification")}var d=l[0].parent;"LogicalExpression"===d.type&&d.right===e&&y(b(e.argument)+"'"+r(d)+"' on right of "+d.operator+" will always evaluate '"+r(e.argument)+"'"),"ConditionalExpression"===d.type&&d.test!==e&&y(b(e.argument)+"'"+r(d)+"' will always evaluate '"+r(e.argument)+"'");var m=f(S("await")),v=i(e.argument);s(e,m);for(var x,w,E=1;E<l.length;E++)if(w=a(l[E].self).isBlockStatement){x=l[E-1];break}if(!x)throw new Error(b(e)+"Illegal await not contained in a statement");var k,A,C=_(l,[o,n]),L=x.index,P=w.splice(L,w.length-L).slice(1);"ReturnStatement"===x.self.type&&"CallExpression"===x.self.argument.type&&1===x.self.argument.arguments.length&&x.self.argument.arguments[0].name===m.name?A=k=x.self.argument.callee:"Identifier"===x.self.type||x.self.name===m.name||"ExpressionStatement"===x.self.type&&"Identifier"===x.self.expression.type&&x.self.expression.name===m.name?k=P.length?{type:"FunctionExpression",params:[i(m)],body:z({type:"BlockStatement",body:i(P)},t,C)}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}:(P.unshift(x.self),k={type:"FunctionExpression",params:[i(m)],body:z({type:"BlockStatement",body:i(P)},t,C)}),A||(A=k?g(k,C.$error):{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}),n.wrapAwait&&(v={type:"CallExpression",arguments:[v],callee:n.promises||n.generators?{type:"MemberExpression",object:f("Promise"),property:f("resolve")}:{type:"MemberExpression",object:f("Object"),property:f("$makeThenable")}});var T={type:"CallExpression",callee:{type:"MemberExpression",object:v,property:f("then",p),computed:!1},arguments:[A,C.$error]};w.push({loc:p,type:"ReturnStatement",argument:T})}return!0}),e}function Y(e,t){var n=e.$label;delete e.$label;var r=f(S("idx")),i=f(S("in")),o=m.part("var $0,$1 = [];for ($0 in $2) $1.push($0)",[r,i,e.right]).body,u=m.part("for ($0; $1.length;){ $2 = $1.shift(); $:3 ; }",[e.left,i,"VariableDeclaration"===e.left.type?e.left.declarations[0].id:e.left,e.body]).body[0];u.$label=n;for(var c=0;c<t.length;c++)if(a(t[c].parent).isBlockStatement){t[c].parent[t[c].field].splice(t[c].index,0,o[0],o[1]);break}s(e,u)}function G(e,t){"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[e.body]});var n,r,i=m.part("[$0[Symbol.iterator]()]",[e.right]).expr;if("VariableDeclaration"===e.left.type){"const"===e.left.kind&&(e.left.kind="let"),n=e.left.declarations[0].id;var s=se(e.left.declarations[0].id);r=f(S("iterator_"+s.join("_"))),e.left.declarations=s.map(function(e){return{type:"VariableDeclarator",id:f(e)}}),e.left.declarations.push({type:"VariableDeclarator",id:r,init:i}),e.init=e.left}else{n=e.left,r=f(S("iterator_"+n.name));var o={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:r,init:i}]};e.init=o}e.type="ForStatement",e.test=m.part("!($0[1] = $0[0].next()).done && (($1 = $0[1].value) || true)",[r,n]).expr,delete e.left,delete e.right}function J(e,t,r){function i(e){return"AwaitExpression"===e.type&&!e.$hidden||o&&("BreakStatement"===e.type||"ContinueStatement"===e.type)&&e.label}var s=e.$depth;"ForInStatement"===e.type&&c(e)?Y(e,t):"ForOfStatement"===e.type&&c(e)&&G(e,t);var o=t.some(function(e){return"$label"in e.self&&"ForStatement"===e.self.type&&e.self.$mapped});if(!e.$mapped&&a(e).isLoop&&u(e,i)){t[0].self.$mapped=!0;var l=[],p=e.init,h=e.test||x(!0),d=e.update,y=e.body;d&&(d={type:"ExpressionStatement",expression:d}),p&&(a(p).isStatement||(p={type:"ExpressionStatement",expression:p}),l.push(p));var g,v;e.$label?(v=e.$label.name,g=t[1]):(v=me++,g=t[0]),v=n.generatedSymbolPrefix+"Loop_"+v;var b,w,E=f(v+"_trampoline"),S=f(v),k=d?f(v+"_step"):S,A=f(v+"_exit");f("q"),f("$exception");if("index"in g){var C=g.index;w=g.parent[g.field].splice(C+1,g.parent[g.field].length-(C+1))}else w=[];b=L(A,w);var P={type:"ReturnStatement",argument:S},T={type:"ReturnStatement",argument:k},R={type:"ReturnStatement",argument:{type:"ArrayExpression",elements:[x(1)]}};m.treeWalker(y,function(e,t,n){if(a(e).isFunction||a(e).isLoop)return!0;if("BreakStatement"===e.type||"ContinueStatement"===e.type)if(e.label)for(var r=(n.filter(function(e){return"$label"in e.self}).map(function(e,t){return e.self.$label&&e.self.$label.name})),i=[],s=0;s<r.length;s++){if(r[s]===e.label.name){"BreakStatement"===e.type&&i.push(x(1)),n[0].replace({type:"ReturnStatement",argument:{type:"ArrayExpression",elements:i.reverse()}});break}i.push(x(0))}else"BreakStatement"===e.type?n[0].replace(R):n[0].replace(T);else t()},t),y="BlockStatement"===y.type?y.body.slice(0):[y],y="DoWhileStatement"===e.type?y.concat({type:"IfStatement",test:{type:"UnaryExpression",argument:h,prefix:!0,operator:"!"},consequent:R,alternate:T}):[{type:"IfStatement",test:h,consequent:{type:"BlockStatement",body:y.concat(T)},alternate:R}],n.noRuntime&&l.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:E}],kind:"var"});var O,F=_(t,[n]).$error;O=n.noRuntime?m.part("($idTrampoline = (function (q) { $$setMapped: while (q) { if (q.then) "+(1===s?" return void q.then($idTrampoline, $exit); ":" return q.then($idTrampoline, $exit); ")+" try { if (q.pop) if (q.length) return q.pop() ? $idContinuation.call(this) : q; else q = $idStep; else q = q.call(this) } catch (_exception) { return $exit(_exception); } } }).bind(this))($idIter)",{setMapped:function(e){return e.$mapped=!0,e},idTrampoline:E,exit:F,idIter:S,idContinuation:A,idStep:k}).expr:m.part("(Function.$0.trampoline(this,$1,$2,$3,$5)($4))",[ge.asyncbind,A,k,F,S,x(1===s)]).expr,l.push({type:"ReturnStatement",argument:O}),l.push({$label:e.$label,type:"FunctionDeclaration",id:S,params:[],body:{type:"BlockStatement",body:y}}),d&&l.push({type:"FunctionDeclaration",id:k,params:[],body:{type:"BlockStatement",body:[d,P]}}),!p||"VariableDeclaration"!==p.type||"let"!==p.kind&&"const"!==p.kind?(l.push(b),t[0].replace(l.map(r))):("const"===p.kind&&(p.kind="let"),t[0].replace([{type:"BlockStatement",body:l.map(r)},r(b)]))}}function H(e,t){return m.treeWalker(e,function(e,t,r){function o(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:T(e||S)}}}function u(e,t){if("BreakStatement"===e.type)s(e,i(A(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_exit")));else if("ContinueStatement"===e.type)s(e,i(o(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_next")));else if(a(e).isFunction)return!0;t()}"ForInStatement"===e.type&&c(e)?Y(e,r):"ForOfStatement"===e.type&&c(e)&&G(e,r),t();var l;if(a(e).isLoop&&c(e)){var h=e.init,d=e.test||x(!0),y=e.update,v=e.body,b=p(v);h&&(a(h).isStatement||(h={type:"ExpressionStatement",expression:h})),y=y&&{type:"ExpressionStatement",expression:y},v=a(v).isBlockStatement?i(v).body:[i(v)];var w=e.$label&&e.$label.name;w="Loop_"+(w||me++);var E=n.generatedSymbolPrefix+(w+"_exit"),S=n.generatedSymbolPrefix+(w+"_next"),k=f(n.generatedSymbolPrefix+w),A=function(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:{type:"CallExpression",callee:f(e||E),arguments:[]}}}},_=L(S,[{type:"ReturnStatement",argument:{type:"CallExpression",callee:b?g(k):k,arguments:[f(E),ge.error]}}]);y&&_.body.body.unshift(y);for(var C=0;C<v.length;C++)m.treeWalker(v[C],u);v.push(i(o()));var P={type:"FunctionExpression",id:k,params:[f(E),ge.error],body:{type:"BlockStatement",body:[_]}};if("DoWhileStatement"===e.type)_.body.body=[{type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:i(_.body.body)},alternate:{type:"ReturnStatement",argument:{type:"CallExpression",callee:f(E),arguments:[]}}}],P.body.body=[_].concat(v);else{var R={type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:v},alternate:i(A())};P.body.body.push(R)}var O={type:"ExpressionStatement",expression:{type:"AwaitExpression",argument:g(P,x(0))}};for(!h||"VariableDeclaration"!==h.type||"let"!==h.kind&&"const"!==h.kind||("const"===h.kind&&(h.kind="let"),O={type:"BlockStatement",body:[i(h),O]},h=null),l=0;l<r.length;l++){var F=r[l];if("index"in F)return h?F.parent[F.field].splice(F.index,1,i(h),O):F.parent[F.field][F.index]=O,!0}}return!0},t),e}function Q(e){try{return Array.isArray(e)?e.some(Q):(m.treeWalker(e,function(e,t,r){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(a(e).isFunction){var i=u(e,function(e){if("Identifier"===e.type&&(e.name===n.$return||e.name===n.$error))throw e;if(("ReturnStatement"===e.type||"ThrowStatement"===e.type)&&a(e).isAsync)throw e});if(i)throw i;return!1}t()}),!1)}catch(e){return e}}function X(t){return m.treeWalker(t,function(t,r,i){var s=w(t);if(r(),s&&a(s).isAsync){if("set"==t.kind){var o=new SyntaxError(b(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw o.pos=t.start,o.loc=t.loc.start,o}s.async=!1;var u=E(s);Q(s)||0!==s.body.body.length&&"ReturnStatement"===s.body.body[s.body.body.length-1].type||s.body.body.push({type:"ReturnStatement"});var c=g(k({type:"FunctionExpression",params:[ge.return,ge.error],body:X(F(s.body,i)),$wasAsync:!0},n),n.promises||n.generators||n.engine?null:x(!n.lazyThenables||0));n.promises?s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"NewExpression",callee:f("Promise"),arguments:[c]}}]}:s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:c}]},u&&V(s.body.body,[ve])}})}function Z(e,t){return m.treeWalker(e,function(e,r,i){if(r(),a(e).isAsync&&a(e).isFunction){var s;(s=w(i[0].parent))&&a(s).isAsync&&"get"===i[0].parent.kind&&te(i[0].parent.key),delete e.async;var o,u=E(e);return a(e.body).isBlockStatement?(t||Q(e.body)||0!==e.body.body.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),o={type:"BlockStatement",body:e.body.body.map(function(e){return F(e,i)})}):(o={type:"BlockStatement",body:[F({type:"ReturnStatement",argument:e.body},i)]},e.expression=!1),o=g(k({type:"FunctionExpression",params:[ge.return,ge.error],body:o,$wasAsync:!0},n),n.promises||n.generators||n.engine?null:x(!n.lazyThenables||0)),n.promises&&(o={type:"NewExpression",callee:f("Promise"),arguments:[o]}),o={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:o}]},u&&V(o.body,[ve]),void(e.body=o)}}),e}function K(e){if(Array.isArray(e))return e.map(K);var t=0;return m.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(a(e).isFunction)return t++,n(e),void t--}else if(t>0&&a(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?ge.error:ge.return,arguments:e.argument?[e.argument]:[]},void(e.type="ReturnStatement");n(e)})}function ee(e,t){if(n.noRuntime)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");return m.part("{ return (function*($return,$error){ $:body }).$asyncspawn(Promise,this) }",{return:ge.return,error:ge.error,asyncspawn:ge.asyncspawn,body:K(e).concat(t?[{type:"ReturnStatement",argument:ge.return}]:[])}).body[0]}function te(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,y(b(e)+"'async get "+r(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function ne(e,t){function r(e,t){m.treeWalker(e,function(n,r,i){n!==e&&a(n).isFunction||(a(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function o(e){var t=n.promises;n.promises=!0,C(e,!0),n.promises=t}function u(e){return"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),e}function c(e,n){n.$asyncexitwarninig||(n.$asyncexitwarninig=!0,y(b(e)+"'async "+{ReturnStatement:"return",ThrowStatement:"throw"}[e.type]+"' not possible in "+(t?"engine":"generator")+" mode. Using Promises for function at "+b(n)))}m.treeWalker(e,function(e,n,i){n();var l,p,h;if(a(e).isAsync&&a(e).isFunction){var f;(f=w(i[0].parent))&&a(f).isAsync&&"get"===i[0].parent.kind&&te(i[0].parent.key),(p=Q(e.body))?(c(p,e.body),o(e)):t?"get"!==i[0].parent.kind&&r(e,!0):(l=e,delete l.async,h=E(l),r(l,!1),l=u(l),l.body=ee(l.body.body,p),h&&V(l.body.body,[ve]),l.id&&"ExpressionStatement"===i[0].parent.type?(l.type="FunctionDeclaration",i[1].replace(l)):i[0].replace(l))}else(l=w(e))&&a(l).isAsync&&((p=Q(l))?(c(p,l),o(e)):t&&"get"!==e.kind||(t?o(e):(e.async=!1,h=E(l),r(l,!1),s(l,u(l)),l.body=ee(l.body.body,p)),h&&V(l.body.body,[ve])))});var l=i(n);return n.engine=!1,n.generators=!1,le(e),ae(e),D(e,l.engine),$(e),N(e),W(e,[q,J,I,j,B]),z(e,"warn"),n.engine=l.engine,n.generators=l.generators,e}function re(e,t,n){var r=[];return m.treeWalker(e,function(i,s,o){return i===e?s():t(i,o)?void r.push([].concat(o)):void(n||a(i).isScope||s())}),r}function ie(e,t){var n=[],r={};if(e=e.filter(function(e){return"ExportNamedDeclaration"!==e[0].parent.type}),e.length){var s={};e.forEach(function(e){function t(e){e in s?r[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u<o.declarations.length;u++){var c=o.declarations[u];if(se(c.id).forEach(t),c.init){var l={type:"AssignmentExpression",left:i(c.id),operator:"=",right:i(c.init)};a.push(l)}}if(0==a.length)n.remove();else{var p=a.length>1?{type:"SequenceExpression",expressions:a}:a[0];"For"!==n.parent.type.slice(0,3)&&(p={type:"ExpressionStatement",expression:p}),n.replace(p)}});var o=Object.keys(s);o.length&&(o=o.map(function(e){return{type:"VariableDeclarator",id:f(e),loc:s[e].loc,start:s[e].start,end:s[e].end}}),n[0]&&"VariableDeclaration"===n[0].type?n[0].declarations=n[0].declarations.concat(o):n.unshift({type:"VariableDeclaration",kind:t,declarations:o}))}return{decls:n,duplicates:r}}function se(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(se(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(se(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(se(t))},[]);case"ObjectProperty":case"Property":return se(e.value);case"RestElement":case"RestProperty":return se(e.argument)}}function oe(e){function t(e){y(b(e)+"Possible assignment to 'const "+r(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===i[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===i[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===i[e.key.name]&&t(e)})}}var i={};m.treeWalker(e,function(e,t,r){var s=a(e).isBlockStatement;if(s){i=Object.create(i);for(var o=0;o<s.length;o++)if("VariableDeclaration"===s[o].type)for(var u=0;u<s[o].declarations.length;u++)se(s[o].declarations[u].id).forEach(function(e){i[e]=s[o].kind})}t(),"AssignmentExpression"===e.type?n(e.left):"UpdateExpression"===e.type&&n(e.argument),s&&(i=Object.getPrototypeOf(i))})}function ae(e){function t(e){return function(t,n){if("VariableDeclaration"===t.type&&(t.kind=t.kind||"var")&&e.indexOf(t.kind)>=0){var r=n[0];return("left"!=r.field||"ForInStatement"!==r.parent.type&&"ForOfStatement"!==r.parent.type)&&("init"!=r.field||"ForStatement"!==r.parent.type||"const"!==t.kind&&"let"!==t.kind)}}}function n(e,t){return!("FunctionDeclaration"!==e.type||!e.id)&&(a(e).isAsync||!e.$continuation)}oe(e);var i=!1;return m.treeWalker(e,function(e,s,o){var u=i;if(i=i||he(e),a(e).isBlockStatement){var l=c(e);if(l){var p,h,d,m,g,v=!o[0].parent||a(o[0].parent).isScope;if(v){h=re(e,t(["const"]),!1);var x={},w={};h.forEach(function(e){e[0].self.declarations.forEach(function(e){se(e.id).forEach(function(t){x[t]||w[t]?(delete x[t],w[t]=e):x[t]=e})})}),h.forEach(function(e){for(var t=0;t<e.length&&!a(e[t].parent).isBlockStatement;t++);var n=e[t];n.append({type:"ExpressionStatement",expression:{type:"SequenceExpression",expressions:e[0].self.declarations.map(function(e){var t={type:"AssignmentExpression",operator:"=",left:e.id,right:e.init};return e.init=null,t})}});var r=se(e[0].self.declarations),i=r.filter(function(e){return e in w});i.length&&e[0].append({type:"VariableDeclaration",kind:"let",declarations:i.map(function(e){return{type:"VariableDeclarator",id:f(e)}})}),e[0].self.kind="var",i=r.filter(function(e){return e in x}),i.length?e[0].self.declarations=i.map(function(e){return{type:"VariableDeclarator",id:f(e)}}):n.remove()}),d=re(e,t(["var"]),!1),m=[]}else m=re(e,t(["const"]),!0);m=m.concat(re(e,t(["let"]),!0)),p=re(e,function(e){return a(e).isDirective},!0),g=re(e,n,i),d=d?ie(d,"var"):{duplicates:{},decls:[]},m=m?ie(m,"let"):{duplicates:{},decls:[]},Object.keys(d.duplicates).forEach(function(e){y(b(d.duplicates[e])+"Duplicate declaration '"+r(d.duplicates[e])+"'")}),Object.keys(m.duplicates).forEach(function(e){y(b(m.duplicates[e])+"Duplicate declaration '"+r(m.duplicates[e])+"'")}),g=g.map(function(e){var t,n=e[0];if(a(n.self).isAsync)return t=n.self.id.name,a(n.parent).isBlockStatement?(n.self.type="FunctionDeclaration",n.remove(),n.self):n.replace(f(t));t=n.self.id.name;var r="FunctionDeclaration"===n.self.type?n.remove():n.replace(f(t));return r}),p=p.map(function(e){var t=e[0];return t.remove()}),(p.length||d.decls.length||m.decls.length||g.length)&&(e.body=p.concat(d.decls).concat(m.decls).concat(g).concat(e.body))}i=u}if(s(),"ForOfStatement"===e.type||"ForInStatement"===e.type||a(e).isLoop){for(var E=0,S=0;S<o.length;S++)if("ForOfStatement"===o[S].self.type||"ForInStatement"===o[S].self.type||a(o[S].self).isLoop)E+=1;else if(a(o[S].self).isFunction)break;e.$depth=E,"LabeledStatement"===o[0].parent.type?e.$label=o[0].parent.label:e.$label=null}return!0}),e}function ue(e,t){function n(){return e.$superID=e.$superID||f("$super$"+me++)}return function(e){e=w(e),e&&a(e).isAsync&&(!t||"get"===e.kind||u(e,function(e){return a(e).isFunction&&u(e,function(e){return"Super"===e.type})&&u(e,function(e){return e.async&&("ReturnStatement"===e.type||"ThrowStatement"===e.type)})},!0))&&m.treeWalker(e.body,function(e,t,r){var i;a(e).isClass||(t(),"Super"===e.type&&("MemberExpression"===r[0].parent.type?"CallExpression"===r[1].parent.type&&"callee"===r[1].field?(i=m.part("this.$super($field).call(this,$args)",{super:n(),field:r[0].parent.computed?r[0].parent.property:x(r[0].parent.property.name),args:r[1].parent.arguments}).expr,r[2].replace(i)):(i=m.part("this.$super($field)",{super:n(),field:r[0].parent.computed?r[0].parent.property:x(r[0].parent.property.name)}).expr,r[1].replace(i)):y(b(e)+"'super' in async methods must be deferenced. 'async constructor()'/'await super()' not valid.")))})}}function ce(e,t){return m.treeWalker(e,function(e,r,i){if(r(),("ClassDeclaration"===e.type||"ClassExpression"===e.type)&&(e.body.body.forEach(ue(e,t)),e.$superID)){var s=m.part("(function($field) { return super[$field] })",{field:f("$field")}).expr;n.babelTree?(s.type="ClassMethod",s.key=e.$superID,s.kind="method",e.body.body.push(s)):e.body.body.push({type:"MethodDefinition",key:e.$superID,kind:"method",value:s})}})}function le(e){return m.treeWalker(e,function(e,t,n){var r=c(e);return r&&"ArrowFunctionExpression"===e.type&&"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),t(),!0}),e}function pe(e){return m.treeWalker(e,function(e,t,r){t(),"Identifier"===e.type&&"__nodent"===e.name&&s(e,x(n))}),e}function he(e){if("Program"===e.type&&"module"===e.sourceType)return!0;var t;if("Program"===e.type)t=e.body;else{if(!a(e).isFunction)return!1;t=e.body.body}if(t)for(var n=0;n<t.length;n++)if(a(t[n]).isDirective&&t[n].expression.value.match(/^\s*use\s+strict\s*$/))return!0;return!1}function fe(e){for(var t=0;t<e.length;t++){var n=e[t];if("ClassDeclaration"===n.type||"VariableDeclaration"===n.type&&("let"===n.kind||"const"===n.kind)||"FunctionDeclaration"===n.type&&n.id&&n.id.name&&!n.$continuation)return!0}return!1}function de(e){m.treeWalker(e,function(e,t,n){if(t(),"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type&&e.body.body.length&&"ReturnStatement"===e.body.body[0].type)e.body=e.body.body[0].argument;else{var r,i;if(r=a(e).isBlockStatement)for(var s=0;s<r.length;s++)(i=a(r[s]).isBlockStatement)&&!fe(i)&&(fe(r[s])||[].splice.apply(r,[s,1].concat(i)))}}),m.treeWalker(e,function(e,t,n){if(t(),a(e).isJump){var r=n[0];if("index"in r)for(var i=r.index+1,s=r.parent[r.field];i<s.length;)"VariableDeclaration"===s[i].type||a(s[i]).isFunction&&s[i].id?i+=1:s.splice(i,1)}}),m.treeWalker(e,function(e,t,n){t(),e.$thisCall&&ye[e.name]&&(ye[e.name].ref?delete ye[e.name]:ye[e.name].ref=e.$thisCall)});var t=Object.keys(ye).map(function(e){return ye[e].ref});if(t.length){m.treeWalker(e,function(e,n,r){if(n(),t.indexOf(e)>=0&&"ReturnStatement"===r[1].self.type){var s=e.$thisCallName,o=i(ye[s].def.body.body);ye[s].$inlined=!0,a(r[1].self).isJump||o.push({type:"ReturnStatement"}),r[1].replace(o)}});var n=Object.keys(ye).map(function(e){return ye[e].$inlined&&ye[e].def});m.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}var r="Program"===e.type||"module"===e.sourceType;if(!r||!u(e,function(e){return a(e).isES6},!0)){var s=he(e);!function(e){m.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var r=s;if(s=s||he(e)){t();var i="Program"===e.type?e:e.body,o=re(i,function(e,t){if("FunctionDeclaration"===e.type)return t[0].parent!==i});o=o.map(function(e){return e[0].remove()}),[].push.apply(i.body,o)}else t();s=r}else t()})}(e)}return m.treeWalker(e,function(e,t,n){t(),Object.keys(e).filter(function(e){return"$"===e[0]}).forEach(function(t){delete e[t]})}),e}var ye={},me=1,ge={};Object.keys(n).filter(function(e){return"$"===e[0]}).forEach(function(e){ge[e.slice(1)]=f(n[e])});var ve=m.part("var $0 = arguments",[ge.arguments]).body[0];return n.engine?(e.ast=ce(e.ast,!0),e.ast=ne(e.ast,n.engine),e.ast=pe(e.ast),de(e.ast)):n.generators?(e.ast=ce(e.ast),e.ast=ne(e.ast),e.ast=pe(e.ast),de(e.ast)):(e.ast=ce(e.ast),C(e.ast)),n.babelTree&&m.treeWalker(e.ast,function(e,t,n){t(),"Literal"===e.type&&s(e,x(e.value))}),e}var m=e("./parser"),g=e("./output"),v={start:!0,end:!0,loc:!0,range:!0},b={getScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type?this.node.body.body:"Program"===this.node.type?this.node.body:null},isScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"Program"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type},isFunction:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type},isClass:function(){return"ClassDeclaration"===this.node.type||"ClassExpression"===this.node.type},isBlockStatement:function(){return"ClassBody"===this.node.type||"Program"===this.node.type||"BlockStatement"===this.node.type?this.node.body:"SwitchCase"===this.node.type&&this.node.consequent},isExpressionStatement:function(){return"ExpressionStatement"===this.node.type},isLiteral:function(){return"Literal"===this.node.type||"BooleanLiteral"===this.node.type||"RegExpLiteral"===this.node.type||"NumericLiteral"===this.node.type||"StringLiteral"===this.node.type||"NullLiteral"===this.node.type},isDirective:function(){return"ExpressionStatement"===this.node.type&&("StringLiteral"===this.node.expression.type||"Literal"===this.node.expression.type&&"string"==typeof this.node.expression.value)},isUnaryExpression:function(){return"UnaryExpression"===this.node.type},isAwait:function(){return"AwaitExpression"===this.node.type&&!this.node.$hidden},isAsync:function(){return this.node.async},isStatement:function(){return null!==this.node.type.match(/[a-zA-Z]+Declaration/)||null!==this.node.type.match(/[a-zA-Z]+Statement/)},isExpression:function(){return null!==this.node.type.match(/[a-zA-Z]+Expression/)},isLoop:function(){return"ForStatement"===this.node.type||"WhileStatement"===this.node.type||"DoWhileStatement"===this.node.type},isJump:function(){return"ReturnStatement"===this.node.type||"ThrowStatement"===this.node.type||"BreakStatement"===this.node.type||"ContinueStatement"===this.node.type},isES6:function(){switch(this.node.type){case"ExportNamedDeclaration":case"ExportSpecifier":case"ExportDefaultDeclaration":case"ExportAllDeclaration":case"ImportDeclaration":case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ArrowFunctionExpression":case"ForOfStatement":case"YieldExpression":case"Super":case"RestElement":case"RestProperty":case"SpreadElement":case"TemplateLiteral":case"ClassDeclaration":case"ClassExpression":return!0;case"VariableDeclaration":return this.node.kind&&"var"!==this.node.kind;case"FunctionDeclaration":case"FunctionExpression":return!!this.node.generator}}},x={};Object.keys(b).forEach(function(e){Object.defineProperty(x,e,{get:b[e]})}),t.exports={printNode:r,babelLiteralNode:h,asynchronize:function(e,t,n,r){try{return y(e,t,n,r)}catch(t){if(t instanceof SyntaxError){var i=e.origCode.substr(t.pos-t.loc.column);i=i.split("\n")[0],t.message+=" (nodent)\n"+i+"\n"+i.replace(/[\S ]/g,"-").substring(0,t.loc.column)+"^",t.stack=""}throw t}}}},{"./output":10,"./parser":11}],10:[function(e,t,n){"use strict";function r(e){var t=y[e.type]||y[e.type+e.operator]||y[e.type+e.operator+(e.prefix?"prefix":"")];
+return void 0!==t?t:20}function i(e,t,n){var r=this[n||e.type];r?r.call(this,e,t):t.write(e,"/*"+e.type+"?*/ "+t.sourceAt(e.start,e.end))}function s(e,t,n,i){2===i||r(n)<r(t)||r(n)==r(t)&&(i||t.right===n)?(e.write(null,"("),this.out(n,e,n.type),e.write(null,")")):this.out(n,e,n.type)}function o(e,t){var n;if(t.write(null,"("),null!=e&&e.length>0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r<i;r++)n=e[r],t.write(n,", "),this.out(n,t,n.type)}t.write(null,") ")}var a,u,c,l,p,h,f=e("source-map").SourceMapGenerator;if("".repeat)h=function(e,t){return t&&e?e.repeat(t):""};else{var d={};h=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!d[n]){for(var r=[];t--;)r.push(e);d[n]=r.join("")}return d[n]}}var y={ExpressionStatement:-1,Identifier:21,Literal:21,BooleanLiteral:21,RegExpLiteral:21,NumericLiteral:21,StringLiteral:21,NullLiteral:21,ThisExpression:21,SuperExpression:21,ObjectExpression:21,ClassExpression:21,MemberExpression:19,CallExpression:18,NewExpression:18,ArrayExpression:17.5,FunctionExpression:17.5,FunctionDeclaration:17.5,ArrowFunctionExpression:17.5,"UpdateExpression++":17,"UpdateExpression--":17,"UpdateExpression++prefix":16,"UpdateExpression--prefix":16,UnaryExpression:16,AwaitExpression:16,"BinaryExpression**":15,"BinaryExpression*":15,"BinaryExpression/":15,"BinaryExpression%":15,"BinaryExpression+":14,"BinaryExpression-":14,"BinaryExpression<<":13,"BinaryExpression>>":13,"BinaryExpression>>>":13,"BinaryExpression<":12,"BinaryExpression<=":12,"BinaryExpression>":12,"BinaryExpression>=":12,BinaryExpressionin:12,BinaryExpressioninstanceof:12,"BinaryExpression==":11,"BinaryExpression===":11,"BinaryExpression!=":11,"BinaryExpression!==":11,"BinaryExpression&":10,"BinaryExpression^":9,"BinaryExpression|":8,"LogicalExpression&&":7,"LogicalExpression||":6,ConditionalExpression:5,AssignmentPattern:4,AssignmentExpression:4,yield:3,YieldExpression:3,SpreadElement:2,"comma-separated-list":1.5,SequenceExpression:1},m={type:"comma-separated-list"},g={out:i,expr:s,formatParameters:o,Program:function(e,t){var n,r,i=h(t.indent,t.indentLevel),s=t.lineEnd;n=e.body;for(var o=0,a=n.length;o<a;o++)r=n[o],t.write(null,i),this.out(r,t,r.type),t.write(null,s)},BlockStatement:p=function(e,t){var n,r,i=h(t.indent,t.indentLevel++),s=t.lineEnd,o=i+t.indent;if(t.write(e,"{"),n=e.body,null!=n&&n.length>0){t.write(null,s);for(var a=0,u=n.length;a<u;a++)r=n[a],t.write(null,o),this.out(r,t,r.type),t.write(null,s);t.write(null,i)}t.write(e.loc?{loc:{start:{line:e.loc.end.line,column:0}}}:null,"}"),t.indentLevel--},ClassBody:p,EmptyStatement:function(e,t){t.write(e,";")},ParenthesizedExpression:function(e,t){this.expr(t,e,e.expression,2)},ExpressionStatement:function(e,t){"FunctionExpression"===e.expression.type||"ObjectExpression"===e.expression.type?(t.write(null,"("),this.expr(t,e,e.expression),t.write(null,")")):this.expr(t,e,e.expression),t.write(null,";")},IfStatement:function(e,t){t.write(e,"if ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.consequent,t,e.consequent.type),null!=e.alternate&&("BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel)),t.write(null," else "),"BlockStatement"!==e.alternate.type&&"IfStatement"!==e.alternate.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.alternate,t,e.alternate.type))},LabeledStatement:function(e,t){this.out(e.label,t,e.label.type),t.write(null,":"),this.out(e.body,t,e.body.type)},BreakStatement:function(e,t){t.write(e,"break"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},ContinueStatement:function(e,t){t.write(e,"continue"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},WithStatement:function(e,t){t.write(e,"with ("),this.out(e.object,t,e.object.type),t.write(null,") "),this.out(e.body,t,e.body.type)},SwitchStatement:function(e,t){var n,r,i,s=h(t.indent,t.indentLevel++),o=t.lineEnd;t.indentLevel++;var a=s+t.indent,u=a+t.indent;t.write(e,"switch ("),this.out(e.discriminant,t,e.discriminant.type),t.write(null,") {",o);for(var c=e.cases,l=0;l<c.length;l++){n=c[l],n.test?(t.write(n,a,"case "),this.out(n.test,t,n.test.type),t.write(null,":",o)):t.write(n,a,"default:",o),r=n.consequent;for(var p=0;p<r.length;p++)i=r[p],t.write(null,u),this.out(i,t,i.type),t.write(null,o)}t.indentLevel-=2,t.write(null,s,"}")},ReturnStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"return"),e.argument&&(t.write(null," "),this.out(e.argument,t,e.argument.type)),t.write(null,";")},ThrowStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"throw "),this.out(e.argument,t,e.argument.type),t.write(null,";")},TryStatement:function(e,t){t.write(e,"try "),this.out(e.block,t,e.block.type),e.handler&&this.out(e.handler,t,e.handler.type),e.finalizer&&(t.write(e.finalizer," finally "),this.out(e.finalizer,t,e.finalizer.type))},CatchClause:function(e,t){t.write(e," catch ("),this.out(e.param,t,e.param.type),t.write(null,") "),this.out(e.body,t,e.body.type)},WhileStatement:function(e,t){t.write(e,"while ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},DoWhileStatement:function(e,t){t.write(e,"do "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type),t.write(null," while ("),this.out(e.test,t,e.test.type),t.write(null,");")},ForStatement:function(e,t){if(t.write(e,"for ("),null!=e.init){var n=e.init,r=n.type;t.inForInit++,this.out(n,t,r),t.inForInit--,"VariableDeclaration"!==r&&t.write(null,"; ")}else t.write(null,"; ");e.test&&this.out(e.test,t,e.test.type),t.write(null,"; "),e.update&&this.out(e.update,t,e.update.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForInStatement:a=function(e,t){t.write(e,"for (");var n=e.left,r=n.type;t.inForInit++,this.out(n,t,r),"V"===r[0]&&19===r.length&&t.back(),t.inForInit--,t.write(null,"I"===e.type[3]?" in ":" of "),this.out(e.right,t,e.right.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForOfStatement:a,DebuggerStatement:function(e,t){t.write(e,"debugger;")},Function:function(e,t){e.async&&t.write(e,"async "),t.write(e,e.generator?"function* ":"function "),e.id&&t.write(e.id,e.id.name),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},FunctionDeclaration:function(e,t){this.Function(e,t),t.write(null,t.lineEnd,h(t.indent,t.indentLevel))},FunctionExpression:function(e,t){this.Function(e,t)},VariableDeclaration:function(e,t){var n=e.declarations;t.write(e,e.kind," ");var r=n.length;if(r>0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i<r;i++)t.write(null,", "),this.out(n[i],t,"VariableDeclarator")}t.write(null,";")},VariableDeclarator:function(e,t){this.out(e.id,t,e.id.type),null!=e.init&&(t.write(null," = "),this.expr(t,m,e.init))},ClassDeclaration:function(e,t){t.write(e,"class "),e.id&&t.write(e.id,e.id.name+" "),e.superClass&&(t.write(null,"extends "),this.out(e.superClass,t,e.superClass.type),t.write(null," ")),this.out(e.body,t,"BlockStatement")},ImportSpecifier:function(e,t){e.local.name==e.imported.name?this.out(e.local,t,e.local.type):(this.out(e.imported,t,e.imported.type),t.write(null," as "),this.out(e.local,t,e.local.type))},ImportDefaultSpecifier:function(e,t){this.out(e.local,t,e.local.type)},ImportNamespaceSpecifier:function(e,t){t.write(null,"* as "),this.out(e.local,t,e.local.type)},ImportDeclaration:function(e,t){var n;t.write(e,"import ");var r=e.specifiers,i=r.length,s=!0;if(i>0){for(var n=0;n<i;n++)"ImportSpecifier"===r[n].type&&s&&(s=!1,t.write(null,"{")),this.out(r[n],t,r[n].type),n<i-1&&t.write(null,", ");"ImportSpecifier"===r[i-1].type&&t.write(null,"}"),t.write(null," from ")}t.write(e.source,e.source.raw),t.write(null,";")},ExportDefaultDeclaration:function(e,t){t.write(e,"export default "),this.out(e.declaration,t,e.declaration.type)},ExportSpecifier:function(e,t){e.local.name==e.exported.name?this.out(e.local,t,e.local.type):(this.out(e.local,t,e.local.type),t.write(null," as "),this.out(e.exported,t,e.exported.type))},ExportNamedDeclaration:function(e,t){if(t.write(e,"export "),e.declaration)this.out(e.declaration,t,e.declaration.type);else{var n=e.specifiers;if(t.write(e,"{"),n&&n.length>0)for(var r=0;r<n.length;r++)this.out(n[r],t,n[r].type),r<n.length-1&&t.write(null,", ");t.write(null,"}"),e.source&&t.write(e.source," from ",e.source.raw),t.write(null,";")}},ExportAllDeclaration:function(e,t){t.write(e,"export * from "),t.write(e.source,e.source.raw,";")},MethodDefinition:function(e,t){switch(e.value.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.value.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.value.params,t),this.out(e.value.body,t,e.value.body.type)},ClassMethod:function(e,t){switch(e.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},ClassExpression:function(e,t){this.out(e,t,"ClassDeclaration")},ArrowFunctionExpression:function(e,t){e.async&&t.write(e,"async "),this.formatParameters(e.params,t),t.write(e,"=> "),"ObjectExpression"===e.body.type||"SequenceExpression"===e.body.type?(t.write(null,"("),this.out(e.body,t,e.body.type),t.write(null,")")):this.out(e.body,t,e.body.type)},ThisExpression:function(e,t){t.write(e,"this")},Super:function(e,t){t.write(e,"super")},RestElement:u=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:u,YieldExpression:function(e,t){t.write(e,e.delegate?"yield*":"yield"),e.argument&&(t.write(null," "),this.expr(t,e,e.argument))},AwaitExpression:function(e,t){t.write(e,"await "),this.expr(t,e,e.argument)},TemplateLiteral:function(e,t){var n,r=e.quasis,i=e.expressions;t.write(e,"`");for(var s=0,o=i.length;s<o;s++)n=i[s],t.write(r[s].value,r[s].value.raw),t.write(null,"${"),this.out(n,t,n.type),t.write(null,"}");t.write(r[r.length-1].value,r[r.length-1].value.raw),t.write(e,"`")},TaggedTemplateExpression:function(e,t){this.out(e.tag,t,e.tag.type),this.out(e.quasi,t,e.quasi.type)},ArrayExpression:l=function(e,t){if(t.write(e,"["),e.elements.length>0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,m,s),i+=1,(i<r||null===s)&&t.write(null,","),i>=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:l,ObjectExpression:function(e,t){var n,r=h(t.indent,t.indentLevel++),i=t.lineEnd,s=r+t.indent;if(t.write(e,"{"),e.properties.length>0){t.write(null,i);for(var o=e.properties,a=o.length,u=0;n=o[u],t.write(null,s),this.out(n,t,"Property"),++u<a;)t.write(e,",",i),t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1));t.write(null,i,r,"}")}else t.write(null,"}");t.indentLevel--},Property:function(e,t){e.method||"get"===e.kind||"set"===e.kind?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),t.write(null,": ")),this.expr(t,m,e.value))},ObjectPattern:function(e,t){if(t.write(e,"{"),e.properties.length>0)for(var n=e.properties,r=n.length,i=0;this.out(n[i],t,"Property"),++i<r;)t.write(null,", ");t.write(null,"}")},SequenceExpression:function(e,t){var n,r=e.expressions;if(r.length>0)for(var i=r.length,s=0;s<i;s++)n=r[s],s&&t.write(null,", "),this.expr(t,m,n)},UnaryExpression:function(e,t){e.prefix?(t.write(e,e.operator),e.operator.length>1&&t.write(e," "),this.expr(t,e,e.argument,!0)):(this.expr(t,e,e.argument),t.write(e,e.operator))},UpdateExpression:function(e,t){e.prefix?(t.write(e,e.operator),this.out(e.argument,t,e.argument.type)):(this.out(e.argument,t,e.argument.type),t.write(e,e.operator))},BinaryExpression:c=function(e,t){var n=e.operator;"in"===n&&t.inForInit&&t.write(null,"("),this.expr(t,e,e.left),t.write(e," ",n," "),this.expr(t,e,e.right,"ArrowFunctionExpression"===e.right.type?2:0),"in"===n&&t.inForInit&&t.write(null,")")},LogicalExpression:c,AssignmentExpression:function(e,t){"ObjectPattern"===e.left.type&&t.write(null,"("),this.BinaryExpression(e,t),"ObjectPattern"===e.left.type&&t.write(null,")")},AssignmentPattern:function(e,t){this.expr(t,e,e.left),t.write(e," = "),this.expr(t,e,e.right)},ConditionalExpression:function(e,t){this.expr(t,e,e.test,!0),t.write(e," ? "),this.expr(t,e,e.consequent),t.write(null," : "),this.expr(t,e,e.alternate)},NewExpression:function(e,t){t.write(e,"new "),this.out(e,t,"CallExpression")},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),t.write(e,"(");var n=e.arguments;if(n.length>0)for(var r=n.length,i=0;i<r;i++)0!=i&&t.write(null,", "),this.expr(t,m,n[i]);t.write(null,")")},MemberExpression:function(e,t){var n="ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&e.object.raw.match(/^[0-9]/),i=!n&&("ArrayExpression"===e.object.type||"CallExpression"===e.object.type||"NewExpression"===e.object.type||r(e)<=r(e.object));i?this.out(e.object,t,e.object.type):(t.write(null,"("),this.out(e.object,t,e.object.type),t.write(null,")")),e.computed?(t.write(e,"["),this.out(e.property,t,e.property.type),t.write(null,"]")):(t.write(e,"."),this.out(e.property,t,e.property.type))},Identifier:function(e,t){t.write(e,e.name)},Literal:function(e,t){t.write(e,e.raw)},NullLiteral:function(e,t){t.write(e,"null")},BooleanLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},StringLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},RegExpLiteral:function(e,t){t.write(e,e.extra.raw||"/"+e.pattern+"/"+e.flags)},NumericLiteral:function(e,t){t.write(e,JSON.stringify(e.value))}};t.exports=function(e,t,n){function r(e){l=arguments[arguments.length-1];for(var n=1;n<arguments.length;n++){if(c&&e&&e.loc&&e.loc.start){var r=!1;c.addMapping({source:t.map.file,original:{line:e.loc.start.line,column:r?0:e.loc.start.column},generated:{line:t.map.startLine+u.length+1,column:r?0:a.length}})}if(arguments[n]===y.lineEnd){if(d.length&&(d.forEach(function(e){"Line"===e.type?a+=" // "+e.value:((" /*"+e.value+"*/").split("\n").forEach(function(e){a+=e,u.push(a),a=""}),a=u.pop())}),d=[]),u.push(a),a="",p.length){var i=u.pop();p.forEach(function(e){var t=h(y.indent,e.indent);"Line"===e.type?u.push(t+"//"+e.value):(t+"/*"+e.value+"*/").split("\n").forEach(function(e){u.push(e)})}),u.push(i),p=[]}}else a+=arguments[n],e&&e.$comments&&(e.$comments.forEach(function(t){var n=e.loc.start.column<t.loc.start.column;t.indent=y.indentLevel,n?d.push(t):p.push(t)}),e.$comments=null)}}function i(){return a.length}function s(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"}function o(){a=a.substring(0,a.length-l.length)}t=t||{};var a="",u=[],c=t.map&&new f(t.map);c&&t.map.sourceContent&&c.setSourceContent(t.map.file,t.map.sourceContent);var l="",p=[],d=[],y={inForInit:0,lineLength:i,sourceAt:s,write:r,back:o,indent:" ",lineEnd:"\n",indentLevel:0,wrapColumn:80};g.out(e,y),d=e.$comments||[],y.write(e,y.lineEnd);var m=u.join(y.lineEnd);return t&&t.map?{code:m,map:c}:m}},{"source-map":37}],11:[function(e,t,n){"use strict";function r(e,t){["start","end","loc","range"].forEach(function(n){n in e&&!(n in t)&&(t[n]=e[n])})}function i(e,t,n){function r(e){e.replace=p.replace,e.append=p.append,e.index?(Object.defineProperties(e,{index:{enumerable:!0,get:p.index}}),e.remove=p.removeElement):e.remove=p.removeNode,n.unshift(e),i(e.self,t,n),n.shift()}function s(){e.type in l&&l[e.type](e,n,function t(i,s,o){if(i===e)return l[o||e.type](e,n,t);for(var a=Object.keys(e),u=0;u<a.length;u++){var c=e[a[u]];Array.isArray(c)?c.indexOf(i)>=0&&r({self:i,parent:e,field:a[u],index:!0}):c instanceof Object&&i===c&&r({self:i,parent:e,field:a[u]})}})}return n||(n=[{self:e}],n.replace=function(e,t){n[e].replace(t)}),t(e,s,n),e}function s(e,t){var n=[],r={plugins:{asyncawait:{asyncExits:!0,awaitAnywhere:!0}},ecmaVersion:8,allowHashBang:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,locations:!0,onComment:n};if(t)for(var s in t)r[s]=t[s];var o=a.parse(e,r);return i(o,function(e,t,r){for(t();n.length&&e.loc&&e.loc.start.line>=n[0].loc.start.line&&e.loc.end.line>=n[0].loc.end.line;)e.$comments=e.$comments||[],e.$comments.push(n.shift())}),o}function o(e,t){function n(e,r){if(Array.isArray(r)&&!Array.isArray(e))throw new Error("Can't substitute an array for a node");return r=r||{},Object.keys(e).forEach(function(i){function s(e){return"function"==typeof e&&(e=e()),r=r.concat(e)}function o(e){return"function"==typeof e&&(e=e()),r[i]=e,r}if(!(e[i]instanceof Object))return r[i]=e[i];if(Array.isArray(e[i]))return r[i]=n(e[i],[]);var a;if(a=Array.isArray(r)?s:o,"Identifier"===e[i].type&&"$"===e[i].name[0])return a(t[e[i].name.slice(1)]);if("LabeledStatement"===e[i].type&&"$"===e[i].label.name){var u=e[i].body.expression;return a(t[u.name||u.value])}return a("LabeledStatement"===e[i].type&&"$$"===e[i].label.name.slice(0,2)?t[e[i].label.name.slice(2)](n(e[i]).body):n(e[i]))}),r}h[e]||(h[e]=s(e,{locations:!1,ranges:!1,onComment:null}));var r=n(h[e]);return{body:r.body,expr:"ExpressionStatement"===r.body[0].type?r.body[0].expression:null}}var a=e("acorn"),u=e("acorn/dist/walk"),c={AwaitExpression:function(e,t,n){n(e.argument,t,"Expression")},SwitchStatement:function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r)n(e.cases[r],t)},SwitchCase:function(e,t,n){e.test&&n(e.test,t,"Expression");for(var r=0;r<e.consequent.length;++r)n(e.consequent[r],t,"Statement")},TryStatement:function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t,"Statement"),e.finalizer&&n(e.finalizer,t,"Statement")},CatchClause:function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},Class:function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression"),n(e.body,t)},ClassBody:function(e,t,n){for(var r=0;r<e.body.length;r++)n(e.body[r],t)},ClassProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ClassMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")},ObjectProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ObjectMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")}},l=u.make(c),p={replace:function(e){return Array.isArray(e)&&1===e.length&&(e=e[0]),"index"in this?(r(this.parent[this.field][this.index],e),Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index,1].concat(e)):this.parent[this.field][this.index]=e):(r(this.parent[this.field],e),Array.isArray(e)?this.parent[this.field]={type:"BlockStatement",body:e}:this.parent[this.field]=e),this.self},append:function(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),!("index"in this))throw new Error("Cannot append Element node to non-array");return Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index+1,0].concat(e)):this.parent[this.field].splice(this.index+1,0,e),this.self},index:function(){return this.parent[this.field].indexOf(this.self)},removeElement:function(){return this.parent[this.field].splice(this.index,1)[0]},removeNode:function(){var e=this.parent[this.field];return delete this.parent[this.field],e}};e("acorn-es7-plugin")(a);var h={};t.exports={part:o,parse:s,treeWalker:i,_acorn:a}},{acorn:15,"acorn-es7-plugin":12,"acorn/dist/walk":16}],12:[function(e,t,n){t.exports=function(t){switch(parseInt(t.version)){case 2:case 3:t.plugins.asyncawait=e("./acorn-v3");break;case 4:t.plugins.asyncawait=e("./acorn-v4");break;default:throw new Error("acorn-es7-plugin requires Acorn v2, 3 or 4")}return t}},{"./acorn-v3":13,"./acorn-v4":14}],13:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(p,"$1 $3")),e.test(r)}function s(e,t,n,r){var i=new e.constructor(e.options,e.input,t);if(n)for(var s in n)i[s]=n[s];var o=e,a=i;return["inFunction","inAsyncFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in o&&(a[e]=o[e])}),r&&(i.options.preserveParens=!0),i.nextToken(),i}function o(e,t){var n=function(){};e.extend("initialContext",function(r){return function(){return this.options.ecmaVersion<7&&(n=function(t){e.raise(t.start,"async/await keywords only available when ecmaVersion>=7")}),this.reservedWords=new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrict=new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrictBind=new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.inAsyncFunction=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),r.apply(this,arguments)}}),e.extend("shouldParseExportStatement",function(e){return function(){return!("name"!==this.type.label||"async"!==this.value||!i(c,this))||e.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,o=this.startLoc;if("name"===this.type.label)if(i(c,this,!0)){var a=this.inAsyncFunction;try{this.inAsyncFunction=!0,this.next();var l=this.parseStatement(n,r);return l.async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}finally{this.inAsyncFunction=a}}else if("object"==typeof t&&t.asyncExits&&i(u,this)){this.next();var l=this.parseStatement(n,r);return l.async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(t){var n=e.apply(this,arguments);return this.inAsyncFunction&&"await"===n.name&&0===arguments.length&&this.raise(n.start,"'await' is reserved within async functions"),n}}),e.extend("parseExprAtom",function(e){return function(i){var o,u=this.start,c=this.startLoc,p=e.apply(this,arguments);if("Identifier"===p.type)if("async"!==p.name||r(this,p.end)){if("await"===p.name){var h=this.startNodeAt(p.start,p.loc&&p.loc.start);if(this.inAsyncFunction)return o=this.parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),n(h),h;if(this.input.slice(p.end).match(l))return t.awaitAnywhere||"module"!==this.options.sourceType?p:this.raise(p.start,"'await' is reserved within modules");if("object"==typeof t&&t.awaitAnywhere&&(u=this.start,o=s(this,u-4).parseExprSubscripts(),o.end<=u))return o=s(this,u).parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),this.pos=o.end,this.end=o.end,this.endLoc=o.endLoc,this.next(),n(h),h;if(!t.awaitAnywhere&&"module"===this.options.sourceType)return this.raise(p.start,"'await' is reserved within modules")}}else{var f=this.inAsyncFunction;try{this.inAsyncFunction=!0;var d=this,y=!1,m={parseFunctionBody:function(e,t){try{var n=y;return y=!0,d.parseFunctionBody.apply(this,arguments)}finally{y=n}},raise:function(){try{return d.raise.apply(this,arguments)}catch(e){throw y?e:a}}};if(o=s(this,this.start,m,!0).parseExpression(),"SequenceExpression"===o.type&&(o=o.expressions[0]),"FunctionExpression"===o.type||"FunctionDeclaration"===o.type||"ArrowFunctionExpression"===o.type)return o=s(this,this.start,m).parseExpression(),"SequenceExpression"===o.type&&(o=o.expressions[0]),o.async=!0,o.start=u,o.loc&&(o.loc.start=c),o.range&&(o.range[0]=u),this.pos=o.end,this.end=o.end,this.endLoc=o.endLoc,this.next(),n(o),o}catch(e){if(e!==a)throw e}finally{this.inAsyncFunction=f}}return p}}),e.extend("finishNodeAt",function(e){return function(t,n,r,i){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("finishNode",function(e){return function(t,n){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}});e.extend("parsePropertyName",function(e){return function(t){var i=(t.key&&t.key.name,e.apply(this,arguments));return"Identifier"!==i.type||"async"!==i.name||r(this,i.end)||this.input.slice(i.end).match(l)||(h.test(this.input.slice(i.end))?(i=e.apply(this,arguments),t.__asyncValue=!0):(n(t),"set"===t.kind&&this.raise(i.start,"'set <member>(value)' cannot be be async"),i=e.apply(this,arguments),"Identifier"===i.type&&"set"===i.name&&this.raise(i.start,"'set <member>(value)' cannot be be async"),t.__asyncValue=!0)),i}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i;n.__asyncValue&&("constructor"===n.kind&&this.raise(n.start,"class constructor() cannot be be async"),i=this.inAsyncFunction,this.inAsyncFunction=!0);var s=e.apply(this,arguments);return this.inAsyncFunction=i,s}}),e.extend("parseMethod",function(e){return function(t){var n;this.__currentProperty&&this.__currentProperty.__asyncValue&&(n=this.inAsyncFunction,this.inAsyncFunction=!0);var r=e.apply(this,arguments);return this.inAsyncFunction=n,r}}),e.extend("parsePropertyValue",function(e){return function(t,n,r,i,s,o){var a=this.__currentProperty;this.__currentProperty=t;var u;t.__asyncValue&&(u=this.inAsyncFunction,this.inAsyncFunction=!0);var c=e.apply(this,arguments);return this.inAsyncFunction=u,this.__currentProperty=a,c}})}var a={},u=/^async[\t ]+(return|throw)/,c=/^async[\t ]+function/,l=/^\s*[():;]/,p=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g,h=/\s*(get|set)\s*\(/;t.exports=o},{}],14:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(c,"$1 $3")),e.test(r)}function s(e,t,n){var r=new e.constructor(e.options,e.input,t);if(n)for(var i in n)r[i]=n[i];var s=e,o=r;return["inFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in s&&(o[e]=s[e])}),r.nextToken(),r}function o(e,t){t&&"object"==typeof t||(t={}),e.extend("parse",function(n){return function(){return this.inAsync=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),n.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,o=this.startLoc;if("name"===this.type.label&&t.asyncExits&&i(a,this)){this.next();var u=this.parseStatement(n,r);return u.async=!0,u.start=s,u.loc&&(u.loc.start=o),u.range&&(u.range[0]=s),u}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(n){return"module"===this.options.sourceType&&this.options.ecmaVersion>=8&&t.awaitAnywhere?e.call(this,!0):e.apply(this,arguments)}}),e.extend("parseExprAtom",function(e){var n={};return function(r){var i,o=this.start,a=(this.startLoc,e.apply(this,arguments));if("Identifier"===a.type&&"await"===a.name&&!this.inAsync&&t.awaitAnywhere){var u=this.startNodeAt(a.start,a.loc&&a.loc.start);o=this.start;var c={raise:function(){try{return pp.raise.apply(this,arguments)}catch(e){throw n}}};try{if(i=s(this,o-4,c).parseExprSubscripts(),i.end<=o)return i=s(this,o,c).parseExprSubscripts(),u.argument=i,u=this.finishNodeAt(u,"AwaitExpression",i.end,i.loc&&i.loc.end),this.pos=i.end,this.end=i.end,this.endLoc=i.endLoc,this.next(),u}catch(e){if(e===n)return a;throw e}}return a}});var n={undefined:!0,get:!0,set:!0,static:!0,async:!0,constructor:!0};e.extend("parsePropertyName",function(e){return function(t){var i=t.key&&t.key.name,s=e.apply(this,arguments);return"get"===this.value&&(t.__maybeStaticAsyncGetter=!0),n[this.value]?s:("Identifier"!==s.type||"async"!==s.name&&"async"!==i||r(this,s.end)||this.input.slice(s.end).match(u)?delete t.__maybeStaticAsyncGetter:"set"===t.kind||"set"===s.name?this.raise(s.start,"'set <member>(value)' cannot be be async"):(this.__isAsyncProp=!0,s=e.apply(this,arguments),"Identifier"===s.type&&"set"===s.name&&this.raise(s.start,"'set <member>(value)' cannot be be async")),s)}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i=e.apply(this,arguments);return n.__maybeStaticAsyncGetter&&(delete n.__maybeStaticAsyncGetter,n.kind="get"),i}}),e.extend("parseFunctionBody",function(e){return function(t,n){var r=this.inAsync;this.__isAsyncProp&&(t.async=!0,this.inAsync=!0,delete this.__isAsyncProp);var i=e.apply(this,arguments);return this.inAsync=r,i}})}var a=/^async[\t ]+(return|throw)/,u=/^\s*[):;]/,c=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=o},{}],15:[function(e,t,n){!function(e,r){"object"==typeof n&&"undefined"!=typeof t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(e.acorn=e.acorn||{})}(this,function(e){"use strict";function t(e,t){for(var n=65536,r=0;r<t.length;r+=2){if(n+=t[r],n>e)return!1;if(n+=t[r+1],n>=e)return!0}}function n(e,n){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):n!==!1&&t(e,C)))}function r(e,n){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&_.test(String.fromCharCode(e)):n!==!1&&(t(e,C)||t(e,L)))))}function i(e,t){return new P(e,{beforeExpr:!0,binop:t})}function s(e,t){return void 0===t&&(t={}),t.keyword=e,O[e]=new P(e,t)}function o(e){return 10===e||13===e||8232===e||8233===e}function a(e){return"[object Array]"===Object.prototype.toString.call(e)}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){for(var n=1,r=0;;){$.lastIndex=r;var i=$.exec(e);if(!(i&&i.index<t))return new j(n,t-r);++n,r=i.index+i[0].length}}function l(e){var t={};for(var n in D)t[n]=e&&u(e,n)?e[n]:D[n];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),a(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return a(t.onComment)&&(t.onComment=p(t,t.onComment)),t}function p(e,t){return function(n,r,i,s,o,a){var u={type:n?"Block":"Line",value:r,start:i,end:s};e.locations&&(u.loc=new M(this,o,a)),e.ranges&&(u.range=[i,s]),t.push(u)}}function h(e){return new RegExp("^("+e.replace(/ /g,"|")+")$")}function f(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}function d(e,t,n,r){try{return new RegExp(e,t)}catch(e){if(void 0!==n)throw e instanceof SyntaxError&&r.raise(n,"Error parsing regular expression: "+e.message),e}}function y(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(1023&e)+56320))}function m(e,t){return new U(t,e).parse()}function g(e,t,n){var r=new U(n,e,t);return r.nextToken(),r.parseExpression()}function v(e,t){return new U(t,e)}function b(t,n,r){e.parse_dammit=t,e.LooseParser=n,e.pluginsLoose=r}var x={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},w="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",E={5:w,6:w+" const class extends export import super"},S="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",k="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",A=new RegExp("["+S+"]"),_=new RegExp("["+S+k+"]");
+S=k=null;var C=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],L=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],P=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null},T={beforeExpr:!0},R={startsExpr:!0},O={},F={num:new P("num",R),regexp:new P("regexp",R),string:new P("string",R),name:new P("name",R),eof:new P("eof"),bracketL:new P("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new P("]"),braceL:new P("{",{beforeExpr:!0,startsExpr:!0}),braceR:new P("}"),parenL:new P("(",{beforeExpr:!0,startsExpr:!0}),parenR:new P(")"),comma:new P(",",T),semi:new P(";",T),colon:new P(":",T),dot:new P("."),question:new P("?",T),arrow:new P("=>",T),template:new P("template"),ellipsis:new P("...",T),backQuote:new P("`",R),dollarBraceL:new P("${",{beforeExpr:!0,startsExpr:!0}),eq:new P("=",{beforeExpr:!0,isAssign:!0}),assign:new P("_=",{beforeExpr:!0,isAssign:!0}),incDec:new P("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new P("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:i("||",1),logicalAND:i("&&",2),bitwiseOR:i("|",3),bitwiseXOR:i("^",4),bitwiseAND:i("&",5),equality:i("==/!=",6),relational:i("</>",7),bitShift:i("<</>>",8),plusMin:new P("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:i("%",10),star:i("*",10),slash:i("/",10),starstar:new P("**",{beforeExpr:!0}),_break:s("break"),_case:s("case",T),_catch:s("catch"),_continue:s("continue"),_debugger:s("debugger"),_default:s("default",T),_do:s("do",{isLoop:!0,beforeExpr:!0}),_else:s("else",T),_finally:s("finally"),_for:s("for",{isLoop:!0}),_function:s("function",R),_if:s("if"),_return:s("return",T),_switch:s("switch"),_throw:s("throw",T),_try:s("try"),_var:s("var"),_const:s("const"),_while:s("while",{isLoop:!0}),_with:s("with"),_new:s("new",{beforeExpr:!0,startsExpr:!0}),_this:s("this",R),_super:s("super",R),_class:s("class"),_extends:s("extends",T),_export:s("export"),_import:s("import"),_null:s("null",R),_true:s("true",R),_false:s("false",R),_in:s("in",{beforeExpr:!0,binop:7}),_instanceof:s("instanceof",{beforeExpr:!0,binop:7}),_typeof:s("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:s("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:s("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},N=/\r\n?|\n|\u2028|\u2029/,$=new RegExp(N.source,"g"),B=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,I=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,j=function(e,t){this.line=e,this.column=t};j.prototype.offset=function(e){return new j(this.line,this.column+e)};var M=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)},D={ecmaVersion:7,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},V={},U=function(e,t,n){this.options=e=l(e),this.sourceFile=e.sourceFile,this.keywords=h(E[e.ecmaVersion>=6?6:5]);var r="";if(!e.allowReserved){for(var i=e.ecmaVersion;!(r=x[i]);i--);"module"==e.sourceType&&(r+=" await")}this.reservedWords=h(r);var s=(r?r+" ":"")+x.strict;this.reservedWordsStrict=h(s),this.reservedWordsStrictBind=h(s+" "+x.strictBind),this.input=String(t),this.containsEsc=!1,this.loadPlugins(e.plugins),n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(N).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=F.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.strict=this.inModule="module"===e.sourceType,this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2)};U.prototype.isKeyword=function(e){return this.keywords.test(e)},U.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},U.prototype.extend=function(e,t){this[e]=t(this[e])},U.prototype.loadPlugins=function(e){var t=this;for(var n in e){var r=V[n];if(!r)throw new Error("Plugin '"+n+"' not found");r(t,e[n])}},U.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var q=U.prototype;q.isUseStrict=function(e){return this.options.ecmaVersion>=5&&"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"use strict"===e.expression.raw.slice(1,-1)},q.eat=function(e){return this.type===e&&(this.next(),!0)},q.isContextual=function(e){return this.type===F.name&&this.value===e},q.eatContextual=function(e){return this.value===e&&this.eat(F.name)},q.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},q.canInsertSemicolon=function(){return this.type===F.eof||this.type===F.braceR||N.test(this.input.slice(this.lastTokEnd,this.start))},q.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},q.semicolon=function(){this.eat(F.semi)||this.insertSemicolon()||this.unexpected()},q.afterTrailingComma=function(e,t){if(this.type==e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},q.expect=function(e){this.eat(e)||this.unexpected()},q.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")};var W=function(){this.shorthandAssign=0,this.trailingComma=0};q.checkPatternErrors=function(e,t){var n=e&&e.trailingComma;return t?void(n&&this.raise(n,"Comma is not permitted after the rest element")):!!n},q.checkExpressionErrors=function(e,t){var n=e&&e.shorthandAssign;return t?void(n&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns")):!!n},q.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")};var z=U.prototype;z.parseTopLevel=function(e){var t=this,n=!0,r={};for(e.body||(e.body=[]);this.type!==F.eof;){var i=t.parseStatement(!0,!0,r);e.body.push(i),n&&(t.isUseStrict(i)&&t.setStrict(!0),n=!1)}return this.next(),this.options.ecmaVersion>=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var Y={kind:"loop"},G={kind:"switch"};z.isLet=function(){if(this.type!==F.name||this.options.ecmaVersion<6||"let"!=this.value)return!1;I.lastIndex=this.pos;var e=I.exec(this.input),t=this.pos+e[0].length,i=this.input.charCodeAt(t);if(91===i||123==i)return!0;if(n(i,!0)){for(var s=t+1;r(this.input.charCodeAt(s),!0);++s);var o=this.input.slice(t,s);if(!this.isKeyword(o))return!0}return!1},z.isAsyncFunction=function(){if(this.type!==F.name||this.options.ecmaVersion<8||"async"!=this.value)return!1;I.lastIndex=this.pos;var e=I.exec(this.input),t=this.pos+e[0].length;return!(N.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!=this.input.length&&r(this.input.charAt(t+8)))},z.parseStatement=function(e,t,n){var r,i=this.type,s=this.startNode();switch(this.isLet()&&(i=F._var,r="let"),i){case F._break:case F._continue:return this.parseBreakContinueStatement(s,i.keyword);case F._debugger:return this.parseDebuggerStatement(s);case F._do:return this.parseDoStatement(s);case F._for:return this.parseForStatement(s);case F._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1);case F._class:return e||this.unexpected(),this.parseClass(s,!0);case F._if:return this.parseIfStatement(s);case F._return:return this.parseReturnStatement(s);case F._switch:return this.parseSwitchStatement(s);case F._throw:return this.parseThrowStatement(s);case F._try:return this.parseTryStatement(s);case F._const:case F._var:return r=r||this.value,e||"var"==r||this.unexpected(),this.parseVarStatement(s,r);case F._while:return this.parseWhileStatement(s);case F._with:return this.parseWithStatement(s);case F.braceL:return this.parseBlock();case F.semi:return this.parseEmptyStatement(s);case F._export:case F._import:return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===F._import?this.parseImport(s):this.parseExport(s,n);default:if(this.isAsyncFunction()&&e)return this.next(),this.parseFunctionStatement(s,!0);var o=this.value,a=this.parseExpression();return i===F.name&&"Identifier"===a.type&&this.eat(F.colon)?this.parseLabeledStatement(s,o,a):this.parseExpressionStatement(s,a)}},z.parseBreakContinueStatement=function(e,t){var n=this,r="break"==t;this.next(),this.eat(F.semi)||this.insertSemicolon()?e.label=null:this.type!==F.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var s=n.labels[i];if(null==e.label||s.name===e.label.name){if(null!=s.kind&&(r||"loop"===s.kind))break;if(e.label&&r)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.labels.push(Y),e.body=this.parseStatement(!1),this.labels.pop(),this.expect(F._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(F.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){if(this.next(),this.labels.push(Y),this.expect(F.parenL),this.type===F.semi)return this.parseFor(e,null);var t=this.isLet();if(this.type===F._var||this.type===F._const||t){var n=this.startNode(),r=t?"let":this.value;return this.next(),this.parseVar(n,!0,r),this.finishNode(n,"VariableDeclaration"),!(this.type===F._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==n.declarations.length||"var"!==r&&n.declarations[0].init?this.parseFor(e,n):this.parseForIn(e,n)}var i=new W,s=this.parseExpression(!0,i);return this.type===F._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.checkPatternErrors(i,!0),this.toAssignable(s),this.checkLVal(s),this.parseForIn(e,s)):(this.checkExpressionErrors(i,!0),this.parseFor(e,s))},z.parseFunctionStatement=function(e,t){return this.next(),this.parseFunction(e,!0,!1,t)},z.isFunction=function(){return this.type===F._function||this.isAsyncFunction()},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!this.strict&&this.isFunction()),e.alternate=this.eat(F._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(F.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){var t=this;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(F.braceL),this.labels.push(G);for(var n,r=!1;this.type!=F.braceR;)if(t.type===F._case||t.type===F._default){var i=t.type===F._case;n&&t.finishNode(n,"SwitchCase"),e.cases.push(n=t.startNode()),n.consequent=[],t.next(),i?n.test=t.parseExpression():(r&&t.raiseRecoverable(t.lastTokStart,"Multiple default clauses"),r=!0,n.test=null),t.expect(F.colon)}else n||t.unexpected(),n.consequent.push(t.parseStatement(!0));return n&&this.finishNode(n,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),N.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var J=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===F._catch){var t=this.startNode();this.next(),this.expect(F.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0),this.expect(F.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(F._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Y),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,n){for(var r=this,i=0;i<this.labels.length;++i)r.labels[i].name===t&&r.raise(n.start,"Label '"+t+"' is already declared");for(var s=this.type.isLoop?"loop":this.type===F._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var a=r.labels[o];if(a.statementStart!=e.start)break;a.statementStart=r.start,a.kind=s}return this.labels.push({name:t,kind:s,statementStart:this.start}),e.body=this.parseStatement(!0),this.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){var t,n=this,r=this.startNode(),i=!0;for(r.body=[],this.expect(F.braceL);!this.eat(F.braceR);){var s=n.parseStatement(!0);r.body.push(s),i&&e&&n.isUseStrict(s)&&(t=n.strict,n.setStrict(n.strict=!0)),i=!1}return t===!1&&this.setStrict(!1),this.finishNode(r,"BlockStatement")},z.parseFor=function(e,t){return e.init=t,this.expect(F.semi),e.test=this.type===F.semi?null:this.parseExpression(),this.expect(F.semi),e.update=this.type===F.parenR?null:this.parseExpression(),this.expect(F.parenR),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t){var n=this.type===F._in?"ForInStatement":"ForOfStatement";return this.next(),e.left=t,e.right=this.parseExpression(),this.expect(F.parenR),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,n){var r=this;for(e.declarations=[],e.kind=n;;){var i=r.startNode();if(r.parseVarId(i),r.eat(F.eq)?i.init=r.parseMaybeAssign(t):"const"!==n||r.type===F._in||r.options.ecmaVersion>=6&&r.isContextual("of")?"Identifier"==i.id.type||t&&(r.type===F._in||r.isContextual("of"))?i.init=null:r.raise(r.lastTokEnd,"Complex binding patterns require an initialization value"):r.unexpected(),e.declarations.push(r.finishNode(i,"VariableDeclarator")),!r.eat(F.comma))break}return e},z.parseVarId=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0)},z.parseFunction=function(e,t,n,r){this.initFunction(e),this.options.ecmaVersion>=6&&!r&&(e.generator=this.eat(F.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&&(e.id=this.parseIdent());var i=this.inGenerator,s=this.inAsync,o=this.yieldPos,a=this.awaitPos;return this.inGenerator=e.generator,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,t||this.type!==F.name||(e.id=this.parseIdent()),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.inGenerator=i,this.inAsync=s,this.yieldPos=o,this.awaitPos=a,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(F.parenL),e.params=this.parseBindingList(F.parenR,!1,this.options.ecmaVersion>=8,!0),this.checkYieldAwaitInDefaultParams()},z.parseClass=function(e,t){var n=this;this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var r=this.startNode(),i=!1;for(r.body=[],this.expect(F.braceL);!this.eat(F.braceR);)if(!n.eat(F.semi)){var s=n.startNode(),o=n.eat(F.star),a=!1,u=n.type===F.name&&"static"===n.value;n.parsePropertyName(s),s.static=u&&n.type!==F.parenL,s.static&&(o&&n.unexpected(),o=n.eat(F.star),n.parsePropertyName(s)),n.options.ecmaVersion>=8&&!o&&!s.computed&&"Identifier"===s.key.type&&"async"===s.key.name&&n.type!==F.parenL&&!n.canInsertSemicolon()&&(a=!0,n.parsePropertyName(s)),s.kind="method";var c=!1;if(!s.computed){var l=s.key;o||a||"Identifier"!==l.type||n.type===F.parenL||"get"!==l.name&&"set"!==l.name||(c=!0,s.kind=l.name,l=n.parsePropertyName(s)),!s.static&&("Identifier"===l.type&&"constructor"===l.name||"Literal"===l.type&&"constructor"===l.value)&&(i&&n.raise(l.start,"Duplicate constructor in the same class"),c&&n.raise(l.start,"Constructor can't have get/set modifier"),o&&n.raise(l.start,"Constructor can't be a generator"),a&&n.raise(l.start,"Constructor can't be an async method"),s.kind="constructor",i=!0)}if(n.parseClassMethod(r,s,o,a),c){var p="get"===s.kind?0:1;if(s.value.params.length!==p){var h=s.value.start;"get"===s.kind?n.raiseRecoverable(h,"getter should have no params"):n.raiseRecoverable(h,"setter should have exactly one param")}else"set"===s.kind&&"RestElement"===s.value.params[0].type&&n.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params")}}return e.body=this.finishNode(r,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.parseClassMethod=function(e,t,n,r){t.value=this.parseMethod(n,r),e.body.push(this.finishNode(t,"MethodDefinition"))},z.parseClassId=function(e,t){e.id=this.type===F.name?this.parseIdent():t?this.unexpected():null},z.parseClassSuper=function(e){e.superClass=this.eat(F._extends)?this.parseExprSubscripts():null},z.parseExport=function(e,t){var n=this;if(this.next(),this.eat(F.star))return this.expectContextual("from"),e.source=this.type===F.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(F._default)){this.checkExport(t,"default",this.lastTokStart);var r=this.type==F.parenL,i=this.parseMaybeAssign(),s=!0;return r||"FunctionExpression"!=i.type&&"ClassExpression"!=i.type||(s=!1,i.id&&(i.type="FunctionExpression"==i.type?"FunctionDeclaration":"ClassDeclaration")),e.declaration=i,s&&this.semicolon(),this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(!0),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))e.source=this.type===F.string?this.parseExprAtom():this.unexpected();else{for(var o=0;o<e.specifiers.length;o++)(n.keywords.test(e.specifiers[o].local.name)||n.reservedWords.test(e.specifiers[o].local.name))&&n.unexpected(e.specifiers[o].local.start);e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},z.checkExport=function(e,t,n){e&&(Object.prototype.hasOwnProperty.call(e,t)&&this.raiseRecoverable(n,"Duplicate export '"+t+"'"),e[t]=!0)},z.checkPatternExport=function(e,t){var n=this,r=t.type;if("Identifier"==r)this.checkExport(e,t.name,t.start);else if("ObjectPattern"==r)for(var i=0;i<t.properties.length;++i)n.checkPatternExport(e,t.properties[i].value);else if("ArrayPattern"==r)for(var s=0;s<t.elements.length;++s){var o=t.elements[s];o&&n.checkPatternExport(e,o)}else"AssignmentPattern"==r?this.checkPatternExport(e,t.left):"ParenthesizedExpression"==r&&this.checkPatternExport(e,t.expression)},z.checkVariableExport=function(e,t){var n=this;if(e)for(var r=0;r<t.length;r++)n.checkPatternExport(e,t[r].id)},z.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},z.parseExportSpecifiers=function(e){var t=this,n=[],r=!0;for(this.expect(F.braceL);!this.eat(F.braceR);){if(r)r=!1;else if(t.expect(F.comma),t.afterTrailingComma(F.braceR))break;var i=t.startNode();i.local=t.parseIdent(t.type===F._default),i.exported=t.eatContextual("as")?t.parseIdent(!0):i.local,t.checkExport(e,i.exported.name,i.exported.start),n.push(t.finishNode(i,"ExportSpecifier"))}return n},z.parseImport=function(e){return this.next(),this.type===F.string?(e.specifiers=J,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===F.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(){var e=this,t=[],n=!0;if(this.type===F.name){var r=this.startNode();if(r.local=this.parseIdent(),this.checkLVal(r.local,!0),t.push(this.finishNode(r,"ImportDefaultSpecifier")),!this.eat(F.comma))return t}if(this.type===F.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,!0),t.push(this.finishNode(i,"ImportNamespaceSpecifier")),t}for(this.expect(F.braceL);!this.eat(F.braceR);){if(n)n=!1;else if(e.expect(F.comma),e.afterTrailingComma(F.braceR))break;var s=e.startNode();s.imported=e.parseIdent(!0),e.eatContextual("as")?s.local=e.parseIdent():(s.local=s.imported,e.isKeyword(s.local.name)&&e.unexpected(s.local.start),e.reservedWordsStrict.test(s.local.name)&&e.raiseRecoverable(s.local.start,"The keyword '"+s.local.name+"' is reserved")),e.checkLVal(s.local,!0),t.push(e.finishNode(s,"ImportSpecifier"))}return t};var H=U.prototype;H.toAssignable=function(e,t){var n=this;if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var r=0;r<e.properties.length;r++){var i=e.properties[r];"init"!==i.kind&&n.raise(i.key.start,"Object pattern can't contain getter or setter"),n.toAssignable(i.value,t)}break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t);break;case"AssignmentExpression":if("="!==e.operator){this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break}e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":e.expression=this.toAssignable(e.expression,t);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}return e},H.toAssignableList=function(e,t){var n=this,r=e.length;if(r){var i=e[r-1];if(i&&"RestElement"==i.type)--r;else if(i&&"SpreadElement"==i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--r}t&&i&&"RestElement"===i.type&&"Identifier"!==i.argument.type&&this.unexpected(i.argument.start)}for(var o=0;o<r;o++){var a=e[o];a&&n.toAssignable(a,t)}return e},H.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},H.parseRest=function(e){var t=this.startNode();return this.next(),e?t.argument=this.type===F.name?this.parseIdent():this.unexpected():t.argument=this.type===F.name||this.type===F.bracketL?this.parseBindingAtom():this.unexpected(),this.finishNode(t,"RestElement")},H.parseBindingAtom=function(){if(this.options.ecmaVersion<6)return this.parseIdent();switch(this.type){case F.name:return this.parseIdent();case F.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(F.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case F.braceL:return this.parseObj(!0);default:this.unexpected()}},H.parseBindingList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);)if(o?o=!1:i.expect(F.comma),t&&i.type===F.comma)s.push(null);else{if(n&&i.afterTrailingComma(e))break;if(i.type===F.ellipsis){var a=i.parseRest(r);i.parseBindingListItem(a),s.push(a),i.type===F.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(e);break}var u=i.parseMaybeDefault(i.start,i.startLoc);i.parseBindingListItem(u),s.push(u)}return s},H.parseBindingListItem=function(e){return e},H.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(F.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")},H.checkLVal=function(e,t,n){var r=this;switch(e.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),n&&(u(n,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),n[e.name]=!0);break;case"MemberExpression":t&&this.raiseRecoverable(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var i=0;i<e.properties.length;i++)r.checkLVal(e.properties[i].value,t,n);break;case"ArrayPattern":for(var s=0;s<e.elements.length;s++){var o=e.elements[s];o&&r.checkLVal(o,t,n)}break;case"AssignmentPattern":this.checkLVal(e.left,t,n);break;case"RestElement":this.checkLVal(e.argument,t,n);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,n);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var Q=U.prototype;Q.checkPropClash=function(e,t){if(!(this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var n,r=e.key;switch(r.type){case"Identifier":n=r.name;break;case"Literal":n=String(r.value);break;default:return}var i=e.kind;if(this.options.ecmaVersion>=6)return void("__proto__"===n&&"init"===i&&(t.proto&&this.raiseRecoverable(r.start,"Redefinition of __proto__ property"),t.proto=!0));n="$"+n;var s=t[n];if(s){var o="init"!==i;(!this.strict&&!o||!s[i])&&o^s.init||this.raiseRecoverable(r.start,"Redefinition of property")}else s=t[n]={init:!1,get:!1,set:!1};s[i]=!0}},Q.parseExpression=function(e,t){var n=this,r=this.start,i=this.startLoc,s=this.parseMaybeAssign(e,t);if(this.type===F.comma){var o=this.startNodeAt(r,i);for(o.expressions=[s];this.eat(F.comma);)o.expressions.push(n.parseMaybeAssign(e,t));return this.finishNode(o,"SequenceExpression")}return s},Q.parseMaybeAssign=function(e,t,n){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var r=!1;t||(t=new W,r=!0);var i=this.start,s=this.startLoc;this.type!=F.parenL&&this.type!=F.name||(this.potentialArrowAt=this.start);var o=this.parseMaybeConditional(e,t);if(n&&(o=n.call(this,o,i,s)),this.type.isAssign){this.checkPatternErrors(t,!0),r||W.call(t);var a=this.startNodeAt(i,s);return a.operator=this.value,a.left=this.type===F.eq?this.toAssignable(o):o,t.shorthandAssign=0,this.checkLVal(o),this.next(),a.right=this.parseMaybeAssign(e),this.finishNode(a,"AssignmentExpression")}return r&&this.checkExpressionErrors(t,!0),o},Q.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(F.question)){var s=this.startNodeAt(n,r);return s.test=i,s.consequent=this.parseMaybeAssign(),this.expect(F.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return i},Q.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?i:this.parseExprOp(i,n,r,-1,e)},Q.parseExprOp=function(e,t,n,r,i){var s=this.type.binop;if(null!=s&&(!i||this.type!==F._in)&&s>r){var o=this.type===F.logicalOR||this.type===F.logicalAND,a=this.value;this.next();var u=this.start,c=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1),u,c,s,i),p=this.buildBinary(t,n,e,l,a,o);return this.parseExprOp(p,t,n,r,i)}return e},Q.buildBinary=function(e,t,n,r,i,s){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,s?"LogicalExpression":"BinaryExpression")},Q.parseMaybeUnary=function(e,t){var n,r=this,i=this.start,s=this.startLoc;if(this.inAsync&&this.isContextual("await"))n=this.parseAwait(e),t=!0;else if(this.type.prefix){var o=this.startNode(),a=this.type===F.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLVal(o.argument):this.strict&&"delete"===o.operator&&"Identifier"===o.argument.type?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(o,a?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var u=r.startNodeAt(i,s);u.operator=r.value,u.prefix=!1,u.argument=n,r.checkLVal(n),r.next(),n=r.finishNode(u,"UpdateExpression")}}return!t&&this.eat(F.starstar)?this.buildBinary(i,s,n,this.parseMaybeUnary(null,!1),"**",!1):n},Q.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e),i="ArrowFunctionExpression"===r.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);return this.checkExpressionErrors(e)||i?r:this.parseSubscripts(r,t,n)},Q.parseSubscripts=function(e,t,n,r){for(var i=this;;){var s=i.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&!i.canInsertSemicolon();if(i.eat(F.dot)){var o=i.startNodeAt(t,n);o.object=e,o.property=i.parseIdent(!0),o.computed=!1,e=i.finishNode(o,"MemberExpression")}else if(i.eat(F.bracketL)){var a=i.startNodeAt(t,n);a.object=e,a.property=i.parseExpression(),a.computed=!0,i.expect(F.bracketR),e=i.finishNode(a,"MemberExpression")}else if(!r&&i.eat(F.parenL)){var u=new W,c=i.yieldPos,l=i.awaitPos;i.yieldPos=0,i.awaitPos=0;var p=i.parseExprList(F.parenR,i.options.ecmaVersion>=8,!1,u);if(s&&!i.canInsertSemicolon()&&i.eat(F.arrow))return i.checkPatternErrors(u,!0),i.checkYieldAwaitInDefaultParams(),i.yieldPos=c,i.awaitPos=l,i.parseArrowExpression(i.startNodeAt(t,n),p,!0);i.checkExpressionErrors(u,!0),i.yieldPos=c||i.yieldPos,i.awaitPos=l||i.awaitPos;var h=i.startNodeAt(t,n);h.callee=e,
+h.arguments=p,e=i.finishNode(h,"CallExpression")}else{if(i.type!==F.backQuote)return e;var f=i.startNodeAt(t,n);f.tag=e,f.quasi=i.parseTemplate(),e=i.finishNode(f,"TaggedTemplateExpression")}}},Q.parseExprAtom=function(e){var t,n=this.potentialArrowAt==this.start;switch(this.type){case F._super:this.inFunction||this.raise(this.start,"'super' outside of function or class");case F._this:var r=this.type===F._this?"ThisExpression":"Super";return t=this.startNode(),this.next(),this.finishNode(t,r);case F.name:var i=this.start,s=this.startLoc,o=this.parseIdent(this.type!==F.name);if(this.options.ecmaVersion>=8&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(F._function))return this.parseFunction(this.startNodeAt(i,s),!1,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(F.arrow))return this.parseArrowExpression(this.startNodeAt(i,s),[o],!1);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===F.name)return o=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(F.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,s),[o],!0)}return o;case F.regexp:var a=this.value;return t=this.parseLiteral(a.value),t.regex={pattern:a.pattern,flags:a.flags},t;case F.num:case F.string:return this.parseLiteral(this.value);case F._null:case F._true:case F._false:return t=this.startNode(),t.value=this.type===F._null?null:this.type===F._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case F.parenL:return this.parseParenAndDistinguishExpression(n);case F.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(F.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case F.braceL:return this.parseObj(!1,e);case F._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case F._class:return this.parseClass(this.startNode(),!1);case F._new:return this.parseNew();case F.backQuote:return this.parseTemplate();default:this.unexpected()}},Q.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(t,"Literal")},Q.parseParenExpression=function(){this.expect(F.parenL);var e=this.parseExpression();return this.expect(F.parenR),e},Q.parseParenAndDistinguishExpression=function(e){var t,n=this,r=this.start,i=this.startLoc,s=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,a,u=this.start,c=this.startLoc,l=[],p=!0,h=!1,f=new W,d=this.yieldPos,y=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==F.parenR;){if(p?p=!1:n.expect(F.comma),s&&n.afterTrailingComma(F.parenR,!0)){h=!0;break}if(n.type===F.ellipsis){o=n.start,l.push(n.parseParenItem(n.parseRest())),n.type===F.comma&&n.raise(n.start,"Comma is not permitted after the rest element");break}n.type!==F.parenL||a||(a=n.start),l.push(n.parseMaybeAssign(!1,f,n.parseParenItem))}var m=this.start,g=this.startLoc;if(this.expect(F.parenR),e&&!this.canInsertSemicolon()&&this.eat(F.arrow))return this.checkPatternErrors(f,!0),this.checkYieldAwaitInDefaultParams(),a&&this.unexpected(a),this.yieldPos=d,this.awaitPos=y,this.parseParenArrowList(r,i,l);l.length&&!h||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(f,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=y||this.awaitPos,l.length>1?(t=this.startNodeAt(u,c),t.expressions=l,this.finishNodeAt(t,"SequenceExpression",m,g)):t=l[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(r,i);return v.expression=t,this.finishNode(v,"ParenthesizedExpression")}return t},Q.parseParenItem=function(e){return e},Q.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var X=[];Q.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(F.dot))return e.meta=t,e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty");var n=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,r,!0),this.eat(F.parenL)?e.arguments=this.parseExprList(F.parenR,this.options.ecmaVersion>=8,!1):e.arguments=X,this.finishNode(e,"NewExpression")},Q.parseTemplateElement=function(){var e=this.startNode();return e.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),e.tail=this.type===F.backQuote,this.finishNode(e,"TemplateElement")},Q.parseTemplate=function(){var e=this,t=this.startNode();this.next(),t.expressions=[];var n=this.parseTemplateElement();for(t.quasis=[n];!n.tail;)e.expect(F.dollarBraceL),t.expressions.push(e.parseExpression()),e.expect(F.braceR),t.quasis.push(n=e.parseTemplateElement());return this.next(),this.finishNode(t,"TemplateLiteral")},Q.parseObj=function(e,t){var n=this,r=this.startNode(),i=!0,s={};for(r.properties=[],this.next();!this.eat(F.braceR);){if(i)i=!1;else if(n.expect(F.comma),n.afterTrailingComma(F.braceR))break;var o,a,u,c,l=n.startNode();n.options.ecmaVersion>=6&&(l.method=!1,l.shorthand=!1,(e||t)&&(u=n.start,c=n.startLoc),e||(o=n.eat(F.star))),n.parsePropertyName(l),e||!(n.options.ecmaVersion>=8)||o||l.computed||"Identifier"!==l.key.type||"async"!==l.key.name||n.type===F.parenL||n.type===F.colon||n.canInsertSemicolon()?a=!1:(a=!0,n.parsePropertyName(l,t)),n.parsePropertyValue(l,e,o,a,u,c,t),n.checkPropClash(l,s),r.properties.push(n.finishNode(l,"Property"))}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},Q.parsePropertyValue=function(e,t,n,r,i,s,o){if((n||r)&&this.type===F.colon&&this.unexpected(),this.eat(F.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===F.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n,r);else if(this.options.ecmaVersion>=5&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&this.type!=F.comma&&this.type!=F.braceR){(n||r||t)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var a="get"===e.kind?0:1;if(e.value.params.length!==a){var u=e.value.start;"get"===e.kind?this.raiseRecoverable(u,"getter should have no params"):this.raiseRecoverable(u,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}else this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((this.keywords.test(e.key.name)||(this.strict?this.reservedWordsStrict:this.reservedWords).test(e.key.name)||this.inGenerator&&"yield"==e.key.name||this.inAsync&&"await"==e.key.name)&&this.raiseRecoverable(e.key.start,"'"+e.key.name+"' can not be used as shorthand property"),e.kind="init",t?e.value=this.parseMaybeDefault(i,s,e.key):this.type===F.eq&&o?(o.shorthandAssign||(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,s,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected()},Q.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(F.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(F.bracketR),e.key;e.computed=!1}return e.key=this.type===F.num||this.type===F.string?this.parseExprAtom():this.parseIdent(!0)},Q.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Q.parseMethod=function(e,t){var n=this.startNode(),r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.inGenerator=n.generator,this.inAsync=n.async,this.yieldPos=0,this.awaitPos=0,this.expect(F.parenL),n.params=this.parseBindingList(F.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.finishNode(n,"FunctionExpression")},Q.parseArrowExpression=function(e,t,n){var r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos;return this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.inGenerator=!1,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.finishNode(e,"ArrowFunctionExpression")},Q.parseFunctionBody=function(e,t){var n=t&&this.type!==F.braceL;if(n)e.body=this.parseMaybeAssign(),e.expression=!0;else{var r=this.inFunction,i=this.labels;this.inFunction=!0,this.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.inFunction=r,this.labels=i}var s=!n&&e.body.body.length&&this.isUseStrict(e.body.body[0])?e.body.body[0]:null;if(s&&this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params)&&this.raiseRecoverable(s.start,"Illegal 'use strict' directive in function with non-simple parameter list"),this.strict||s){var o=this.strict;this.strict=!0,e.id&&this.checkLVal(e.id,!0),this.checkParams(e),this.strict=o}else!t&&this.isSimpleParamList(e.params)||this.checkParams(e)},Q.isSimpleParamList=function(e){for(var t=0;t<e.length;t++)if("Identifier"!==e[t].type)return!1;return!0},Q.checkParams=function(e){for(var t=this,n={},r=0;r<e.params.length;r++)t.checkLVal(e.params[r],!0,n)},Q.parseExprList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);){if(o)o=!1;else if(i.expect(F.comma),t&&i.afterTrailingComma(e))break;var a;n&&i.type===F.comma?a=null:i.type===F.ellipsis?(a=i.parseSpread(r),i.type===F.comma&&r&&!r.trailingComma&&(r.trailingComma=i.start)):a=i.parseMaybeAssign(!1,r),s.push(a)}return s},Q.parseIdent=function(e){var t=this.startNode();return e&&"never"==this.options.allowReserved&&(e=!1),this.type===F.name?(!e&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(this.value)&&(this.options.ecmaVersion>=6||this.input.slice(this.start,this.end).indexOf("\\")==-1)&&this.raiseRecoverable(this.start,"The keyword '"+this.value+"' is reserved"),this.inGenerator&&"yield"===this.value&&this.raiseRecoverable(this.start,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===this.value&&this.raiseRecoverable(this.start,"Can not use 'await' as identifier inside an async function"),t.name=this.value):e&&this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"Identifier")},Q.parseYield=function(){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type==F.semi||this.canInsertSemicolon()||this.type!=F.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(F.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")},Q.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0),this.finishNode(e,"AwaitExpression")};var Z=U.prototype;Z.raise=function(e,t){var n=c(this.input,e);t+=" ("+n.line+":"+n.column+")";var r=new SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},Z.raiseRecoverable=Z.raise,Z.curPosition=function(){if(this.options.locations)return new j(this.curLine,this.pos-this.lineStart)};var K=function(e,t,n){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new M(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},ee=U.prototype;ee.startNode=function(){return new K(this,this.start,this.startLoc)},ee.startNodeAt=function(e,t){return new K(this,e,t)},ee.finishNode=function(e,t){return f.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},ee.finishNodeAt=function(e,t,n,r){return f.call(this,e,t,n,r)};var te=function(e,t,n,r){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r},ne={b_stat:new te("{",!1),b_expr:new te("{",!0),b_tmpl:new te("${",!0),p_stat:new te("(",!1),p_expr:new te("(",!0),q_tmpl:new te("`",!0,!0,function(e){return e.readTmplToken()}),f_expr:new te("function",!0)},re=U.prototype;re.initialContext=function(){return[ne.b_stat]},re.braceIsBlock=function(e){if(e===F.colon){var t=this.curContext();if(t===ne.b_stat||t===ne.b_expr)return!t.isExpr}return e===F._return?N.test(this.input.slice(this.lastTokEnd,this.start)):e===F._else||e===F.semi||e===F.eof||e===F.parenR||(e==F.braceL?this.curContext()===ne.b_stat:!this.exprAllowed)},re.updateContext=function(e){var t,n=this.type;n.keyword&&e==F.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},F.parenR.updateContext=F.braceR.updateContext=function(){if(1==this.context.length)return void(this.exprAllowed=!0);var e=this.context.pop();e===ne.b_stat&&this.curContext()===ne.f_expr?(this.context.pop(),this.exprAllowed=!1):e===ne.b_tmpl?this.exprAllowed=!0:this.exprAllowed=!e.isExpr},F.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ne.b_stat:ne.b_expr),this.exprAllowed=!0},F.dollarBraceL.updateContext=function(){this.context.push(ne.b_tmpl),this.exprAllowed=!0},F.parenL.updateContext=function(e){var t=e===F._if||e===F._for||e===F._with||e===F._while;this.context.push(t?ne.p_stat:ne.p_expr),this.exprAllowed=!0},F.incDec.updateContext=function(){},F._function.updateContext=function(e){e.beforeExpr&&e!==F.semi&&e!==F._else&&(e!==F.colon&&e!==F.braceL||this.curContext()!==ne.b_stat)&&this.context.push(ne.f_expr),this.exprAllowed=!1},F.backQuote.updateContext=function(){this.curContext()===ne.q_tmpl?this.context.pop():this.context.push(ne.q_tmpl),this.exprAllowed=!1};var ie=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new M(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},se=U.prototype,oe="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);se.next=function(){this.options.onToken&&this.options.onToken(new ie(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},se.getToken=function(){return this.next(),new ie(this)},"undefined"!=typeof Symbol&&(se[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===F.eof,value:t}}}}),se.setStrict=function(e){var t=this;if(this.strict=e,this.type===F.num||this.type===F.string){if(this.pos=this.start,this.options.locations)for(;this.pos<this.lineStart;)t.lineStart=t.input.lastIndexOf("\n",t.lineStart-2)+1,--t.curLine;this.nextToken()}},se.curContext=function(){return this.context[this.context.length-1]},se.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(F.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},se.readToken=function(e){return n(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},se.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=57344)return e;var t=this.input.charCodeAt(this.pos+1);return(e<<10)+t-56613888},se.skipBlockComment=function(){var e=this,t=this.options.onComment&&this.curPosition(),n=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations){$.lastIndex=n;for(var i;(i=$.exec(this.input))&&i.index<this.pos;)++e.curLine,e.lineStart=i.index+i[0].length}this.options.onComment&&this.options.onComment(!0,this.input.slice(n+2,r),n,this.pos,t,this.curPosition())},se.skipLineComment=function(e){for(var t=this,n=this.pos,r=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&10!==i&&13!==i&&8232!==i&&8233!==i;)++t.pos,i=t.input.charCodeAt(t.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(n+e,this.pos),n,this.pos,r,this.curPosition())},se.skipSpace=function(){var e=this;e:for(;this.pos<this.input.length;){var t=e.input.charCodeAt(e.pos);switch(t){case 32:case 160:++e.pos;break;case 13:10===e.input.charCodeAt(e.pos+1)&&++e.pos;case 10:case 8232:case 8233:++e.pos,e.options.locations&&(++e.curLine,e.lineStart=e.pos);break;case 47:switch(e.input.charCodeAt(e.pos+1)){case 42:e.skipBlockComment();break;case 47:e.skipLineComment(2);break;default:break e}break;default:if(!(t>8&&t<14||t>=5760&&B.test(String.fromCharCode(t))))break e;++e.pos}}},se.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},se.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(F.ellipsis)):(++this.pos,this.finishToken(F.dot))},se.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(F.assign,2):this.finishOp(F.slash,1)},se.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?F.star:F.modulo;return this.options.ecmaVersion>=7&&42===t&&(++n,r=F.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(F.assign,n+1):this.finishOp(r,n)},se.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?F.logicalOR:F.logicalAND,2):61===t?this.finishOp(F.assign,2):this.finishOp(124===e?F.bitwiseOR:F.bitwiseAND,1)},se.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(F.assign,2):this.finishOp(F.bitwiseXOR,1)},se.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45==t&&62==this.input.charCodeAt(this.pos+2)&&N.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(F.incDec,2):61===t?this.finishOp(F.assign,2):this.finishOp(F.plusMin,1)},se.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(F.assign,n+1):this.finishOp(F.bitShift,n)):33==t&&60==e&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(n=2),this.finishOp(F.relational,n))},se.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(F.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(F.arrow)):this.finishOp(61===e?F.eq:F.prefix,1)},se.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(F.parenL);case 41:return++this.pos,this.finishToken(F.parenR);case 59:return++this.pos,this.finishToken(F.semi);case 44:return++this.pos,this.finishToken(F.comma);case 91:return++this.pos,this.finishToken(F.bracketL);case 93:return++this.pos,this.finishToken(F.bracketR);case 123:return++this.pos,this.finishToken(F.braceL);case 125:return++this.pos,this.finishToken(F.braceR);case 58:return++this.pos,this.finishToken(F.colon);case 63:return++this.pos,this.finishToken(F.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(F.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(F.prefix,1)}this.raise(this.pos,"Unexpected character '"+y(e)+"'")},se.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)};var ae=!!d("￿","u");se.readRegexp=function(){for(var e,t,n=this,r=this.pos;;){n.pos>=n.input.length&&n.raise(r,"Unterminated regular expression");var i=n.input.charAt(n.pos);if(N.test(i)&&n.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++n.pos}var s=this.input.slice(r,this.pos);++this.pos;var o=this.readWord1(),a=s,u="";if(o){var c=/^[gim]*$/;this.options.ecmaVersion>=6&&(c=/^[gimuy]*$/),c.test(o)||this.raise(r,"Invalid regular expression flag"),o.indexOf("u")>=0&&(ae?u="u":(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t,i){return t=Number("0x"+t),t>1114111&&n.raise(r+i+3,"Code point out of bounds"),"x"}),a=a.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),u=u.replace("u","")))}var l=null;return oe||(d(a,u,r,this),l=d(s,o)),this.finishToken(F.regexp,{pattern:s,flags:o,value:l})},se.readInt=function(e,t){for(var n=this,r=this.pos,i=0,s=0,o=null==t?1/0:t;s<o;++s){var a,u=n.input.charCodeAt(n.pos);if(a=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0,a>=e)break;++n.pos,i=i*e+a}return this.pos===r||null!=t&&this.pos-r!==t?null:i},se.readRadixNumber=function(e){this.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.start+2,"Expected number in radix "+e),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(F.num,t)},se.readNumber=function(e){var t=this.pos,r=!1,i=48===this.input.charCodeAt(this.pos);e||null!==this.readInt(10)||this.raise(t,"Invalid number"),i&&this.pos==t+1&&(i=!1);var s=this.input.charCodeAt(this.pos);46!==s||i||(++this.pos,this.readInt(10),r=!0,s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(s=this.input.charCodeAt(++this.pos),43!==s&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),r=!0),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var o,a=this.input.slice(t,this.pos);return r?o=parseFloat(a):i&&1!==a.length?/[89]/.test(a)||this.strict?this.raise(t,"Invalid number"):o=parseInt(a,8):o=parseInt(a,10),this.finishToken(F.num,o)},se.readCodePoint=function(){var e,t=this.input.charCodeAt(this.pos);if(123===t){this.options.ecmaVersion<6&&this.unexpected();var n=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.raise(n,"Code point out of bounds")}else e=this.readHexChar(4);return e},se.readString=function(e){for(var t=this,n="",r=++this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated string constant");var i=t.input.charCodeAt(t.pos);if(i===e)break;92===i?(n+=t.input.slice(r,t.pos),n+=t.readEscapedChar(!1),r=t.pos):(o(i)&&t.raise(t.start,"Unterminated string constant"),++t.pos)}return n+=this.input.slice(r,this.pos++),this.finishToken(F.string,n)},se.readTmplToken=function(){for(var e=this,t="",n=this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated template");var r=e.input.charCodeAt(e.pos);if(96===r||36===r&&123===e.input.charCodeAt(e.pos+1))return e.pos===e.start&&e.type===F.template?36===r?(e.pos+=2,e.finishToken(F.dollarBraceL)):(++e.pos,e.finishToken(F.backQuote)):(t+=e.input.slice(n,e.pos),e.finishToken(F.template,t));if(92===r)t+=e.input.slice(n,e.pos),t+=e.readEscapedChar(!0),n=e.pos;else if(o(r)){switch(t+=e.input.slice(n,e.pos),++e.pos,r){case 13:10===e.input.charCodeAt(e.pos)&&++e.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(r)}e.options.locations&&(++e.curLine,e.lineStart=e.pos),n=e.pos}else++e.pos}},se.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return y(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(t>=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),"0"!==n&&(this.strict||e)&&this.raise(this.pos-2,"Octal literal in strict mode"),this.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},se.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.raise(t,"Bad character escape sequence"),n},se.readWord1=function(){var e=this;this.containsEsc=!1;for(var t="",i=!0,s=this.pos,o=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=e.fullCharCodeAtPos();if(r(a,o))e.pos+=a<=65535?1:2;else{if(92!==a)break;e.containsEsc=!0,t+=e.input.slice(s,e.pos);var u=e.pos;117!=e.input.charCodeAt(++e.pos)&&e.raise(e.pos,"Expecting Unicode escape sequence \\uXXXX"),++e.pos;var c=e.readCodePoint();(i?n:r)(c,o)||e.raise(u,"Invalid Unicode escape"),t+=y(c),s=e.pos}i=!1}return t+this.input.slice(s,this.pos)},se.readWord=function(){var e=this.readWord1(),t=F.name;return(this.options.ecmaVersion>=6||!this.containsEsc)&&this.keywords.test(e)&&(t=O[e]),this.finishToken(t,e)};var ue="4.0.4";e.version=ue,e.parse=m,e.parseExpressionAt=g,e.tokenizer=v,e.addLooseExports=b,e.Parser=U,e.plugins=V,e.defaultOptions=D,e.Position=j,e.SourceLocation=M,e.getLineInfo=c,e.Node=K,e.TokenType=P,e.tokTypes=F,e.TokContext=te,e.tokContexts=ne,e.isIdentifierChar=r,e.isIdentifierStart=n,e.Token=ie,e.isNewLine=o,e.lineBreak=N,e.lineBreakG=$,Object.defineProperty(e,"__esModule",{value:!0})})},{}],16:[function(e,t,n){!function(e,r){"object"==typeof n&&"undefined"!=typeof t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r((e.acorn=e.acorn||{},e.acorn.walk=e.acorn.walk||{}))}(this,function(e){"use strict";function t(t,n,r,i,s){r||(r=e.base),function e(t,i,s){var o=s||t.type,a=n[o];r[o](t,i,e),a&&a(t,i)}(t,i,s)}function n(t,n,r,i){r||(r=e.base);var s=[];!function e(t,i,o){var a=o||t.type,u=n[a],c=t!=s[s.length-1];c&&s.push(t),r[a](t,i,e),u&&u(t,i||s,s),c&&s.pop()}(t,i)}function r(t,n,r,i,s){var o=r?e.make(r,i):i;!function e(t,n,r){o[r||t.type](t,n,e)}(t,n,s)}function i(e){return"string"==typeof e?function(t){return t==e}:e?e:function(){return!0}}function s(t,n,r,s,o,a){s=i(s),o||(o=e.base);try{!function e(t,i,a){var u=a||t.type;if((null==n||t.start<=n)&&(null==r||t.end>=r)&&o[u](t,i,e),(null==n||t.start==n)&&(null==r||t.end==r)&&s(u,t))throw new h(t,i)}(t,a)}catch(e){if(e instanceof h)return e;throw e}}function o(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){var a=o||t.type;if(!(t.start>n||t.end<n)&&(s[a](t,i,e),r(a,t)))throw new h(t,i)}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function a(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){if(!(t.end<n)){var a=o||t.type;if(t.start>=n&&r(a,t))throw new h(t,i);s[a](t,i,e)}}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function u(t,n,r,s,o){r=i(r),s||(s=e.base);var a;return function e(t,i,o){if(!(t.start>n)){var u=o||t.type;t.end<=n&&(!a||a.node.end<t.end)&&r(u,t)&&(a=new h(t,i)),s[u](t,i,e)}}(t,o),a}function c(t,n){n||(n=e.base);var r=f(n);for(var i in t)r[i]=t[i];return r}function l(e,t,n){n(e,t)}function p(e,t,n){}var h=function(e,t){this.node=e,this.state=t},f=Object.create||function(e){function t(){}return t.prototype=e,new t},d={};d.Program=d.BlockStatement=function(e,t,n){for(var r=0;r<e.body.length;++r)n(e.body[r],t,"Statement")},d.Statement=l,d.EmptyStatement=p,d.ExpressionStatement=d.ParenthesizedExpression=function(e,t,n){return n(e.expression,t,"Expression")},d.IfStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Statement"),e.alternate&&n(e.alternate,t,"Statement")},d.LabeledStatement=function(e,t,n){return n(e.body,t,"Statement")},d.BreakStatement=d.ContinueStatement=p,d.WithStatement=function(e,t,n){n(e.object,t,"Expression"),n(e.body,t,"Statement")},d.SwitchStatement=function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r){var i=e.cases[r];i.test&&n(i.test,t,"Expression");for(var s=0;s<i.consequent.length;++s)n(i.consequent[s],t,"Statement")}},d.ReturnStatement=d.YieldExpression=d.AwaitExpression=function(e,t,n){e.argument&&n(e.argument,t,"Expression")},d.ThrowStatement=d.SpreadElement=function(e,t,n){return n(e.argument,t,"Expression")},d.TryStatement=function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t),e.finalizer&&n(e.finalizer,t,"Statement")},d.CatchClause=function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},d.WhileStatement=d.DoWhileStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.body,t,"Statement")},d.ForStatement=function(e,t,n){e.init&&n(e.init,t,"ForInit"),e.test&&n(e.test,t,"Expression"),e.update&&n(e.update,t,"Expression"),n(e.body,t,"Statement")},d.ForInStatement=d.ForOfStatement=function(e,t,n){n(e.left,t,"ForInit"),n(e.right,t,"Expression"),n(e.body,t,"Statement")},d.ForInit=function(e,t,n){"VariableDeclaration"==e.type?n(e,t):n(e,t,"Expression")},d.DebuggerStatement=p,d.FunctionDeclaration=function(e,t,n){return n(e,t,"Function")},d.VariableDeclaration=function(e,t,n){for(var r=0;r<e.declarations.length;++r)n(e.declarations[r],t)},d.VariableDeclarator=function(e,t,n){n(e.id,t,"Pattern"),e.init&&n(e.init,t,"Expression")},d.Function=function(e,t,n){e.id&&n(e.id,t,"Pattern");for(var r=0;r<e.params.length;r++)n(e.params[r],t,"Pattern");n(e.body,t,e.expression?"ScopeExpression":"ScopeBody")},d.ScopeBody=function(e,t,n){return n(e,t,"Statement")},d.ScopeExpression=function(e,t,n){return n(e,t,"Expression")},d.Pattern=function(e,t,n){"Identifier"==e.type?n(e,t,"VariablePattern"):"MemberExpression"==e.type?n(e,t,"MemberPattern"):n(e,t)},d.VariablePattern=p,d.MemberPattern=l,d.RestElement=function(e,t,n){return n(e.argument,t,"Pattern")},d.ArrayPattern=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Pattern")}},d.ObjectPattern=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r].value,t,"Pattern")},d.Expression=l,d.ThisExpression=d.Super=d.MetaProperty=p,d.ArrayExpression=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Expression")}},d.ObjectExpression=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r],t)},d.FunctionExpression=d.ArrowFunctionExpression=d.FunctionDeclaration,d.SequenceExpression=d.TemplateLiteral=function(e,t,n){for(var r=0;r<e.expressions.length;++r)n(e.expressions[r],t,"Expression")},d.UnaryExpression=d.UpdateExpression=function(e,t,n){n(e.argument,t,"Expression")},d.BinaryExpression=d.LogicalExpression=function(e,t,n){n(e.left,t,"Expression"),n(e.right,t,"Expression")},d.AssignmentExpression=d.AssignmentPattern=function(e,t,n){n(e.left,t,"Pattern"),n(e.right,t,"Expression")},d.ConditionalExpression=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Expression"),n(e.alternate,t,"Expression")},d.NewExpression=d.CallExpression=function(e,t,n){if(n(e.callee,t,"Expression"),e.arguments)for(var r=0;r<e.arguments.length;++r)n(e.arguments[r],t,"Expression")},d.MemberExpression=function(e,t,n){n(e.object,t,"Expression"),e.computed&&n(e.property,t,"Expression")},d.ExportNamedDeclaration=d.ExportDefaultDeclaration=function(e,t,n){e.declaration&&n(e.declaration,t,"ExportNamedDeclaration"==e.type||e.declaration.id?"Statement":"Expression"),e.source&&n(e.source,t,"Expression")},d.ExportAllDeclaration=function(e,t,n){n(e.source,t,"Expression")},d.ImportDeclaration=function(e,t,n){for(var r=0;r<e.specifiers.length;r++)n(e.specifiers[r],t);
+n(e.source,t,"Expression")},d.ImportSpecifier=d.ImportDefaultSpecifier=d.ImportNamespaceSpecifier=d.Identifier=d.Literal=p,d.TaggedTemplateExpression=function(e,t,n){n(e.tag,t,"Expression"),n(e.quasi,t)},d.ClassDeclaration=d.ClassExpression=function(e,t,n){return n(e,t,"Class")},d.Class=function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression");for(var r=0;r<e.body.body.length;r++)n(e.body.body[r],t)},d.MethodDefinition=d.Property=function(e,t,n){e.computed&&n(e.key,t,"Expression"),n(e.value,t,"Expression")},e.simple=t,e.ancestor=n,e.recursive=r,e.findNodeAt=s,e.findNodeAround=o,e.findNodeAfter=a,e.findNodeBefore=u,e.make=c,e.base=d,Object.defineProperty(e,"__esModule",{value:!0})})},{}],17:[function(e,t,n){"use strict";function r(e,t){for(var n=t.toString(),r="return "+n,i=n.match(/.*\(([^)]*)\)/)[1],s=/['"]!!!([^'"]*)['"]/g,o=[];;){var a=s.exec(r);if(!a)break;o.push(a)}return o.reverse().forEach(function(t){r=r.slice(0,t.index)+e[t[1]]+r.substr(t.index+t[0].length)}),r=r.replace(/\/\*[^*]*\*\//g," ").replace(/\s+/g," "),new Function(i,r)()}function i(e,t){if(Function.prototype.$asyncspawn||Object.defineProperty(Function.prototype,"$asyncspawn",{value:i,enumerable:!1,configurable:!0,writable:!0}),this instanceof Function){var n=this;return new e(function(e,r){function i(t,n){var o;try{if(o=t.call(s,n),o.done){if(o.value!==e){if(o.value&&o.value===o.value.then)return o.value(e,r);e&&e(o.value),e=null}return}o.value.then?o.value.then(function(e){i(s.next,e)},function(e){i(s.throw,e)}):i(s.next,o.value)}catch(e){return r&&r(e),void(r=null)}}var s=n.call(t,e,r);i(s.next)})}}var s=r({zousan:e("./zousan").toString(),thenable:e("./thenableFactory").toString()},function e(t,n){function r(){return i.apply(t,arguments)}Function.prototype.$asyncbind||Object.defineProperty(Function.prototype,"$asyncbind",{value:e,enumerable:!1,configurable:!0,writable:!0}),e.trampoline||(e.trampoline=function(e,t,n,r,i){return function s(o){for(;o;){if(o.then)return o=o.then(s,r),i?void 0:o;try{if(o.pop){if(o.length)return o.pop()?t.call(e):o;o=n}else o=o.call(e)}catch(e){return r(e)}}}}),e.LazyThenable||(e.LazyThenable="!!!thenable"(),e.EagerThenable=e.Thenable=(e.EagerThenableFactory="!!!zousan")());var i=this;switch(n){case!0:return new e.Thenable(r);case 0:return new e.LazyThenable(r);case void 0:return r.then=r,r;default:return function(){try{return i.apply(t,arguments)}catch(e){return n(e)}}}});s(),i(),t.exports={$asyncbind:s,$asyncspawn:i}},{"./thenableFactory":18,"./zousan":19}],18:[function(e,t,n){t.exports=function(){function e(e){return e&&e instanceof Object&&"function"==typeof e.then}function t(n,r,i){try{var s=i?i(r):r;if(n===s)return n.reject(new TypeError("Promise resolution loop"));e(s)?s.then(function(e){t(n,e)},function(e){n.reject(e)}):n.resolve(s)}catch(e){n.reject(e)}}function n(){}function r(e){}function i(e,t){this.resolve=e,this.reject=t}function s(r,i){var s=new n;try{this._resolver(function(n){return e(n)?n.then(r,i):t(s,n,r)},function(e){t(s,e,i)})}catch(e){t(s,e,i)}return s}function o(e){this._resolver=e,this.then=s}return n.prototype={resolve:r,reject:r,then:i},o.resolve=function(e){return o.isThenable(e)?e:{then:function(t){return t(e)}}},o.isThenable=e,o}},{}],19:[function(e,t,n){(function(e){"use strict";t.exports=function(t){function n(e){if(e){var t=this;e(function(e){t.resolve(e)},function(e){t.reject(e)})}}function r(e,t){if("function"==typeof e.y)try{var n=e.y.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.resolve(t)}function i(e,t){if("function"==typeof e.n)try{var n=e.n.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.reject(t)}t=t||"object"==typeof e&&e.nextTick||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,0)};var s=function(){function e(){for(;n.length-r;)n[r](),n[r++]=void 0,r===i&&(n.splice(0,i),r=0)}var n=[],r=0,i=1024;return function(i){n.push(i),n.length-r===1&&t(e)}}();return n.prototype={resolve:function(e){if(void 0===this.state){if(e===this)return this.reject(new TypeError("Attempt to resolve promise with self"));var t=this;if(e&&("function"==typeof e||"object"==typeof e))try{var n=0,i=e.then;if("function"==typeof i)return void i.call(e,function(e){n++||t.resolve(e)},function(e){n++||t.reject(e)})}catch(e){return void(n||this.reject(e))}this.state=r,this.v=e,t.c&&s(function(){for(var n=0,i=t.c.length;n<i;n++)r(t.c[n],e)})}},reject:function(e){if(void 0===this.state){this.state=i,this.v=e;var t=this.c;t&&s(function(){for(var n=0,r=t.length;n<r;n++)i(t[n],e)})}},then:function(e,t){var r=new n,i={y:e,n:t,p:r};if(void 0===this.state)this.c?this.c.push(i):this.c=[i];else{var o=this.state,a=this.v;s(function(){o(i,a)})}return r}},n.resolve=function(e){if(e&&e instanceof n)return e;var t=new n;return t.resolve(e),t},n.reject=function(e){if(e&&e instanceof n)return e;var t=new n;return t.reject(e),t},n.version="2.3.2-nodent",n}}).call(this,e("_process"))},{_process:7}],20:[function(e,t,n){var r=e("./lib/core");n=t.exports=e("./lib/async"),n.core=r,n.isCore=function(e){return r[e]},n.sync=e("./lib/sync")},{"./lib/async":21,"./lib/core":24,"./lib/sync":26}],21:[function(e,t,n){(function(n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");"win32"===n.platform?/[\/\\]/:/\//;t.exports=function(e,t,u){function c(t,n,r){t?u(t):n?u(null,n,r):h(b,function(t,n,r){t?u(t):n?u(null,n,r):u(new Error("Cannot find module '"+e+"' from '"+v+"'"))})}function l(e,n,r){function i(e,n,o){function a(a,l,p){if(o=l,a)return r(a);if(p&&o&&t.pathFilter){var h=s.relative(p,c),f=h.slice(0,h.length-e[0].length),d=t.pathFilter(o,n,f);if(d)return i([""].concat(g.slice()),s.resolve(p,d),o)}y(c,u)}function u(t,s){t?r(t):s?r(null,c,o):i(e.slice(1),n,o)}if(0===e.length)return r(null,void 0,o);var c=n+e[0];o?a(null,o):p(s.dirname(c),a)}"function"==typeof n&&(r=n,n=void 0);var o=[""].concat(g);i(o,e,n)}function p(e,r){if(""===e||"/"===e)return r(null);if("win32"===n.platform&&/^\w:[\\\/]*$/.test(e))return r(null);if(/[\\\/]node_modules[\\\/]*$/.test(e))return r(null);var i=s.join(e,"package.json");y(i,function(n,o){return o?void m(i,function(n,s){n&&r(n);try{var o=JSON.parse(s)}catch(e){}o&&t.packageFilter&&(o=t.packageFilter(o,i)),r(null,o,e)}):p(s.dirname(e),r)})}function h(e,n,r){"function"==typeof n&&(r=n,n=t.package);var i=s.join(e,"/package.json");y(i,function(o,a){return o?r(o):a?void m(i,function(n,o){if(n)return r(n);try{var a=JSON.parse(o)}catch(e){}return t.packageFilter&&(a=t.packageFilter(a,i)),a.main?("."!==a.main&&"./"!==a.main||(a.main="index"),void l(s.resolve(e,a.main),a,function(t,n,i){if(t)return r(t);if(n)return r(null,n,i);if(!i)return l(s.join(e,"/index"),i,r);var o=s.resolve(e,i.main);h(o,i,function(t,n,i){return t?r(t):n?r(null,n,i):void l(s.join(e,"/index"),i,r)})})):void l(s.join(e,"/index"),a,r)}):l(s.join(e,"/index"),n,r)})}function f(e,n,r){!function t(n){function i(t,n,i){return t?r(t):n?r(null,n,i):void h(s.join(a,"/",e),void 0,o)}function o(e,i,s){return e?r(e):i?r(null,i,s):void t(n.slice(1))}if(0===n.length)return r(null,void 0);var a=n[0],u=s.join(a,"/",e);l(u,void 0,i)}(a(n,t))}if("function"==typeof t&&(u=t,t={}),t||(t={}),"string"!=typeof e){var d=new TypeError("path must be a string");return n.nextTick(function(){u(d)})}var y=t.isFile||function(e,t){i.stat(e,function(e,n){e&&"ENOENT"===e.code?t(null,!1):e?t(e):t(null,n.isFile()||n.isFIFO())})},m=t.readFile||i.readFile,g=t.extensions||[".js"],v=t.basedir||s.dirname(o());if(t.paths=t.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(e)){var b=s.resolve(v,e);".."===e&&(b+="/"),/\/$/.test(e)&&b===v?h(b,t.package,c):l(b,t.package,c)}else f(e,v,function(t,n,i){if(t)u(t);else if(n)u(null,n,i);else{if(r[e])return u(null,e);u(new Error("Cannot find module '"+e+"' from '"+v+"'"))}})}}).call(this,e("_process"))},{"./caller.js":22,"./core":24,"./node-modules-paths.js":25,_process:7,fs:1,path:6}],22:[function(e,t,n){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;return Error.prepareStackTrace=e,t[2].getFileName()}},{}],23:[function(e,t,n){t.exports={"*":["assert","buffer_ieee754","buffer","child_process","cluster","console","constants","crypto","_debugger","dgram","dns","domain","events","freelist","fs","http","https","_linklist","module","net","os","path","punycode","querystring","readline","repl","stream","string_decoder","sys","timers","tls","tty","url","util","vm","zlib"],.11:["_http_server"],"1.0":["process","v8"]}},{}],24:[function(e,t,n){(function(n){function r(e){if("*"===e)return!0;for(var t=e.split("."),n=0;n<3;++n)if((i[n]||0)>=(t[n]||0))return!0;return!1}var i=n.versions.node.split("."),s=e("./core.json"),o={};for(var a in s)if(Object.prototype.hasOwnProperty.call(s,a)&&r(a))for(var u=0;u<s[a].length;++u)o[s[a][u]]=!0;t.exports=o}).call(this,e("_process"))},{"./core.json":23,_process:7}],25:[function(e,t,n){(function(n){var r=e("path");t.exports=function(e,t){var i=t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"];e=r.resolve(e);var s="/";/^([A-Za-z]:)/.test(e)?s="":/^\\\\/.test(e)&&(s="\\\\");for(var o="win32"===n.platform?/[\/\\]/:/\/+/,a=e.split(o),u=[],c=a.length-1;c>=0;c--)i.indexOf(a[c])===-1&&(u=u.concat(i.map(function(e){return s+r.join(r.join.apply(r,a.slice(0,c+1)),e)})));return"win32"===n.platform&&(u[u.length-1]=u[u.length-1].replace(":",":\\")),u.concat(t.paths)}}).call(this,e("_process"))},{_process:7,path:6}],26:[function(e,t,n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");t.exports=function(e,t){function n(e){if(l(e))return e;for(var t=0;t<h.length;t++){var n=e+h[t];if(l(n))return n}}function u(e){var r=s.join(e,"/package.json");if(l(r)){var i=p(r,"utf8");try{var o=JSON.parse(i);if(t.packageFilter&&(o=t.packageFilter(o,e)),o.main){var a=n(s.resolve(e,o.main));if(a)return a;var c=u(s.resolve(e,o.main));if(c)return c}}catch(e){}}return n(s.join(e,"/index"))}function c(e,r){for(var i=a(r,t),o=0;o<i.length;o++){var c=i[o],l=n(s.join(c,"/",e));if(l)return l;var p=u(s.join(c,"/",e));if(p)return p}}t||(t={});var l=t.isFile||function(e){try{var t=i.statSync(e)}catch(e){if(e&&"ENOENT"===e.code)return!1;throw e}return t.isFile()||t.isFIFO()},p=t.readFileSync||i.readFileSync,h=t.extensions||[".js"],f=t.basedir||s.dirname(o());if(t.paths=t.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(e)){var d=s.resolve(f,e);".."===e&&(d+="/");var y=n(d)||u(d);if(y)return y}else{var m=c(e,f);if(m)return m}if(r[e])return e;throw new Error("Cannot find module '"+e+"' from '"+f+"'")}},{"./caller.js":22,"./core":24,"./node-modules-paths.js":25,fs:1,path:6}],27:[function(e,t,n){function r(){this._array=[],this._set=Object.create(null)}var i=e("./util"),s=Object.prototype.hasOwnProperty;r.fromArray=function(e,t){for(var n=new r,i=0,s=e.length;i<s;i++)n.add(e[i],t);return n},r.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=i.toSetString(e),r=s.call(this._set,n),o=this._array.length;r&&!t||this._array.push(e),r||(this._set[n]=o)},r.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},r.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":36}],28:[function(e,t,n){function r(e){return e<0?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var s=e("./base64"),o=5,a=1<<o,u=a-1,c=a;n.encode=function(e){var t,n="",i=r(e);do t=i&u,i>>>=o,i>0&&(t|=c),n+=s.encode(t);while(i>0);return n},n.decode=function(e,t,n){var r,a,l=e.length,p=0,h=0;do{if(t>=l)throw new Error("Expected more digits in base 64 VLQ value.");if(a=s.decode(e.charCodeAt(t++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(a&c),a&=u,p+=a<<h,h+=o}while(r);n.value=i(p),n.rest=t}},{"./base64":29}],29:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){var t=65,n=90,r=97,i=122,s=48,o=57,a=43,u=47,c=26,l=52;return t<=e&&e<=n?e-t:r<=e&&e<=i?e-r+c:s<=e&&e<=o?e-s+l:e==a?62:e==u?63:-1}},{}],30:[function(e,t,n){function r(e,t,i,s,o,a){var u=Math.floor((t-e)/2)+e,c=o(i,s[u],!0);return 0===c?u:c>0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?r(e,u,i,s,o,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,s){if(0===t.length)return-1;var o=r(-1,t.length,e,t,i,s||n.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(t[o],t[o-1],!0);)--o;return o}},{}],31:[function(e,t,n){function r(e,t){var n=e.generatedLine,r=t.generatedLine,i=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){r(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=i},{"./util":36}],32:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t){return Math.round(e+Math.random()*(t-e))}function s(e,t,n,o){if(n<o){var a=i(n,o),u=n-1;r(e,a,o);for(var c=e[o],l=n;l<o;l++)t(e[l],c)<=0&&(u+=1,r(e,u,l));r(e,u+1,l);var p=u+1;s(e,t,n,p-1),s(e,t,p+1,o)}}n.quickSort=function(e,t){s(e,t,0,e.length-1)}},{}],33:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new o(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),r=a.getArg(t,"sources"),i=a.getArg(t,"names",[]),s=a.getArg(t,"sourceRoot",null),o=a.getArg(t,"sourcesContent",null),u=a.getArg(t,"mappings"),l=a.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(a.normalize).map(function(e){return s&&a.isAbsolute(s)&&a.isAbsolute(e)?a.relative(s,e):e}),this._names=c.fromArray(i.map(String),!0),this._sources=c.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=o,this._mappings=u,this.file=l}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function o(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),i=a.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new c,this._names=new c;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=a.getArg(e,"offset"),n=a.getArg(t,"line"),i=a.getArg(t,"column");if(n<s.line||n===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(a.getArg(e,"map"))}})}var a=e("./util"),u=e("./binary-search"),c=e("./array-set").ArraySet,l=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,s=t||null,o=n||r.GENERATED_ORDER;switch(o){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=a.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},r.prototype.allGeneratedPositionsFor=function(e){var t=a.getArg(e,"line"),n={source:a.getArg(e,"source"),originalLine:t,originalColumn:a.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=a.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(void 0===e.column)for(var o=s.originalLine;s&&s.originalLine===o;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var c=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==c;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,i.prototype=Object.create(r.prototype),i.prototype.consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=c.fromArray(e._names.toArray(),!0),r=t._sources=c.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var o=e._mappings.toArray().slice(),u=t.__generatedMappings=[],l=t.__originalMappings=[],h=0,f=o.length;h<f;h++){var d=o[h],y=new s;y.generatedLine=d.generatedLine,y.generatedColumn=d.generatedColumn,d.source&&(y.source=r.indexOf(d.source),y.originalLine=d.originalLine,y.originalColumn=d.originalColumn,d.name&&(y.name=n.indexOf(d.name)),l.push(y)),u.push(y)}return p(t.__originalMappings,a.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?a.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,o,u,c=1,h=0,f=0,d=0,y=0,m=0,g=e.length,v=0,b={},x={},w=[],E=[];v<g;)if(";"===e.charAt(v))c++,v++,h=0;else if(","===e.charAt(v))v++;else{for(n=new s,n.generatedLine=c,o=v;o<g&&!this._charIsMappingSeparator(e,o);o++);if(r=e.slice(v,o),i=b[r])v+=r.length;else{for(i=[];v<o;)l.decode(e,v,x),u=x.value,v=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[r]=i}n.generatedColumn=h+i[0],h=n.generatedColumn,i.length>1&&(n.source=y+i[1],y+=i[1],n.originalLine=f+i[2],f=n.originalLine,n.originalLine+=1,n.originalColumn=d+i[3],d=n.originalColumn,i.length>4&&(n.name=m+i[4],m+=i[4])),E.push(n),"number"==typeof n.originalLine&&w.push(n)}p(E,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,p(w,a.compareByOriginalPositions),this.__originalMappings=w},i.prototype._findMapping=function(e,t,n,r,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",a.compareByGeneratedPositionsDeflated,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var s=a.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=a.join(this.sourceRoot,s)));var o=a.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:s,line:a.getArg(i,"originalLine",null),column:a.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=a.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=a.getArg(e,"source");if(null!=this.sourceRoot&&(t=a.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var n={source:t,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===n.source)return{line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,o.prototype=Object.create(r.prototype),o.prototype.constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),o.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=u.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n?n:e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},o.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n],i=r.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(n.consumer.sources.indexOf(a.getArg(e,"source"))!==-1){var r=n.consumer.generatedPositionFor(e);if(r){var i={line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},o.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,s=0;s<i.length;s++){var o=i[s],u=r.consumer._sources.at(o.source);null!==r.consumer.sourceRoot&&(u=a.join(r.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var c=r.consumer._names.at(o.name);this._names.add(c),c=this._names.indexOf(c);var l={source:u,generatedLine:o.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(r.generatedOffset.generatedLine===o.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:c};this.__generatedMappings.push(l),"number"==typeof l.originalLine&&this.__originalMappings.push(l)}p(this.__generatedMappings,a.compareByGeneratedPositionsDeflated),p(this.__originalMappings,a.compareByOriginalPositions)},n.IndexedSourceMapConsumer=o},{"./array-set":27,"./base64-vlq":28,"./binary-search":30,"./quick-sort":32,"./util":36}],34:[function(e,t,n){function r(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new o,this._names=new o,this._mappings=new a,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),o=e("./array-set").ArraySet,a=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=s.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),n=s.getArg(e,"original",null),r=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=s.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=s.relative(i,r));var a=new o,u=new o;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var o=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=o.source&&(t.source=o.source,null!=n&&(t.source=s.join(n,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=o.line,t.originalColumn=o.column,null!=o.name&&(t.name=o.name))}var c=t.source;null==c||a.has(c)||a.add(c);var l=t.name;null==l||u.has(l)||u.add(l)},this),this._sources=a,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=s.join(n,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r,o=0,a=1,u=0,c=0,l=0,p=0,h="",f=this._mappings.toArray(),d=0,y=f.length;d<y;d++){if(t=f[d],e="",t.generatedLine!==a)for(o=0;t.generatedLine!==a;)e+=";",a++;else if(d>0){if(!s.compareByGeneratedPositionsInflated(t,f[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-o),o=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=i.encode(r-p),p=r,e+=i.encode(t.originalLine-1-c),c=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=i.encode(n-l),l=n)),h+=e}return h},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var n=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":27,"./base64-vlq":28,"./mapping-list":31,"./util":36}],35:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[u]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),o=/(\r?\n)/,a=10,u="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)a.add(t);else{var i=n?s.join(n,e.source):e.source;a.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var a=new r,u=e.split(o),c=function(){var e=u.shift(),t=u.shift()||"";return e+t},l=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(l<e.generatedLine)){var t=u[0],n=t.substr(0,e.generatedColumn-p);return u[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,n),void(h=e)}i(h,c()),l++,p=0}for(;l<e.generatedLine;)a.add(c()),l++;if(p<e.generatedColumn){var t=u[0];a.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),u.length>0&&(h&&i(h,c()),a.add(u.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=s.join(n,e)),a.setSourceContent(e,r))}),a},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n<r;n++)t=this.children[n],t[u]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[u]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),
+this},r.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][u]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(s.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,s=null,o=null,u=null,c=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&o===i.line&&u===i.column&&c===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,o=i.line,u=i.column,c=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),s=null,r=!1);for(var l=0,p=e.length;l<p;l++)e.charCodeAt(l)===a?(t.line++,t.column=0,l+1===p?(s=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":34,"./util":36}],36:[function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(g);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function s(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var t=e,r=i(e);if(r){if(!r.path)return e;t=r.path}for(var o,a=n.isAbsolute(t),u=t.split(/\/+/),c=0,l=u.length-1;l>=0;l--)o=u[l],"."===o?u.splice(l,1):".."===o?c++:c>0&&(""===o?(u.splice(l+1,c),c=0):(u.splice(l,2),c--));return t=u.join("/"),""===t&&(t=a?"/":"."),r?(r.path=t,s(r)):t}function a(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),s(n);if(n||t.match(v))return t;if(r&&!r.host&&!r.path)return r.host=t,s(r);var a="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=a,s(r)):a}function u(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}function c(e){return e}function l(e){return h(e)?"$"+e:e}function p(e){return h(e)?e.slice(1):e}function h(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function f(e,t,n){var r=e.source-t.source;return 0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r||n?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=e.generatedLine-t.generatedLine,0!==r?r:e.name-t.name))))}function d(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r||n?r:(r=e.source-t.source,0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:e.name-t.name))))}function y(e,t){return e===t?0:e>t?1:-1}function m(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:(n=e.generatedColumn-t.generatedColumn,0!==n?n:(n=y(e.source,t.source),0!==n?n:(n=e.originalLine-t.originalLine,0!==n?n:(n=e.originalColumn-t.originalColumn,0!==n?n:y(e.name,t.name)))))}n.getArg=r;var g=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;n.urlParse=i,n.urlGenerate=s,n.normalize=o,n.join=a,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(g)},n.relative=u;var b=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=b?c:l,n.fromSetString=b?c:p,n.compareByOriginalPositions=f,n.compareByGeneratedPositionsDeflated=d,n.compareByGeneratedPositionsInflated=m},{}],37:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":33,"./lib/source-map-generator":34,"./lib/source-node":35}],38:[function(e,t,n){t.exports={name:"nodent",version:"3.0.7",description:"NoDent - Asynchronous Javascript language extensions",main:"nodent.js",scripts:{cover:"istanbul cover ./nodent.js tests -- --quick --syntax --forceStrict ; open ./coverage/lcov-report/index.html",test:"cd tests && npm i --prod && cd .. && node --expose-gc ./nodent.js tests --syntax --quick","test-loader":"cd tests/loader/app && npm test && cd ../../..",start:"./nodent.js"},bin:{nodentjs:"./nodent.js"},dependencies:{acorn:">=2.5.2","acorn-es7-plugin":"^1.1.3","nodent-runtime":"^3.0.3",resolve:"^1.1.7","source-map":"0.5.6"},repository:{type:"git",url:"git+https://github.com/MatAtBread/nodent.git"},engines:"node >= 0.10.0",keywords:["Javascript","ES7","async","await","language","extensions","Node","callback","generator","Promise","asynchronous"],author:{name:"Mat At Bread",email:"nodent@mailed.me.uk"},license:"BSD-2-Clause",bugs:{url:"https://github.com/MatAtBread/nodent/issues"},gitHead:"8ea9feab498470d7a2c3c09326a1c17e8eeb332a",homepage:"https://github.com/MatAtBread/nodent#readme",_id:"nodent@3.0.7",_shasum:"08dd540baf834c136648aeaa9ae8ecd4bf92aa52",_from:"nodent@>=3.0.2 <4.0.0",_npmVersion:"3.10.3",_nodeVersion:"6.7.0",_npmUser:{name:"matatbread",email:"npm@mailed.me.uk"},maintainers:[{name:"matatbread",email:"npm@mailed.me.uk"}],dist:{shasum:"08dd540baf834c136648aeaa9ae8ecd4bf92aa52",tarball:"https://registry.npmjs.org/nodent/-/nodent-3.0.7.tgz"},_npmOperationalInternal:{host:"packages-18-east.internal.npmjs.com",tmp:"tmp/nodent-3.0.7.tgz_1477471431033_0.10623699799180031"},directories:{},_resolved:"https://registry.npmjs.org/nodent/-/nodent-3.0.7.tgz",readme:"ERROR: No README data found!"}},{}],nodent:[function(e,t,n){(function(n,r,i,s,o,a,u,c){"use strict";function l(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}function p(e){throw e}function h(){}function f(e){return"ExpressionStatement"===e.type&&("StringLiteral"===e.expression.type||"Literal"===e.expression.type&&"string"==typeof e.expression.value)}function d(t,n,r){n||(n=console.warn.bind(console));var i,s,o={};if("string"==typeof t)(i=t.match(M))&&(s=i[1]||"default");else for(var a=0;a<t.body.length&&f(t.body[a].type);a++){var u="'"+t.body[a].value+"'";if(i=u.match(M)){s=i[1]||"default";break}}if(!i){if(!I.noUseDirective)return null;s="default",i=[null,null,"{}"]}if(s)try{r?e("fs").lstatSync(r).isDirectory()&&(r=e("path").dirname(r)):r=e("path").resolve(".");var c=e("resolve").sync("package.json",{moduleDirectory:[""],extensions:[""],basedir:r}),p=JSON.parse(R.readFileSync(c)).nodent.directive[s]}catch(e){}try{o=l([j[s],p,i[2]&&JSON.parse(i[2])])}catch(e){n("Invalid literal compiler option: "+(i&&i[0]||"<no options found>"))}return o.promises||o.es7||o.generators||o.engine?((o.promises||o.es7)&&o.generators&&(n("No valid 'use nodent' directive, assumed -es7 mode"),o=j.es7),(o.generators||o.engine)&&(o.promises=!0),o.promises&&(o.es7=!0),o):null}function y(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),"#!"===e.substring(0,2)&&(e="//"+e),e}function m(e){var t;return t=e instanceof i?e:new i(e.toString(),"binary"),t.toString("base64")}function g(e,t){return t=t||e.log,function(n,r,i){var s=y(R.readFileSync(r,"utf8")),o=e.parse(s,r,i);i=i||d(o.ast,t,r),e.asynchronize(o,void 0,i,t),e.prettyPrint(o,i),n._compile(o.code,o.filename)}}function v(e){return e=e||q,function(t,n,r){if(Array.isArray(n)){var i=n;n=function(e,t){return i.indexOf(e)>=0}}else n=n||function(e,t){return!(e.match(/Sync$/)&&e.replace(/Sync$/,"")in t)};r||(r="");var s=Object.create(t);for(var o in s)(function(){var i=o;try{"function"!=typeof t[i]||s[i+r]&&s[i+r].isAsync||!n(i,s)||(s[i+r]=function(){var n=Array.prototype.slice.call(arguments),r=function(e,r){var s=function(t,n){if(t)return r(t);switch(arguments.length){case 0:return e();case 2:return e(n);default:return e(Array.prototype.slice.call(arguments,1))}};n.length>t[i].length?n.push(s):n[t[i].length-1]=s;t[i].apply(t,n)};return new e(r)},s[i+r].isAsync=!0)}catch(e){}})();return s.super=t,s}}function b(t,n){var r=t.filename.split("/"),i=r.pop(),s=O(t.ast,n&&n.sourcemap?{map:{startLine:n.mapStartLine||0,file:i+"(original)",sourceMapRoot:r.join("/"),sourceContent:t.origCode}}:null,t.origCode);if(n&&n.sourcemap)try{var o="",a=s.map.toJSON();if(a){var u=e("source-map").SourceMapConsumer;t.sourcemap=a,T[t.filename]={map:a,smc:new u(a)},o="\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+m(JSON.stringify(a))+"\n"}t.code=s.code+o}catch(e){t.code=s}else t.code=s;return t}function x(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n);var i={origCode:e.toString(),filename:t};try{return i.ast=F.parse(i.origCode,r&&r.parser),r.babelTree&&F.treeWalker(i.ast,function(e,t,n){"Literal"===e.type?n[0].replace(N.babelLiteralNode(e.value)):"Property"===e.type&&("ClassBody"===n[0].parent.type?e.type="ClassProperty":e.type="ObjectProperty"),t()}),i}catch(e){if(e instanceof SyntaxError){var s=i.origCode.substr(e.pos-e.loc.column);s=s.split("\n")[0],e.message+=" "+t+" (nodent)\n"+s+"\n"+s.replace(/[\S ]/g,"-").substring(0,e.loc.column)+"^",e.stack=""}throw e}}function w(t,n){n=n||{};var r=t+"|"+Object.keys(n).sort().reduce(function(e,t){return e+t+JSON.stringify(n[t])},"");return this.covers[r]||(t.indexOf("/")>=0?this.covers[r]=e(t):this.covers[r]=e(c+"/covers/"+t)),this.covers[r](this,n)}function E(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n),r=r||{};for(var i in I)i in r||(r[i]=I[i]);var s=this.parse(e,t,null,r);return this.asynchronize(s,null,r,this.log||h),this.prettyPrint(s,r),s}function S(t,n,r){var i={},s=this;n||(n=/\.njs$/),r?r.compiler||(r.compiler={}):r={compiler:{}};var o=l([B,r.compiler]);return function(a,u,c){function l(e){u.statusCode=500,u.write(e.toString()),u.end()}if(i[a.url])return u.setHeader("Content-Type",i[a.url].contentType),r.setHeaders&&r.setHeaders(u),u.write(i[a.url].output),void u.end();if(!(a.url.match(n)||r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)))return c&&c();var p=t+a.url;if(r.extensions&&!R.existsSync(p))for(var h=0;h<r.extensions.length;h++)if(R.existsSync(p+"."+r.extensions[h])){p=p+"."+r.extensions[h];break}R.readFile(p,function(t,n){if(t)return l(t);try{var c,p;r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)?(c=e("./htmlScriptParser")(s,n.toString(),a.url,r),p="text/html"):(r.runtime?(c="Function.prototype."+o.$asyncbind+" = "+V.toString()+";",o.generators&&(c+="Function.prototype."+o.$asyncspawn+" = "+U.toString()+";"),o.wrapAwait&&!o.promises&&(c+="Object."+o.$makeThenable+" = "+q.resolve.toString()+";"),o.mapStartLine=c.split("\n").length,c+="\n"):c="",c+=s.compile(n.toString(),a.url,null,o).code,p="application/javascript"),u.setHeader("Content-Type",p),r.enableCache&&(i[a.url]={output:c,contentType:p}),r.setHeaders&&r.setHeaders(u),u.write(c),u.end()}catch(e){return l(e)}})}}function k(e){this.covers={},this._ident=k.prototype.version+"_"+Math.random(),this.setOptions(e)}function A(e,t){function n(e){var t=e.getFileName();if(t&&T[t]){var n=T[t].smc.originalPositionFor({line:e.getLineNumber(),column:e.getColumnNumber()});if(n&&n.line){var r=e.toString();return"\n at "+r.substring(0,r.length-1)+" => …"+n.source+":"+n.line+":"+n.column+(e.getFunctionName()?")":"")}}return"\n at "+e}return e+t.map(n).join("")}function _(e){var t={};t[I.$asyncbind]={value:V,writable:!0,enumerable:!1,configurable:!0},t[I.$asyncspawn]={value:U,writable:!0,enumerable:!1,configurable:!0};try{Object.defineProperties(Function.prototype,t)}catch(t){e.log("Function prototypes already assigned: ",t.messsage)}I[I.$error]in r||(r[I[I.$error]]=p),e.augmentObject&&Object.defineProperties(Object.prototype,{asyncify:{value:function(e,t,n){return v(e)(this,t,n)},writable:!0,configurable:!0},isThenable:{value:function(){return q.isThenable(this)},writable:!0,configurable:!0}}),Object[I.$makeThenable]=q.resolve}function C(t){function n(e,t){e=e.split("."),t=t.split(".");for(var n=0;n<3;n++){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}function r(i,s){if(!s.match(/nodent\/nodent\.js$/)){if(s.match(/node_modules\/nodent\/.*\.js$/))return P(i,s);for(var u=0;u<o.length;u++)if(s.slice(0,o[u].path.length)==o[u].path){if(o[u].jsCompiler){if(o[u].jsCompiler===r)break;return o[u].jsCompiler.apply(this,arguments)}return P(i,s)}var c=y(R.readFileSync(s,"utf8")),l=d(c,t.log,s);return l?a(i,s,l):P(i,s)}var p={path:s.replace(/\/node_modules\/nodent\/nodent\.js$/,"")};p.path&&(p.version=JSON.parse(R.readFileSync(s.replace(/nodent\.js$/,"package.json"))).version,P(i,s),n(p.version,k.prototype.version)<0&&(p.originalNodentLoader=i.exports,i.exports=function(){var n=e.extensions[".js"],r=p.originalNodentLoader.apply(this,arguments);return p.jsCompiler=e.extensions[".js"],e.extensions[".js"]=n,_(t),r},Object.keys(p.originalNodentLoader).forEach(function(e){i.exports[e]=p.originalNodentLoader[e]}),o.push(p),o=o.sort(function(e,t){return t.path.length-e.path.length})))}function i(n){if(Array.isArray(n))return n.forEach(i);if(e.extensions[n]){var r=Object.keys(t).filter(function(e){return W[e]!=t[e]});r.length&&t.log("File extension "+n+" already configured for async/await compilation.")}e.extensions[n]=g(W,t.log)}if(t){for(var s in t)if("use"!==s&&!$.hasOwnProperty(s))throw new Error("NoDent: unknown option: "+s+"="+JSON.stringify(t[s]))}else t={};W?W.setOptions(t):(Object.keys($).forEach(function(e){e in t||(t[e]=$[e])}),W=new k(t)),t.dontMapStackTraces||(Error.prepareStackTrace=A),_(t);var o=[];if(!t.dontInstallRequireHook){if(!P){P=e.extensions[".js"];var a=g(W,t.log);e.extensions[".js"]=r}t.extension&&i(t.extension)}return t.use&&(Array.isArray(t.use)?(t.log("Warning: nodent({use:[...]}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),t.use.length&&t.use.forEach(function(e){W[e]=W.require(e)})):(t.log("Warning: nodent({use:{...}}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),Object.keys(t.use).forEach(function(e){W[e]=W.require(e,t.use[e])}))),W}function L(){function t(e){return new q(function(t,n){var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var e=r.map(function(e){return e.toString()}).join("");return t(e)}),e.on("error",n)}.$asyncbind(this))}function i(e){for(var t=[],r=e||2;r<n.argv.length;r++)if("--"===n.argv[r].slice(0,2)){var i=n.argv[r].slice(2).split("=");t[i[0]]=i[1]||!0}else t.push(n.argv[r]);return t}function s(e,t){try{var n,i;if(u.fromast){if(e=JSON.parse(e),n={origCode:"",filename:o,ast:e},i=d(e,c.log),!i){var s=u.use?'"use nodent-'+u.use+'";':'"use nodent";';i=d(s,c.log),console.warn("/* "+o+": No 'use nodent*' directive, assumed "+s+" */")}}else i=d(u.use?'"use nodent-'+u.use+'";':e,c.log),i||(i=d('"use nodent";',c.log),u.dest||console.warn("/* "+o+": 'use nodent*' directive missing/ignored, assumed 'use nodent;' */")),n=c.parse(e,o,i);if(u.parseast||u.pretty||c.asynchronize(n,void 0,i,c.log),c.prettyPrint(n,i),u.out||u.pretty||u.dest){if(u.dest&&!t)throw new Error("Can't write unknown file to "+u.dest);var a="";u.runtime&&(a+="Function.prototype.$asyncbind = "+Function.prototype.$asyncbind.toString()+";\n",a+="global.$error = global.$error || "+r.$error.toString()+";\n"),a+=n.code,t&&u.dest?(R.writeFileSync(u.dest+t,a),console.log("Compiled",u.dest+t)):console.log(a)}(u.minast||u.parseast)&&console.log(JSON.stringify(n.ast,function(e,t){return"$"===e[0]||e.match(/^(start|end|loc)$/)?void 0:t},2,null)),u.ast&&console.log(JSON.stringify(n.ast,function(e,t){return"$"===e[0]?void 0:t},0)),u.exec&&new Function(n.code)()}catch(e){console.error(e)}}var o,a=e("path"),u=(n.env.NODENT_OPTS&&JSON.parse(n.env.NODENT_OPTS)||{},i());C.setDefaultCompileOptions({sourcemap:u.sourcemap,wrapAwait:u.wrapAwait,lazyThenables:u.lazyThenables,noRuntime:u.noruntime,es6target:u.es6target});var c=C({augmentObject:!0});if(!(u.fromast||u.parseast||u.pretty||u.out||u.dest||u.ast||u.minast||u.exec))try{var l=a.resolve(u[0]);return e(l)}catch(e){throw e&&(e.message=u[0]+": "+e.message),e}if(0==u.length||"-"===u[0])return o="(stdin)",t(n.stdin).then(s,p);for(var h=0;h<u.length;h++)o=a.resolve(u[h]),s(y(R.readFileSync(o,"utf8")),u[h])}var P,T={},R=e("fs"),O=e("./lib/output"),F=e("./lib/parser"),N=e("./lib/arboriculture"),$={log:function(e){console.warn("Nodent: "+e)},augmentObject:!1,extension:".njs",dontMapStackTraces:!1,asyncStackTrace:!1,babelTree:!1,dontInstallRequireHook:!1},B={noRuntime:!1,lazyThenables:!1,es6target:!1,noUseDirective:!1,wrapAwait:null,mapStartLine:0,sourcemap:!0,parser:{sourceType:"script"},$return:"$return",$error:"$error",$arguments:"$args",$asyncspawn:"$asyncspawn",$asyncbind:"$asyncbind",generatedSymbolPrefix:"$",$makeThenable:"$makeThenable"},I=Object.create(B,{es7:{value:!0,writable:!0,enumerable:!0}}),j={default:I,es7:Object.create(I),promise:Object.create(I,{promises:{value:!0,writable:!0,enumerable:!0}}),generator:Object.create(I,{generators:{value:!0,writable:!0,enumerable:!0},es7:{value:!1,writable:!0,enumerable:!0}}),engine:Object.create(I,{engine:{value:!0,writable:!0,enumerable:!0},promises:{value:!0,writable:!0,enumerable:!0}})};j.promises=j.promise,j.generators=j.generator,j.engine=j.engine;var M=/^\s*['"]use\s+nodent-?([a-zA-Z0-9]*)?(\s*.*)?['"]\s*;/,D=e("nodent-runtime"),V=D.$asyncbind,U=D.$asyncspawn,q=V.Thenable;k.prototype.setOptions=function(e){return this.log=e.log===!1?h:e.log||this.log,this.options=l([this.options,e]),delete this.options.log,this},V.call(V),k.prototype.version=e("./package.json").version,k.prototype.Thenable=q,k.prototype.EagerThenable=V.EagerThenableFactory,k.prototype.isThenable=function(e){return e&&e instanceof Object&&"function"==typeof e.then},k.prototype.asyncify=v,k.prototype.require=w,k.prototype.generateRequestHandler=S,k.prototype.$asyncspawn=U,k.prototype.$asyncbind=V,k.prototype.parse=x,k.prototype.compile=E,k.prototype.asynchronize=N.asynchronize,k.prototype.prettyPrint=b,k.prototype.parseCompilerOptions=d,k.prototype.getDefaultCompileOptions=void 0,Object.defineProperty(k.prototype,"Promise",{get:function(){return initOpts.log("Warning: nodent.Promise is deprecated. Use nodent.Thenable instead"),q},enumerable:!1,configurable:!1});var W;C.setDefaultCompileOptions=function(e,t){return e&&Object.keys(e).forEach(function(t){if(!(t in I))throw new Error("NoDent: unknown compiler option: "+t);I[t]=e[t]}),t&&Object.keys(t).forEach(function(e){if(!(e in t))throw new Error("NoDent: unknown configuration option: "+e);$[e]=t[e]}),C},C.setCompileOptions=function(e,t){return optionSet[e]=optionSet[e]||l([I]),t&&Object.keys(t).forEach(function(n){if(!(n in I))throw new Error("NoDent: unknown compiler option: "+n);optionSet[e][n]=t[n]}),C},C.asyncify=v,C.Thenable=V.Thenable,C.EagerThenable=V.EagerThenableFactory,t.exports=C,e.main===t&&n.argv.length>=3&&L()}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/nodent")},{"./htmlScriptParser":8,"./lib/arboriculture":9,"./lib/output":10,"./lib/parser":11,"./package.json":38,_process:7,buffer:2,fs:1,"nodent-runtime":17,path:6,resolve:20,"source-map":37}]},{},[]); \ No newline at end of file
diff --git a/tools/eslint/node_modules/ajv/dist/regenerator.min.js b/tools/eslint/node_modules/ajv/dist/regenerator.min.js
index 3099ecde43..2d0d23621e 100644
--- a/tools/eslint/node_modules/ajv/dist/regenerator.min.js
+++ b/tools/eslint/node_modules/ajv/dist/regenerator.min.js
@@ -1,12 +1,36 @@
-/* regenerator 0.8.42: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */
-require=function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){function r(e,t){return d.isUndefined(t)?""+t:d.isNumber(t)&&!isFinite(t)?t.toString():d.isFunction(t)||d.isRegExp(t)?t.toString():t}function i(e,t){return d.isString(e)?e.length<t?e:e.slice(0,t):e}function a(e){return i(JSON.stringify(e.actual,r),128)+" "+e.operator+" "+i(JSON.stringify(e.expected,r),128)}function o(e,t,n,r,i){throw new y.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function s(e,t){e||o(e,!0,t,"==",y.ok)}function l(e,t){if(e===t)return!0;if(d.isBuffer(e)&&d.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return d.isDate(e)&&d.isDate(t)?e.getTime()===t.getTime():d.isRegExp(e)&&d.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:d.isObject(e)||d.isObject(t)?c(e,t):e==t}function u(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function c(e,t){if(d.isNullOrUndefined(e)||d.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(d.isPrimitive(e)||d.isPrimitive(t))return e===t;var n=u(e),r=u(t);if(n&&!r||!n&&r)return!1;if(n)return e=h.call(e),t=h.call(t),l(e,t);var i,a,o=g(e),s=g(t);if(o.length!=s.length)return!1;for(o.sort(),s.sort(),a=o.length-1;a>=0;a--)if(o[a]!=s[a])return!1;for(a=o.length-1;a>=0;a--)if(i=o[a],!l(e[i],t[i]))return!1;return!0}function p(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||t.call({},e)===!0)}function f(e,t,n,r){var i;d.isString(n)&&(r=n,n=null);try{t()}catch(e){i=e}if(r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&o(i,n,"Missing expected exception"+r),!e&&p(i,n)&&o(i,n,"Got unwanted exception"+r),e&&i&&n&&!p(i,n)||!e&&i)throw i}var d=e("util/"),h=Array.prototype.slice,m=Object.prototype.hasOwnProperty,y=t.exports=s;y.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=a(this),this.generatedMessage=!0);var t=e.stackStartFunction||o;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=t.name,s=r.indexOf("\n"+i);if(s>=0){var l=r.indexOf("\n",s+1);r=r.substring(l+1)}this.stack=r}}},d.inherits(y.AssertionError,Error),y.fail=o,y.ok=s,y.equal=function(e,t,n){e!=t&&o(e,t,n,"==",y.equal)},y.notEqual=function(e,t,n){e==t&&o(e,t,n,"!=",y.notEqual)},y.deepEqual=function(e,t,n){l(e,t)||o(e,t,n,"deepEqual",y.deepEqual)},y.notDeepEqual=function(e,t,n){l(e,t)&&o(e,t,n,"notDeepEqual",y.notDeepEqual)},y.strictEqual=function(e,t,n){e!==t&&o(e,t,n,"===",y.strictEqual)},y.notStrictEqual=function(e,t,n){e===t&&o(e,t,n,"!==",y.notStrictEqual)},y.throws=function(e,t,n){f.apply(this,[!0].concat(h.call(arguments)))},y.doesNotThrow=function(e,t){f.apply(this,[!1].concat(h.call(arguments)))},y.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)m.call(e,n)&&t.push(n);return t}},{"util/":34}],3:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],4:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return o.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return o.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=o.prototype):(null===e&&(e=new o(t)),e.length=t),e}function o(e,t,n){if(!(o.TYPED_ARRAY_SUPPORT||this instanceof o))return new o(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return c(this,e)}return s(this,e,t,n)}function s(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?d(e,t,n,r):"string"==typeof t?p(e,t,n):h(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t,n,r){return l(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}function c(e,t){if(l(t),e=a(e,t<0?0:0|m(t)),!o.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!o.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|g(t,n);e=a(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function f(e,t){var n=t.length<0?0:0|m(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function d(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),o.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=o.prototype):e=f(e,t),e}function h(e,t){if(o.isBuffer(t)){var n=0|m(t.length);return e=a(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||Y(t.length)?a(e,0):f(e,t);if("Buffer"===t.type&&Z(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function m(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function y(e){return+e!=e&&(e=0),o.alloc(+e)}function g(e,t){if(o.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function v(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return P(this,t,n);case"ascii":return I(this,t,n);case"latin1":case"binary":return j(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function E(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=o.from(t,r)),o.isBuffer(t))return 0===t.length?-1:S(e,t,n,r,i);if("number"==typeof t)return t=255&t,o.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):S(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function S(e,t,n,r,i){function a(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,s=e.length,l=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}var u;if(i){var c=-1;for(u=n;u<s;u++)if(a(e,u)===a(t,c===-1?0:u-c)){if(c===-1&&(c=u),u-c+1===l)return c*o}else c!==-1&&(u-=u-c),c=-1}else for(n+l>s&&(n=s-l),u=n;u>=0;u--){for(var p=!0,f=0;f<l;f++)if(a(e,u+f)!==a(t,f)){p=!1;break}if(p)return u}return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var a=t.length;if(a%2!==0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function x(e,t,n,r){return G(z(t,e.length-n),e,n,r)}function k(e,t,n,r){return G(W(t),e,n,r)}function T(e,t,n,r){return k(e,t,n,r)}function A(e,t,n,r){return G(H(t),e,n,r)}function L(e,t,n,r){return G($(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?K.fromByteArray(e):K.fromByteArray(e.slice(t,n))}function P(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a=e[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=n){var l,u,c,p;switch(s){case 1:a<128&&(o=a);break;case 2:l=e[i+1],128===(192&l)&&(p=(31&a)<<6|63&l,p>127&&(o=p));break;case 3:l=e[i+1],u=e[i+2],128===(192&l)&&128===(192&u)&&(p=(15&a)<<12|(63&l)<<6|63&u,p>2047&&(p<55296||p>57343)&&(o=p));break;case 4:l=e[i+1],u=e[i+2],c=e[i+3],128===(192&l)&&128===(192&u)&&128===(192&c)&&(p=(15&a)<<18|(63&l)<<12|(63&u)<<6|63&c,p>65535&&p<1114112&&(o=p))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return _(r)}function _(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function I(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function j(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function O(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=V(e[a]);return i}function M(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function N(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,a){if(!o.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function R(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function F(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function X(e,t,n,r,i){return i||F(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,i){return i||F(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(e,t,n,r,52,8),n+8}function J(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function V(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){t=t||1/0;for(var n,r=e.length,i=null,a=[],o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function W(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function $(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function H(e){return K.toByteArray(J(e))}function G(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Y(e){return e!==e}var K=e("base64-js"),Q=e("ieee754"),Z=e("isarray");n.Buffer=o,n.SlowBuffer=y,n.INSPECT_MAX_BYTES=50,o.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),o.poolSize=8192,o._augment=function(e){return e.__proto__=o.prototype,e},o.from=function(e,t,n){return s(null,e,t,n)},o.TYPED_ARRAY_SUPPORT&&(o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0})),o.alloc=function(e,t,n){return u(null,e,t,n)},o.allocUnsafe=function(e){return c(null,e)},o.allocUnsafeSlow=function(e){return c(null,e)},o.isBuffer=function(e){return!(null==e||!e._isBuffer)},o.compare=function(e,t){if(!o.isBuffer(e)||!o.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},o.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(e,t){if(!Z(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return o.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=o.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(!o.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i),i+=a.length}return r},o.byteLength=g,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},o.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},o.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},o.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},o.prototype.equals=function(e){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===o.compare(this,e)},o.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},o.prototype.compare=function(e,t,n,r,i){if(!o.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,s=n-t,l=Math.min(a,s),u=this.slice(r,i),c=e.slice(t,n),p=0;p<l;++p)if(u[p]!==c[p]){a=u[p],s=c[p];break}return a<s?-1:s<a?1:0},o.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},o.prototype.indexOf=function(e,t,n){return E(this,e,t,n,!0)},o.prototype.lastIndexOf=function(e,t,n){return E(this,e,t,n,!1)},o.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t=0|t,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return T(this,e,t,n);case"base64":return A(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;o.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(o.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=o.prototype;else{var i=t-e;r=new o(i,void 0);for(var a=0;a<i;++a)r[a]=this[a+e]}return r},o.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||N(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},o.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||N(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},o.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},o.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},o.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},o.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},o.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},o.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||N(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},o.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||N(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},o.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},o.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},o.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},o.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},o.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),Q.read(this,e,!0,23,4)},o.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),Q.read(this,e,!1,23,4)},o.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),Q.read(this,e,!0,52,8)},o.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),Q.read(this,e,!1,52,8)},o.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var a=1,o=0;for(this[t]=255&e;++o<n&&(a*=256);)this[t+o]=e/a&255;return t+n},o.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t=0|t,n=0|n,!r){var i=Math.pow(2,8*n)-1;D(this,e,t,n,i,0)}var a=n-1,o=1;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=e/o&255;return t+n},o.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,255,0),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},o.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,65535,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},o.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,4294967295,0),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},o.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},o.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},o.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,1,127,-128),o.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},o.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):R(this,e,t,!0),t+2},o.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,2,32767,-32768),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):R(this,e,t,!1),t+2},o.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),o.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},o.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),o.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},o.prototype.writeFloatLE=function(e,t,n){return X(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){return X(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},o.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!o.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},o.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!o.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e=255&e);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var s=o.isBuffer(e)?e:z(new o(e,r).toString()),l=s.length;for(a=0;a<n-t;++a)this[a+t]=s[a%l]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":5,ieee754:6,isarray:7}],5:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function a(e){var t,n,i,a,o,s,l=e.length;o=r(e),s=new p(3*l/4-o),i=o>0?l-4:l;var u=0;for(t=0,n=0;t<i;t+=4,n+=3)a=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],s[u++]=a>>16&255,s[u++]=a>>8&255,s[u++]=255&a;return 2===o?(a=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,s[u++]=255&a):1===o&&(a=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,s[u++]=a>>8&255,s[u++]=255&a),s}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function s(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(o(r));return i.join("")}function l(e){for(var t,n=e.length,r=n%3,i="",a=[],o=16383,l=0,c=n-r;l<c;l+=o)a.push(s(e,l,l+o>c?c:l+o));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),a.push(i),a.join("")}n.byteLength=i,n.toByteArray=a,n.fromByteArray=l;for(var u=[],c=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,h=f.length;d<h;++d)u[d]=f[d],c[f.charCodeAt(d)]=d;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],6:[function(e,t,n){n.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,l=(1<<s)-1,u=l>>1,c=-7,p=n?i-1:0,f=n?-1:1,d=e[t+p];for(p+=f,a=d&(1<<-c)-1,d>>=-c,c+=s;c>0;a=256*a+e[t+p],p+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=r;c>0;o=256*o+e[t+p],p+=f,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:(d?-1:1)*(1/0);o+=Math.pow(2,r),a-=u}return(d?-1:1)*o*Math.pow(2,a-r)},n.write=function(e,t,n,r,i,a){var o,s,l,u=8*a-i-1,c=(1<<u)-1,p=c>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:a-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),t+=o+p>=1?f/l:f*Math.pow(2,1-p),t*l>=2&&(o++,l/=2),o+p>=c?(s=0,o=c):o+p>=1?(s=(t*l-1)*Math.pow(2,i),o+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=255&s,d+=h,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;e[n+d]=255&o,d+=h,o/=256,u-=8);e[n+d-h]|=128*m}},{}],7:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],8:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function a(e){return"number"==typeof e}function o(e){return"object"==typeof e&&null!==e}function s(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!a(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,a,l,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(n=this._events[e],s(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),n.apply(this,a)}else if(o(n))for(a=Array.prototype.slice.call(arguments,1),u=n.slice(),r=u.length,l=0;l<r;l++)u[l].apply(this,a);return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,o(this._events[e])&&!this._events[e].warned&&(n=s(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,a,s;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){r=s;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],9:[function(e,t,n){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){function r(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))}t.exports=function(e){return null!=e&&(r(e)||i(e)||!!e._isBuffer)}},{}],11:[function(e,t,n){n.endianness=function(){return"LE"},n.hostname=function(){return"undefined"!=typeof location?location.hostname:""},n.loadavg=function(){return[]},n.uptime=function(){return 0},n.freemem=function(){return Number.MAX_VALUE},n.totalmem=function(){return Number.MAX_VALUE},n.cpus=function(){return[]},n.type=function(){return"Browser"},n.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},n.networkInterfaces=n.getNetworkInterfaces=function(){return{}},n.arch=function(){return"javascript"},n.platform=function(){return"browser"},n.tmpdir=n.tmpDir=function(){return"/tmp"},n.EOL="\n"},{}],12:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,a=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var o=a>=0?arguments[a]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),a="/"===o(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&a&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");
-return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),a=r(t.split("/")),o=Math.min(i.length,a.length),s=o,l=0;l<o;l++)if(i[l]!==a[l]){s=l;break}for(var u=[],l=s;l<i.length;l++)u.push("..");return u=u.concat(a.slice(s)),u.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=a(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=a(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return a(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:13}],13:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function o(e){if(f===clearTimeout)return clearTimeout(e);if((f===i||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function s(){y&&h&&(y=!1,h.length?m=h.concat(m):g=-1,m.length&&l())}function l(){if(!y){var e=a(s);y=!0;for(var t=m.length;t;){for(h=m,m=[];++g<t;)h&&h[g].run();g=-1,t=m.length}h=null,y=!1,o(e)}}function u(e,t){this.fun=e,this.array=t}function c(){}var p,f,d=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{f="function"==typeof clearTimeout?clearTimeout:i}catch(e){f=i}}();var h,m=[],y=!1,g=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];m.push(new u(e,t)),1!==m.length||y||a(l)},u.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=c,d.addListener=c,d.once=c,d.off=c,d.removeListener=c,d.removeAllListeners=c,d.emit=c,d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},{}],14:[function(e,t,n){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":15}],15:[function(e,t,n){"use strict";function r(e){return this instanceof r?(u.call(this,e),c.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",i)):new r(e)}function i(){this.allowHalfOpen||this._writableState.ended||s(a,this)}function a(e){e.end()}var o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};t.exports=r;var s=e("process-nextick-args"),l=e("core-util-is");l.inherits=e("inherits");var u=e("./_stream_readable"),c=e("./_stream_writable");l.inherits(r,u);for(var p=o(c.prototype),f=0;f<p.length;f++){var d=p[f];r.prototype[d]||(r.prototype[d]=c.prototype[d])}},{"./_stream_readable":17,"./_stream_writable":19,"core-util-is":22,inherits:9,"process-nextick-args":24}],16:[function(e,t,n){"use strict";function r(e){return this instanceof r?void i.call(this,e):new r(e)}t.exports=r;var i=e("./_stream_transform"),a=e("core-util-is");a.inherits=e("inherits"),a.inherits(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},{"./_stream_transform":18,"core-util-is":22,inherits:9}],17:[function(e,t,n){(function(n){"use strict";function r(e,t,n){return"function"==typeof e.prependListener?e.prependListener(t,n):void(e._events&&e._events[t]?_(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n))}function i(t,n){X=X||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof X&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new F,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(B||(B=e("string_decoder/").StringDecoder),this.decoder=new B(t.encoding),this.encoding=t.encoding)}function a(t){return X=X||e("./_stream_duplex"),this instanceof a?(this._readableState=new i(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),void I.call(this)):new a(t)}function o(e,t,n,r,i){var a=c(t,n);if(a)e.emit("error",a);else if(null===n)t.reading=!1,p(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!i){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&i){var l=new Error("stream.unshift() after end event");e.emit("error",l)}else{var u;!t.decoder||i||r||(n=t.decoder.write(n),u=!t.objectMode&&0===n.length),i||(t.reading=!1),u||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&f(e))),h(e,t)}else i||(t.reading=!1);return s(t)}function s(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function l(e){return e>=U?e=U:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=l(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var n=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function p(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,f(e)}}function f(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(R("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?P(d,e):d(e))}function d(e){R("emit readable"),e.emit("readable"),E(e)}function h(e,t){t.readingMore||(t.readingMore=!0,P(m,e,t))}function m(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(R("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function y(e){return function(){var t=e._readableState;R("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&j(e,"data")&&(t.flowing=!0,E(e))}}function g(e){R("readable nexttick read 0"),e.read(0)}function v(e,t){t.resumeScheduled||(t.resumeScheduled=!0,P(b,e,t))}function b(e,t){t.reading||(R("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),E(e),t.flowing&&!t.reading&&e.read(0)}function E(e){var t=e._readableState;for(R("flow",t.flowing);t.flowing&&null!==e.read(););}function S(e,t){if(0===t.length)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=w(e,t.buffer,t.decoder),n}function w(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?x(e,t):k(e,t),r}function x(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(i+=o===a.length?a:a.slice(0,e),e-=o,0===e){o===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++r}return t.length-=r,i}function k(e,t){var n=M.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,o),e-=o,0===e){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}function T(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,P(A,t,e))}function A(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function L(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function C(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}t.exports=a;var P=e("process-nextick-args"),_=e("isarray");a.ReadableState=i;var I,j=(e("events").EventEmitter,function(e,t){return e.listeners(t).length});!function(){try{I=e("stream")}catch(e){}finally{I||(I=e("events").EventEmitter)}}();var O=e("buffer").Buffer,M=e("buffer-shims"),N=e("core-util-is");N.inherits=e("inherits");var D=e("util"),R=void 0;R=D&&D.debuglog?D.debuglog("stream"):function(){};var B,F=e("./internal/streams/BufferList");N.inherits(a,I);var X,X;a.prototype.push=function(e,t){var n=this._readableState;return n.objectMode||"string"!=typeof e||(t=t||n.defaultEncoding,t!==n.encoding&&(e=M.from(e,t),t="")),o(this,n,e,t,!1)},a.prototype.unshift=function(e){var t=this._readableState;return o(this,t,e,"",!0)},a.prototype.isPaused=function(){return this._readableState.flowing===!1},a.prototype.setEncoding=function(t){return B||(B=e("string_decoder/").StringDecoder),this._readableState.decoder=new B(t),this._readableState.encoding=t,this};var U=8388608;a.prototype.read=function(e){R("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return R("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?T(this):f(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&T(this),null;var r=t.needReadable;R("need readable",r),(0===t.length||t.length-e<t.highWaterMark)&&(r=!0,R("length less than watermark",r)),t.ended||t.reading?(r=!1,R("reading or ended",r)):r&&(R("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=u(n,t)));var i;return i=e>0?S(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&T(this)),null!==i&&this.emit("data",i),i},a.prototype._read=function(e){this.emit("error",new Error("not implemented"))},a.prototype.pipe=function(e,t){function i(e){R("onunpipe"),e===f&&o()}function a(){R("onend"),e.end()}function o(){R("cleanup"),e.removeListener("close",u),e.removeListener("finish",c),e.removeListener("drain",g),e.removeListener("error",l),e.removeListener("unpipe",i),f.removeListener("end",a),f.removeListener("end",o),f.removeListener("data",s),v=!0,!d.awaitDrain||e._writableState&&!e._writableState.needDrain||g()}function s(t){R("ondata"),b=!1;var n=e.write(t);!1!==n||b||((1===d.pipesCount&&d.pipes===e||d.pipesCount>1&&C(d.pipes,e)!==-1)&&!v&&(R("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,b=!0),f.pause())}function l(t){R("onerror",t),p(),e.removeListener("error",l),0===j(e,"error")&&e.emit("error",t)}function u(){e.removeListener("finish",c),p()}function c(){R("onfinish"),e.removeListener("close",u),p()}function p(){R("unpipe"),f.unpipe(e)}var f=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=e;break;case 1:d.pipes=[d.pipes,e];break;default:d.pipes.push(e)}d.pipesCount+=1,R("pipe count=%d opts=%j",d.pipesCount,t);var h=(!t||t.end!==!1)&&e!==n.stdout&&e!==n.stderr,m=h?a:o;d.endEmitted?P(m):f.once("end",m),e.on("unpipe",i);var g=y(f);e.on("drain",g);var v=!1,b=!1;return f.on("data",s),r(e,"error",l),e.once("close",u),e.once("finish",c),e.emit("pipe",f),d.flowing||(R("pipe resume"),f.resume()),e},a.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var a=C(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},a.prototype.on=function(e,t){var n=I.prototype.on.call(this,e,t);if("data"===e)this._readableState.flowing!==!1&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&f(this,r):P(g,this))}return n},a.prototype.addListener=a.prototype.on,a.prototype.resume=function(){var e=this._readableState;return e.flowing||(R("resume"),e.flowing=!0,v(this,e)),this},a.prototype.pause=function(){return R("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(R("pause"),this._readableState.flowing=!1,this.emit("pause")),this},a.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(R("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)}),e.on("data",function(i){if(R("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)){var a=r.push(i);a||(n=!0,e.pause())}});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));var a=["error","close","destroy","pause","resume"];return L(a,function(t){e.on(t,r.emit.bind(r,t))}),r._read=function(t){R("wrapped _read",t),n&&(n=!1,e.resume())},r},a._fromList=S}).call(this,e("_process"))},{"./_stream_duplex":15,"./internal/streams/BufferList":20,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,isarray:23,"process-nextick-args":24,"string_decoder/":31,util:3}],18:[function(e,t,n){"use strict";function r(e){this.afterTransform=function(t,n){return i(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);s.call(this,e),this._transformState=new r(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e){o(t,e)}):o(t)})}function o(e,t){if(t)return e.emit("error",t);var n=e._writableState,r=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}t.exports=a;var s=e("./_stream_duplex"),l=e("core-util-is");l.inherits=e("inherits"),l.inherits(a,s),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,s.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("Not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0}},{"./_stream_duplex":15,"core-util-is":22,inherits:9}],19:[function(e,t,n){(function(n){"use strict";function r(){}function i(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function a(t,n){_=_||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof _&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var a=t.decodeStrings===!1;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){h(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new w(this)}function o(t){return _=_||e("./_stream_duplex"),this instanceof o||this instanceof _?(this._writableState=new a(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev)),void A.call(this)):new o(t)}function s(e,t){var n=new Error("write after end");e.emit("error",n),x(t,n)}function l(e,t,n,r){var i=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):C.isBuffer(n)||"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),x(r,a),i=!1),i}function u(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=P.from(t,n)),t}function c(e,t,n,r,a){n=u(t,n,r),C.isBuffer(n)&&(r="buffer");var o=t.objectMode?1:n.length;t.length+=o;var s=t.length<t.highWaterMark;if(s||(t.needDrain=!0),t.writing||t.corked){var l=t.lastBufferedRequest;t.lastBufferedRequest=new i(n,r,a),l?l.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else p(e,t,!1,o,n,r,a);return s}function p(e,t,n,r,i,a,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function f(e,t,n,r,i){--t.pendingcb,n?x(i,r):i(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function d(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function h(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(d(n),t)f(e,n,r,t,i);else{var a=v(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||g(e,n),r?k(m,e,n,a,i):m(e,n,a,i)}}function m(e,t,n,r){n||y(e,t),t.pendingcb--,r(),E(e,t)}function y(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function g(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var o=0;n;)i[o]=n,n=n.next,o+=1;p(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new w(t)}else{for(;n;){var s=n.chunk,l=n.encoding,u=n.callback,c=t.objectMode?1:s.length;if(p(e,t,!1,c,s,l,u),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function v(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function b(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function E(e,t){var n=v(t);return n&&(0===t.pendingcb?(b(e,t),t.finished=!0,e.emit("finish")):b(e,t)),n}function S(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?x(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function w(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}t.exports=o;var x=e("process-nextick-args"),k=!n.browser&&["v0.10","v0.9."].indexOf(n.version.slice(0,5))>-1?setImmediate:x;o.WritableState=a;var T=e("core-util-is");T.inherits=e("inherits");var A,L={deprecate:e("util-deprecate")};!function(){try{A=e("stream")}catch(e){}finally{A||(A=e("events").EventEmitter)}}();var C=e("buffer").Buffer,P=e("buffer-shims");T.inherits(o,A);var _;a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:L.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var _;o.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},o.prototype.write=function(e,t,n){var i=this._writableState,a=!1;return"function"==typeof t&&(n=t,t=null),C.isBuffer(e)?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=r),i.ended?s(this,n):l(this,i,e,n)&&(i.pendingcb++,a=c(this,i,e,t,n)),a},o.prototype.cork=function(){var e=this._writableState;e.corked++},o.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||g(this,e))},o.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},o.prototype._write=function(e,t,n){n(new Error("not implemented"))},o.prototype._writev=null,o.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||S(this,r,n)}}).call(this,e("_process"))},{"./_stream_duplex":15,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,"process-nextick-args":24,"util-deprecate":25}],20:[function(e,t,n){"use strict";function r(){this.head=null,this.tail=null,this.length=0}var i=(e("buffer").Buffer,e("buffer-shims"));t.exports=r,r.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},r.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t}},{buffer:4,"buffer-shims":21}],21:[function(e,t,n){(function(t){"use strict";var r=e("buffer"),i=r.Buffer,a=r.SlowBuffer,o=r.kMaxLength||2147483647;n.alloc=function(e,t,n){if("function"==typeof i.alloc)return i.alloc(e,t,n);if("number"==typeof n)throw new TypeError("encoding must not be number");if("number"!=typeof e)throw new TypeError("size must be a number");if(e>o)throw new RangeError("size is too large");var r=n,a=t;void 0===a&&(r=void 0,a=0);var s=new i(e);if("string"==typeof a)for(var l=new i(a,r),u=l.length,c=-1;++c<e;)s[c]=l[c%u];else s.fill(a);return s},n.allocUnsafe=function(e){if("function"==typeof i.allocUnsafe)return i.allocUnsafe(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>o)throw new RangeError("size is too large");return new i(e)},n.from=function(e,n,r){if("function"==typeof i.from&&(!t.Uint8Array||Uint8Array.from!==i.from))return i.from(e,n,r);if("number"==typeof e)throw new TypeError('"value" argument must not be a number');if("string"==typeof e)return new i(e,n);if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer){var a=n;if(1===arguments.length)return new i(e);"undefined"==typeof a&&(a=0);var o=r;if("undefined"==typeof o&&(o=e.byteLength-a),a>=e.byteLength)throw new RangeError("'offset' is out of bounds");if(o>e.byteLength-a)throw new RangeError("'length' is out of bounds");return new i(e.slice(a,a+o))}if(i.isBuffer(e)){var s=new i(e.length);return e.copy(s,0,0,e.length),s}if(e){if(Array.isArray(e)||"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return new i(e);if("Buffer"===e.type&&Array.isArray(e.data))return new i(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},n.allocUnsafeSlow=function(e){if("function"==typeof i.allocUnsafeSlow)return i.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=o)throw new RangeError("size is too large");return new a(e)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{buffer:4}],22:[function(e,t,n){(function(e){function t(e){return Array.isArray?Array.isArray(e):"[object Array]"===y(e)}function r(e){return"boolean"==typeof e}function i(e){return null===e}function a(e){return null==e}function o(e){return"number"==typeof e}function s(e){return"string"==typeof e}function l(e){return"symbol"==typeof e}function u(e){return void 0===e}function c(e){return"[object RegExp]"===y(e)}function p(e){return"object"==typeof e&&null!==e}function f(e){return"[object Date]"===y(e)}function d(e){return"[object Error]"===y(e)||e instanceof Error}function h(e){return"function"==typeof e}function m(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function y(e){return Object.prototype.toString.call(e)}n.isArray=t,n.isBoolean=r,n.isNull=i,n.isNullOrUndefined=a,n.isNumber=o,n.isString=s,n.isSymbol=l,n.isUndefined=u,n.isRegExp=c,n.isObject=p,n.isDate=f,n.isError=d,n.isFunction=h,n.isPrimitive=m,n.isBuffer=e.isBuffer}).call(this,{isBuffer:e("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":10}],23:[function(e,t,n){arguments[4][7][0].apply(n,arguments)},{dup:7}],24:[function(e,t,n){(function(e){"use strict";function n(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,n)});case 3:return e.nextTick(function(){t.call(null,n,r)});case 4:return e.nextTick(function(){t.call(null,n,r,i)});default:for(a=new Array(s-1),o=0;o<a.length;)a[o++]=arguments[o];return e.nextTick(function(){t.apply(null,a)})}}!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=n:t.exports=e.nextTick}).call(this,e("_process"))},{_process:13}],25:[function(e,t,n){(function(e){function n(e,t){function n(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var i=!1;return n}function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],26:[function(e,t,n){t.exports=e("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":16}],27:[function(e,t,n){(function(r){var i=function(){try{return e("stream")}catch(e){}}();n=t.exports=e("./lib/_stream_readable.js"),n.Stream=i||n,n.Readable=n,n.Writable=e("./lib/_stream_writable.js"),n.Duplex=e("./lib/_stream_duplex.js"),n.Transform=e("./lib/_stream_transform.js"),n.PassThrough=e("./lib/_stream_passthrough.js"),!r.browser&&"disable"===r.env.READABLE_STREAM&&i&&(t.exports=i)}).call(this,e("_process"))},{"./lib/_stream_duplex.js":15,"./lib/_stream_passthrough.js":16,"./lib/_stream_readable.js":17,"./lib/_stream_transform.js":18,"./lib/_stream_writable.js":19,_process:13}],28:[function(e,t,n){t.exports=e("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":18}],29:[function(e,t,n){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":19}],30:[function(e,t,n){function r(){i.call(this)}t.exports=r;var i=e("events").EventEmitter,a=e("inherits");a(r,i),r.Readable=e("readable-stream/readable.js"),r.Writable=e("readable-stream/writable.js"),r.Duplex=e("readable-stream/duplex.js"),r.Transform=e("readable-stream/transform.js"),r.PassThrough=e("readable-stream/passthrough.js"),r.Stream=r,r.prototype.pipe=function(e,t){function n(t){e.writable&&!1===e.write(t)&&u.pause&&u.pause()}function r(){u.readable&&u.resume&&u.resume()}function a(){c||(c=!0,e.end())}function o(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function s(e){if(l(),0===i.listenerCount(this,"error"))throw e}function l(){u.removeListener("data",n),e.removeListener("drain",r),u.removeListener("end",a),u.removeListener("close",o),u.removeListener("error",s),e.removeListener("error",s),u.removeListener("end",l),u.removeListener("close",l),e.removeListener("close",l)}var u=this;u.on("data",n),e.on("drain",r),e._isStdio||t&&t.end===!1||(u.on("end",a),u.on("close",o));var c=!1;return u.on("error",s),e.on("error",s),u.on("end",l),u.on("close",l),e.on("close",l),e.emit("pipe",u),e}},{events:8,inherits:9,"readable-stream/duplex.js":14,"readable-stream/passthrough.js":26,"readable-stream/readable.js":27,"readable-stream/transform.js":28,"readable-stream/writable.js":29}],31:[function(e,t,n){function r(e){if(e&&!l(e))throw new Error("Unknown encoding: "+e)}function i(e){return e.toString(this.encoding)}function a(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function o(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var s=e("buffer").Buffer,l=s.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},u=n.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=a;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=o;break;default:return void(this.write=i)}this.charBuffer=new s(6),this.charReceived=0,this.charLength=0};u.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var r=t.charCodeAt(t.length-1);if(!(r>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,r=t.charCodeAt(i);if(r>=55296&&r<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,i)}return t},u.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},u.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;t+=r.slice(0,n).toString(i)}return t}},{buffer:4}],32:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],33:[function(e,t,n){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8;
-}},{}],34:[function(e,t,n){(function(t,r){function i(e,t){var r={seen:[],stylize:o};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(t)?r.showHidden=t:t&&n._extend(r,t),S(r.showHidden)&&(r.showHidden=!1),S(r.depth)&&(r.depth=2),S(r.colors)&&(r.colors=!1),S(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),l(r,e,r.depth)}function a(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function o(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function l(e,t,r){if(e.customInspect&&t&&A(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return b(i)||(i=l(e,i,r)),i}var a=u(e,t);if(a)return a;var o=Object.keys(t),m=s(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),T(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return c(t);if(0===o.length){if(A(t)){var y=t.name?": "+t.name:"";return e.stylize("[Function"+y+"]","special")}if(w(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(k(t))return e.stylize(Date.prototype.toString.call(t),"date");if(T(t))return c(t)}var g="",v=!1,E=["{","}"];if(h(t)&&(v=!0,E=["[","]"]),A(t)){var S=t.name?": "+t.name:"";g=" [Function"+S+"]"}if(w(t)&&(g=" "+RegExp.prototype.toString.call(t)),k(t)&&(g=" "+Date.prototype.toUTCString.call(t)),T(t)&&(g=" "+c(t)),0===o.length&&(!v||0==t.length))return E[0]+g+E[1];if(r<0)return w(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var x;return x=v?p(e,t,r,m,o):o.map(function(n){return f(e,t,r,m,n,v)}),e.seen.pop(),d(x,g,E)}function u(e,t){if(S(t))return e.stylize("undefined","undefined");if(b(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return v(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var a=[],o=0,s=t.length;o<s;++o)I(t,String(o))?a.push(f(e,t,n,r,String(o),!0)):a.push("");return i.forEach(function(i){i.match(/^\d+$/)||a.push(f(e,t,n,r,i,!0))}),a}function f(e,t,n,r,i,a){var o,s,u;if(u=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},u.get?s=u.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):u.set&&(s=e.stylize("[Setter]","special")),I(r,i)||(o="["+i+"]"),s||(e.seen.indexOf(u.value)<0?(s=y(n)?l(e,u.value,null):l(e,u.value,n-1),s.indexOf("\n")>-1&&(s=a?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),S(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function d(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function g(e){return null==e}function v(e){return"number"==typeof e}function b(e){return"string"==typeof e}function E(e){return"symbol"==typeof e}function S(e){return void 0===e}function w(e){return x(e)&&"[object RegExp]"===C(e)}function x(e){return"object"==typeof e&&null!==e}function k(e){return x(e)&&"[object Date]"===C(e)}function T(e){return x(e)&&("[object Error]"===C(e)||e instanceof Error)}function A(e){return"function"==typeof e}function L(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function C(e){return Object.prototype.toString.call(e)}function P(e){return e<10?"0"+e.toString(10):e.toString(10)}function _(){var e=new Date,t=[P(e.getHours()),P(e.getMinutes()),P(e.getSeconds())].join(":");return[e.getDate(),N[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var j=/%[sdj%]/g;n.format=function(e){if(!b(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,a=r.length,o=String(e).replace(j,function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),s=r[n];n<a;s=r[++n])o+=y(s)||!x(s)?" "+s:" "+i(s);return o},n.deprecate=function(e,i){function a(){if(!o){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),o=!0}return e.apply(this,arguments)}if(S(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var o=!1;return a};var O,M={};n.debuglog=function(e){if(S(O)&&(O=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!M[e])if(new RegExp("\\b"+e+"\\b","i").test(O)){var r=t.pid;M[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else M[e]=function(){};return M[e]},n.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=h,n.isBoolean=m,n.isNull=y,n.isNullOrUndefined=g,n.isNumber=v,n.isString=b,n.isSymbol=E,n.isUndefined=S,n.isRegExp=w,n.isObject=x,n.isDate=k,n.isError=T,n.isFunction=A,n.isPrimitive=L,n.isBuffer=e("./support/isBuffer");var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",_(),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!x(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":33,_process:13,inherits:32}],35:[function(e,t,n){function r(e){l.ok(this instanceof r),p.Identifier.assert(e),this.nextTempId=0,Object.defineProperties(this,{contextId:{value:e},listing:{value:[]},marked:{value:[!0]},finalLoc:{value:i()},tryEntries:{value:[]}}),Object.defineProperties(this,{leapManager:{value:new f.LeapManager(this)}})}function i(){return c.literal(-1)}function a(e){return p.BreakStatement.check(e)||p.ContinueStatement.check(e)||p.ReturnStatement.check(e)||p.ThrowStatement.check(e)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+JSON.stringify(e))}function s(e){var t=e.type;return"normal"===t?!y.call(e,"target"):"break"===t||"continue"===t?!y.call(e,"value")&&p.Literal.check(e.target):("return"===t||"throw"===t)&&(y.call(e,"value")&&!y.call(e,"target"))}var l=e("assert"),u=e("recast").types,c=(u.builtInTypes.array,u.builders),p=u.namedTypes,f=e("./leap"),d=e("./meta"),h=e("./util"),m=h.runtimeProperty,y=Object.prototype.hasOwnProperty,g=r.prototype;n.Emitter=r,g.mark=function(e){p.Literal.assert(e);var t=this.listing.length;return e.value===-1?e.value=t:l.strictEqual(e.value,t),this.marked[t]=!0,e},g.emit=function(e){p.Expression.check(e)&&(e=c.expressionStatement(e)),p.Statement.assert(e),this.listing.push(e)},g.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},g.assign=function(e,t){return c.expressionStatement(c.assignmentExpression("=",e,t))},g.contextProperty=function(e,t){return c.memberExpression(this.contextId,t?c.literal(e):c.identifier(e),!!t)},g.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},g.setReturnValue=function(e){p.Expression.assert(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},g.clearPendingException=function(e,t){p.Literal.assert(e);var n=c.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,n):this.emit(n)},g.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(c.breakStatement())},g.jumpIf=function(e,t){p.Expression.assert(e),p.Literal.assert(t),this.emit(c.ifStatement(e,c.blockStatement([this.assign(this.contextProperty("next"),t),c.breakStatement()])))},g.jumpIfNot=function(e,t){p.Expression.assert(e),p.Literal.assert(t);var n;n=p.UnaryExpression.check(e)&&"!"===e.operator?e.argument:c.unaryExpression("!",e),this.emit(c.ifStatement(n,c.blockStatement([this.assign(this.contextProperty("next"),t),c.breakStatement()])))},g.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},g.getContextFunction=function(e){return c.functionExpression(e||null,[this.contextId],c.blockStatement([this.getDispatchLoop()]),!1,!1)},g.getDispatchLoop=function(){var e,t=this,n=[],r=!1;return t.listing.forEach(function(i,o){t.marked.hasOwnProperty(o)&&(n.push(c.switchCase(c.literal(o),e=[])),r=!1),r||(e.push(i),a(i)&&(r=!0))}),this.finalLoc.value=this.listing.length,n.push(c.switchCase(this.finalLoc,[]),c.switchCase(c.literal("end"),[c.returnStatement(c.callExpression(this.contextProperty("stop"),[]))])),c.whileStatement(c.literal(1),c.switchStatement(c.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),n))},g.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return c.arrayExpression(this.tryEntries.map(function(t){var n=t.firstLoc.value;l.ok(n>=e,"try entries out of order"),e=n;var r=t.catchEntry,i=t.finallyEntry,a=[t.firstLoc,r?r.firstLoc:null];return i&&(a[2]=i.firstLoc,a[3]=i.afterLoc),c.arrayExpression(a)}))},g.explode=function(e,t){l.ok(e instanceof u.NodePath);var n=e.value,r=this;if(p.Node.assert(n),p.Statement.check(n))return r.explodeStatement(e);if(p.Expression.check(n))return r.explodeExpression(e,t);if(p.Declaration.check(n))throw o(n);switch(n.type){case"Program":return e.get("body").map(r.explodeStatement,r);case"VariableDeclarator":throw o(n);case"Property":case"SwitchCase":case"CatchClause":throw new Error(n.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+JSON.stringify(n.type))}},g.explodeStatement=function(e,t){l.ok(e instanceof u.NodePath);var n=e.value,r=this;if(p.Statement.assert(n),t?p.Identifier.assert(t):t=null,p.BlockStatement.check(n))return e.get("body").each(r.explodeStatement,r);if(!d.containsLeap(n))return void r.emit(n);switch(n.type){case"ExpressionStatement":r.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":var a=i();r.leapManager.withEntry(new f.LabeledEntry(a,n.label),function(){r.explodeStatement(e.get("body"),n.label)}),r.mark(a);break;case"WhileStatement":var o=i(),a=i();r.mark(o),r.jumpIfNot(r.explodeExpression(e.get("test")),a),r.leapManager.withEntry(new f.LoopEntry(a,o,t),function(){r.explodeStatement(e.get("body"))}),r.jump(o),r.mark(a);break;case"DoWhileStatement":var s=i(),y=i(),a=i();r.mark(s),r.leapManager.withEntry(new f.LoopEntry(a,y,t),function(){r.explode(e.get("body"))}),r.mark(y),r.jumpIf(r.explodeExpression(e.get("test")),s),r.mark(a);break;case"ForStatement":var g=i(),v=i(),a=i();n.init&&r.explode(e.get("init"),!0),r.mark(g),n.test&&r.jumpIfNot(r.explodeExpression(e.get("test")),a),r.leapManager.withEntry(new f.LoopEntry(a,v,t),function(){r.explodeStatement(e.get("body"))}),r.mark(v),n.update&&r.explode(e.get("update"),!0),r.jump(g),r.mark(a);break;case"ForInStatement":var g=i(),a=i(),b=r.makeTempVar();r.emitAssign(b,c.callExpression(m("keys"),[r.explodeExpression(e.get("right"))])),r.mark(g);var E=r.makeTempVar();r.jumpIf(c.memberExpression(c.assignmentExpression("=",E,c.callExpression(b,[])),c.identifier("done"),!1),a),r.emitAssign(n.left,c.memberExpression(E,c.identifier("value"),!1)),r.leapManager.withEntry(new f.LoopEntry(a,g,t),function(){r.explodeStatement(e.get("body"))}),r.jump(g),r.mark(a);break;case"BreakStatement":r.emitAbruptCompletion({type:"break",target:r.leapManager.getBreakLoc(n.label)});break;case"ContinueStatement":r.emitAbruptCompletion({type:"continue",target:r.leapManager.getContinueLoc(n.label)});break;case"SwitchStatement":for(var S=r.emitAssign(r.makeTempVar(),r.explodeExpression(e.get("discriminant"))),a=i(),w=i(),x=w,k=[],T=n.cases||[],A=T.length-1;A>=0;--A){var L=T[A];p.SwitchCase.assert(L),L.test?x=c.conditionalExpression(c.binaryExpression("===",S,L.test),k[A]=i(),x):k[A]=w}r.jump(r.explodeExpression(new u.NodePath(x,e,"discriminant"))),r.leapManager.withEntry(new f.SwitchEntry(a),function(){e.get("cases").each(function(e){var t=(e.value,e.name);r.mark(k[t]),e.get("consequent").each(r.explodeStatement,r)})}),r.mark(a),w.value===-1&&(r.mark(w),l.strictEqual(a.value,w.value));break;case"IfStatement":var C=n.alternate&&i(),a=i();r.jumpIfNot(r.explodeExpression(e.get("test")),C||a),r.explodeStatement(e.get("consequent")),C&&(r.jump(a),r.mark(C),r.explodeStatement(e.get("alternate"))),r.mark(a);break;case"ReturnStatement":r.emitAbruptCompletion({type:"return",value:r.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error(node.type+" not supported in generator functions.");case"TryStatement":var a=i(),P=n.handler;!P&&n.handlers&&(P=n.handlers[0]||null);var _=P&&i(),I=_&&new f.CatchEntry(_,P.param),j=n.finalizer&&i(),O=j&&new f.FinallyEntry(j,a),M=new f.TryEntry(r.getUnmarkedCurrentLoc(),I,O);r.tryEntries.push(M),r.updateContextPrevLoc(M.firstLoc),r.leapManager.withEntry(M,function(){if(r.explodeStatement(e.get("block")),_){j?r.jump(j):r.jump(a),r.updateContextPrevLoc(r.mark(_));var t=e.get("handler","body"),n=r.makeTempVar();r.clearPendingException(M.firstLoc,n);var i=t.scope,o=P.param.name;p.CatchClause.assert(i.node),l.strictEqual(i.lookup(o),i),u.visit(t,{visitIdentifier:function(e){return h.isReference(e,o)&&e.scope.lookup(o)===i?n:void this.traverse(e)},visitFunction:function(e){return!e.scope.declares(o)&&void this.traverse(e)}}),r.leapManager.withEntry(I,function(){r.explodeStatement(t)})}j&&(r.updateContextPrevLoc(r.mark(j)),r.leapManager.withEntry(O,function(){r.explodeStatement(e.get("finalizer"))}),r.emit(c.returnStatement(c.callExpression(r.contextProperty("finish"),[O.firstLoc]))))}),r.mark(a);break;case"ThrowStatement":r.emit(c.throwStatement(r.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+JSON.stringify(n.type))}},g.emitAbruptCompletion=function(e){s(e)||l.ok(!1,"invalid completion record: "+JSON.stringify(e)),l.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[c.literal(e.type)];"break"===e.type||"continue"===e.type?(p.Literal.assert(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(p.Expression.assert(e.value),t[1]=e.value),this.emit(c.returnStatement(c.callExpression(this.contextProperty("abrupt"),t)))},g.getUnmarkedCurrentLoc=function(){return c.literal(this.listing.length)},g.updateContextPrevLoc=function(e){e?(p.Literal.assert(e),e.value===-1?e.value=this.listing.length:l.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},g.explodeExpression=function(e,t){function n(e){return p.Expression.assert(e),t?void s.emit(e):e}function r(e,t,n){l.ok(t instanceof u.NodePath),l.ok(!n||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var r=s.explodeExpression(t,n);return n||(e||f&&!p.Literal.check(r))&&(r=s.emitAssign(e||s.makeTempVar(),r)),r}l.ok(e instanceof u.NodePath);var a=e.value;if(!a)return a;p.Expression.assert(a);var o,s=this;if(!d.containsLeap(a))return n(a);var f=d.containsLeap.onlyChildren(a);switch(a.type){case"MemberExpression":return n(c.memberExpression(s.explodeExpression(e.get("object")),a.computed?r(null,e.get("property")):a.property,a.computed));case"CallExpression":var h,m=e.get("callee"),y=e.get("arguments"),g=[],v=!1;if(y.each(function(e){v=v||d.containsLeap(e.value)}),p.MemberExpression.check(m.value))if(v){var b=r(s.makeTempVar(),m.get("object")),E=m.value.computed?r(null,m.get("property")):m.value.property;g.unshift(b),h=c.memberExpression(c.memberExpression(b,E,m.value.computed),c.identifier("call"),!1)}else h=s.explodeExpression(m);else h=s.explodeExpression(m),p.MemberExpression.check(h)&&(h=c.sequenceExpression([c.literal(0),h]));return y.each(function(e){g.push(r(null,e))}),n(c.callExpression(h,g));case"NewExpression":return n(c.newExpression(r(null,e.get("callee")),e.get("arguments").map(function(e){return r(null,e)})));case"ObjectExpression":return n(c.objectExpression(e.get("properties").map(function(e){return c.property(e.value.kind,e.value.key,r(null,e.get("value")))})));case"ArrayExpression":return n(c.arrayExpression(e.get("elements").map(function(e){return r(null,e)})));case"SequenceExpression":var S=a.expressions.length-1;return e.get("expressions").each(function(e){e.name===S?o=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),o;case"LogicalExpression":var w=i();t||(o=s.makeTempVar());var x=r(o,e.get("left"));return"&&"===a.operator?s.jumpIfNot(x,w):(l.strictEqual(a.operator,"||"),s.jumpIf(x,w)),r(o,e.get("right"),t),s.mark(w),o;case"ConditionalExpression":var k=i(),w=i(),T=s.explodeExpression(e.get("test"));return s.jumpIfNot(T,k),t||(o=s.makeTempVar()),r(o,e.get("consequent"),t),s.jump(w),s.mark(k),r(o,e.get("alternate"),t),s.mark(w),o;case"UnaryExpression":return n(c.unaryExpression(a.operator,s.explodeExpression(e.get("argument")),!!a.prefix));case"BinaryExpression":return n(c.binaryExpression(a.operator,r(null,e.get("left")),r(null,e.get("right"))));case"AssignmentExpression":return n(c.assignmentExpression(a.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));case"UpdateExpression":return n(c.updateExpression(a.operator,s.explodeExpression(e.get("argument")),a.prefix));case"YieldExpression":var w=i(),A=a.argument&&s.explodeExpression(e.get("argument"));if(A&&a.delegate){var o=s.makeTempVar();return s.emit(c.returnStatement(c.callExpression(s.contextProperty("delegateYield"),[A,c.literal(o.property.name),w]))),s.mark(w),o}return s.emitAssign(s.contextProperty("next"),w),s.emit(c.returnStatement(A||null)),s.mark(w),s.contextProperty("sent");default:throw new Error("unknown Expression of type "+JSON.stringify(a.type))}}},{"./leap":37,"./meta":38,"./util":39,assert:2,recast:67}],36:[function(e,t,n){var r=e("assert"),i=e("recast").types,a=i.namedTypes,o=i.builders,s=Object.prototype.hasOwnProperty;n.hoist=function(e){function t(e,t){a.VariableDeclaration.assert(e);var r=[];return e.declarations.forEach(function(e){n[e.id.name]=e.id,e.init?r.push(o.assignmentExpression("=",e.id,e.init)):t&&r.push(e.id)}),0===r.length?null:1===r.length?r[0]:o.sequenceExpression(r)}r.ok(e instanceof i.NodePath),a.Function.assert(e.value);var n={};i.visit(e.get("body"),{visitVariableDeclaration:function(e){var n=t(e.value,!1);return null!==n?o.expressionStatement(n):(e.replace(),!1)},visitForStatement:function(e){var n=e.value.init;a.VariableDeclaration.check(n)&&e.get("init").replace(t(n,!1)),this.traverse(e)},visitForInStatement:function(e){var n=e.value.left;a.VariableDeclaration.check(n)&&e.get("left").replace(t(n,!0)),this.traverse(e)},visitFunctionDeclaration:function(e){var t=e.value;n[t.id.name]=t.id;var r=(e.parent.node,o.expressionStatement(o.assignmentExpression("=",t.id,o.functionExpression(t.id,t.params,t.body,t.generator,t.expression))));return a.BlockStatement.check(e.parent.node)?(e.parent.get("body").unshift(r),e.replace()):e.replace(r),!1},visitFunctionExpression:function(e){return!1}});var l={};e.get("params").each(function(e){var t=e.value;a.Identifier.check(t)&&(l[t.name]=t)});var u=[];return Object.keys(n).forEach(function(e){s.call(l,e)||u.push(o.variableDeclarator(n[e],null))}),0===u.length?null:o.variableDeclaration("var",u)}},{assert:2,recast:67}],37:[function(e,t,n){function r(){f.ok(this instanceof r)}function i(e){r.call(this),h.Literal.assert(e),this.returnLoc=e}function a(e,t,n){r.call(this),h.Literal.assert(e),h.Literal.assert(t),n?h.Identifier.assert(n):n=null,this.breakLoc=e,this.continueLoc=t,this.label=n}function o(e){r.call(this),h.Literal.assert(e),this.breakLoc=e}function s(e,t,n){r.call(this),h.Literal.assert(e),t?f.ok(t instanceof l):t=null,n?f.ok(n instanceof u):n=null,f.ok(t||n),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=n}function l(e,t){r.call(this),h.Literal.assert(e),h.Identifier.assert(t),this.firstLoc=e,this.paramId=t}function u(e,t){r.call(this),h.Literal.assert(e),h.Literal.assert(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){r.call(this),h.Literal.assert(e),h.Identifier.assert(t),this.breakLoc=e,this.label=t}function p(t){f.ok(this instanceof p);var n=e("./emit").Emitter;f.ok(t instanceof n),this.emitter=t,this.entryStack=[new i(t.finalLoc)]}var f=e("assert"),d=e("recast").types,h=d.namedTypes,m=(d.builders,e("util").inherits);Object.prototype.hasOwnProperty;m(i,r),n.FunctionEntry=i,m(a,r),n.LoopEntry=a,m(o,r),n.SwitchEntry=o,m(s,r),n.TryEntry=s,m(l,r),n.CatchEntry=l,m(u,r),n.FinallyEntry=u,m(c,r),n.LabeledEntry=c;var y=p.prototype;n.LeapManager=p,y.withEntry=function(e,t){f.ok(e instanceof r),this.entryStack.push(e);try{t.call(this.emitter)}finally{var n=this.entryStack.pop();f.strictEqual(n,e)}},y._findLeapLocation=function(e,t){for(var n=this.entryStack.length-1;n>=0;--n){var r=this.entryStack[n],i=r[e];if(i)if(t){if(r.label&&r.label.name===t.name)return i}else if(!(r instanceof c))return i}return null},y.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},y.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},{"./emit":35,assert:2,recast:67,util:34}],38:[function(e,t,n){function r(e,t){function n(e){function t(e){return n||(s.check(e)?e.some(t):l.Node.check(e)&&(i.strictEqual(n,!1),n=r(e))),n}l.Node.assert(e);var n=!1;return o.eachField(e,function(e,n){t(n)}),n}function r(r){l.Node.assert(r);var i=a(r);return u.call(i,e)?i[e]:u.call(c,r.type)?i[e]=!1:u.call(t,r.type)?i[e]=!0:i[e]=n(r)}return r.onlyChildren=n,r}var i=e("assert"),a=e("private").makeAccessor(),o=e("recast").types,s=o.builtInTypes.array,l=o.namedTypes,u=Object.prototype.hasOwnProperty,c={FunctionExpression:!0},p={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},f={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var d in f)u.call(f,d)&&(p[d]=f[d]);n.hasSideEffects=r("hasSideEffects",p),n.containsLeap=r("containsLeap",f)},{assert:2,private:56,recast:67}],39:[function(e,t,n){var r=(e("assert"),e("recast").types),i=r.namedTypes,a=r.builders,o=Object.prototype.hasOwnProperty;n.defaults=function(e){for(var t,n=arguments.length,r=1;r<n;++r)if(t=arguments[r])for(var i in t)o.call(t,i)&&!o.call(e,i)&&(e[i]=t[i]);return e},n.runtimeProperty=function(e){return a.memberExpression(a.identifier("regeneratorRuntime"),a.identifier(e),!1)},n.isReference=function(e,t){var n=e.value;if(!i.Identifier.check(n))return!1;if(t&&n.name!==t)return!1;var r=e.parent.value;switch(r.type){case"VariableDeclarator":return"init"===e.name;case"MemberExpression":return"object"===e.name||r.computed&&"property"===e.name;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return"id"!==e.name&&("params"!==e.parentPath.name||r.params!==e.parentPath.value||r.params[e.name]!==n);case"ClassDeclaration":case"ClassExpression":return"id"!==e.name;case"CatchClause":return"param"!==e.name;case"Property":case"MethodDefinition":return"key"!==e.name;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"LabeledStatement":return!1;default:return!0}}},{assert:2,recast:67}],40:[function(e,t,n){function r(t){f.Program.assert(t);var n=e("..").runtime.path,r=u.readFileSync(n,"utf8"),i=c.parse(r,{sourceFileName:n}).program.body,a=t.body;a.unshift.apply(a,i)}function i(e){var t=e.value;if(f.Function.assert(t),t.generator&&f.FunctionDeclaration.check(t)){for(var n=e.parent;n&&!f.BlockStatement.check(n.value)&&!f.Program.check(n.value);)n=n.parent;if(!n)return t.id;var r=a(n),i=r.declarations[0].id,o=r.declarations[0].init.callee.object;f.ArrayExpression.assert(o);var s=o.elements.length;return o.elements.push(t.id),d.memberExpression(i,d.literal(s),!0)}return t.id||(t.id=e.scope.parent.declareTemporary("callee$"))}function a(e){l.ok(e instanceof m);var t=e.node;h.assert(t.body);var n=E(t);if(n.decl)return n.decl;n.decl=d.variableDeclaration("var",[d.variableDeclarator(e.scope.declareTemporary("marked"),d.callExpression(d.memberExpression(d.arrayExpression([]),d.identifier("map"),!1),[b("mark")]))]);for(var r=0;r<t.body.length&&o(e.get("body",r));++r);return e.get("body").insertAt(r,n.decl),n.decl}function o(e){var t=e.value;return f.Statement.assert(t),f.ExpressionStatement.check(t)&&f.Literal.check(t.expression)&&"use strict"===t.expression.value}function s(e,t){l.ok(e instanceof p.NodePath);var n=e.value,r=!1;return c.visit(e,{visitFunction:function(e){return e.value===n&&void this.traverse(e)},visitIdentifier:function(e){return"arguments"===e.value.name&&v.isReference(e)?(e.replace(t),r=!0,!1):void this.traverse(e)}}),r}var l=e("assert"),u=e("fs"),c=e("recast"),p=c.types,f=p.namedTypes,d=p.builders,h=p.builtInTypes.array,m=(p.builtInTypes.object,p.NodePath),y=e("./hoist").hoist,g=e("./emit").Emitter,v=e("./util"),b=v.runtimeProperty,E=e("private").makeAccessor();n.transform=function(e,t){t=t||{};var n=e instanceof m?e:new m(e);return S.visit(n,t),e=n.value,(t.includeRuntime===!0||"if used"===t.includeRuntime&&S.wasChangeReported())&&r(f.File.check(e)?e.program:e),t.madeChanges=S.wasChangeReported(),e};var S=p.PathVisitor.fromMethodsObject({reset:function(e,t){this.options=t},visitFunction:function(e){this.traverse(e);var t=e.value,n=t.async&&!this.options.disableAsync;if(t.generator||n){this.reportChanged(),t.expression&&(t.expression=!1,t.body=d.blockStatement([d.returnStatement(t.body)])),n&&w.visit(e.get("body"));var r=[],a=[],o=e.get("body","body");o.each(function(e){var t=e.value;t&&null!=t._blockHoist?r.push(t):a.push(t)}),r.length>0&&o.replace(a);var l=i(e);f.Identifier.assert(t.id);var u=d.identifier(t.id.name+"$"),c=e.scope.declareTemporary("context$"),p=e.scope.declareTemporary("args$"),h=y(e),m=s(e,p);m&&(h=h||d.variableDeclaration("var",[]),h.declarations.push(d.variableDeclarator(p,d.identifier("arguments"))));var v=new g(c);v.explode(e.get("body")),h&&h.declarations.length>0&&r.push(h);var E=[v.getContextFunction(u),t.generator?l:d.literal(null),d.thisExpression()],S=v.getTryLocsList();S&&E.push(S);var x=d.callExpression(b(n?"async":"wrap"),E);r.push(d.returnStatement(x)),t.body=d.blockStatement(r);var k=t.generator;return k&&(t.generator=!1),n&&(t.async=!1),k&&f.Expression.check(t)?d.callExpression(b("mark"),[t]):void 0}},visitForOfStatement:function(e){this.traverse(e);var t,n=e.value,r=e.scope.declareTemporary("t$"),i=d.variableDeclarator(r,d.callExpression(b("values"),[n.right])),a=e.scope.declareTemporary("t$"),o=d.variableDeclarator(a,null),s=n.left;f.VariableDeclaration.check(s)?(t=s.declarations[0].id,s.declarations.push(i,o)):(t=s,s=d.variableDeclaration("var",[i,o])),f.Identifier.assert(t);var l=d.expressionStatement(d.assignmentExpression("=",t,d.memberExpression(a,d.identifier("value"),!1)));return f.BlockStatement.check(n.body)?n.body.body.unshift(l):n.body=d.blockStatement([l,n.body]),d.forStatement(s,d.unaryExpression("!",d.memberExpression(d.assignmentExpression("=",a,d.callExpression(d.memberExpression(r,d.identifier("next"),!1),[])),d.identifier("done"),!1)),null,n.body)}}),w=p.PathVisitor.fromMethodsObject({visitFunction:function(e){return!1},visitAwaitExpression:function(e){var t=e.value.argument;return e.value.all&&(t=d.callExpression(d.memberExpression(d.identifier("Promise"),d.identifier("all"),!1),[t])),d.yieldExpression(d.callExpression(b("awrap"),[t]),!1)}})},{"..":"regenerator","./emit":35,"./hoist":36,"./util":39,assert:2,fs:1,private:56,recast:67}],41:[function(e,t,n){"use strict";function r(e){return k.someof(e,["const","let"])}function i(e){return k.someof(e,["var","const","let"])}function a(e){return"BlockStatement"===e.type&&k.noneof(e.$parent.type,["FunctionDeclaration","FunctionExpression"])}function o(e){return"ForStatement"===e.type&&e.init&&"VariableDeclaration"===e.init.type&&r(e.init.kind)}function s(e){return l(e)&&"VariableDeclaration"===e.left.type&&r(e.left.kind)}function l(e){return k.someof(e.type,["ForInStatement","ForOfStatement"])}function u(e){return k.someof(e.type,["FunctionDeclaration","FunctionExpression"])}function c(e){return k.someof(e.type,["ForStatement","ForInStatement","ForOfStatement","WhileStatement","DoWhileStatement"])}function p(e){var t=e.$parent;return e.$refToScope||"Identifier"===e.type&&!("VariableDeclarator"===t.type&&t.id===e)&&!("MemberExpression"===t.type&&t.computed===!1&&t.property===e)&&!("Property"===t.type&&t.key===e)&&!("LabeledStatement"===t.type&&t.label===e)&&!("CatchClause"===t.type&&t.param===e)&&!(u(t)&&t.id===e)&&!(u(t)&&k.someof(e,t.params))&&!0}function f(e){return p(e)&&("AssignmentExpression"===e.$parent.type&&e.$parent.left===e||"UpdateExpression"===e.$parent.type&&e.$parent.argument===e)}function d(e,t){if(x(!e.$scope),e.$parent=t,e.$scope=e.$parent?e.$parent.$scope:null,"Program"===e.type)e.$scope=new I({kind:"hoist",node:e,parent:null});else if(u(e))e.$scope=new I({kind:"hoist",node:e,parent:e.$parent.$scope}),e.id&&(x("Identifier"===e.id.type),"FunctionDeclaration"===e.type?e.$parent.$scope.add(e.id.name,"fun",e.id,null):"FunctionExpression"===e.type?e.$scope.add(e.id.name,"fun",e.id,null):x(!1)),e.params.forEach(function(t){e.$scope.add(t.name,"param",t,null)});else if("VariableDeclaration"===e.type)x(i(e.kind)),e.declarations.forEach(function(t){x("VariableDeclarator"===t.type);var n=t.id.name;M.disallowVars&&"var"===e.kind&&j(O(t),"var {0} is not allowed (use let or const)",n),e.$scope.add(n,e.kind,t.id,t.range[1])});else if(o(e)||s(e))e.$scope=new I({kind:"block",node:e,parent:e.$parent.$scope});else if(a(e))e.$scope=new I({kind:"block",node:e,parent:e.$parent.$scope});else if("CatchClause"===e.type){var n=e.param;e.$scope=new I({kind:"catch-block",node:e,parent:e.$parent.$scope}),e.$scope.add(n.name,"caught",n,null),e.$scope.closestHoistScope().markPropagates(n.name)}}function h(e,t,n){function r(e){for(var t in e){var n=e[t],r=n?"var":"const";i.hasOwn(t)&&i.remove(t),i.add(t,r,{loc:{start:{line:-1}}},-1)}}var i=new I({kind:"hoist",node:{},parent:null}),a={undefined:!1,Infinity:!1,console:!1};return r(a),r(D.reservedVars),r(D.ecmaIdentifiers),t&&t.forEach(function(e){D[e]?r(D[e]):j(-1,'environment "{0}" not found',e)}),n&&r(n),e.parent=i,i.children.push(e),i}function m(e,t,n){function r(e){if(p(e)){t.add(e.name);var n=e.$scope.lookup(e.name);if(i&&!n&&M.disallowUnknownReferences&&j(O(e),"reference to unknown global variable {0}",e.name),i&&n&&k.someof(n.getKind(e.name),["const","let"])){var r=n.getFromPos(e.name),a=e.range[0];x(k.finitenumber(r)),x(k.finitenumber(a)),a<r&&(e.$scope.hasFunctionScopeBetween(n)||j(O(e),"{0} is referenced before its declaration",e.name))}e.$refToScope=n}}var i=!k.own(n,"analyze")||n.analyze;P(e,{pre:r})}function y(e,t,n,i){function a(e){x(n.has(e));for(var t=0;;t++){var r=e+"$"+String(t);if(!n.has(r))return r}}function o(e){if("VariableDeclaration"===e.type&&r(e.kind)){var o=e.$scope.closestHoistScope(),s=e.$scope;i.push({start:e.range[0],end:e.range[0]+e.kind.length,str:"var"}),e.declarations.forEach(function(r){x("VariableDeclarator"===r.type);var l=r.id.name;t.declarator(e.kind);var u=s!==o&&(o.hasOwn(l)||o.doesPropagate(l)),c=u?a(l):l;s.remove(l),o.add(c,"var",r.id,r.range[1]),s.moves=s.moves||A(),s.moves.set(l,{name:c,scope:o
-}),n.add(c),c!==l&&(t.rename(l,c,O(r)),r.id.originalName=l,r.id.name=c,i.push({start:r.id.range[0],end:r.id.range[1],str:c}))}),e.kind="var"}}function s(e){if(e.$refToScope){var t=e.$refToScope.moves&&e.$refToScope.moves.get(e.name);if(t&&(e.$refToScope=t.scope,e.name!==t.name))if(e.originalName=e.name,e.name=t.name,e.alterop){for(var n=null,r=0;r<i.length;r++){var a=i[r];if(a.node===e){n=a;break}}x(n),n.str=t.name}else i.push({start:e.range[0],end:e.range[1],str:t.name})}}P(e,{pre:o}),P(e,{pre:s}),e.$scope.traverse({pre:function(e){delete e.moves}})}function g(e){function t(e,t){return _(function(n){return P(e,{pre:function(e){if(u(e))return!1;var r=!0,i="loop-variable {0} is captured by a loop-closure that can't be transformed due to use of {1} at line {2}";"BreakStatement"===e.type?j(O(t),i,t.name,"break",O(e)):"ContinueStatement"===e.type?j(O(t),i,t.name,"continue",O(e)):"ReturnStatement"===e.type?j(O(t),i,t.name,"return",O(e)):"YieldExpression"===e.type?j(O(t),i,t.name,"yield",O(e)):"Identifier"===e.type&&"arguments"===e.name?j(O(t),i,t.name,"arguments",O(e)):"VariableDeclaration"===e.type&&"var"===e.kind?j(O(t),i,t.name,"var",O(e)):r=!1,r&&n(!0)}}),!1})}function n(e){var n=null;if(p(e)&&e.$refToScope&&r(e.$refToScope.getKind(e.name))){for(var i=e.$refToScope.node;;){if(u(i))return;if(c(i)){n=i;break}if(i=i.$parent,!i)return}x(c(n));for(var a=e.$refToScope,o="iife"===M.loopClosures,s=e.$scope;s;s=s.parent){if(s===a)return;if(u(s.node)){if(!o){var l='loop-variable {0} is captured by a loop-closure. Tried "loopClosures": "iife" in defs-config.json?';return j(O(e),l,e.name)}if("ForStatement"===n.type&&a.node===n){var f=a.getNode(e.name);return j(O(f),"Not yet specced ES6 feature. {0} is declared in for-loop header and then captured in loop closure",f.name)}if(t(n.body,e))return;n.$iify=!0}}}}P(e,{pre:n})}function v(e,t,n){function r(e,n,r){var i={start:e,end:e,str:n};r&&(i.node=r),t.push(i)}P(e,{pre:function(e){if(e.$iify){var t="BlockStatement"===e.body.type,i=t?e.body.range[0]+1:e.body.range[0],a=t?e.body.range[1]-1:e.body.range[1],o=l(e)&&e.left.declarations[0].id.name,s=T("(function({0}){",o?o:""),u=T("}).call(this{0});",o?", "+o:""),c=n.parse(s+u),p=c.body[0],f=p.expression.callee.object.body;if(t){var d=e.body,h=d.body;d.body=[p],f.body=h}else{var m=e.body;e.body=p,f.body[0]=m}if(r(i,s),o){r(a,"}).call(this, ");var y=p.expression.arguments,g=y[1];g.alterop=!0,r(a,o,g),r(a,");")}else r(a,u)}}})}function b(e){P(e,{pre:function(e){if(f(e)){var t=e.$scope.lookup(e.name);t&&"const"===t.getKind(e.name)&&j(O(e),"can't assign to const variable {0}",e.name)}}})}function E(e,t){P(e,{pre:d});var n=h(e.$scope,M.environments,M.globals),r=L();return n.traverse({pre:function(e){r.addMany(e.decls.keys())}}),m(e,r,t),r}function S(e){P(e,{pre:function(e){for(var t in e)"$"===t[0]&&delete e[t]}})}function w(e,t){for(var n in t)M[n]=t[n];var r;if(k.object(e)){if(!M.ast)return{errors:["Can't produce string output when input is an AST. Did you forget to set options.ast = true?"]};r=e}else{if(!k.string(e))return{errors:["Input was neither an AST object nor a string."]};try{r=M.parse(e,{loc:!0,range:!0})}catch(t){return{errors:[T("line {0} column {1}: Error during input file parsing\n{2}\n{3}",t.lineNumber,t.column,e.split("\n")[t.lineNumber-1],T.repeat(" ",t.column-1)+"^")]}}}var i=r;j.reset();var a=E(i,{});g(i),b(i);var o=[];if(v(i,o,M),j.errors.length>=1)return{errors:j.errors};o.length>0&&(S(i),a=E(i,{analyze:!1})),x(0===j.errors.length);var s=new N;if(y(i,s,a,o),M.ast)return S(i),{stats:s,ast:i};var l=C(e,o);return{stats:s,src:l}}var x=e("assert"),k=e("simple-is"),T=e("simple-fmt"),A=e("stringmap"),L=e("stringset"),C=e("alter"),P=e("ast-traverse"),_=e("breakable"),I=e("./scope"),j=e("./error"),O=j.getline,M=e("./options"),N=e("./stats"),D=e("./jshint_globals/vars.js");t.exports=w},{"./error":42,"./jshint_globals/vars.js":43,"./options":44,"./scope":45,"./stats":46,alter:47,assert:2,"ast-traverse":49,breakable:50,"simple-fmt":51,"simple-is":52,stringmap:53,stringset:54}],42:[function(e,t,n){"use strict";function r(e,t){a(arguments.length>=2);var n=2===arguments.length?String(t):i.apply(i,Array.prototype.slice.call(arguments,1));r.errors.push(e===-1?n:i("line {0}: {1}",e,n))}var i=e("simple-fmt"),a=e("assert");r.reset=function(){r.errors=[]},r.getline=function(e){return e&&e.loc&&e.loc.start?e.loc.start.line:-1},r.reset(),t.exports=r},{assert:2,"simple-fmt":51}],43:[function(e,t,n){"use strict";n.reservedVars={arguments:!1,NaN:!1},n.ecmaIdentifiers={Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,JSON:!1,Math:!1,Map:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,Set:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1,WeakMap:!1},n.browser={ArrayBuffer:!1,ArrayBufferView:!1,Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,DataView:!1,DOMParser:!1,defaultStatus:!1,document:!1,Element:!1,event:!1,FileReader:!1,Float32Array:!1,Float64Array:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Image:!1,length:!1,localStorage:!1,location:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,print:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,top:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},n.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},n.worker={importScripts:!0,postMessage:!0,self:!0},n.nonstandard={escape:!1,unescape:!1},n.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},n.node={__filename:!1,__dirname:!1,Buffer:!1,DataView:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1},n.phantom={phantom:!0,require:!0,WebPage:!0},n.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},n.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},n.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},n.jquery={$:!1,jQuery:!1},n.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,Iframe:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},n.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},n.yui={YUI:!1,Y:!1,YUI_config:!1}},{}],44:[function(e,t,n){t.exports={disallowVars:!1,disallowDuplicated:!0,disallowUnknownReferences:!0,parse:e("esprima-fb").parse}},{"esprima-fb":55}],45:[function(e,t,n){"use strict";function r(e){i(s.someof(e.kind,["hoist","block","catch-block"])),i(s.object(e.node)),i(null===e.parent||s.object(e.parent)),this.kind=e.kind,this.node=e.node,this.parent=e.parent,this.children=[],this.decls=a(),this.written=o(),this.propagates="hoist"===this.kind?o():null,this.parent&&this.parent.children.push(this)}var i=e("assert"),a=e("stringmap"),o=e("stringset"),s=e("simple-is"),l=e("simple-fmt"),u=e("./error"),c=u.getline,p=e("./options");r.prototype.print=function(e){e=e||0;var t=this,n=this.decls.keys().map(function(e){return l("{0} [{1}]",e,t.decls.get(e).kind)}).join(", "),r=this.propagates?this.propagates.items().join(", "):"";console.log(l("{0}{1}: {2}. propagates: {3}",l.repeat(" ",e),this.node.type,n,r)),this.children.forEach(function(t){t.print(e+2)})},r.prototype.add=function(e,t,n,r){function a(e){return s.someof(e,["const","let"])}i(s.someof(t,["fun","param","var","caught","const","let"]));var o=this;if(s.someof(t,["fun","param","var"]))for(;"hoist"!==o.kind;){if(o.decls.has(e)&&a(o.decls.get(e).kind))return u(c(n),"{0} is already declared",e);o=o.parent}if(o.decls.has(e)&&(p.disallowDuplicated||a(o.decls.get(e).kind)||a(t)))return u(c(n),"{0} is already declared",e);var l={kind:t,node:n};r&&(i(s.someof(t,["var","const","let"])),l.from=r),o.decls.set(e,l)},r.prototype.getKind=function(e){i(s.string(e));var t=this.decls.get(e);return t?t.kind:null},r.prototype.getNode=function(e){i(s.string(e));var t=this.decls.get(e);return t?t.node:null},r.prototype.getFromPos=function(e){i(s.string(e));var t=this.decls.get(e);return t?t.from:null},r.prototype.hasOwn=function(e){return this.decls.has(e)},r.prototype.remove=function(e){return this.decls.remove(e)},r.prototype.doesPropagate=function(e){return this.propagates.has(e)},r.prototype.markPropagates=function(e){this.propagates.add(e)},r.prototype.closestHoistScope=function(){for(var e=this;"hoist"!==e.kind;)e=e.parent;return e},r.prototype.hasFunctionScopeBetween=function(e){function t(e){return s.someof(e.type,["FunctionDeclaration","FunctionExpression"])}for(var n=this;n;n=n.parent){if(n===e)return!1;if(t(n.node))return!0}throw new Error("wasn't inner scope of outer")},r.prototype.lookup=function(e){for(var t=this;t;t=t.parent){if(t.decls.has(e))return t;"hoist"===t.kind&&t.propagates.add(e)}return null},r.prototype.markWrite=function(e){i(s.string(e)),this.written.add(e)},r.prototype.detectUnmodifiedLets=function(){function e(n){n!==t&&n.decls.keys().forEach(function(e){if("let"===n.getKind(e)&&!n.written.has(e))return u(c(n.getNode(e)),"{0} is declared as let but never modified so could be const",e)}),n.children.forEach(function(t){e(t)})}var t=this;e(this)},r.prototype.traverse=function(e){function t(e){n&&n(e),e.children.forEach(function(e){t(e)}),r&&r(e)}e=e||{};var n=e.pre,r=e.post;t(this)},t.exports=r},{"./error":42,"./options":44,assert:2,"simple-fmt":51,"simple-is":52,stringmap:53,stringset:54}],46:[function(e,t,n){function r(){this.lets=0,this.consts=0,this.renames=[]}var i=e("simple-fmt"),a=e("simple-is"),o=e("assert");r.prototype.declarator=function(e){o(a.someof(e,["const","let"])),"const"===e?this.consts++:this.lets++},r.prototype.rename=function(e,t,n){this.renames.push({oldName:e,newName:t,line:n})},r.prototype.toString=function(){var e=this.renames.map(function(e){return e}).sort(function(e,t){return e.line-t.line}),t=e.map(function(e){return i("\nline {0}: {1} => {2}",e.line,e.oldName,e.newName)}).join(""),n=this.consts+this.lets,r=0===n?"can't calculate const coverage (0 consts, 0 lets)":i("{0}% const coverage ({1} consts, {2} lets)",Math.floor(100*this.consts/n),this.consts,this.lets);return r+t+"\n"},t.exports=r},{assert:2,"simple-fmt":51,"simple-is":52}],47:[function(e,t,n){function r(e,t){"use strict";var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};i("string"==typeof e),i(n(t));for(var r=a(t,function(e,t){return e.start-t.start}),o=[],s=0,l=0;l<r.length;l++){var u=r[l];i(s<=u.start),i(u.start<=u.end),o.push(e.slice(s,u.start)),o.push(u.str),s=u.end}return s<e.length&&o.push(e.slice(s)),o.join("")}var i=e("assert"),a=e("stable");"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{assert:2,stable:48}],48:[function(e,t,n){!function(){function e(e,t){"function"!=typeof t&&(t=function(e,t){return String(e).localeCompare(t)});var n=e.length;if(n<=1)return e;for(var i=new Array(n),a=1;a<n;a*=2){r(e,t,a,i);var o=e;e=i,i=o}return e}var n=function(t,n){return e(t.slice(),n)};n.inplace=function(t,n){var i=e(t,n);return i!==t&&r(i,null,t.length,t),t};var r=function(e,t,n,r){var i,a,o,s,l,u=e.length,c=0,p=2*n;for(i=0;i<u;i+=p)for(a=i+n,o=a+n,a>u&&(a=u),o>u&&(o=u),s=i,l=a;;)if(s<a&&l<o)t(e[s],e[l])<=0?r[c++]=e[s++]:r[c++]=e[l++];else if(s<a)r[c++]=e[s++];else{if(!(l<o))break;r[c++]=e[l++]}};"undefined"!=typeof t?t.exports=n:window.stable=n}()},{}],49:[function(e,t,n){function r(e,t){"use strict";function n(e,t,o,s){if(e&&"string"==typeof e.type){var l=void 0;if(r&&(l=r(e,t,o,s)),l!==!1)for(var o in e)if(a?!a(o,e):"$"!==o[0]){var u=e[o];if(Array.isArray(u))for(var c=0;c<u.length;c++)n(u[c],e,o,c);else n(u,e,o)}i&&i(e,t,o,s)}}t=t||{};var r=t.pre,i=t.post,a=t.skipProperty;n(e,null)}"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],50:[function(e,t,n){var r=function(){"use strict";function e(e,t){this.val=e,this.brk=t}function t(){return function t(n){throw new e(n,t)}}function n(n){var r=t();try{return n(r)}catch(t){if(t instanceof e&&t.brk===r)return t.val;throw t}}return n}();"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],51:[function(e,t,n){var r=function(){"use strict";function e(e,t){var n=Array.prototype.slice.call(arguments,1);return e.replace(/\{(\d+)\}/g,function(e,t){return t in n?n[t]:e})}function t(e,t){return e.replace(/\{([_$a-zA-Z0-9][_$a-zA-Z0-9]*)\}/g,function(e,n){return n in t?t[n]:e})}function n(e,t){return new Array(t+1).join(e)}return e.fmt=e,e.obj=t,e.repeat=n,e}();"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],52:[function(e,t,n){var r=function(){"use strict";var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=void 0;return{nan:function(e){return e!==e},boolean:function(e){return"boolean"==typeof e},number:function(e){return"number"==typeof e},string:function(e){return"string"==typeof e},fn:function(e){return"function"==typeof e},object:function(e){return null!==e&&"object"==typeof e},primitive:function(e){var t=typeof e;return null===e||e===n||"boolean"===t||"number"===t||"string"===t},array:Array.isArray||function(e){return"[object Array]"===t.call(e)},finitenumber:function(e){return"number"==typeof e&&isFinite(e)},someof:function(e,t){return t.indexOf(e)>=0},noneof:function(e,t){return t.indexOf(e)===-1},own:function(t,n){return e.call(t,n)}}}();"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],53:[function(e,t,n){var r=function(){"use strict";function e(t){return this instanceof e?(this.obj=n(),this.hasProto=!1,this.proto=void 0,void(t&&this.setMany(t))):new e(t)}var t=Object.prototype.hasOwnProperty,n=function(){function e(e){for(var n in e)if(t.call(e,n))return!0;return!1}function n(e){return t.call(e,"__count__")||t.call(e,"__parent__")}var r=!1;if("function"==typeof Object.create&&(e(Object.create(null))||(r=!0)),r===!1&&e({}))throw new Error("StringMap environment error 0, please file a bug at https://github.com/olov/stringmap/issues");var i=r?Object.create(null):{},a=!1;if(n(i)){if(i.__proto__=null,e(i)||n(i))throw new Error("StringMap environment error 1, please file a bug at https://github.com/olov/stringmap/issues");a=!0}return function(){var e=r?Object.create(null):{};return a&&(e.__proto__=null),e}}();return e.prototype.has=function(e){if("string"!=typeof e)throw new Error("StringMap expected string key");return"__proto__"===e?this.hasProto:t.call(this.obj,e)},e.prototype.get=function(e){if("string"!=typeof e)throw new Error("StringMap expected string key");return"__proto__"===e?this.proto:t.call(this.obj,e)?this.obj[e]:void 0},e.prototype.set=function(e,t){if("string"!=typeof e)throw new Error("StringMap expected string key");"__proto__"===e?(this.hasProto=!0,this.proto=t):this.obj[e]=t},e.prototype.remove=function(e){if("string"!=typeof e)throw new Error("StringMap expected string key");var t=this.has(e);return"__proto__"===e?(this.hasProto=!1,this.proto=void 0):delete this.obj[e],t},e.prototype.delete=e.prototype.remove,e.prototype.isEmpty=function(){for(var e in this.obj)if(t.call(this.obj,e))return!1;return!this.hasProto},e.prototype.size=function(){var e=0;for(var n in this.obj)t.call(this.obj,n)&&++e;return this.hasProto?e+1:e},e.prototype.keys=function(){var e=[];for(var n in this.obj)t.call(this.obj,n)&&e.push(n);return this.hasProto&&e.push("__proto__"),e},e.prototype.values=function(){var e=[];for(var n in this.obj)t.call(this.obj,n)&&e.push(this.obj[n]);return this.hasProto&&e.push(this.proto),e},e.prototype.items=function(){var e=[];for(var n in this.obj)t.call(this.obj,n)&&e.push([n,this.obj[n]]);return this.hasProto&&e.push(["__proto__",this.proto]),e},e.prototype.setMany=function(e){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new Error("StringMap expected Object");for(var n in e)t.call(e,n)&&this.set(n,e[n]);return this},e.prototype.merge=function(e){for(var t=e.keys(),n=0;n<t.length;n++){var r=t[n];this.set(r,e.get(r))}return this},e.prototype.map=function(e){for(var t=this.keys(),n=0;n<t.length;n++){var r=t[n];t[n]=e(this.get(r),r)}return t},e.prototype.forEach=function(e){for(var t=this.keys(),n=0;n<t.length;n++){var r=t[n];e(this.get(r),r)}},e.prototype.clone=function(){var t=e();return t.merge(this)},e.prototype.toString=function(){var e=this;return"{"+this.keys().map(function(t){return JSON.stringify(t)+":"+JSON.stringify(e.get(t))}).join(",")+"}"},e}();"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],54:[function(e,t,n){var r=function(){"use strict";function e(t){return this instanceof e?(this.obj=n(),this.hasProto=!1,void(t&&this.addMany(t))):new e(t)}var t=Object.prototype.hasOwnProperty,n=function(){function e(e){for(var n in e)if(t.call(e,n))return!0;return!1}function n(e){return t.call(e,"__count__")||t.call(e,"__parent__")}var r=!1;if("function"==typeof Object.create&&(e(Object.create(null))||(r=!0)),r===!1&&e({}))throw new Error("StringSet environment error 0, please file a bug at https://github.com/olov/stringset/issues");var i=r?Object.create(null):{},a=!1;if(n(i)){if(i.__proto__=null,e(i)||n(i))throw new Error("StringSet environment error 1, please file a bug at https://github.com/olov/stringset/issues");a=!0}return function(){var e=r?Object.create(null):{};return a&&(e.__proto__=null),e}}();return e.prototype.has=function(e){if("string"!=typeof e)throw new Error("StringSet expected string item");return"__proto__"===e?this.hasProto:t.call(this.obj,e)},e.prototype.add=function(e){if("string"!=typeof e)throw new Error("StringSet expected string item");"__proto__"===e?this.hasProto=!0:this.obj[e]=!0},e.prototype.remove=function(e){if("string"!=typeof e)throw new Error("StringSet expected string item");var t=this.has(e);return"__proto__"===e?this.hasProto=!1:delete this.obj[e],t},e.prototype.delete=e.prototype.remove,e.prototype.isEmpty=function(){for(var e in this.obj)if(t.call(this.obj,e))return!1;return!this.hasProto},e.prototype.size=function(){var e=0;for(var n in this.obj)t.call(this.obj,n)&&++e;return this.hasProto?e+1:e},e.prototype.items=function(){var e=[];for(var n in this.obj)t.call(this.obj,n)&&e.push(n);return this.hasProto&&e.push("__proto__"),e},e.prototype.addMany=function(e){if(!Array.isArray(e))throw new Error("StringSet expected array");for(var t=0;t<e.length;t++)this.add(e[t]);return this},e.prototype.merge=function(e){return this.addMany(e.items()),this},e.prototype.clone=function(){var t=e();return t.merge(this)},e.prototype.toString=function(){return"{"+this.items().map(JSON.stringify).join(",")+"}"},e}();"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],55:[function(e,t,n){!function(e,t){"use strict";"function"==typeof define&&define.amd?define(["exports"],t):t("undefined"!=typeof n?n:e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(){this.$data={}}function r(e){return e>=48&&e<=57}function i(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function a(e){return"01234567".indexOf(e)>=0}function o(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&" ᠎              \ufeff".indexOf(String.fromCharCode(e))>0}function s(e){return 10===e||13===e||8232===e||8233===e}function l(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Zn.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function u(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&Zn.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function p(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function f(e){return"eval"===e||"arguments"===e}function d(e){if(ir&&p(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function h(e,n,r,i,a){var o;t("number"==typeof r,"Comment must have valid position"),pr.lastCommentStart>=r||(pr.lastCommentStart=r,o={type:e,value:n},fr.range&&(o.range=[r,i]),fr.loc&&(o.loc=a),fr.comments.push(o),fr.attachComment&&(fr.leadingComments.push(o),fr.trailingComments.push(o)))}function m(){var e,t,n,r;for(e=ar-2,t={start:{line:or,column:ar-sr-2}};ar<lr;)if(n=rr.charCodeAt(ar),++ar,s(n))return fr.comments&&(r=rr.slice(e+2,ar-1),t.end={line:or,column:ar-sr-1},h("Line",r,e,ar-1,t)),13===n&&10===rr.charCodeAt(ar)&&++ar,++or,void(sr=ar);fr.comments&&(r=rr.slice(e+2,ar),t.end={line:or,column:ar-sr},h("Line",r,e,ar,t))}function y(){var e,t,n,r;for(fr.comments&&(e=ar-2,t={start:{line:or,column:ar-sr-2}});ar<lr;)if(n=rr.charCodeAt(ar),s(n))13===n&&10===rr.charCodeAt(ar+1)&&++ar,++or,++ar,sr=ar,ar>=lr&&W({},Qn.UnexpectedToken,"ILLEGAL");else if(42===n){if(47===rr.charCodeAt(ar+1))return++ar,++ar,void(fr.comments&&(r=rr.slice(e+2,ar-2),t.end={line:or,column:ar-sr},h("Block",r,e,ar,t)));++ar}else++ar;W({},Qn.UnexpectedToken,"ILLEGAL")}function g(){for(var e;ar<lr;)if(e=rr.charCodeAt(ar),o(e))++ar;else if(s(e))++ar,13===e&&10===rr.charCodeAt(ar)&&++ar,++or,sr=ar;else{if(47!==e)break;if(e=rr.charCodeAt(ar+1),47===e)++ar,++ar,m();else{if(42!==e)break;++ar,++ar,y()}}}function v(e){var t,n,r,a=0;for(n="u"===e?4:2,t=0;t<n;++t){if(!(ar<lr&&i(rr[ar])))return"";r=rr[ar++],a=16*a+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(a)}function b(){var e,t,n,r;for(e=rr[ar],t=0,"}"===e&&W({},Qn.UnexpectedToken,"ILLEGAL");ar<lr&&(e=rr[ar++],i(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&W({},Qn.UnexpectedToken,"ILLEGAL"),t<=65535?String.fromCharCode(t):(n=(t-65536>>10)+55296,r=(t-65536&1023)+56320,String.fromCharCode(n,r))}function E(){var e,t;for(e=rr.charCodeAt(ar++),t=String.fromCharCode(e),92===e&&(117!==rr.charCodeAt(ar)&&W({},Qn.UnexpectedToken,"ILLEGAL"),++ar,e=v("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||W({},Qn.UnexpectedToken,"ILLEGAL"),t=e);ar<lr&&(e=rr.charCodeAt(ar),u(e));)++ar,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==rr.charCodeAt(ar)&&W({},Qn.UnexpectedToken,"ILLEGAL"),++ar,e=v("u"),e&&"\\"!==e&&u(e.charCodeAt(0))||W({},Qn.UnexpectedToken,"ILLEGAL"),t+=e);return t}function S(){var e,t;for(e=ar++;ar<lr;){if(t=rr.charCodeAt(ar),92===t)return ar=e,E();if(!u(t))break;++ar}return rr.slice(e,ar)}function w(){var e,t,n;return e=ar,t=92===rr.charCodeAt(ar)?E():S(),n=1===t.length?$n.Identifier:d(t)?$n.Keyword:"null"===t?$n.NullLiteral:"true"===t||"false"===t?$n.BooleanLiteral:$n.Identifier,{type:n,value:t,lineNumber:or,lineStart:sr,range:[e,ar]}}function x(){var e,t,n,r,i=ar,a=rr.charCodeAt(ar),o=rr[ar];if(pr.inJSXTag||pr.inJSXChild)switch(a){case 60:case 62:return++ar,{type:$n.Punctuator,value:String.fromCharCode(a),lineNumber:or,lineStart:sr,range:[i,ar]}}switch(a){case 40:case 41:case 59:case 44:case 91:case 93:case 58:case 63:case 126:return++ar,fr.tokenize&&40===a&&(fr.openParenToken=fr.tokens.length),{type:$n.Punctuator,value:String.fromCharCode(a),lineNumber:or,lineStart:sr,range:[i,ar]};case 123:case 125:return++ar,fr.tokenize&&123===a&&(fr.openCurlyToken=fr.tokens.length),ar>pr.curlyLastIndex&&(pr.curlyLastIndex=ar,123===a?pr.curlyStack.push("{"):pr.curlyStack.pop()),{type:$n.Punctuator,value:String.fromCharCode(a),lineNumber:or,lineStart:sr,range:[i,ar]};default:if(e=rr.charCodeAt(ar+1),61===e)switch(a){case 37:case 38:case 42:case 43:case 45:case 47:case 60:case 62:case 94:case 124:return ar+=2,{type:$n.Punctuator,value:String.fromCharCode(a)+String.fromCharCode(e),lineNumber:or,lineStart:sr,range:[i,ar]};case 33:case 61:return ar+=2,61===rr.charCodeAt(ar)&&++ar,{type:$n.Punctuator,value:rr.slice(i,ar),lineNumber:or,lineStart:sr,range:[i,ar]}}}return t=rr[ar+1],n=rr[ar+2],r=rr[ar+3],">"===o&&">"===t&&">"===n&&"="===r?(ar+=4,{type:$n.Punctuator,value:">>>=",lineNumber:or,lineStart:sr,range:[i,ar]}):">"!==o||">"!==t||">"!==n||pr.inType?"<"===o&&"<"===t&&"="===n?(ar+=3,{type:$n.Punctuator,value:"<<=",lineNumber:or,lineStart:sr,range:[i,ar]}):">"===o&&">"===t&&"="===n?(ar+=3,{type:$n.Punctuator,value:">>=",lineNumber:or,lineStart:sr,range:[i,ar]}):"."===o&&"."===t&&"."===n?(ar+=3,{type:$n.Punctuator,value:"...",lineNumber:or,lineStart:sr,range:[i,ar]}):o===t&&"+-<>&|".indexOf(o)>=0&&!pr.inType?(ar+=2,{type:$n.Punctuator,value:o+t,lineNumber:or,lineStart:sr,range:[i,ar]}):"="===o&&">"===t?(ar+=2,{type:$n.Punctuator,value:"=>",lineNumber:or,lineStart:sr,range:[i,ar]}):"<>=!+-*%&|^/".indexOf(o)>=0?(++ar,{type:$n.Punctuator,value:o,lineNumber:or,lineStart:sr,range:[i,ar]}):"."===o?(++ar,{type:$n.Punctuator,value:o,lineNumber:or,lineStart:sr,range:[i,ar]}):void W({},Qn.UnexpectedToken,"ILLEGAL"):(ar+=3,{type:$n.Punctuator,value:">>>",lineNumber:or,lineStart:sr,range:[i,ar]})}function k(e){for(var t="";ar<lr&&i(rr[ar]);)t+=rr[ar++];return 0===t.length&&W({},Qn.UnexpectedToken,"ILLEGAL"),l(rr.charCodeAt(ar))&&W({},Qn.UnexpectedToken,"ILLEGAL"),{type:$n.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:or,lineStart:sr,range:[e,ar]}}function T(e){var t,n;for(n="";ar<lr&&(t=rr[ar],"0"===t||"1"===t);)n+=rr[ar++];return 0===n.length&&W({},Qn.UnexpectedToken,"ILLEGAL"),ar<lr&&(t=rr.charCodeAt(ar),(l(t)||r(t))&&W({},Qn.UnexpectedToken,"ILLEGAL")),{type:$n.NumericLiteral,value:parseInt(n,2),lineNumber:or,lineStart:sr,range:[e,ar]}}function A(e,t){var n,i;for(a(e)?(i=!0,n="0"+rr[ar++]):(i=!1,++ar,n="");ar<lr&&a(rr[ar]);)n+=rr[ar++];return i||0!==n.length||W({},Qn.UnexpectedToken,"ILLEGAL"),(l(rr.charCodeAt(ar))||r(rr.charCodeAt(ar)))&&W({},Qn.UnexpectedToken,"ILLEGAL"),{type:$n.NumericLiteral,value:parseInt(n,8),octal:i,lineNumber:or,lineStart:sr,range:[t,ar]}}function L(){var e,n,i;if(i=rr[ar],t(r(i.charCodeAt(0))||"."===i,"Numeric literal must start with a decimal digit or a decimal point"),n=ar,e="","."!==i){if(e=rr[ar++],i=rr[ar],"0"===e){if("x"===i||"X"===i)return++ar,k(n);if("b"===i||"B"===i)return++ar,T(n);if("o"===i||"O"===i||a(i))return A(i,n);i&&r(i.charCodeAt(0))&&W({},Qn.UnexpectedToken,"ILLEGAL")}for(;r(rr.charCodeAt(ar));)e+=rr[ar++];i=rr[ar]}if("."===i){for(e+=rr[ar++];r(rr.charCodeAt(ar));)e+=rr[ar++];i=rr[ar]}if("e"===i||"E"===i)if(e+=rr[ar++],i=rr[ar],"+"!==i&&"-"!==i||(e+=rr[ar++]),r(rr.charCodeAt(ar)))for(;r(rr.charCodeAt(ar));)e+=rr[ar++];else W({},Qn.UnexpectedToken,"ILLEGAL");return l(rr.charCodeAt(ar))&&W({},Qn.UnexpectedToken,"ILLEGAL"),{type:$n.NumericLiteral,value:parseFloat(e),lineNumber:or,lineStart:sr,range:[n,ar]}}function C(){var e,n,r,i,o,l,u="",c=!1;for(e=rr[ar],t("'"===e||'"'===e,"String literal must starts with a quote"),n=ar,++ar;ar<lr;){if(r=rr[ar++],r===e){e="";break}if("\\"===r)if(r=rr[ar++],r&&s(r.charCodeAt(0)))++or,"\r"===r&&"\n"===rr[ar]&&++ar,sr=ar;else switch(r){case"n":u+="\n";break;case"r":u+="\r";break;case"t":u+="\t";break;case"u":case"x":"{"===rr[ar]?(++ar,u+=b()):(l=ar,o=v(r),o?u+=o:(ar=l,u+=r));break;case"b":u+="\b";break;case"f":u+="\f";break;case"v":u+="\v";break;default:a(r)?(i="01234567".indexOf(r),0!==i&&(c=!0),ar<lr&&a(rr[ar])&&(c=!0,i=8*i+"01234567".indexOf(rr[ar++]),"0123".indexOf(r)>=0&&ar<lr&&a(rr[ar])&&(i=8*i+"01234567".indexOf(rr[ar++]))),u+=String.fromCharCode(i)):u+=r}else{if(s(r.charCodeAt(0)))break;u+=r}}return""!==e&&W({},Qn.UnexpectedToken,"ILLEGAL"),{type:$n.StringLiteral,value:u,octal:c,lineNumber:or,lineStart:sr,range:[n,ar]}}function P(){var e,t,n,r,i,o,l,u,c,p="";for(n=!1,i=!1,t=ar,r="`"===rr[ar],++ar;ar<lr;){if(e=rr[ar++],"`"===e){i=!0,n=!0;break}if("$"===e){if("{"===rr[ar]){++ar,n=!0;break}p+=e}else if("\\"===e)if(e=rr[ar++],s(e.charCodeAt(0)))++or,"\r"===e&&"\n"===rr[ar]&&++ar,sr=ar;else switch(e){case"n":p+="\n";break;case"r":p+="\r";break;case"t":p+="\t";break;case"u":case"x":"{"===rr[ar]?(++ar,p+=b()):(o=ar,l=v(e),l?p+=l:(ar=o,p+=e));break;case"b":p+="\b";break;case"f":p+="\f";break;case"v":p+="\v";break;default:a(e)?(u="01234567".indexOf(e),0!==u&&(c=!0),ar<lr&&a(rr[ar])&&(c=!0,u=8*u+"01234567".indexOf(rr[ar++]),"0123".indexOf(e)>=0&&ar<lr&&a(rr[ar])&&(u=8*u+"01234567".indexOf(rr[ar++]))),p+=String.fromCharCode(u)):p+=e}else s(e.charCodeAt(0))?(++or,"\r"===e&&"\n"===rr[ar]&&++ar,sr=ar,p+="\n"):p+=e}return n||W({},Qn.UnexpectedToken,"ILLEGAL"),ar>pr.curlyLastIndex&&(pr.curlyLastIndex=ar,i||pr.curlyStack.push("template"),r||pr.curlyStack.pop()),{type:$n.Template,value:{cooked:p,raw:rr.slice(t+1,ar-(i?1:2))},head:r,tail:i,octal:c,lineNumber:or,lineStart:sr,range:[t,ar]}}function _(e,t){var n,r=e;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void W({},Qn.InvalidRegExp)}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{n=new RegExp(r)}catch(e){W({},Qn.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}}function I(){var e,n,r,i,a;for(e=rr[ar],t("/"===e,"Regular expression literal must start with a slash"),
-n=rr[ar++],r=!1,i=!1;ar<lr;)if(e=rr[ar++],n+=e,"\\"===e)e=rr[ar++],s(e.charCodeAt(0))&&W({},Qn.UnterminatedRegExp),n+=e;else if(s(e.charCodeAt(0)))W({},Qn.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){i=!0;break}"["===e&&(r=!0)}return i||W({},Qn.UnterminatedRegExp),a=n.substr(1,n.length-2),{value:a,literal:n}}function j(){var e,t,n,r;for(t="",n="";ar<lr&&(e=rr[ar],u(e.charCodeAt(0)));)if(++ar,"\\"===e&&ar<lr)if(e=rr[ar],"u"===e){if(++ar,r=ar,e=v("u"))for(n+=e,t+="\\u";r<ar;++r)t+=rr[r];else ar=r,n+="u",t+="\\u";$({},Qn.UnexpectedToken,"ILLEGAL")}else t+="\\",$({},Qn.UnexpectedToken,"ILLEGAL");else n+=e,t+=e;return{value:n,literal:t}}function O(){var e,t,n,r;return cr=null,g(),e=ar,t=I(),n=j(),r=_(t.value,n.value),fr.tokenize?{type:$n.RegularExpression,value:r,regex:{pattern:t.value,flags:n.value},lineNumber:or,lineStart:sr,range:[e,ar]}:{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},range:[e,ar]}}function M(e){return e.type===$n.Identifier||e.type===$n.Keyword||e.type===$n.BooleanLiteral||e.type===$n.NullLiteral}function N(){var e,t;if(e=fr.tokens[fr.tokens.length-1],!e)return O();if("Punctuator"===e.type){if(")"===e.value)return t=fr.tokens[fr.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?x():O();if("}"===e.value){if(fr.tokens[fr.openCurlyToken-3]&&"Keyword"===fr.tokens[fr.openCurlyToken-3].type){if(t=fr.tokens[fr.openCurlyToken-4],!t)return x()}else{if(!fr.tokens[fr.openCurlyToken-4]||"Keyword"!==fr.tokens[fr.openCurlyToken-4].type)return x();if(t=fr.tokens[fr.openCurlyToken-5],!t)return O()}return Gn.indexOf(t.value)>=0?x():O()}return O()}return"Keyword"===e.type&&"this"!==e.value?O():x()}function D(){var e;return pr.inJSXChild||g(),ar>=lr?{type:$n.EOF,lineNumber:or,lineStart:sr,range:[ar,ar]}:pr.inJSXChild?yn():(e=rr.charCodeAt(ar),40===e||41===e||58===e?x():39===e||34===e?pr.inJSXTag?mn():C():pr.inJSXTag&&cn(e)?fn():96===e||125===e&&"template"===pr.curlyStack[pr.curlyStack.length-1]?P():l(e)?w():46===e?r(rr.charCodeAt(ar+1))?L():x():r(e)?L():fr.tokenize&&47===e?N():x())}function R(){var e;return e=cr,ar=e.range[1],or=e.lineNumber,sr=e.lineStart,cr=D(),ar=e.range[1],or=e.lineNumber,sr=e.lineStart,e}function B(){var e,t,n;e=ar,t=or,n=sr,cr=D(),ar=e,or=t,sr=n}function F(){var e,t,n,r,i;return e="function"==typeof fr.advance?fr.advance:D,t=ar,n=or,r=sr,null===cr&&(cr=e()),ar=cr.range[1],or=cr.lineNumber,sr=cr.lineStart,i=e(),ar=t,or=n,sr=r,i}function X(e){ar=e.range[0],or=e.lineNumber,sr=e.lineStart,cr=e}function U(){if(fr.loc||fr.range)return g(),{offset:ar,line:or,col:ar-sr}}function J(){if(fr.loc||fr.range)return{offset:ar,line:or,col:ar-sr}}function q(e){var t,n,r=fr.bottomRightStack,i=r[r.length-1];if(!(e.type===Yn.Program&&e.body.length>0)){if(fr.trailingComments.length>0?fr.trailingComments[0].range[0]>=e.range[1]?(n=fr.trailingComments,fr.trailingComments=[]):fr.trailingComments.length=0:i&&i.trailingComments&&i.trailingComments[0].range[0]>=e.range[1]&&(n=i.trailingComments,delete i.trailingComments),i)for(;i&&i.range[0]>=e.range[0];)t=i,i=r.pop();t?t.leadingComments&&t.leadingComments[t.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=t.leadingComments,delete t.leadingComments):fr.leadingComments.length>0&&fr.leadingComments[fr.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=fr.leadingComments,fr.leadingComments=[]),n&&(e.trailingComments=n),r.push(e)}}function V(e,t){return fr.range&&(t.range=[e.offset,ar]),fr.loc&&(t.loc={start:{line:e.line,column:e.col},end:{line:or,column:ar-sr}},t=ur.postProcess(t)),fr.attachComment&&q(t),t}function z(){var e,t,n,r;return e=ar,t=or,n=sr,g(),r=or!==t,ar=e,or=t,sr=n,r}function W(e,n){var r,i=Array.prototype.slice.call(arguments,2),a=n.replace(/%(\d)/g,function(e,n){return t(n<i.length,"Message reference must be in range"),i[n]});throw"number"==typeof e.lineNumber?(r=new Error("Line "+e.lineNumber+": "+a),r.index=e.range[0],r.lineNumber=e.lineNumber,r.column=e.range[0]-sr+1):(r=new Error("Line "+or+": "+a),r.index=ar,r.lineNumber=or,r.column=ar-sr+1),r.description=a,r}function $(){try{W.apply(null,arguments)}catch(e){if(!fr.errors)throw e;fr.errors.push(e)}}function H(e){if(e.type===$n.EOF&&W(e,Qn.UnexpectedEOS),e.type===$n.NumericLiteral&&W(e,Qn.UnexpectedNumber),e.type!==$n.StringLiteral&&e.type!==$n.JSXText||W(e,Qn.UnexpectedString),e.type===$n.Identifier&&W(e,Qn.UnexpectedIdentifier),e.type===$n.Keyword){if(c(e.value))W(e,Qn.UnexpectedReserved);else if(ir&&p(e.value))return void $(e,Qn.StrictReservedWord);W(e,Qn.UnexpectedToken,e.value)}e.type===$n.Template&&W(e,Qn.UnexpectedTemplate,e.value.raw),W(e,Qn.UnexpectedToken,e.value)}function G(e){var t=R();t.type===$n.Punctuator&&t.value===e||H(t)}function Y(e,t){var n=R();n.type===(t?$n.Identifier:$n.Keyword)&&n.value===e||H(n)}function K(e){return Y(e,!0)}function Q(e){return cr.type===$n.Punctuator&&cr.value===e}function Z(e,t){var n=t?$n.Identifier:$n.Keyword;return cr.type===n&&cr.value===e}function ee(e){return Z(e,!0)}function te(){var e;return cr.type===$n.Punctuator&&(e=cr.value,"="===e||"*="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function ne(){return pr.yieldAllowed&&Z("yield",!ir)}function re(){var e=cr,t=!1;return ee("async")&&(R(),t=!z(),X(e)),t}function ie(){return pr.awaitAllowed&&ee("await")}function ae(){var e,t=ar,n=or,r=sr,i=cr;return 59===rr.charCodeAt(ar)?void R():(e=or,g(),or!==e?(ar=t,or=n,sr=r,void(cr=i)):Q(";")?void R():void(cr.type===$n.EOF||Q("}")||H(cr)))}function oe(e){return e.type===Yn.Identifier||e.type===Yn.MemberExpression}function se(e){return oe(e)||e.type===Yn.ObjectPattern||e.type===Yn.ArrayPattern}function le(){var e,t=[],n=[],r=null,i=!0,a=U();for(G("[");!Q("]");)"for"===cr.value&&cr.type===$n.Keyword?(i||W({},Qn.ComprehensionError),Z("for"),e=Pt({ignoreBody:!0}),e.of=e.type===Yn.ForOfStatement,e.type=Yn.ComprehensionBlock,e.left.kind&&W({},Qn.ComprehensionError),n.push(e)):"if"===cr.value&&cr.type===$n.Keyword?(i||W({},Qn.ComprehensionError),Y("if"),G("("),r=Fe(),G(")")):","===cr.value&&cr.type===$n.Punctuator?(i=!1,R(),t.push(null)):(e=we(),t.push(e),e&&e.type===Yn.SpreadElement?Q("]")||W({},Qn.ElementAfterSpreadElement):Q("]")||Z("for")||Z("if")||(G(","),i=!1));return G("]"),r&&!n.length&&W({},Qn.ComprehensionRequiresBlock),n.length?(1!==t.length&&W({},Qn.ComprehensionError),V(a,ur.createComprehensionExpression(r,n,t[0]))):V(a,ur.createArrayExpression(t))}function ue(e){var t,n,r,i,a,o,s=U();return t=ir,n=pr.yieldAllowed,pr.yieldAllowed=e.generator,r=pr.awaitAllowed,pr.awaitAllowed=e.async,i=e.params||[],a=e.defaults||[],o=Ut(),e.name&&ir&&f(i[0].name)&&$(e.name,Qn.StrictParamName),ir=t,pr.yieldAllowed=n,pr.awaitAllowed=r,V(s,ur.createFunctionExpression(null,i,a,o,e.rest||null,e.generator,o.type!==Yn.BlockStatement,e.async,e.returnType,e.typeParameters))}function ce(e){var t,n,r;return t=ir,ir=!0,n=zt(),n.stricted&&$(n.stricted,n.message),r=ue({params:n.params,defaults:n.defaults,rest:n.rest,generator:e.generator,async:e.async,returnType:n.returnType,typeParameters:e.typeParameters}),ir=t,r}function pe(){var e,t,n=U(),r=R();return r.type===$n.StringLiteral||r.type===$n.NumericLiteral?(ir&&r.octal&&$(r,Qn.StrictOctalLiteral),V(n,ur.createLiteral(r))):r.type===$n.Punctuator&&"["===r.value?(n=U(),e=Be(),t=V(n,e),G("]"),t):V(n,ur.createIdentifier(r.value))}function fe(){var e,t,n,r,i,a,o,s=U();return e=cr,i="["===e.value&&e.type===$n.Punctuator,e.type===$n.Identifier||i||re()?(n=pe(),Q(":")?(R(),V(s,ur.createProperty("init",n,Be(),!1,!1,i))):Q("(")||Q("<")?(Q("<")&&(o=Je()),V(s,ur.createProperty("init",n,ce({generator:!1,async:!1,typeParameters:o}),!0,!1,i))):"get"===e.value?(i="["===cr.value,t=pe(),G("("),G(")"),Q(":")&&(a=st()),V(s,ur.createProperty("get",t,ue({generator:!1,async:!1,returnType:a}),!1,!1,i))):"set"===e.value?(i="["===cr.value,t=pe(),G("("),e=cr,r=[ut()],G(")"),Q(":")&&(a=st()),V(s,ur.createProperty("set",t,ue({params:r,generator:!1,async:!1,name:e,returnType:a}),!1,!1,i))):"async"===e.value?(i="["===cr.value,t=pe(),Q("<")&&(o=Je()),V(s,ur.createProperty("init",t,ce({generator:!1,async:!0,typeParameters:o}),!0,!1,i))):(i&&H(cr),V(s,ur.createProperty("init",n,n,!1,!0,!1)))):e.type===$n.EOF||e.type===$n.Punctuator?(Q("*")||H(e),R(),i=cr.type===$n.Punctuator&&"["===cr.value,n=pe(),Q("<")&&(o=Je()),Q("(")||H(R()),V(s,ur.createProperty("init",n,ce({generator:!0,typeParameters:o}),!0,!1,i))):(t=pe(),Q(":")?(R(),V(s,ur.createProperty("init",t,Be(),!1,!1,!1))):Q("(")||Q("<")?(Q("<")&&(o=Je()),V(s,ur.createProperty("init",t,ce({generator:!1,typeParameters:o}),!0,!1,!1))):void H(R()))}function de(){var e=U();return G("..."),V(e,ur.createSpreadProperty(Be()))}function he(e){var t=String;return e.type===Yn.Identifier?e.name:t(e.value)}function me(){var e,t,r,i,a=[],o=new n,s=U(),l=String;for(G("{");!Q("}");)Q("...")?e=de():(e=fe(),t=e.key.type===Yn.Identifier?e.key.name:l(e.key.value),r="init"===e.kind?Kn.Data:"get"===e.kind?Kn.Get:Kn.Set,o.has(t)?(i=o.get(t),i===Kn.Data?ir&&r===Kn.Data?$({},Qn.StrictDuplicateProperty):r!==Kn.Data&&$({},Qn.AccessorDataProperty):r===Kn.Data?$({},Qn.AccessorDataProperty):i&r&&$({},Qn.AccessorGetSet),o.set(t,i|r)):o.set(t,r)),a.push(e),Q("}")||G(",");return G("}"),V(s,ur.createObjectExpression(a))}function ye(e){var t,n;return(cr.type!==$n.Template||e.head&&!cr.head)&&W({},Qn.UnexpectedToken,"ILLEGAL"),t=U(),n=R(),ir&&n.octal&&W(n,Qn.StrictOctalLiteral),V(t,ur.createTemplateElement({raw:n.value.raw,cooked:n.value.cooked},n.tail))}function ge(){var e,t,n,r=U();for(e=ye({head:!0}),t=[e],n=[];!e.tail;)n.push(Fe()),e=ye({head:!1}),t.push(e);return V(r,ur.createTemplateLiteral(t,n))}function ve(){var e,t,n;return G("("),++pr.parenthesizedCount,t=U(),e=Fe(),Q(":")&&(n=st(),e=V(t,ur.createTypeCast(e,n))),G(")"),e}function be(){var e;return!(!re()||(e=F(),e.type!==$n.Keyword||"function"!==e.value))}function Ee(){var e,t,n,r;if(t=cr.type,t===$n.Identifier)return e=U(),V(e,ur.createIdentifier(R().value));if(t===$n.StringLiteral||t===$n.NumericLiteral)return ir&&cr.octal&&$(cr,Qn.StrictOctalLiteral),e=U(),V(e,ur.createLiteral(R()));if(t===$n.Keyword){if(Z("this"))return e=U(),R(),V(e,ur.createThisExpression());if(Z("function"))return $t();if(Z("class"))return nn();if(Z("super"))return e=U(),R(),V(e,ur.createIdentifier("super"))}return t===$n.BooleanLiteral?(e=U(),n=R(),n.value="true"===n.value,V(e,ur.createLiteral(n))):t===$n.NullLiteral?(e=U(),n=R(),n.value=null,V(e,ur.createLiteral(n))):Q("[")?le():Q("{")?me():Q("(")?ve():Q("/")||Q("/=")?(e=U(),r=ur.createLiteral(O()),B(),V(e,r)):t===$n.Template?ge():Q("<")?_n():void H(R())}function Se(){var e,t=[];if(G("("),!Q(")"))for(;ar<lr;){if(e=we(),t.push(e),e.type===Yn.SpreadElement){if(Q(")"))break;W({},Qn.ElementAfterSpreadElement)}if(Q(")"))break;if(G(","),Q(")"))break}return G(")"),t}function we(){if(Q("...")){var e=U();return R(),V(e,ur.createSpreadElement(Be()))}return Be()}function xe(){var e=U(),t=R();return M(t)||H(t),V(e,ur.createIdentifier(t.value))}function ke(){return G("."),xe()}function Te(){var e;return G("["),e=Fe(),G("]"),e}function Ae(){var e,t,n=U();return Y("new"),e=Ce(),t=Q("(")?Se():[],V(n,ur.createNewExpression(e,t))}function Le(){var e,t,n=U();for(e=Z("new")?Ae():Ee();Q(".")||Q("[")||Q("(")||cr.type===$n.Template&&cr.head;)Q("(")?(t=Se(),e=V(n,ur.createCallExpression(e,t))):e=Q("[")?V(n,ur.createMemberExpression("[",e,Te())):Q(".")?V(n,ur.createMemberExpression(".",e,ke())):V(n,ur.createTaggedTemplateExpression(e,ge()));return e}function Ce(){var e,t=U();for(e=Z("new")?Ae():Ee();Q(".")||Q("[")||cr.type===$n.Template&&cr.head;)e=Q("[")?V(t,ur.createMemberExpression("[",e,Te())):Q(".")?V(t,ur.createMemberExpression(".",e,ke())):V(t,ur.createTaggedTemplateExpression(e,ge()));return e}function Pe(){var e,t=U(),n=Le();return cr.type!==$n.Punctuator?n:(!Q("++")&&!Q("--")||z()||(ir&&n.type===Yn.Identifier&&f(n.name)&&$({},Qn.StrictLHSPostfix),oe(n)||W({},Qn.InvalidLHSInAssignment),e=R(),n=V(t,ur.createPostfixExpression(e.value,n))),n)}function _e(){var e,t,n;return cr.type!==$n.Punctuator&&cr.type!==$n.Keyword?Pe():Q("++")||Q("--")?(e=U(),t=R(),n=_e(),ir&&n.type===Yn.Identifier&&f(n.name)&&$({},Qn.StrictLHSPrefix),oe(n)||W({},Qn.InvalidLHSInAssignment),V(e,ur.createUnaryExpression(t.value,n))):Q("+")||Q("-")||Q("~")||Q("!")?(e=U(),t=R(),n=_e(),V(e,ur.createUnaryExpression(t.value,n))):Z("delete")||Z("void")||Z("typeof")?(e=U(),t=R(),n=_e(),n=V(e,ur.createUnaryExpression(t.value,n)),ir&&"delete"===n.operator&&n.argument.type===Yn.Identifier&&$({},Qn.StrictDelete),n):Pe()}function Ie(e,t){var n=0;if(e.type!==$n.Punctuator&&e.type!==$n.Keyword)return 0;switch(e.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":n=7;break;case"in":n=t?7:0;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function je(){var e,t,n,r,i,a,o,s,l,u,c;if(r=pr.allowIn,pr.allowIn=!0,u=U(),s=_e(),t=cr,n=Ie(t,r),0===n)return s;for(t.prec=n,R(),c=[u,U()],a=_e(),i=[s,t,a];(n=Ie(cr,r))>0;){for(;i.length>2&&n<=i[i.length-2].prec;)a=i.pop(),o=i.pop().value,s=i.pop(),e=ur.createBinaryExpression(o,s,a),c.pop(),u=c.pop(),V(u,e),i.push(e),c.push(u);t=R(),t.prec=n,i.push(t),c.push(U()),e=_e(),i.push(e)}for(pr.allowIn=r,l=i.length-1,e=i[l],c.pop();l>1;)e=ur.createBinaryExpression(i[l-1].value,i[l-2],e),l-=2,u=c.pop(),V(u,e);return e}function Oe(){var e,t,n,r,i=U();return e=je(),Q("?")&&(R(),t=pr.allowIn,pr.allowIn=!0,n=Be(),pr.allowIn=t,G(":"),r=Be(),e=V(i,ur.createConditionalExpression(e,n,r))),e}function Me(e){var t,n,r,i;if(e.type===Yn.ObjectExpression)for(e.type=Yn.ObjectPattern,t=0,n=e.properties.length;t<n;t+=1)r=e.properties[t],r.type===Yn.SpreadProperty?(t<n-1&&W({},Qn.PropertyAfterSpreadProperty),Me(r.argument)):("init"!==r.kind&&W({},Qn.InvalidLHSInAssignment),Me(r.value));else if(e.type===Yn.ArrayExpression)for(e.type=Yn.ArrayPattern,t=0,n=e.elements.length;t<n;t+=1)i=e.elements[t],i&&Me(i);else e.type===Yn.Identifier?f(e.name)&&W({},Qn.InvalidLHSInAssignment):e.type===Yn.SpreadElement?(Me(e.argument),e.argument.type===Yn.ObjectPattern&&W({},Qn.ObjectPatternAsSpread)):e.type!==Yn.MemberExpression&&e.type!==Yn.CallExpression&&e.type!==Yn.NewExpression&&W({},Qn.InvalidLHSInAssignment)}function Ne(e,t){var n,r,i,a;if(t.type===Yn.ObjectExpression)for(t.type=Yn.ObjectPattern,n=0,r=t.properties.length;n<r;n+=1)i=t.properties[n],i.type===Yn.SpreadProperty?(n<r-1&&W({},Qn.PropertyAfterSpreadProperty),Ne(e,i.argument)):("init"!==i.kind&&W({},Qn.InvalidLHSInFormalsList),Ne(e,i.value));else if(t.type===Yn.ArrayExpression)for(t.type=Yn.ArrayPattern,n=0,r=t.elements.length;n<r;n+=1)a=t.elements[n],a&&Ne(e,a);else t.type===Yn.Identifier?qt(e,t,t.name):t.type===Yn.SpreadElement?(t.argument.type!==Yn.Identifier&&W({},Qn.InvalidLHSInFormalsList),qt(e,t.argument,t.argument.name)):W({},Qn.InvalidLHSInFormalsList)}function De(e){var r,i,a,o,s,l,u,c;for(o=[],s=[],l=0,c=null,u={paramSet:new n},r=0,i=e.length;r<i;r+=1)if(a=e[r],a.type===Yn.Identifier)o.push(a),s.push(null),qt(u,a,a.name);else if(a.type===Yn.ObjectExpression||a.type===Yn.ArrayExpression)Ne(u,a),o.push(a),s.push(null);else if(a.type===Yn.SpreadElement)t(r===i-1,"It is guaranteed that SpreadElement is last element by parseExpression"),a.argument.type!==Yn.Identifier&&W({},Qn.InvalidLHSInFormalsList),Ne(u,a.argument),c=a.argument;else{if(a.type!==Yn.AssignmentExpression)return null;o.push(a.left),s.push(a.right),++l,qt(u,a.left,a.left.name)}return u.message===Qn.StrictParamDupe&&W(ir?u.stricted:u.firstRestricted,u.message),0===l&&(s=[]),{params:o,defaults:s,rest:c,stricted:u.stricted,firstRestricted:u.firstRestricted,message:u.message}}function Re(e,t){var n,r,i,a;return G("=>"),n=ir,r=pr.yieldAllowed,pr.yieldAllowed=!1,i=pr.awaitAllowed,pr.awaitAllowed=!!e.async,a=Ut(),ir&&e.firstRestricted&&W(e.firstRestricted,e.message),ir&&e.stricted&&$(e.stricted,e.message),ir=n,pr.yieldAllowed=r,pr.awaitAllowed=i,V(t,ur.createArrowFunctionExpression(e.params,e.defaults,a,e.rest,a.type!==Yn.BlockStatement,!!e.async))}function Be(){var e,t,n,r,i,a=!1,o=cr,s=!1;if(ne())return Ht();if(ie())return Gt();if(i=pr.parenthesizedCount,e=U(),be())return $t();if(re()&&(s=!0,R()),Q("(")){if(n=F(),n.type===$n.Punctuator&&")"===n.value||"..."===n.value)return r=zt(),Q("=>")||H(R()),r.async=s,Re(r,e);a=!0}return n=cr,s&&!Q("(")&&n.type!==$n.Identifier&&(s=!1,X(o)),t=Oe(),Q("=>")&&(pr.parenthesizedCount===i||pr.parenthesizedCount===i+1)&&(t.type===Yn.Identifier?r=De([t]):t.type===Yn.AssignmentExpression||t.type===Yn.ArrayExpression||t.type===Yn.ObjectExpression?(a||H(R()),r=De([t])):t.type===Yn.SequenceExpression&&(r=De(t.expressions)),r)?(r.async=s,Re(r,e)):(s&&(s=!1,X(o),t=Oe()),te()&&(ir&&t.type===Yn.Identifier&&f(t.name)&&$(n,Qn.StrictLHSAssignment),!Q("=")||t.type!==Yn.ObjectExpression&&t.type!==Yn.ArrayExpression?oe(t)||W({},Qn.InvalidLHSInAssignment):Me(t),t=V(e,ur.createAssignmentExpression(R().value,t,Be()))),t)}function Fe(){var e,t,n,r,i,a;if(e=U(),t=Be(),n=[t],Q(",")){for(;ar<lr&&Q(",")&&(R(),!Q(")")||(a=F(),a.type!==$n.Punctuator||"=>"!==a.value));)if(t=we(),n.push(t),t.type===Yn.SpreadElement){i=!0,Q(")")||W({},Qn.ElementAfterSpreadElement);break}n.length>1&&(r=V(e,ur.createSequenceExpression(n)))}return i&&"=>"!==F().value&&W({},Qn.IllegalSpread),r||t}function Xe(){for(var e,t=[];ar<lr&&!Q("}")&&(e=an(),"undefined"!=typeof e);)t.push(e);return t}function Ue(){var e,t=U();return G("{"),e=Xe(),G("}"),V(t,ur.createBlockStatement(e))}function Je(){var e=U(),t=[];for(G("<");!Q(">");)t.push(ut()),Q(">")||G(",");return G(">"),V(e,ur.createTypeParameterDeclaration(t))}function qe(){var e=U(),t=pr.inType,n=[];for(pr.inType=!0,G("<");!Q(">");)n.push(ot()),Q(">")||G(",");return G(">"),pr.inType=t,V(e,ur.createTypeParameterInstantiation(n))}function Ve(e,t){var n,r,i;return G("["),n=pe(),G(":"),r=ot(),G("]"),G(":"),i=ot(),V(e,ur.createObjectTypeIndexer(n,r,i,t))}function ze(e){var t,n=[],r=null,i=null;for(Q("<")&&(i=Je()),G("(");cr.type===$n.Identifier;)n.push(Ze()),Q(")")||G(",");return Q("...")&&(R(),r=Ze()),G(")"),G(":"),t=ot(),V(e,ur.createFunctionTypeAnnotation(n,t,r,i))}function We(e,t,n){var r,i=!1;return r=ze(e),V(e,ur.createObjectTypeProperty(n,r,i,t))}function $e(e,t){var n=U();return V(e,ur.createObjectTypeCallProperty(ze(n),t))}function He(e){var t,n,r,i,a,o,s=[],l=[],u=!1,c=[];for(G("{");!Q("}");)t=U(),o=ir?Z("static"):ee("static"),e&&o&&(i=R(),a=!0),Q("[")?l.push(Ve(t,a)):Q("(")||Q("<")?s.push($e(t,e)):(a&&Q(":")?(n=V(t,ur.createIdentifier(i)),$(i,Qn.StrictReservedWord)):n=pe(),Q("<")||Q("(")?c.push(We(t,a,n)):(Q("?")&&(R(),u=!0),G(":"),r=ot(),c.push(V(t,ur.createObjectTypeProperty(n,r,u,a))))),Q(";")||Q(",")?R():Q("}")||H(cr);return G("}"),ur.createObjectTypeAnnotation(c,l,s)}function Ge(){var e,t=U(),n=null;for(e=lt();Q(".");)G("."),e=V(t,ur.createQualifiedTypeIdentifier(e,lt()));return Q("<")&&(n=qe()),V(t,ur.createGenericTypeAnnotation(e,n))}function Ye(){var e=U();return Y("void"),V(e,ur.createVoidTypeAnnotation())}function Ke(){var e,t=U();return Y("typeof"),e=tt(),V(t,ur.createTypeofTypeAnnotation(e))}function Qe(){var e=U(),t=[];for(G("[");ar<lr&&!Q("]")&&(t.push(ot()),!Q("]"));)G(",");return G("]"),V(e,ur.createTupleTypeAnnotation(t))}function Ze(){var e,t,n=U(),r=!1;return e=lt(),Q("?")&&(R(),r=!0),G(":"),t=ot(),V(n,ur.createFunctionTypeParam(e,t,r))}function et(){for(var e={params:[],rest:null};cr.type===$n.Identifier;)e.params.push(Ze()),Q(")")||G(",");return Q("...")&&(R(),e.rest=Ze()),e}function tt(){var e,t,n,r,i=null,a=null,o=U(),s=null,l=!1;switch(cr.type){case $n.Identifier:switch(cr.value){case"any":return R(),V(o,ur.createAnyTypeAnnotation());case"bool":case"boolean":return R(),V(o,ur.createBooleanTypeAnnotation());case"number":return R(),V(o,ur.createNumberTypeAnnotation());case"string":return R(),V(o,ur.createStringTypeAnnotation())}return V(o,Ge());case $n.Punctuator:switch(cr.value){case"{":return V(o,He());case"[":return Qe();case"<":return t=Je(),G("("),e=et(),i=e.params,s=e.rest,G(")"),G("=>"),a=ot(),V(o,ur.createFunctionTypeAnnotation(i,a,s,t));case"(":return R(),Q(")")||Q("...")||(cr.type===$n.Identifier?(n=F(),l="?"!==n.value&&":"!==n.value):l=!0),l?(r=ot(),G(")"),Q("=>")&&W({},Qn.ConfusedAboutFunctionType),r):(e=et(),i=e.params,s=e.rest,G(")"),G("=>"),a=ot(),V(o,ur.createFunctionTypeAnnotation(i,a,s,null)))}break;case $n.Keyword:switch(cr.value){case"void":return V(o,Ye());case"typeof":return V(o,Ke())}break;case $n.StringLiteral:return n=R(),n.octal&&W(n,Qn.StrictOctalLiteral),V(o,ur.createStringLiteralTypeAnnotation(n))}H(cr)}function nt(){var e=U(),t=tt();return Q("[")?(G("["),G("]"),V(e,ur.createArrayTypeAnnotation(t))):t}function rt(){var e=U();return Q("?")?(R(),V(e,ur.createNullableTypeAnnotation(rt()))):nt()}function it(){var e,t,n=U();for(e=rt(),t=[e];Q("&");)R(),t.push(rt());return 1===t.length?e:V(n,ur.createIntersectionTypeAnnotation(t))}function at(){var e,t,n=U();for(e=it(),t=[e];Q("|");)R(),t.push(it());return 1===t.length?e:V(n,ur.createUnionTypeAnnotation(t))}function ot(){var e,t=pr.inType;return pr.inType=!0,e=at(),pr.inType=t,e}function st(){var e,t=U();return G(":"),e=ot(),V(t,ur.createTypeAnnotation(e))}function lt(){var e=U(),t=R();return t.type!==$n.Identifier&&H(t),V(e,ur.createIdentifier(t.value))}function ut(e,t){var n=U(),r=lt(),i=!1;return t&&Q("?")&&(G("?"),i=!0),(e||Q(":"))&&(r.typeAnnotation=st(),r=V(n,r)),i&&(r.optional=!0,r=V(n,r)),r}function ct(e){var t,n=U(),r=null,i=U();return Q("{")?(t=me(),Me(t),Q(":")&&(t.typeAnnotation=st(),V(i,t))):Q("[")?(t=le(),Me(t),Q(":")&&(t.typeAnnotation=st(),V(i,t))):(t=pr.allowKeyword?xe():ut(),ir&&f(t.name)&&$({},Qn.StrictVarName)),"const"===e?(Q("=")||W({},Qn.NoUninitializedConst),G("="),r=Be()):Q("=")&&(R(),r=Be()),V(n,ur.createVariableDeclarator(t,r))}function pt(e){var t=[];do{if(t.push(ct(e)),!Q(","))break;R()}while(ar<lr);return t}function ft(){var e,t=U();return Y("var"),e=pt(),ae(),V(t,ur.createVariableDeclaration(e,"var"))}function dt(e){var t,n=U();return Y(e),t=pt(e),ae(),V(n,ur.createVariableDeclaration(t,e))}function ht(){var e,t=U();return cr.type!==$n.StringLiteral&&W({},Qn.InvalidModuleSpecifier),e=ur.createLiteral(R()),V(t,e)}function mt(){var e=U();return G("*"),V(e,ur.createExportBatchSpecifier())}function yt(){var e,t=null,n=U();return Z("default")?(R(),e=V(n,ur.createIdentifier("default"))):e=lt(),ee("as")&&(R(),t=xe()),V(n,ur.createExportSpecifier(e,t))}function gt(){var e,t,n,r,i=null,a=null,o=[],s=U(),l="value";if(Y("export"),Z("default")){if(R(),Z("function")||Z("class")){if(e=F(),M(e))return t=an(),V(s,ur.createExportDeclaration(!0,t,[t.id],null,l));switch(cr.value){case"class":return V(s,ur.createExportDeclaration(!0,nn(),[],null,l));case"function":return V(s,ur.createExportDeclaration(!0,$t(),[],null,l))}}return ee("from")&&W({},Qn.UnexpectedToken,cr.value),i=Q("{")?me():Q("[")?le():Be(),ae(),V(s,ur.createExportDeclaration(!0,i,[],null,l))}if(cr.type===$n.Keyword||ee("type"))switch(cr.value){case"type":if(l="type",r=F(),r.type===$n.Punctuator&&"{"===r.value){R();break}case"let":case"const":case"var":case"class":case"function":return V(s,ur.createExportDeclaration(!1,an(),o,null,l))}if(Q("*"))return o.push(mt()),ee("from")||W({},cr.value?Qn.UnexpectedToken:Qn.MissingFromClause,cr.value),R(),a=ht(),ae(),V(s,ur.createExportDeclaration(!1,null,o,a,l));if(G("{"),!Q("}"))do n=n||Z("default"),o.push(yt());while(Q(",")&&R());return G("}"),ee("from")?(R(),a=ht(),ae()):n?W({},cr.value?Qn.UnexpectedToken:Qn.MissingFromClause,cr.value):ae(),V(s,ur.createExportDeclaration(!1,i,o,a,l))}function vt(){var e,t=null,n=U();return e=xe(),ee("as")&&(R(),t=lt()),V(n,ur.createImportSpecifier(e,t))}function bt(){var e=[];if(G("{"),!Q("}"))do e.push(vt());while(Q(",")&&R());return G("}"),e}function Et(){var e,t=U();return e=xe(),V(t,ur.createImportDefaultSpecifier(e))}function St(){var e,t=U();return G("*"),ee("as")||W({},Qn.NoAsAfterImportNamespace),R(),e=xe(),V(t,ur.createImportNamespaceSpecifier(e))}function wt(){var e,t,n,r=U(),i="value";return Y("import"),ee("type")?(n=F(),(n.type===$n.Identifier&&"from"!==n.value||n.type===$n.Punctuator&&("{"===n.value||"*"===n.value))&&(i="type",R())):Z("typeof")&&(i="typeof",R()),e=[],cr.type===$n.StringLiteral?(t=ht(),ae(),V(r,ur.createImportDeclaration(e,t,i))):(!Z("default")&&M(cr)&&(e.push(Et()),Q(",")&&R()),Q("*")?e.push(St()):Q("{")&&(e=e.concat(bt())),ee("from")||W({},cr.value?Qn.UnexpectedToken:Qn.MissingFromClause,cr.value),R(),t=ht(),ae(),V(r,ur.createImportDeclaration(e,t,i)))}function xt(){var e=U();return G(";"),V(e,ur.createEmptyStatement())}function kt(){var e=U(),t=Fe();return ae(),V(e,ur.createExpressionStatement(t))}function Tt(){var e,t,n,r=U();return Y("if"),G("("),e=Fe(),G(")"),t=Xt(),Z("else")?(R(),n=Xt()):n=null,V(r,ur.createIfStatement(e,t,n))}function At(){var e,t,n,r=U();return Y("do"),n=pr.inIteration,pr.inIteration=!0,e=Xt(),pr.inIteration=n,Y("while"),G("("),t=Fe(),G(")"),Q(";")&&R(),V(r,ur.createDoWhileStatement(e,t))}function Lt(){var e,t,n,r=U();return Y("while"),G("("),e=Fe(),G(")"),n=pr.inIteration,pr.inIteration=!0,t=Xt(),pr.inIteration=n,V(r,ur.createWhileStatement(e,t))}function Ct(){var e=U(),t=R(),n=pt();return V(e,ur.createVariableDeclaration(n,t.value))}function Pt(e){var t,n,r,i,a,o,s,l,u=U();return t=n=r=null,Y("for"),ee("each")&&W({},Qn.EachNotAllowed),G("("),Q(";")?R():(Z("var")||Z("let")||Z("const")?(pr.allowIn=!1,t=Ct(),pr.allowIn=!0,1===t.declarations.length&&(Z("in")||ee("of"))&&(s=cr,("in"!==s.value&&"var"===t.kind||!t.declarations[0].init)&&(R(),i=t,a=Fe(),t=null))):(pr.allowIn=!1,t=Fe(),pr.allowIn=!0,ee("of")?(s=R(),i=t,a=Fe(),t=null):Z("in")&&(se(t)||W({},Qn.InvalidLHSInForIn),s=R(),i=t,a=Fe(),t=null)),"undefined"==typeof i&&G(";")),"undefined"==typeof i&&(Q(";")||(n=Fe()),G(";"),Q(")")||(r=Fe())),G(")"),l=pr.inIteration,pr.inIteration=!0,void 0!==e&&e.ignoreBody||(o=Xt()),pr.inIteration=l,"undefined"==typeof i?V(u,ur.createForStatement(t,n,r,o)):"in"===s.value?V(u,ur.createForInStatement(i,a,o)):V(u,ur.createForOfStatement(i,a,o))}function _t(){var e=null,t=U();return Y("continue"),59===rr.charCodeAt(ar)?(R(),pr.inIteration||W({},Qn.IllegalContinue),V(t,ur.createContinueStatement(null))):z()?(pr.inIteration||W({},Qn.IllegalContinue),V(t,ur.createContinueStatement(null))):(cr.type===$n.Identifier&&(e=lt(),pr.labelSet.has(e.name)||W({},Qn.UnknownLabel,e.name)),ae(),null!==e||pr.inIteration||W({},Qn.IllegalContinue),V(t,ur.createContinueStatement(e)))}function It(){var e=null,t=U();return Y("break"),59===rr.charCodeAt(ar)?(R(),pr.inIteration||pr.inSwitch||W({},Qn.IllegalBreak),V(t,ur.createBreakStatement(null))):z()?(pr.inIteration||pr.inSwitch||W({},Qn.IllegalBreak),V(t,ur.createBreakStatement(null))):(cr.type===$n.Identifier&&(e=lt(),pr.labelSet.has(e.name)||W({},Qn.UnknownLabel,e.name)),ae(),null!==e||pr.inIteration||pr.inSwitch||W({},Qn.IllegalBreak),V(t,ur.createBreakStatement(e)))}function jt(){var e=null,t=U();return Y("return"),pr.inFunctionBody||$({},Qn.IllegalReturn),32===rr.charCodeAt(ar)&&l(rr.charCodeAt(ar+1))?(e=Fe(),ae(),V(t,ur.createReturnStatement(e))):z()?V(t,ur.createReturnStatement(null)):(Q(";")||Q("}")||cr.type===$n.EOF||(e=Fe()),ae(),V(t,ur.createReturnStatement(e)))}function Ot(){var e,t,n=U();return ir&&$({},Qn.StrictModeWith),Y("with"),G("("),e=Fe(),G(")"),t=Xt(),V(n,ur.createWithStatement(e,t))}function Mt(){var e,t,n=[],r=U();for(Z("default")?(R(),e=null):(Y("case"),e=Fe()),G(":");ar<lr&&!(Q("}")||Z("default")||Z("case"))&&(t=an(),"undefined"!=typeof t);)n.push(t);return V(r,ur.createSwitchCase(e,n))}function Nt(){var e,t,n,r,i,a=U();if(Y("switch"),G("("),e=Fe(),G(")"),G("{"),t=[],Q("}"))return R(),V(a,ur.createSwitchStatement(e,t));for(r=pr.inSwitch,pr.inSwitch=!0,i=!1;ar<lr&&!Q("}");)n=Mt(),null===n.test&&(i&&W({},Qn.MultipleDefaultsInSwitch),i=!0),t.push(n);return pr.inSwitch=r,G("}"),V(a,ur.createSwitchStatement(e,t))}function Dt(){var e,t=U();return Y("throw"),z()&&W({},Qn.NewlineAfterThrow),e=Fe(),ae(),V(t,ur.createThrowStatement(e))}function Rt(){var e,t,n=U();return Y("catch"),G("("),Q(")")&&H(cr),e=Fe(),ir&&e.type===Yn.Identifier&&f(e.name)&&$({},Qn.StrictCatchVariable),G(")"),t=Ue(),V(n,ur.createCatchClause(e,t))}function Bt(){var e,t=[],n=null,r=U();return Y("try"),e=Ue(),Z("catch")&&t.push(Rt()),Z("finally")&&(R(),n=Ue()),0!==t.length||n||W({},Qn.NoCatchOrFinally),V(r,ur.createTryStatement(e,[],t,n))}function Ft(){var e=U();return Y("debugger"),ae(),V(e,ur.createDebuggerStatement())}function Xt(){var e,t,n,r=cr.type;if(r===$n.EOF&&H(cr),r===$n.Punctuator)switch(cr.value){case";":return xt();case"{":return Ue();case"(":return kt()}if(r===$n.Keyword)switch(cr.value){case"break":return It();case"continue":return _t();case"debugger":return Ft();case"do":return At();case"for":return Pt();case"function":return Wt();case"class":return rn();case"if":return Tt();case"return":return jt();case"switch":return Nt();case"throw":return Dt();case"try":return Bt();case"var":return ft();case"while":return Lt();case"with":return Ot()}return be()?Wt():(e=U(),t=Fe(),t.type===Yn.Identifier&&Q(":")?(R(),pr.labelSet.has(t.name)&&W({},Qn.Redeclaration,"Label",t.name),pr.labelSet.set(t.name,!0),n=Xt(),pr.labelSet.delete(t.name),V(e,ur.createLabeledStatement(t,n))):(ae(),V(e,ur.createExpressionStatement(t))))}function Ut(){return Q("{")?Jt():Be()}function Jt(){var e,t,r,i,a,o,s,l,u,c=[],p=U();for(G("{");ar<lr&&cr.type===$n.StringLiteral&&(t=cr,e=an(),c.push(e),e.expression.type===Yn.Literal);)r=rr.slice(t.range[0]+1,t.range[1]-1),"use strict"===r?(ir=!0,i&&$(i,Qn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(a=pr.labelSet,o=pr.inIteration,s=pr.inSwitch,l=pr.inFunctionBody,u=pr.parenthesizedCount,pr.labelSet=new n,pr.inIteration=!1,pr.inSwitch=!1,pr.inFunctionBody=!0,pr.parenthesizedCount=0;ar<lr&&!Q("}")&&(e=an(),"undefined"!=typeof e);)c.push(e);return G("}"),pr.labelSet=a,pr.inIteration=o,pr.inSwitch=s,pr.inFunctionBody=l,pr.parenthesizedCount=u,V(p,ur.createBlockStatement(c))}function qt(e,t,n){ir?(f(n)&&(e.stricted=t,e.message=Qn.StrictParamName),e.paramSet.has(n)&&(e.stricted=t,e.message=Qn.StrictParamDupe)):e.firstRestricted||(f(n)?(e.firstRestricted=t,e.message=Qn.StrictParamName):p(n)?(e.firstRestricted=t,e.message=Qn.StrictReservedWord):e.paramSet.has(n)&&(e.firstRestricted=t,e.message=Qn.StrictParamDupe)),e.paramSet.set(n,!0)}function Vt(e){var t,n,r,i,a;return n=cr,"..."===n.value&&(n=R(),r=!0),Q("[")?(t=U(),i=le(),Ne(e,i),Q(":")&&(i.typeAnnotation=st(),V(t,i))):Q("{")?(t=U(),r&&W({},Qn.ObjectPatternAsRestParameter),i=me(),Ne(e,i),Q(":")&&(i.typeAnnotation=st(),V(t,i))):(i=r?ut(!1,!1):ut(!1,!0),qt(e,n,n.value)),Q("=")&&(r&&$(cr,Qn.DefaultRestParameter),R(),a=Be(),++e.defaultCount),r?(Q(")")||W({},Qn.ParameterAfterRestParameter),e.rest=i,!1):(e.params.push(i),e.defaults.push(a),!Q(")"))}function zt(e){var t,r=U();if(t={params:[],defaultCount:0,defaults:[],rest:null,firstRestricted:e},G("("),!Q(")"))for(t.paramSet=new n;ar<lr&&Vt(t)&&(G(","),t.rest||!Q(")")););return G(")"),0===t.defaultCount&&(t.defaults=[]),Q(":")&&(t.returnType=st()),V(r,t)}function Wt(){var e,t,n,r,i,a,o,s,l,u,c,d,h=U();return s=!1,re()&&(R(),s=!0),Y("function"),o=!1,Q("*")&&(R(),o=!0),n=cr,e=lt(),Q("<")&&(d=Je()),ir?f(n.value)&&$(n,Qn.StrictFunctionName):f(n.value)?(i=n,a=Qn.StrictFunctionName):p(n.value)&&(i=n,a=Qn.StrictReservedWord),r=zt(i),i=r.firstRestricted,r.message&&(a=r.message),l=ir,u=pr.yieldAllowed,pr.yieldAllowed=o,c=pr.awaitAllowed,pr.awaitAllowed=s,t=Jt(),ir&&i&&W(i,a),ir&&r.stricted&&$(r.stricted,a),ir=l,pr.yieldAllowed=u,pr.awaitAllowed=c,V(h,ur.createFunctionDeclaration(e,r.params,r.defaults,t,r.rest,o,!1,s,r.returnType,d))}function $t(){var e,t,n,r,i,a,o,s,l,u,c,d=null,h=U();return o=!1,re()&&(R(),o=!0),Y("function"),a=!1,Q("*")&&(R(),a=!0),Q("(")||(Q("<")||(e=cr,
-d=lt(),ir?f(e.value)&&$(e,Qn.StrictFunctionName):f(e.value)?(t=e,n=Qn.StrictFunctionName):p(e.value)&&(t=e,n=Qn.StrictReservedWord)),Q("<")&&(c=Je())),r=zt(t),t=r.firstRestricted,r.message&&(n=r.message),s=ir,l=pr.yieldAllowed,pr.yieldAllowed=a,u=pr.awaitAllowed,pr.awaitAllowed=o,i=Jt(),ir&&t&&W(t,n),ir&&r.stricted&&$(r.stricted,n),ir=s,pr.yieldAllowed=l,pr.awaitAllowed=u,V(h,ur.createFunctionExpression(d,r.params,r.defaults,i,r.rest,a,!1,o,r.returnType,c))}function Ht(){var e,t,n=U();return Y("yield",!ir),e=!1,Q("*")&&(R(),e=!0),t=Be(),V(n,ur.createYieldExpression(t,e))}function Gt(){var e,t=U();return K("await"),e=Be(),V(t,ur.createAwaitExpression(e))}function Yt(e){return"get"===e.kind||"set"===e.kind||e.value.generator}function Kt(e,t,n,r){var i,a,o,s,l,u,c;return o=t?nr.static:nr.prototype,n?ur.createMethodDefinition(o,"",e,ce({generator:!0}),r):(u="Identifier"===e.type&&e.name,"get"!==u||Q("(")?"set"!==u||Q("(")?(Q("<")&&(l=Je()),s="async"===u&&!Q("("),s&&(e=pe()),ur.createMethodDefinition(o,"",e,ce({generator:!1,async:s,typeParameters:l}),r)):(e=pe(),G("("),i=cr,a=[ut()],G(")"),Q(":")&&(c=st()),ur.createMethodDefinition(o,"set",e,ue({params:a,generator:!1,name:i,returnType:c}),r)):(e=pe(),G("("),G(")"),Q(":")&&(c=st()),ur.createMethodDefinition(o,"get",e,ue({generator:!1,returnType:c}),r)))}function Qt(e,t,n){var r;return r=st(),G(";"),ur.createClassProperty(e,r,t,n)}function Zt(){var e,t,n=!1,r=!1,i=U(),a=!1;return Q(";")?void R():("static"===cr.value&&(R(),a=!0),Q("*")&&(R(),r=!0),t=cr,(ee("get")||ee("set"))&&(t=F()),t.type===$n.Punctuator&&"["===t.value&&(n=!0),e=pe(),r||":"!==cr.value?V(i,Kt(e,a,r,n)):V(i,Qt(e,n,a)))}function en(){var e,t,r,i=[],a={},o=U();for(a[nr.static]=new n,a[nr.prototype]=new n,G("{");ar<lr&&!Q("}");)e=Zt(a),"undefined"!=typeof e&&(i.push(e),t=!e.computed&&he(e.key),t!==!1&&(r=e.static?nr.static:nr.prototype,e.type===Yn.MethodDefinition&&("constructor"!==t||e.static||(Yt(e)&&W(e,Qn.IllegalClassConstructorProperty),a[nr.prototype].has("constructor")&&W(e.key,Qn.IllegalDuplicateClassProperty)),a[r].set(t,!0))));return G("}"),V(o,ur.createClassBody(i))}function tn(){var e,t,n,r=[];for(ir?Y("implements"):K("implements");ar<lr&&(t=U(),e=lt(),n=Q("<")?qe():null,r.push(V(t,ur.createClassImplements(e,n))),Q(","));)G(",");return r}function nn(){var e,t,n,r,i,a,o=null,s=U();return Y("class"),a=ir?Z("implements"):ee("implements"),Z("extends")||a||Q("{")||(e=lt()),Q("<")&&(i=Je()),Z("extends")&&(Y("extends"),n=pr.yieldAllowed,pr.yieldAllowed=!1,o=Le(),Q("<")&&(r=qe()),pr.yieldAllowed=n),(ir?Z("implements"):ee("implements"))&&(t=tn()),V(s,ur.createClassExpression(e,o,en(),i,r,t))}function rn(){var e,t,n,r,i,a=null,o=U();return Y("class"),e=lt(),Q("<")&&(i=Je()),Z("extends")&&(Y("extends"),n=pr.yieldAllowed,pr.yieldAllowed=!1,a=Le(),Q("<")&&(r=qe()),pr.yieldAllowed=n),(ir?Z("implements"):ee("implements"))&&(t=tn()),V(o,ur.createClassDeclaration(e,a,en(),i,r,t))}function an(){var e;if(cr.type===$n.Keyword)switch(cr.value){case"const":case"let":return dt(cr.value);case"function":return Wt();case"export":return $({},Qn.IllegalExportDeclaration),gt();case"import":return $({},Qn.IllegalImportDeclaration),wt();case"interface":return F().type===$n.Identifier?Mn():Xt();default:return Xt()}if(ee("type")&&F().type===$n.Identifier)return In();if(ee("interface")&&F().type===$n.Identifier)return Mn();if(ee("declare"))if(e=F(),e.type===$n.Keyword)switch(e.value){case"class":return Nn();case"function":return Dn();case"var":return Rn()}else if(e.type===$n.Identifier&&"module"===e.value)return Bn();return cr.type!==$n.EOF?Xt():void 0}function on(){var e="module"===fr.sourceType||"nonStrictModule"===fr.sourceType;if(e&&cr.type===$n.Keyword)switch(cr.value){case"export":return gt();case"import":return wt()}return an()}function sn(){for(var e,t,n,r,i=[];ar<lr&&(t=cr,t.type===$n.StringLiteral)&&(e=on(),i.push(e),e.expression.type===Yn.Literal);)n=rr.slice(t.range[0]+1,t.range[1]-1),"use strict"===n?(ir=!0,r&&$(r,Qn.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(;ar<lr&&(e=on(),"undefined"!=typeof e);)i.push(e);return i}function ln(){var e,t=U();return ir="module"===fr.sourceType,B(),e=sn(),V(t,ur.createProgram(e))}function un(e){return e.type===Yn.JSXIdentifier?e.name:e.type===Yn.JSXNamespacedName?e.namespace.name+":"+e.name.name:e.type===Yn.JSXMemberExpression?un(e.object)+"."+un(e.property):void H(e)}function cn(e){return 92!==e&&l(e)}function pn(e){return 92!==e&&(45===e||u(e))}function fn(){var e,t,n="";for(t=ar;ar<lr&&(e=rr.charCodeAt(ar),pn(e));)n+=rr[ar++];return{type:$n.JSXIdentifier,value:n,lineNumber:or,lineStart:sr,range:[t,ar]}}function dn(){var e,n,r="",i=ar,a=0;for(e=rr[ar],t("&"===e,"Entity must start with an ampersand"),ar++;ar<lr&&a++<10&&(e=rr[ar++],";"!==e);)r+=e;if(";"===e)if("#"===r[0]){if(n="x"===r[1]?+("0"+r.substr(1)):+r.substr(1).replace(Zn.LeadingZeros,""),!isNaN(n))return String.fromCharCode(n)}else if(tr[r])return tr[r];return ar=i+1,"&"}function hn(e){var t,n,r="";for(n=ar;ar<lr&&(t=rr[ar],e.indexOf(t)===-1);)"&"===t?r+=dn():(ar++,"\r"===t&&"\n"===rr[ar]&&(r+=t,t=rr[ar],ar++),s(t.charCodeAt(0))&&(++or,sr=ar),r+=t);return{type:$n.JSXText,value:r,lineNumber:or,lineStart:sr,range:[n,ar]}}function mn(){var e,n,r;return n=rr[ar],t("'"===n||'"'===n,"String literal must starts with a quote"),r=ar,++ar,e=hn([n]),n!==rr[ar]&&W({},Qn.UnexpectedToken,"ILLEGAL"),++ar,e.range=[r,ar],e}function yn(){var e=rr.charCodeAt(ar);return 60!==e&&62!==e&&123!==e&&125!==e?hn(["<",">","{","}"]):x()}function gn(){var e,t=U();return cr.type!==$n.JSXIdentifier&&H(cr),e=R(),V(t,ur.createJSXIdentifier(e.value))}function vn(){var e,t,n=U();return e=gn(),G(":"),t=gn(),V(n,ur.createJSXNamespacedName(e,t))}function bn(){for(var e=U(),t=gn();Q(".");)R(),t=V(e,ur.createJSXMemberExpression(t,gn()));return t}function En(){return":"===F().value?vn():"."===F().value?bn():gn()}function Sn(){return":"===F().value?vn():gn()}function wn(){var e,t;return Q("{")?(e=kn(),e.expression.type===Yn.JSXEmptyExpression&&W(e,"JSX attributes must only be assigned a non-empty expression")):Q("<")?e=_n():cr.type===$n.JSXText?(t=U(),e=V(t,ur.createLiteral(R()))):W({},Qn.InvalidJSXAttributeValue),e}function xn(){for(var e,t=J();ar<lr&&(e=rr.charCodeAt(ar),125!==e);)s(e)&&(13===e&&10===rr.charCodeAt(ar+1)&&++ar,++or,sr=ar),++ar;return V(t,ur.createJSXEmptyExpression())}function kn(){var e,t,n,r=U();return t=pr.inJSXChild,n=pr.inJSXTag,pr.inJSXChild=!1,pr.inJSXTag=!1,G("{"),e=Q("}")?xn():Fe(),pr.inJSXChild=t,pr.inJSXTag=n,G("}"),V(r,ur.createJSXExpressionContainer(e))}function Tn(){var e,t,n,r=U();return t=pr.inJSXChild,n=pr.inJSXTag,pr.inJSXChild=!1,pr.inJSXTag=!1,G("{"),G("..."),e=Be(),pr.inJSXChild=t,pr.inJSXTag=n,G("}"),V(r,ur.createJSXSpreadAttribute(e))}function An(){var e,t;return Q("{")?Tn():(t=U(),e=Sn(),Q("=")?(R(),V(t,ur.createJSXAttribute(e,wn()))):V(t,ur.createJSXAttribute(e)))}function Ln(){var e,t;return Q("{")?e=kn():cr.type===$n.JSXText?(t=J(),e=V(t,ur.createLiteral(R()))):Q("<")?e=_n():H(cr),e}function Cn(){var e,t,n,r=U();return t=pr.inJSXChild,n=pr.inJSXTag,pr.inJSXChild=!1,pr.inJSXTag=!0,G("<"),G("/"),e=En(),pr.inJSXChild=t,pr.inJSXTag=n,G(">"),V(r,ur.createJSXClosingElement(e))}function Pn(){var e,t,n,r=[],i=!1,a=U();for(t=pr.inJSXChild,n=pr.inJSXTag,pr.inJSXChild=!1,pr.inJSXTag=!0,G("<"),e=En();ar<lr&&"/"!==cr.value&&">"!==cr.value;)r.push(An());return pr.inJSXTag=n,"/"===cr.value?(G("/"),pr.inJSXChild=t,G(">"),i=!0):(pr.inJSXChild=!0,G(">")),V(a,ur.createJSXOpeningElement(e,r,i))}function _n(){var e,t,n,r=null,i=[],a=U();if(t=pr.inJSXChild,n=pr.inJSXTag,e=Pn(),!e.selfClosing){for(;ar<lr&&(pr.inJSXChild=!1,"<"!==cr.value||"/"!==F().value);)pr.inJSXChild=!0,i.push(Ln());pr.inJSXChild=t,pr.inJSXTag=n,r=Cn(),un(r.name)!==un(e.name)&&W({},Qn.ExpectedJSXClosingTag,un(e.name))}return!t&&Q("<")&&W(cr,Qn.AdjacentJSXElements),V(a,ur.createJSXElement(e,r,i))}function In(){var e,t,n=U(),r=null;return K("type"),e=lt(),Q("<")&&(r=Je()),G("="),t=ot(),ae(),V(n,ur.createTypeAlias(e,r,t))}function jn(){var e,t=U(),n=null;return e=lt(),Q("<")&&(n=qe()),V(t,ur.createInterfaceExtends(e,n))}function On(e,t){var n,r,i,a=[],o=null;if(i=lt(),Q("<")&&(o=Je()),Z("extends"))for(Y("extends");ar<lr&&(a.push(jn()),Q(","));)G(",");return r=U(),n=V(r,He(t)),V(e,ur.createInterface(i,o,n,a))}function Mn(){var e=U();return ir?Y("interface"):K("interface"),On(e,!1)}function Nn(){var e,t=U();return K("declare"),Y("class"),e=On(t,!0),e.type=Yn.DeclareClass,e}function Dn(){var e,t,n,r,i,a,o,s,l=U(),u=null;return K("declare"),Y("function"),t=U(),e=lt(),s=U(),Q("<")&&(u=Je()),G("("),a=et(),n=a.params,i=a.rest,G(")"),G(":"),r=ot(),o=V(s,ur.createFunctionTypeAnnotation(n,r,i,u)),e.typeAnnotation=V(s,ur.createTypeAnnotation(o)),V(t,e),ae(),V(l,ur.createDeclareFunction(e))}function Rn(){var e,t=U();return K("declare"),Y("var"),e=ut(),ae(),V(t,ur.createDeclareVariable(e))}function Bn(){var e,t,n,r,i=[],a=U();for(K("declare"),K("module"),cr.type===$n.StringLiteral?(ir&&cr.octal&&$(cr,Qn.StrictOctalLiteral),n=U(),t=V(n,ur.createLiteral(R()))):t=lt(),e=U(),G("{");ar<lr&&!Q("}");)switch(r=F(),r.value){case"class":i.push(Nn());break;case"function":i.push(Dn());break;case"var":i.push(Rn());break;default:H(cr)}return G("}"),V(a,ur.createDeclareModule(t,V(e,ur.createBlockStatement(i))))}function Fn(){var e,t,n,r,i;return pr.inJSXChild||g(),e={start:{line:or,column:ar-sr}},t=fr.advance(),e.end={line:or,column:ar-sr},t.type!==$n.EOF&&(n=[t.range[0],t.range[1]],r=rr.slice(t.range[0],t.range[1]),i={type:Hn[t.type],value:r,range:n,loc:e},t.regex&&(i.regex={pattern:t.regex.pattern,flags:t.regex.flags}),fr.tokens.push(i)),t}function Xn(){var e,t,n,r;return g(),e=ar,t={start:{line:or,column:ar-sr}},n=fr.scanRegExp(),t.end={line:or,column:ar-sr},fr.tokenize||(fr.tokens.length>0&&(r=fr.tokens[fr.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"!==r.value&&"/="!==r.value||fr.tokens.pop())),fr.tokens.push({type:"RegularExpression",value:n.literal,regex:n.regex,range:[e,ar],loc:t})),n}function Un(){var e,t,n,r=[];for(e=0;e<fr.tokens.length;++e)t=fr.tokens[e],n={type:t.type,value:t.value},t.regex&&(n.regex={pattern:t.regex.pattern,flags:t.regex.flags}),fr.range&&(n.range=t.range),fr.loc&&(n.loc=t.loc),r.push(n);fr.tokens=r}function Jn(){"undefined"!=typeof fr.tokens&&(fr.advance=D,fr.scanRegExp=O,D=Fn,O=Xn)}function qn(){"function"==typeof fr.scanRegExp&&(D=fr.advance,O=fr.scanRegExp)}function Vn(e,t){var n,r={};for(n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);for(n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return r}function zn(e,t){var r,i,a;r=String,"string"==typeof e||e instanceof String||(e=r(e)),ur=er,rr=e,ar=0,or=rr.length>0?1:0,sr=0,lr=rr.length,cr=null,pr={allowKeyword:!0,allowIn:!0,labelSet:new n,inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[],curlyLastIndex:0},fr={},t=t||{},t.tokens=!0,fr.tokens=[],fr.tokenize=!0,fr.openParenToken=-1,fr.openCurlyToken=-1,fr.range="boolean"==typeof t.range&&t.range,fr.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&(fr.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(fr.errors=[]),Jn();try{if(B(),cr.type===$n.EOF)return fr.tokens;for(i=R();cr.type!==$n.EOF;)try{i=R()}catch(e){if(i=cr,fr.errors){fr.errors.push(e);break}throw e}Un(),a=fr.tokens,"undefined"!=typeof fr.comments&&(a.comments=fr.comments),"undefined"!=typeof fr.errors&&(a.errors=fr.errors)}catch(e){throw e}finally{qn(),fr={}}return a}function Wn(e,t){var r,i;i=String,"string"==typeof e||e instanceof String||(e=i(e)),ur=er,rr=e,ar=0,or=rr.length>0?1:0,sr=0,lr=rr.length,cr=null,pr={allowKeyword:!1,allowIn:!0,labelSet:new n,parenthesizedCount:0,inFunctionBody:!1,inIteration:!1,inSwitch:!1,inJSXChild:!1,inJSXTag:!1,inType:!1,lastCommentStart:-1,yieldAllowed:!1,awaitAllowed:!1,curlyPosition:0,curlyStack:[],curlyLastIndex:0},fr={},"undefined"!=typeof t&&(fr.range="boolean"==typeof t.range&&t.range,fr.loc="boolean"==typeof t.loc&&t.loc,fr.attachComment="boolean"==typeof t.attachComment&&t.attachComment,fr.loc&&null!==t.source&&void 0!==t.source&&(ur=Vn(ur,{postProcess:function(e){return e.loc.source=i(t.source),e}})),fr.sourceType=t.sourceType,"boolean"==typeof t.tokens&&t.tokens&&(fr.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(fr.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(fr.errors=[]),fr.attachComment&&(fr.range=!0,fr.comments=[],fr.bottomRightStack=[],fr.trailingComments=[],fr.leadingComments=[])),Jn();try{r=ln(),"undefined"!=typeof fr.comments&&(r.comments=fr.comments),"undefined"!=typeof fr.tokens&&(Un(),r.tokens=fr.tokens),"undefined"!=typeof fr.errors&&(r.errors=fr.errors)}catch(e){throw e}finally{qn(),fr={}}return r}var $n,Hn,Gn,Yn,Kn,Qn,Zn,er,tr,nr,rr,ir,ar,or,sr,lr,ur,cr,pr,fr;$n={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9,Template:10,JSXIdentifier:11,JSXText:12},Hn={},Hn[$n.BooleanLiteral]="Boolean",Hn[$n.EOF]="<end>",Hn[$n.Identifier]="Identifier",Hn[$n.Keyword]="Keyword",Hn[$n.NullLiteral]="Null",Hn[$n.NumericLiteral]="Numeric",Hn[$n.Punctuator]="Punctuator",Hn[$n.StringLiteral]="String",Hn[$n.JSXIdentifier]="JSXIdentifier",Hn[$n.JSXText]="JSXText",Hn[$n.RegularExpression]="RegularExpression",Hn[$n.Template]="Template",Gn=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Yn={AnyTypeAnnotation:"AnyTypeAnnotation",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrayTypeAnnotation:"ArrayTypeAnnotation",ArrowFunctionExpression:"ArrowFunctionExpression",AssignmentExpression:"AssignmentExpression",BinaryExpression:"BinaryExpression",BlockStatement:"BlockStatement",BooleanTypeAnnotation:"BooleanTypeAnnotation",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ClassImplements:"ClassImplements",ClassProperty:"ClassProperty",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DeclareClass:"DeclareClass",DeclareFunction:"DeclareFunction",DeclareModule:"DeclareModule",DeclareVariable:"DeclareVariable",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportDeclaration:"ExportDeclaration",ExportBatchSpecifier:"ExportBatchSpecifier",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",ForStatement:"ForStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",FunctionTypeAnnotation:"FunctionTypeAnnotation",FunctionTypeParam:"FunctionTypeParam",GenericTypeAnnotation:"GenericTypeAnnotation",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",InterfaceDeclaration:"InterfaceDeclaration",InterfaceExtends:"InterfaceExtends",IntersectionTypeAnnotation:"IntersectionTypeAnnotation",LabeledStatement:"LabeledStatement",Literal:"Literal",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",NullableTypeAnnotation:"NullableTypeAnnotation",NumberTypeAnnotation:"NumberTypeAnnotation",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",ObjectTypeAnnotation:"ObjectTypeAnnotation",ObjectTypeCallProperty:"ObjectTypeCallProperty",ObjectTypeIndexer:"ObjectTypeIndexer",ObjectTypeProperty:"ObjectTypeProperty",Program:"Program",Property:"Property",QualifiedTypeIdentifier:"QualifiedTypeIdentifier",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",SpreadProperty:"SpreadProperty",StringLiteralTypeAnnotation:"StringLiteralTypeAnnotation",StringTypeAnnotation:"StringTypeAnnotation",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TupleTypeAnnotation:"TupleTypeAnnotation",TryStatement:"TryStatement",TypeAlias:"TypeAlias",TypeAnnotation:"TypeAnnotation",TypeCastExpression:"TypeCastExpression",TypeofTypeAnnotation:"TypeofTypeAnnotation",TypeParameterDeclaration:"TypeParameterDeclaration",TypeParameterInstantiation:"TypeParameterInstantiation",UnaryExpression:"UnaryExpression",UnionTypeAnnotation:"UnionTypeAnnotation",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",VoidTypeAnnotation:"VoidTypeAnnotation",WhileStatement:"WhileStatement",WithStatement:"WithStatement",JSXIdentifier:"JSXIdentifier",JSXNamespacedName:"JSXNamespacedName",JSXMemberExpression:"JSXMemberExpression",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXElement:"JSXElement",JSXClosingElement:"JSXClosingElement",JSXOpeningElement:"JSXOpeningElement",JSXAttribute:"JSXAttribute",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText",YieldExpression:"YieldExpression",AwaitExpression:"AwaitExpression"},Kn={Data:1,Get:2,Set:4},nr={static:"static",prototype:"prototype"},Qn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInFormalsList:"Invalid left-hand side in formals list",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalDuplicateClassProperty:"Illegal duplicate property in class definition",IllegalClassConstructorProperty:"Illegal constructor property in class definition",IllegalReturn:"Illegal return statement",IllegalSpread:"Illegal spread element",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",ParameterAfterRestParameter:"Rest parameter must be final parameter of an argument list",DefaultRestParameter:"Rest parameter can not have a default value",ElementAfterSpreadElement:"Spread must be the final element of an element list",PropertyAfterSpreadProperty:"A rest property must be the final property of an object literal",ObjectPatternAsRestParameter:"Invalid rest parameter",ObjectPatternAsSpread:"Invalid spread argument",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",MissingFromClause:"Missing from clause",NoAsAfterImportNamespace:"Missing as after import *",InvalidModuleSpecifier:"Invalid module specifier",IllegalImportDeclaration:"Illegal import declaration",IllegalExportDeclaration:"Illegal export declaration",NoUninitializedConst:"Const must be initialized",ComprehensionRequiresBlock:"Comprehension must have at least one block",ComprehensionError:"Comprehension Error",EachNotAllowed:"Each is not supported",InvalidJSXAttributeValue:"JSX value should be either an expression or a quoted JSX text",ExpectedJSXClosingTag:"Expected corresponding JSX closing tag for %0",AdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag",ConfusedAboutFunctionType:"Unexpected token =>. It looks like you are trying to write a function type, but you ended up writing a grouped type followed by an =>, which is a syntax error. Remember, function type parameters are named so function types look like (name1: type1, name2: type2) => returnType. You probably wrote (type1) => returnType"},Zn={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),LeadingZeros:new RegExp("^0+(?!$)")},n.prototype.get=function(e){return e="$"+e,this.$data[e]},n.prototype.set=function(e,t){return e="$"+e,this.$data[e]=t,this},n.prototype.has=function(e){return e="$"+e,Object.prototype.hasOwnProperty.call(this.$data,e)},n.prototype.delete=function(e){return e="$"+e,delete this.$data[e]},er={name:"SyntaxTree",postProcess:function(e){return e},createArrayExpression:function(e){return{type:Yn.ArrayExpression,elements:e}},createAssignmentExpression:function(e,t,n){return{type:Yn.AssignmentExpression,operator:e,left:t,right:n}},createBinaryExpression:function(e,t,n){var r="||"===e||"&&"===e?Yn.LogicalExpression:Yn.BinaryExpression;return{type:r,operator:e,left:t,right:n}},createBlockStatement:function(e){return{type:Yn.BlockStatement,body:e}},createBreakStatement:function(e){return{type:Yn.BreakStatement,label:e}},createCallExpression:function(e,t){return{type:Yn.CallExpression,callee:e,arguments:t}},createCatchClause:function(e,t){return{type:Yn.CatchClause,param:e,body:t}},createConditionalExpression:function(e,t,n){return{type:Yn.ConditionalExpression,test:e,consequent:t,alternate:n}},createContinueStatement:function(e){return{type:Yn.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:Yn.DebuggerStatement}},createDoWhileStatement:function(e,t){return{type:Yn.DoWhileStatement,body:e,test:t}},createEmptyStatement:function(){return{type:Yn.EmptyStatement}},createExpressionStatement:function(e){return{type:Yn.ExpressionStatement,expression:e}},createForStatement:function(e,t,n,r){return{type:Yn.ForStatement,init:e,test:t,update:n,body:r}},createForInStatement:function(e,t,n){return{type:Yn.ForInStatement,left:e,right:t,body:n,each:!1}},createForOfStatement:function(e,t,n){return{type:Yn.ForOfStatement,left:e,right:t,body:n}},createFunctionDeclaration:function(e,t,n,r,i,a,o,s,l,u){var c={type:Yn.FunctionDeclaration,id:e,params:t,defaults:n,body:r,rest:i,generator:a,expression:o,returnType:l,typeParameters:u};return s&&(c.async=!0),c},createFunctionExpression:function(e,t,n,r,i,a,o,s,l,u){var c={type:Yn.FunctionExpression,id:e,params:t,defaults:n,body:r,rest:i,generator:a,expression:o,returnType:l,typeParameters:u};return s&&(c.async=!0),c},createIdentifier:function(e){return{type:Yn.Identifier,name:e,typeAnnotation:void 0,optional:void 0}},createTypeAnnotation:function(e){return{type:Yn.TypeAnnotation,typeAnnotation:e}},createTypeCast:function(e,t){return{type:Yn.TypeCastExpression,expression:e,typeAnnotation:t}},createFunctionTypeAnnotation:function(e,t,n,r){return{type:Yn.FunctionTypeAnnotation,params:e,returnType:t,rest:n,typeParameters:r}},createFunctionTypeParam:function(e,t,n){return{type:Yn.FunctionTypeParam,name:e,typeAnnotation:t,optional:n}},createNullableTypeAnnotation:function(e){return{type:Yn.NullableTypeAnnotation,typeAnnotation:e}},createArrayTypeAnnotation:function(e){return{type:Yn.ArrayTypeAnnotation,elementType:e}},createGenericTypeAnnotation:function(e,t){return{type:Yn.GenericTypeAnnotation,id:e,typeParameters:t}},createQualifiedTypeIdentifier:function(e,t){return{type:Yn.QualifiedTypeIdentifier,qualification:e,id:t}},createTypeParameterDeclaration:function(e){return{type:Yn.TypeParameterDeclaration,params:e}},createTypeParameterInstantiation:function(e){return{type:Yn.TypeParameterInstantiation,params:e}},createAnyTypeAnnotation:function(){return{type:Yn.AnyTypeAnnotation}},createBooleanTypeAnnotation:function(){return{type:Yn.BooleanTypeAnnotation}},createNumberTypeAnnotation:function(){return{type:Yn.NumberTypeAnnotation}},createStringTypeAnnotation:function(){return{type:Yn.StringTypeAnnotation}},createStringLiteralTypeAnnotation:function(e){return{type:Yn.StringLiteralTypeAnnotation,value:e.value,raw:rr.slice(e.range[0],e.range[1])}},createVoidTypeAnnotation:function(){return{type:Yn.VoidTypeAnnotation}},createTypeofTypeAnnotation:function(e){return{type:Yn.TypeofTypeAnnotation,argument:e}},createTupleTypeAnnotation:function(e){return{type:Yn.TupleTypeAnnotation,types:e}},createObjectTypeAnnotation:function(e,t,n){return{type:Yn.ObjectTypeAnnotation,properties:e,indexers:t,callProperties:n}},createObjectTypeIndexer:function(e,t,n,r){return{type:Yn.ObjectTypeIndexer,id:e,key:t,value:n,static:r}},createObjectTypeCallProperty:function(e,t){return{type:Yn.ObjectTypeCallProperty,value:e,static:t}},createObjectTypeProperty:function(e,t,n,r){return{type:Yn.ObjectTypeProperty,key:e,value:t,optional:n,static:r}},createUnionTypeAnnotation:function(e){return{type:Yn.UnionTypeAnnotation,types:e}},createIntersectionTypeAnnotation:function(e){return{type:Yn.IntersectionTypeAnnotation,types:e}},createTypeAlias:function(e,t,n){return{type:Yn.TypeAlias,id:e,typeParameters:t,right:n}},createInterface:function(e,t,n,r){return{type:Yn.InterfaceDeclaration,id:e,typeParameters:t,body:n,extends:r}},createInterfaceExtends:function(e,t){return{type:Yn.InterfaceExtends,id:e,typeParameters:t}},createDeclareFunction:function(e){return{type:Yn.DeclareFunction,id:e}},createDeclareVariable:function(e){return{type:Yn.DeclareVariable,id:e}},createDeclareModule:function(e,t){return{type:Yn.DeclareModule,id:e,body:t}},createJSXAttribute:function(e,t){return{type:Yn.JSXAttribute,name:e,value:t||null}},createJSXSpreadAttribute:function(e){return{type:Yn.JSXSpreadAttribute,argument:e}},createJSXIdentifier:function(e){return{type:Yn.JSXIdentifier,name:e}},createJSXNamespacedName:function(e,t){return{type:Yn.JSXNamespacedName,namespace:e,name:t}},createJSXMemberExpression:function(e,t){return{type:Yn.JSXMemberExpression,object:e,property:t}},createJSXElement:function(e,t,n){return{type:Yn.JSXElement,openingElement:e,closingElement:t,children:n}},createJSXEmptyExpression:function(){return{type:Yn.JSXEmptyExpression}},createJSXExpressionContainer:function(e){return{type:Yn.JSXExpressionContainer,expression:e}},createJSXOpeningElement:function(e,t,n){return{type:Yn.JSXOpeningElement,name:e,selfClosing:n,attributes:t}},createJSXClosingElement:function(e){return{type:Yn.JSXClosingElement,name:e}},createIfStatement:function(e,t,n){return{type:Yn.IfStatement,test:e,consequent:t,alternate:n}},createLabeledStatement:function(e,t){return{type:Yn.LabeledStatement,label:e,body:t}},createLiteral:function(e){var t={type:Yn.Literal,value:e.value,raw:rr.slice(e.range[0],e.range[1])};return e.regex&&(t.regex=e.regex),t},createMemberExpression:function(e,t,n){return{type:Yn.MemberExpression,computed:"["===e,object:t,property:n}},createNewExpression:function(e,t){return{type:Yn.NewExpression,callee:e,arguments:t}},createObjectExpression:function(e){return{type:Yn.ObjectExpression,properties:e}},createPostfixExpression:function(e,t){return{type:Yn.UpdateExpression,operator:e,argument:t,prefix:!1}},createProgram:function(e){return{type:Yn.Program,body:e}},createProperty:function(e,t,n,r,i,a){return{type:Yn.Property,key:t,value:n,kind:e,method:r,shorthand:i,computed:a}},createReturnStatement:function(e){return{type:Yn.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:Yn.SequenceExpression,expressions:e}},createSwitchCase:function(e,t){return{type:Yn.SwitchCase,test:e,consequent:t}},createSwitchStatement:function(e,t){return{type:Yn.SwitchStatement,discriminant:e,cases:t}},createThisExpression:function(){return{type:Yn.ThisExpression}},createThrowStatement:function(e){return{type:Yn.ThrowStatement,argument:e}},createTryStatement:function(e,t,n,r){return{type:Yn.TryStatement,block:e,guardedHandlers:t,handlers:n,finalizer:r}},createUnaryExpression:function(e,t){return"++"===e||"--"===e?{type:Yn.UpdateExpression,operator:e,argument:t,prefix:!0}:{type:Yn.UnaryExpression,operator:e,argument:t,prefix:!0}},createVariableDeclaration:function(e,t){return{type:Yn.VariableDeclaration,declarations:e,kind:t}},createVariableDeclarator:function(e,t){return{type:Yn.VariableDeclarator,id:e,init:t}},createWhileStatement:function(e,t){return{type:Yn.WhileStatement,test:e,body:t}},createWithStatement:function(e,t){return{type:Yn.WithStatement,object:e,body:t}},createTemplateElement:function(e,t){return{type:Yn.TemplateElement,value:e,tail:t}},createTemplateLiteral:function(e,t){return{type:Yn.TemplateLiteral,quasis:e,expressions:t}},createSpreadElement:function(e){return{type:Yn.SpreadElement,argument:e}},createSpreadProperty:function(e){return{type:Yn.SpreadProperty,argument:e}},createTaggedTemplateExpression:function(e,t){return{type:Yn.TaggedTemplateExpression,
-tag:e,quasi:t}},createArrowFunctionExpression:function(e,t,n,r,i,a){var o={type:Yn.ArrowFunctionExpression,id:null,params:e,defaults:t,body:n,rest:r,generator:!1,expression:i};return a&&(o.async=!0),o},createMethodDefinition:function(e,t,n,r,i){return{type:Yn.MethodDefinition,key:n,value:r,kind:t,static:e===nr.static,computed:i}},createClassProperty:function(e,t,n,r){return{type:Yn.ClassProperty,key:e,typeAnnotation:t,computed:n,static:r}},createClassBody:function(e){return{type:Yn.ClassBody,body:e}},createClassImplements:function(e,t){return{type:Yn.ClassImplements,id:e,typeParameters:t}},createClassExpression:function(e,t,n,r,i,a){return{type:Yn.ClassExpression,id:e,superClass:t,body:n,typeParameters:r,superTypeParameters:i,implements:a}},createClassDeclaration:function(e,t,n,r,i,a){return{type:Yn.ClassDeclaration,id:e,superClass:t,body:n,typeParameters:r,superTypeParameters:i,implements:a}},createExportSpecifier:function(e,t){return{type:Yn.ExportSpecifier,id:e,name:t}},createExportBatchSpecifier:function(){return{type:Yn.ExportBatchSpecifier}},createImportDefaultSpecifier:function(e){return{type:Yn.ImportDefaultSpecifier,id:e}},createImportNamespaceSpecifier:function(e){return{type:Yn.ImportNamespaceSpecifier,id:e}},createExportDeclaration:function(e,t,n,r,i){return{type:Yn.ExportDeclaration,default:!!e,declaration:t,specifiers:n,source:r,exportKind:i}},createImportSpecifier:function(e,t){return{type:Yn.ImportSpecifier,id:e,name:t}},createImportDeclaration:function(e,t,n){return{type:Yn.ImportDeclaration,specifiers:e,source:t,importKind:n}},createYieldExpression:function(e,t){return{type:Yn.YieldExpression,argument:e,delegate:t}},createAwaitExpression:function(e){return{type:Yn.AwaitExpression,argument:e}},createComprehensionExpression:function(e,t,n){return{type:Yn.ComprehensionExpression,filter:e,blocks:t,body:n}}},tr={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},e.version="15001.1001.0-dev-harmony-fb",e.tokenize=zn,e.parse=Wn,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Yn)Yn.hasOwnProperty(e)&&(t[e]=Yn[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()})},{}],56:[function(e,t,n){"use strict";function r(e,t,n){if(p)try{p.call(c,e,t,{value:n})}catch(r){e[t]=n}else e[t]=n}function i(e){return e&&(r(e,"call",e.call),r(e,"apply",e.apply)),e}function a(e){return f?f.call(c,e):(y.prototype=e||null,new y)}function o(){do var e=s(m.call(h.call(g(),36),2));while(d.call(v,e));return v[e]=e}function s(e){var t={};return t[e]=!0,Object.keys(t)[0]}function l(e){return a(null)}function u(e){function t(t){function n(n,r){if(n===s)return r?a=null:a||(a=e(t))}var a;r(t,i,n)}function n(e){return d.call(e,i)||t(e),e[i](s)}var i=o(),s=a(null);return e=e||l,n.forget=function(e){d.call(e,i)&&e[i](s,!0)},n}var c=Object,p=Object.defineProperty,f=Object.create;i(p),i(f);var d=i(Object.prototype.hasOwnProperty),h=i(Number.prototype.toString),m=i(String.prototype.slice),y=function(){},g=Math.random,v=a(null);r(n,"makeUniqueKey",o);var b=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=b(e),n=0,r=0,i=t.length;n<i;++n)d.call(v,t[n])||(n>r&&(t[r]=t[n]),++r);return t.length=r,t},r(n,"makeAccessor",u)},{}],57:[function(e,t,n){function r(e,t){if(e){if(E.fixFaultyLocations(e),t){if(h.Node.check(e)&&h.SourceLocation.check(e.loc)){for(var n=t.length-1;n>=0&&!(S(t[n].loc.end,e.loc.start)<=0);--n);return void t.splice(n+1,0,e)}}else if(e[w])return e[w];var i;if(m.check(e))i=Object.keys(e);else{if(!y.check(e))return;i=d.getFieldNames(e)}t||Object.defineProperty(e,w,{value:t=[],enumerable:!1});for(var n=0,a=i.length;n<a;++n)r(e[i[n]],t);return t}}function i(e,t){for(var n=r(e),a=0,o=n.length;a<o;){var s=a+o>>1,l=n[s];if(S(l.loc.start,t.loc.start)<=0&&S(t.loc.end,l.loc.end)<=0)return void i(t.enclosingNode=l,t);if(S(l.loc.end,t.loc.start)<=0){var u=l;a=s+1}else{if(!(S(t.loc.end,l.loc.start)<=0))throw new Error("Comment location overlaps with node location");var c=l;o=s}}u&&(t.precedingNode=u),c&&(t.followingNode=c)}function a(e,t){var n=e.length;if(0!==n){for(var r=e[0].precedingNode,i=e[0].followingNode,a=i.loc.start,o=n;o>0;--o){var l=e[o-1];f.strictEqual(l.precedingNode,r),f.strictEqual(l.followingNode,i);var c=t.sliceString(l.loc.end,a);if(/\S/.test(c))break;a=l.loc.start}for(;o<=n&&(l=e[o])&&"Line"===l.type&&l.loc.start.column>i.loc.start.column;)++o;e.forEach(function(e,t){t<o?u(r,e):s(i,e)}),e.length=0}}function o(e,t){var n=e.comments||(e.comments=[]);n.push(t)}function s(e,t){t.leading=!0,t.trailing=!1,o(e,t)}function l(e,t){t.leading=!1,t.trailing=!1,o(e,t)}function u(e,t){t.leading=!1,t.trailing=!0,o(e,t)}function c(e,t){var n=e.getValue();h.Comment.assert(n);var r=n.loc,i=r&&r.lines,a=[t(e)];if(n.trailing)a.push("\n");else if(i instanceof v){var o=i.slice(r.end,i.skipSpaces(r.end));1===o.length?a.push(o):a.push(new Array(o.length).join("\n"))}else a.push("\n");return b(a)}function p(e,t){var n=e.getValue(e);h.Comment.assert(n);var r=n.loc,i=r&&r.lines,a=[];if(i instanceof v){var o=i.skipSpaces(r.start,!0)||i.firstPos(),s=i.slice(o,r.start);1===s.length?a.push(s):a.push(new Array(s.length).join("\n"))}return a.push(t(e)),b(a)}var f=e("assert"),d=e("./types"),h=d.namedTypes,m=d.builtInTypes.array,y=d.builtInTypes.object,g=e("./lines"),v=(g.fromString,g.Lines),b=g.concat,E=e("./util"),S=E.comparePos,w=e("private").makeUniqueKey();n.attach=function(e,t,n){if(m.check(e)){var r=[];e.forEach(function(e){e.loc.lines=n,i(t,e);var o=e.precedingNode,c=e.enclosingNode,p=e.followingNode;if(o&&p){var d=r.length;if(d>0){var h=r[d-1];f.strictEqual(h.precedingNode===e.precedingNode,h.followingNode===e.followingNode),h.followingNode!==e.followingNode&&a(r,n)}r.push(e)}else if(o)a(r,n),u(o,e);else if(p)a(r,n),s(p,e);else{if(!c)throw new Error("AST contains no nodes at all?");a(r,n),l(c,e)}}),a(r,n),e.forEach(function(e){delete e.precedingNode,delete e.enclosingNode,delete e.followingNode})}},n.printComments=function(e,t){var n=e.getValue(),r=t(e),i=h.Node.check(n)&&d.getFieldValue(n,"comments");if(!i||0===i.length)return r;var a=[],o=[r];return e.each(function(e){var n=e.getValue(),r=d.getFieldValue(n,"leading"),i=d.getFieldValue(n,"trailing");r||i&&"Block"!==n.type?a.push(c(e,t)):i&&(f.strictEqual(n.type,"Block"),o.push(p(e,t)))},"comments"),a.push.apply(a,o),b(a)}},{"./lines":59,"./types":65,"./util":66,assert:2,private:56}],58:[function(e,t,n){function r(e){s.ok(this instanceof r),this.stack=[e]}function i(e,t){for(var n=e.stack,r=n.length-1;r>=0;r-=2){var i=n[r];if(u.Node.check(i)&&--t<0)return i}return null}function a(e){return u.BinaryExpression.check(e)||u.LogicalExpression.check(e)}function o(e){return!!u.CallExpression.check(e)||(c.check(e)?e.some(o):!!u.Node.check(e)&&l.someField(e,function(e,t){return o(t)}))}var s=e("assert"),l=e("./types"),u=l.namedTypes,c=(u.Node,l.builtInTypes.array),p=l.builtInTypes.number,f=r.prototype;t.exports=r,r.from=function(e){if(e instanceof r)return e.copy();if(e instanceof l.NodePath){for(var t,n=Object.create(r.prototype),i=[e.value];t=e.parentPath;e=t)i.push(e.name,t.value);return n.stack=i.reverse(),n}return new r(e)},f.copy=function e(){var e=Object.create(r.prototype);return e.stack=this.stack.slice(0),e},f.getName=function(){var e=this.stack,t=e.length;return t>1?e[t-2]:null},f.getValue=function(){var e=this.stack;return e[e.length-1]},f.getNode=function(e){return i(this,~~e)},f.getParentNode=function(e){return i(this,~~e+1)},f.getRootValue=function(){var e=this.stack;return e.length%2===0?e[1]:e[0]},f.call=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var o=arguments[a];r=r[o],t.push(o,r)}var s=e(this);return t.length=n,s},f.each=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var o=arguments[a];r=r[o],t.push(o,r)}for(var a=0;a<r.length;++a)a in r&&(t.push(a,r[a]),e(this),t.length-=2);t.length=n},f.map=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var o=arguments[a];r=r[o],t.push(o,r)}for(var s=new Array(r.length),a=0;a<r.length;++a)a in r&&(t.push(a,r[a]),s[a]=e(this,a),t.length-=2);return t.length=n,s},f.needsParens=function(e){var t=this.getParentNode();if(!t)return!1;var n=this.getName(),r=this.getNode();if(this.getValue()!==r)return!1;if(!u.Expression.check(r))return!1;if("Identifier"===r.type)return!1;if("ParenthesizedExpression"===t.type)return!1;switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===t.type&&"object"===n&&t.object===r;case"BinaryExpression":case"LogicalExpression":switch(t.type){case"CallExpression":return"callee"===n&&t.callee===r;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===n&&t.object===r;case"BinaryExpression":case"LogicalExpression":var i=t.operator,l=d[i],c=r.operator,f=d[c];if(l>f)return!0;if(l===f&&"right"===n)return s.strictEqual(t.right,r),!0;default:return!1}case"SequenceExpression":switch(t.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==n;default:return!0}case"YieldExpression":switch(t.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===t.type&&p.check(r.value)&&"object"===n&&t.object===r;case"AssignmentExpression":case"ConditionalExpression":switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===n&&t.callee===r;case"ConditionalExpression":return"test"===n&&t.test===r;case"MemberExpression":return"object"===n&&t.object===r;default:return!1}case"ArrowFunctionExpression":return a(t);case"ObjectExpression":if("ArrowFunctionExpression"===t.type&&"body"===n)return!0;default:if("NewExpression"===t.type&&"callee"===n&&t.callee===r)return o(r)}return!(e===!0||this.canBeFirstInStatement()||!this.firstInStatement())};var d={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){d[e]=t})}),f.canBeFirstInStatement=function(){var e=this.getNode();return!u.FunctionExpression.check(e)&&!u.ObjectExpression.check(e)},f.firstInStatement=function(){for(var e,t,n,r,i=this.stack,o=i.length-1;o>=0;o-=2)if(u.Node.check(i[o])&&(n=e,r=t,e=i[o-1],t=i[o]),t&&r){if(u.BlockStatement.check(t)&&"body"===e&&0===n)return s.strictEqual(t.body[0],r),!0;if(u.ExpressionStatement.check(t)&&"expression"===n)return s.strictEqual(t.expression,r),!0;if(u.SequenceExpression.check(t)&&"expressions"===e&&0===n)s.strictEqual(t.expressions[0],r);else if(u.CallExpression.check(t)&&"callee"===n)s.strictEqual(t.callee,r);else if(u.MemberExpression.check(t)&&"object"===n)s.strictEqual(t.object,r);else if(u.ConditionalExpression.check(t)&&"test"===n)s.strictEqual(t.test,r);else if(a(t)&&"left"===n)s.strictEqual(t.left,r);else{if(!u.UnaryExpression.check(t)||t.prefix||"argument"!==n)return!1;s.strictEqual(t.argument,r)}}return!0}},{"./types":65,assert:2}],59:[function(e,t,n){function r(e){return e[d]}function i(e,t){c.ok(this instanceof i),c.ok(e.length>0),t?m.assert(t):t=null,Object.defineProperty(this,d,{value:{infos:e,mappings:[],name:t,cachedSourceMap:null}}),t&&r(this).mappings.push(new g(this,{start:this.firstPos(),end:this.lastPos()}))}function a(e){return{line:e.line,indent:e.indent,sliceStart:e.sliceStart,sliceEnd:e.sliceEnd}}function o(e,t){for(var n=0,r=e.length,i=0;i<r;++i)switch(e.charCodeAt(i)){case 9:c.strictEqual(typeof t,"number"),c.ok(t>0);var a=Math.ceil(n/t)*t;a===n?n+=t:n=a;break;case 11:case 12:case 13:case 65279:break;case 32:default:n+=1}return n}function s(e,t){if(e instanceof i)return e;e+="";var n=t&&t.tabWidth,r=e.indexOf("\t")<0,a=!t&&r&&e.length<=S;if(c.ok(n||r,"No tab width specified but encountered tabs in string\n"+e),a&&E.call(b,e))return b[e];var s=new i(e.split(x).map(function(e){var t=w.exec(e)[0];return{line:e,indent:o(t,n),sliceStart:t.length,sliceEnd:e.length}}),f(t).sourceFileName);return a&&(b[e]=s),s}function l(e){return!/\S/.test(e)}function u(e,t,n){var r=e.sliceStart,i=e.sliceEnd,a=Math.max(e.indent,0),o=a+i-r;return"undefined"==typeof n&&(n=o),t=Math.max(t,0),n=Math.min(n,o),n=Math.max(n,t),n<a?(a=n,i=r):i-=o-n,o=n,o-=t,t<a?a-=t:(t-=a,a=0,r+=t),c.ok(a>=0),c.ok(r<=i),c.strictEqual(o,a+i-r),e.indent===a&&e.sliceStart===r&&e.sliceEnd===i?e:{line:e.line,indent:a,sliceStart:r,sliceEnd:i}}var c=e("assert"),p=e("source-map"),f=e("./options").normalize,d=e("private").makeUniqueKey(),h=e("./types"),m=h.builtInTypes.string,y=e("./util").comparePos,g=e("./mapping");n.Lines=i;var v=i.prototype;Object.defineProperties(v,{length:{get:function(){return r(this).infos.length}},name:{get:function(){return r(this).name}}});var b={},E=b.hasOwnProperty,S=10;n.countSpaces=o;var w=/^\s*/,x=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;n.fromString=s,v.toString=function(e){return this.sliceString(this.firstPos(),this.lastPos(),e)},v.getSourceMap=function(e,t){function n(n){return n=n||{},m.assert(e),n.file=e,t&&(m.assert(t),n.sourceRoot=t),n}if(!e)return null;var i=this,a=r(i);if(a.cachedSourceMap)return n(a.cachedSourceMap.toJSON());var o=new p.SourceMapGenerator(n()),s={};return a.mappings.forEach(function(e){for(var t=e.sourceLines.skipSpaces(e.sourceLoc.start)||e.sourceLines.lastPos(),n=i.skipSpaces(e.targetLoc.start)||i.lastPos();y(t,e.sourceLoc.end)<0&&y(n,e.targetLoc.end)<0;){var r=e.sourceLines.charAt(t),a=i.charAt(n);c.strictEqual(r,a);var l=e.sourceLines.name;if(o.addMapping({source:l,original:{line:t.line,column:t.column},generated:{line:n.line,column:n.column}}),!E.call(s,l)){var u=e.sourceLines.toString();o.setSourceContent(l,u),s[l]=u}i.nextPos(n,!0),e.sourceLines.nextPos(t,!0)}}),a.cachedSourceMap=o,o.toJSON()},v.bootstrapCharAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,n=e.column,r=this.toString().split(x),i=r[t-1];return"undefined"==typeof i?"":n===i.length&&t<r.length?"\n":n>=i.length?"":i.charAt(n)},v.charAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,n=e.column,i=r(this),a=i.infos,o=a[t-1],s=n;if("undefined"==typeof o||s<0)return"";var l=this.getIndentAt(t);return s<l?" ":(s+=o.sliceStart-l,s===o.sliceEnd&&t<this.length?"\n":s>=o.sliceEnd?"":o.line.charAt(s))},v.stripMargin=function(e,t){if(0===e)return this;if(c.ok(e>0,"negative margin: "+e),t&&1===this.length)return this;var n=r(this),o=new i(n.infos.map(function(n,r){return n.line&&(r>0||!t)&&(n=a(n),n.indent=Math.max(0,n.indent-e)),n}));if(n.mappings.length>0){var s=r(o).mappings;c.strictEqual(s.length,0),n.mappings.forEach(function(n){s.push(n.indent(e,t,!0))})}return o},v.indent=function(e){if(0===e)return this;var t=r(this),n=new i(t.infos.map(function(t){return t.line&&(t=a(t),t.indent+=e),t}));if(t.mappings.length>0){var o=r(n).mappings;c.strictEqual(o.length,0),t.mappings.forEach(function(t){o.push(t.indent(e))})}return n},v.indentTail=function(e){if(0===e)return this;if(this.length<2)return this;var t=r(this),n=new i(t.infos.map(function(t,n){return n>0&&t.line&&(t=a(t),t.indent+=e),t}));if(t.mappings.length>0){var o=r(n).mappings;c.strictEqual(o.length,0),t.mappings.forEach(function(t){o.push(t.indent(e,!0))})}return n},v.getIndentAt=function(e){c.ok(e>=1,"no line "+e+" (line numbers start from 1)");var t=r(this),n=t.infos[e-1];return Math.max(n.indent,0)},v.guessTabWidth=function(){var e=r(this);if(E.call(e,"cachedTabWidth"))return e.cachedTabWidth;for(var t=[],n=0,i=1,a=this.length;i<=a;++i){var o=e.infos[i-1],s=o.line.slice(o.sliceStart,o.sliceEnd);if(!l(s)){var u=Math.abs(o.indent-n);t[u]=~~t[u]+1,n=o.indent}}for(var c=-1,p=2,f=1;f<t.length;f+=1)E.call(t,f)&&t[f]>c&&(c=t[f],p=f);return e.cachedTabWidth=p},v.isOnlyWhitespace=function(){return l(this.toString())},v.isPrecededOnlyByWhitespace=function(e){var t=r(this),n=t.infos[e.line-1],i=Math.max(n.indent,0),a=e.column-i;if(a<=0)return!0;var o=n.sliceStart,s=Math.min(o+a,n.sliceEnd),u=n.line.slice(o,s);return l(u)},v.getLineLength=function(e){var t=r(this),n=t.infos[e-1];return this.getIndentAt(e)+n.sliceEnd-n.sliceStart},v.nextPos=function(e,t){var n=Math.max(e.line,0),r=Math.max(e.column,0);return r<this.getLineLength(n)?(e.column+=1,!t||!!this.skipSpaces(e,!1,!0)):n<this.length&&(e.line+=1,e.column=0,!t||!!this.skipSpaces(e,!1,!0))},v.prevPos=function(e,t){var n=e.line,r=e.column;if(r<1){if(n-=1,n<1)return!1;r=this.getLineLength(n)}else r=Math.min(r-1,this.getLineLength(n));return e.line=n,e.column=r,!t||!!this.skipSpaces(e,!0,!0)},v.firstPos=function(){return{line:1,column:0}},v.lastPos=function(){return{line:this.length,column:this.getLineLength(this.length)}},v.skipSpaces=function(e,t,n){if(e=e?n?e:{line:e.line,column:e.column}:t?this.lastPos():this.firstPos(),t){for(;this.prevPos(e);)if(!l(this.charAt(e))&&this.nextPos(e))return e;return null}for(;l(this.charAt(e));)if(!this.nextPos(e))return null;return e},v.trimLeft=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);return e?this.slice(e):k},v.trimRight=function(){var e=this.skipSpaces(this.lastPos(),!0,!0);return e?this.slice(this.firstPos(),e):k},v.trim=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);if(null===e)return k;var t=this.skipSpaces(this.lastPos(),!0,!0);return c.notStrictEqual(t,null),this.slice(e,t)},v.eachPos=function(e,t,n){var r=this.firstPos();if(t&&(r.line=t.line,r.column=t.column),!n||this.skipSpaces(r,!1,!0))do e.call(this,r);while(this.nextPos(r,n))},v.bootstrapSlice=function(e,t){var n=this.toString().split(x).slice(e.line-1,t.line);return n.push(n.pop().slice(0,t.column)),n[0]=n[0].slice(e.column),s(n.join("\n"))},v.slice=function(e,t){if(!t){if(!e)return this;t=this.lastPos()}var n=r(this),a=n.infos.slice(e.line-1,t.line);e.line===t.line?a[0]=u(a[0],e.column,t.column):(c.ok(e.line<t.line),a[0]=u(a[0],e.column),a.push(u(a.pop(),0,t.column)));var o=new i(a);if(n.mappings.length>0){var s=r(o).mappings;c.strictEqual(s.length,0),n.mappings.forEach(function(n){var r=n.slice(this,e,t);r&&s.push(r)},this)}return o},v.bootstrapSliceString=function(e,t,n){return this.slice(e,t).toString(n)},v.sliceString=function(e,t,n){if(!t){if(!e)return this;t=this.lastPos()}n=f(n);for(var i=r(this).infos,a=[],s=n.tabWidth,c=e.line;c<=t.line;++c){var p=i[c-1];c===e.line?p=c===t.line?u(p,e.column,t.column):u(p,e.column):c===t.line&&(p=u(p,0,t.column));var d=Math.max(p.indent,0),h=p.line.slice(0,p.sliceStart);if(n.reuseWhitespace&&l(h)&&o(h,n.tabWidth)===d)a.push(p.line.slice(0,p.sliceEnd));else{var m=0,y=d;n.useTabs&&(m=Math.floor(d/s),y-=m*s);var g="";m>0&&(g+=new Array(m+1).join("\t")),y>0&&(g+=new Array(y+1).join(" ")),g+=p.line.slice(p.sliceStart,p.sliceEnd),a.push(g)}}return a.join(n.lineTerminator)},v.isEmpty=function(){return this.length<2&&this.getLineLength(1)<1},v.join=function(e){function t(e){if(null!==e){if(o){var t=e.infos[0],n=new Array(t.indent+1).join(" "),r=c.length,i=Math.max(o.indent,0)+o.sliceEnd-o.sliceStart;o.line=o.line.slice(0,o.sliceEnd)+n+t.line.slice(t.sliceStart,t.sliceEnd),o.sliceEnd=o.line.length,e.mappings.length>0&&e.mappings.forEach(function(e){p.push(e.add(r,i))})}else e.mappings.length>0&&p.push.apply(p,e.mappings);e.infos.forEach(function(e,t){(!o||t>0)&&(o=a(e),c.push(o))})}}function n(e,n){n>0&&t(u),t(e)}var o,l=this,u=r(l),c=[],p=[];if(e.map(function(e){var t=s(e);return t.isEmpty()?null:r(t)}).forEach(l.isEmpty()?t:n),c.length<1)return k;var f=new i(c);return r(f).mappings=p,f},n.concat=function(e){return k.join(e)},v.concat=function(e){var t=arguments,n=[this];return n.push.apply(n,t),c.strictEqual(n.length,t.length+1),k.join(n)};var k=s("")},{"./mapping":60,"./options":61,"./types":65,"./util":66,assert:2,private:56,"source-map":94}],60:[function(e,t,n){function r(e,t,n){s.ok(this instanceof r),s.ok(e instanceof f.Lines),c.assert(t),n?s.ok(u.check(n.start.line)&&u.check(n.start.column)&&u.check(n.end.line)&&u.check(n.end.column)):n=t,Object.defineProperties(this,{sourceLines:{value:e},sourceLoc:{value:t},targetLoc:{value:n}})}function i(e,t,n){return{line:e.line+t-1,column:1===e.line?e.column+n:e.column}}function a(e,t,n){return{line:e.line-t+1,column:e.line===t?e.column-n:e.column}}function o(e,t,n,r,i){s.ok(e instanceof f.Lines),s.ok(n instanceof f.Lines),p.assert(t),p.assert(r),p.assert(i);var a=d(r,i);if(0===a)return t;if(a<0){var o=e.skipSpaces(t),l=n.skipSpaces(r),u=i.line-l.line;for(o.line+=u,l.line+=u,u>0?(o.column=0,l.column=0):s.strictEqual(u,0);d(l,i)<0&&n.nextPos(l,!0);)s.ok(e.nextPos(o,!0)),s.strictEqual(e.charAt(o),n.charAt(l))}else{var o=e.skipSpaces(t,!0),l=n.skipSpaces(r,!0),u=i.line-l.line;for(o.line+=u,l.line+=u,u<0?(o.column=e.getLineLength(o.line),l.column=n.getLineLength(l.line)):s.strictEqual(u,0);d(i,l)<0&&n.prevPos(l,!0);)s.ok(e.prevPos(o,!0)),s.strictEqual(e.charAt(o),n.charAt(l))}return o}var s=e("assert"),l=e("./types"),u=(l.builtInTypes.string,l.builtInTypes.number),c=l.namedTypes.SourceLocation,p=l.namedTypes.Position,f=e("./lines"),d=e("./util").comparePos,h=r.prototype;t.exports=r,h.slice=function(e,t,n){function i(r){var i=u[r],a=c[r],p=t;return"end"===r?p=n:s.strictEqual(r,"start"),o(l,i,e,a,p)}s.ok(e instanceof f.Lines),p.assert(t),n?p.assert(n):n=e.lastPos();var l=this.sourceLines,u=this.sourceLoc,c=this.targetLoc;if(d(t,c.start)<=0)if(d(c.end,n)<=0)c={start:a(c.start,t.line,t.column),end:a(c.end,t.line,t.column)};else{if(d(n,c.start)<=0)return null;u={start:u.start,end:i("end")},c={start:a(c.start,t.line,t.column),end:a(n,t.line,t.column)}}else{if(d(c.end,t)<=0)return null;d(c.end,n)<=0?(u={start:i("start"),end:u.end},c={start:{line:1,column:0},end:a(c.end,t.line,t.column)}):(u={start:i("start"),end:i("end")},c={start:{line:1,column:0},end:a(n,t.line,t.column)})}return new r(this.sourceLines,u,c)},h.add=function(e,t){return new r(this.sourceLines,this.sourceLoc,{start:i(this.targetLoc.start,e,t),end:i(this.targetLoc.end,e,t)})},h.subtract=function(e,t){return new r(this.sourceLines,this.sourceLoc,{start:a(this.targetLoc.start,e,t),end:a(this.targetLoc.end,e,t)})},h.indent=function(e,t,n){if(0===e)return this;var i=this.targetLoc,a=i.start.line,o=i.end.line;if(t&&1===a&&1===o)return this;if(i={start:i.start,end:i.end},!t||a>1){var s=i.start.column+e;i.start={line:a,column:n?Math.max(0,s):s}}if(!t||o>1){var l=i.end.column+e;i.end={line:o,column:n?Math.max(0,l):l}}return new r(this.sourceLines,this.sourceLoc,i)}},{"./lines":59,"./types":65,"./util":66,assert:2}],61:[function(e,t,n){var r={esprima:e("esprima-fb"),tabWidth:4,useTabs:!1,reuseWhitespace:!0,lineTerminator:e("os").EOL,wrapColumn:74,sourceFileName:null,sourceMapName:null,sourceRoot:null,inputSourceMap:null,range:!1,tolerant:!0,quote:null,trailingComma:!1},i=r.hasOwnProperty;n.normalize=function(e){function t(t){return i.call(e,t)?e[t]:r[t]}return e=e||r,{tabWidth:+t("tabWidth"),useTabs:!!t("useTabs"),reuseWhitespace:!!t("reuseWhitespace"),lineTerminator:t("lineTerminator"),wrapColumn:Math.max(t("wrapColumn"),0),sourceFileName:t("sourceFileName"),sourceMapName:t("sourceMapName"),sourceRoot:t("sourceRoot"),inputSourceMap:t("inputSourceMap"),esprima:t("esprima"),range:t("range"),tolerant:t("tolerant"),quote:t("quote"),trailingComma:t("trailingComma")}}},{"esprima-fb":55,os:11}],62:[function(e,t,n){function r(e){i.ok(this instanceof r),this.lines=e,this.indent=0}var i=e("assert"),a=e("./types"),o=(a.namedTypes,a.builders),s=a.builtInTypes.object,l=a.builtInTypes.array,u=(a.builtInTypes.function,e("./patcher").Patcher,e("./options").normalize),c=e("./lines").fromString,p=e("./comments").attach,f=e("./util");n.parse=function(e,t){t=u(t);var n=c(e,t),i=n.toString({tabWidth:t.tabWidth,reuseWhitespace:!1,useTabs:!1}),a=[],s=t.esprima.parse(i,{loc:!0,locations:!0,range:t.range,comment:!0,onComment:a,tolerant:t.tolerant,ecmaVersion:6,sourceType:"module"});s.loc=s.loc||{start:n.firstPos(),end:n.lastPos()},s.loc.lines=n,s.loc.indent=0;var l=f.getTrueLoc(s,n);s.loc.start=l.start,s.loc.end=l.end,s.comments&&(a=s.comments,delete s.comments);var d=o.file(s);return d.loc={lines:n,indent:0,start:n.firstPos(),end:n.lastPos()},p(a,s.body.length?d.program:d,n),new r(n).copy(d)};var d=r.prototype;d.copy=function(e){if(l.check(e))return e.map(this.copy,this);if(!s.check(e))return e;f.fixFaultyLocations(e);var t=Object.create(Object.getPrototypeOf(e),{original:{value:e,configurable:!1,enumerable:!1,writable:!0}}),n=e.loc,r=this.indent,i=r;n&&(("Block"===e.type||"Line"===e.type||this.lines.isPrecededOnlyByWhitespace(n.start))&&(i=this.indent=n.start.column),n.lines=this.lines,n.indent=i);for(var a=Object.keys(e),o=a.length,u=0;u<o;++u){var c=a[u];"loc"===c?t[c]=e[c]:t[c]=this.copy(e[c])}return this.indent=r,t}},{"./comments":57,"./lines":59,"./options":61,"./patcher":63,"./types":65,"./util":66,assert:2}],63:[function(e,t,n){function r(e){d.ok(this instanceof r),d.ok(e instanceof h.Lines);var t=this,n=[];t.replace=function(e,t){k.check(t)&&(t=h.fromString(t)),n.push({lines:t,start:e.start,end:e.end})},t.get=function(t){function r(t,n){d.ok(E(t,n)<=0),a.push(e.slice(t,n))}t=t||{start:{line:1,column:0},end:{line:e.length,column:e.getLineLength(e.length)}};var i=t.start,a=[];return n.sort(function(e,t){return E(e.start,t.start)}).forEach(function(e){E(i,e.start)>0||(r(i,e.start),a.push(e.lines),i=e.end)}),r(i,t.end),h.concat(a)}}function i(e){var t=[];return e.comments&&e.comments.length>0&&e.comments.forEach(function(e){(e.leading||e.trailing)&&t.push(e)}),t}function a(e,t){var n=e.getValue();y.assert(n);var r=n.original;if(y.assert(r),d.deepEqual(t,[]),n.type!==r.type)return!1;var i=new S(r),a=f(e,i,t);return a||(t.length=0),a}function o(e,t,n){var r=e.getValue(),i=t.getValue();return r===i||(x.check(r)?s(e,t,n):!!w.check(r)&&l(e,t,n))}function s(e,t,n){var r=e.getValue(),i=t.getValue();x.assert(r);var a=r.length;if(!x.check(i)||i.length!==a)return!1;for(var s=0;s<a;++s){e.stack.push(s,r[s]),t.stack.push(s,i[s]);var l=o(e,t,n);if(e.stack.length-=2,t.stack.length-=2,!l)return!1}return!0}function l(e,t,n){var r=e.getValue();if(w.assert(r),null===r.original)return!1;var i=t.getValue();if(!w.check(i))return!1;if(y.check(r)){if(!y.check(i))return!1;if(r.type===i.type){var a=[];if(f(e,t,a))n.push.apply(n,a);else{if(!i.loc)return!1;n.push({oldPath:t.copy(),newPath:e.copy()})}return!0}return!!(g.check(r)&&g.check(i)&&i.loc)&&(n.push({oldPath:t.copy(),newPath:e.copy()}),!0)}return f(e,t,n)}function u(e){var t=e.getValue(),n=t.loc,r=n&&n.lines;if(r){var i=L;for(i.line=n.start.line,i.column=n.start.column;r.prevPos(i);){var a=r.charAt(i);if("("===a)return E(e.getRootValue().loc.start,i)<=0;if(C.test(a))return!1}}return!1}function c(e){var t=e.getValue(),n=t.loc,r=n&&n.lines;if(r){var i=L;i.line=n.end.line,i.column=n.end.column;do{var a=r.charAt(i);if(")"===a)return E(i,e.getRootValue().loc.end)<=0;if(C.test(a))return!1}while(r.nextPos(i))}return!1}function p(e){return u(e)&&c(e)}function f(e,t,n){var r=e.getValue(),i=t.getValue();if(w.assert(r),w.assert(i),null===r.original)return!1;if(!e.canBeFirstInStatement()&&e.firstInStatement()&&!u(t))return!1;if(e.needsParens(!0)&&!p(t))return!1;for(var a in b.getUnionOfKeys(r,i))if("loc"!==a){e.stack.push(a,m.getFieldValue(r,a)),t.stack.push(a,m.getFieldValue(i,a));var s=o(e,t,n);if(e.stack.length-=2,t.stack.length-=2,!s)return!1}return!0}var d=e("assert"),h=e("./lines"),m=e("./types"),y=(m.getFieldValue,m.namedTypes.Printable),g=m.namedTypes.Expression,v=m.namedTypes.SourceLocation,b=e("./util"),E=b.comparePos,S=e("./fast-path"),w=m.builtInTypes.object,x=m.builtInTypes.array,k=m.builtInTypes.string,T=/[0-9a-z_$]/i;n.Patcher=r;var A=r.prototype;A.tryToReprintComments=function(e,t,n){var r=this;if(!e.comments&&!t.comments)return!0;var a=S.from(e),o=S.from(t);a.stack.push("comments",i(e)),o.stack.push("comments",i(t));var l=[],u=s(a,o,l);return u&&l.length>0&&l.forEach(function(e){var t=e.oldPath.getValue();d.ok(t.leading||t.trailing),r.replace(t.loc,n(e.newPath).indentTail(t.loc.indent))}),u},A.deleteComments=function(e){if(e.comments){var t=this;e.comments.forEach(function(n){n.leading?t.replace({start:n.loc.start,end:e.loc.lines.skipSpaces(n.loc.end,!1,!1)},""):n.trailing&&t.replace({start:e.loc.lines.skipSpaces(n.loc.start,!0,!1),end:n.loc.end},"")})}},n.getReprinter=function(e){d.ok(e instanceof S);var t=e.getValue();if(y.check(t)){var n=t.original,i=n&&n.loc,o=i&&i.lines,s=[];if(o&&a(e,s))return function(e){var t=new r(o);return s.forEach(function(n){var r=n.newPath.getValue(),i=n.oldPath.getValue();v.assert(i.loc,!0);var a=!t.tryToReprintComments(r,i,e);a&&t.deleteComments(i);var s=b.copyPos(i.loc.start),l=o.prevPos(s)&&T.test(o.charAt(s)),u=e(n.newPath,a).indentTail(i.loc.indent),c=T.test(o.charAt(i.loc.end));if(l||c){var p=[];l&&p.push(" "),p.push(u),c&&p.push(" "),u=h.concat(p)}t.replace(i.loc,u)}),t.get(i).indentTail(-n.loc.indent)}}};var L={line:1,column:0},C=/\S/},{"./fast-path":58,"./lines":59,"./types":65,"./util":66,assert:2}],64:[function(e,t,n){function r(e,t){E.ok(this instanceof r),P.assert(e),this.code=e,t&&(_.assert(t),this.map=t)}function i(e){function t(e){return E.ok(e instanceof I),S(e,n)}function n(e,n){if(n)return t(e);if(E.ok(e instanceof I),!c){var r=p.tabWidth,i=e.getNode().loc;if(i&&i.lines&&i.lines.guessTabWidth){p.tabWidth=i.lines.guessTabWidth();
-var a=s(e);return p.tabWidth=r,a}}return s(e)}function s(e){var t=A(e);return t?a(e,t(n)):l(e)}function l(e){return o(e,p,t)}function u(e){return o(e,p,u)}E.ok(this instanceof i);var c=e&&e.tabWidth,p=T(e);E.notStrictEqual(p,e),p.sourceFileName=null,this.print=function(e){if(!e)return N;var t=n(I.from(e),!0);return new r(t.toString(p),j.composeSourceMaps(p.inputSourceMap,t.getSourceMap(p.sourceMapName,p.sourceRoot)))},this.printGenerically=function(e){if(!e)return N;var t=I.from(e),n=p.reuseWhitespace;p.reuseWhitespace=!1;var i=new r(u(t).toString(p));return p.reuseWhitespace=n,i}}function a(e,t){return e.needsParens()?k(["(",t,")"]):t}function o(e,t,n){return E.ok(e instanceof I),a(e,s(e,t,n))}function s(e,t,n){var r=e.getValue();if(!r)return x("");if("string"==typeof r)return x(r,t);switch(C.Printable.assert(r),r.type){case"File":return e.call(n,"program");case"Program":return e.call(function(e){return l(e,t,n)},"body");case"Noop":case"EmptyStatement":return x("");case"ExpressionStatement":return k([e.call(n,"expression"),";"]);case"ParenthesizedExpression":return k(["(",e.call(n,"expression"),")"]);case"BinaryExpression":case"LogicalExpression":case"AssignmentExpression":return x(" ").join([e.call(n,"left"),r.operator,e.call(n,"right")]);case"AssignmentPattern":return k([e.call(n,"left"),"=",e.call(n,"right")]);case"MemberExpression":var i=[e.call(n,"object")],a=e.call(n,"property");return r.computed?i.push("[",a,"]"):i.push(".",a),k(i);case"MetaProperty":return k([e.call(n,"meta"),".",e.call(n,"property")]);case"BindExpression":var i=[];return r.object&&i.push(e.call(n,"object")),i.push("::",e.call(n,"callee")),k(i);case"Path":return x(".").join(r.body);case"Identifier":return k([x(r.name,t),e.call(n,"typeAnnotation")]);case"SpreadElement":case"SpreadElementPattern":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return k(["...",e.call(n,"argument")]);case"FunctionDeclaration":case"FunctionExpression":var i=[];return r.async&&i.push("async "),i.push("function"),r.generator&&i.push("*"),r.id&&i.push(" ",e.call(n,"id"),e.call(n,"typeParameters")),i.push("(",d(e,t,n),")",e.call(n,"returnType")," ",e.call(n,"body")),k(i);case"ArrowFunctionExpression":var i=[];return r.async&&i.push("async "),1!==r.params.length||r.rest||"SpreadElementPattern"===r.params[0].type||"RestElement"===r.params[0].type?i.push("(",d(e,t,n),")"):i.push(e.call(n,"params",0)),i.push(" => ",e.call(n,"body")),k(i);case"MethodDefinition":var i=[];return r.static&&i.push("static "),i.push(c(e,t,n)),k(i);case"YieldExpression":var i=["yield"];return r.delegate&&i.push("*"),r.argument&&i.push(" ",e.call(n,"argument")),k(i);case"AwaitExpression":var i=["await"];return r.all&&i.push("*"),r.argument&&i.push(" ",e.call(n,"argument")),k(i);case"ModuleDeclaration":var i=["module",e.call(n,"id")];return r.source?(E.ok(!r.body),i.push("from",e.call(n,"source"))):i.push(e.call(n,"body")),x(" ").join(i);case"ImportSpecifier":var i=[];return r.imported?(i.push(e.call(n,"imported")),r.local&&r.local.name!==r.imported.name&&i.push(" as ",e.call(n,"local"))):r.id&&(i.push(e.call(n,"id")),r.name&&i.push(" as ",e.call(n,"name"))),k(i);case"ExportSpecifier":var i=[];return r.local?(i.push(e.call(n,"local")),r.exported&&r.exported.name!==r.local.name&&i.push(" as ",e.call(n,"exported"))):r.id&&(i.push(e.call(n,"id")),r.name&&i.push(" as ",e.call(n,"name"))),k(i);case"ExportBatchSpecifier":return x("*");case"ImportNamespaceSpecifier":var i=["* as "];return r.local?i.push(e.call(n,"local")):r.id&&i.push(e.call(n,"id")),k(i);case"ImportDefaultSpecifier":return r.local?e.call(n,"local"):e.call(n,"id");case"ExportDeclaration":var i=["export"];if(r.default)i.push(" default");else if(r.specifiers&&r.specifiers.length>0)return 1===r.specifiers.length&&"ExportBatchSpecifier"===r.specifiers[0].type?i.push(" *"):i.push(" { ",x(", ").join(e.map(n,"specifiers"))," }"),r.source&&i.push(" from ",e.call(n,"source")),i.push(";"),k(i);if(r.declaration){var o=e.call(n,"declaration");i.push(" ",o),";"!==m(o)&&i.push(";")}return k(i);case"ExportDefaultDeclaration":return k(["export default ",e.call(n,"declaration")]);case"ExportNamedDeclaration":var i=["export "];return r.declaration&&i.push(e.call(n,"declaration")),r.specifiers&&r.specifiers.length>0&&i.push(r.declaration?", {":"{",x(", ").join(e.map(n,"specifiers")),"}"),r.source&&i.push(" from ",e.call(n,"source")),k(i);case"ExportAllDeclaration":var i=["export *"];return r.exported&&i.push(" as ",e.call(n,"exported")),k([" from ",e.call(n,"source")]);case"ExportNamespaceSpecifier":return k(["* as ",e.call(n,"exported")]);case"ExportDefaultSpecifier":return e.call(n,"exported");case"ImportDeclaration":var i=["import "];if(r.importKind&&"value"!==r.importKind&&i.push(r.importKind+" "),r.specifiers&&r.specifiers.length>0){var s=!1;e.each(function(e){var t=e.getName();t>0&&i.push(", ");var r=e.getValue();C.ImportDefaultSpecifier.check(r)||C.ImportNamespaceSpecifier.check(r)?E.strictEqual(s,!1):(C.ImportSpecifier.assert(r),s||(s=!0,i.push("{"))),i.push(n(e))},"specifiers"),s&&i.push("}"),i.push(" from ")}return i.push(e.call(n,"source"),";"),k(i);case"BlockStatement":var u=e.call(function(e){return l(e,t,n)},"body");return u.isEmpty()?x("{}"):k(["{\n",u.indent(t.tabWidth),"\n}"]);case"ReturnStatement":var i=["return"];if(r.argument){var g=e.call(n,"argument");g.length>1&&(C.XJSElement&&C.XJSElement.check(r.argument)||C.JSXElement&&C.JSXElement.check(r.argument))?i.push(" (\n",g.indent(t.tabWidth),"\n)"):i.push(" ",g)}return i.push(";"),k(i);case"CallExpression":return k([e.call(n,"callee"),f(e,t,n)]);case"ObjectExpression":case"ObjectPattern":case"ObjectTypeAnnotation":var b=!1,S="ObjectTypeAnnotation"===r.type,w=S?";":",",T=[];S&&T.push("indexers","callProperties"),T.push("properties");var A=0;T.forEach(function(e){A+=r[e].length});var L=S&&1===A||0===A,i=[L?"{":"{\n"],P=0;return T.forEach(function(r){e.each(function(e){var r=n(e);L||(r=r.indent(t.tabWidth));var a=!S&&r.length>1;a&&b&&i.push("\n"),i.push(r),P<A-1?(i.push(w+(a?"\n\n":"\n")),b=!a):1!==A&&S?i.push(w):t.trailingComma&&i.push(w),P++},r)}),i.push(L?"}":"\n}"),k(i);case"PropertyPattern":return k([e.call(n,"key"),": ",e.call(n,"pattern")]);case"Property":if(r.method||"get"===r.kind||"set"===r.kind)return c(e,t,n);var i=[];r.decorators&&e.each(function(e){i.push(n(e),"\n")},"decorators");var _=e.call(n,"key");return r.computed?i.push("[",_,"]"):i.push(_),r.shorthand||i.push(": ",e.call(n,"value")),k(i);case"Decorator":return k(["@",e.call(n,"expression")]);case"ArrayExpression":case"ArrayPattern":var I=r.elements,A=I.length,j=e.map(n,"elements"),O=x(", ").join(j),L=O.getLineLength(1)<=t.wrapColumn,i=[L?"[":"[\n"];return e.each(function(e){var n=e.getName(),r=e.getValue();if(r){var a=j[n];L?n>0&&i.push(" "):a=a.indent(t.tabWidth),i.push(a),(n<A-1||!L&&t.trailingComma)&&i.push(","),L||i.push("\n")}else i.push(",")},"elements"),i.push("]"),k(i);case"SequenceExpression":return x(", ").join(e.map(n,"expressions"));case"ThisExpression":return x("this");case"Super":return x("super");case"Literal":return"string"!=typeof r.value?x(r.value,t):x(v(r.value,t),t);case"ModuleSpecifier":if(r.local)throw new Error("The ESTree ModuleSpecifier type should be abstract");return x(v(r.value,t),t);case"UnaryExpression":var i=[r.operator];return/[a-z]$/.test(r.operator)&&i.push(" "),i.push(e.call(n,"argument")),k(i);case"UpdateExpression":var i=[e.call(n,"argument"),r.operator];return r.prefix&&i.reverse(),k(i);case"ConditionalExpression":return k(["(",e.call(n,"test")," ? ",e.call(n,"consequent")," : ",e.call(n,"alternate"),")"]);case"NewExpression":var i=["new ",e.call(n,"callee")],M=r.arguments;return M&&i.push(f(e,t,n)),k(i);case"VariableDeclaration":var i=[r.kind," "],N=0,j=e.map(function(e){var t=n(e);return N=Math.max(t.length,N),t},"declarations");1===N?i.push(x(", ").join(j)):j.length>1?i.push(x(",\n").join(j).indentTail(r.kind.length+1)):i.push(j[0]);var D=e.getParentNode();return C.ForStatement.check(D)||C.ForInStatement.check(D)||C.ForOfStatement&&C.ForOfStatement.check(D)||i.push(";"),k(i);case"VariableDeclarator":return r.init?x(" = ").join([e.call(n,"id"),e.call(n,"init")]):e.call(n,"id");case"WithStatement":return k(["with (",e.call(n,"object"),") ",e.call(n,"body")]);case"IfStatement":var R=h(e.call(n,"consequent"),t),i=["if (",e.call(n,"test"),")",R];return r.alternate&&i.push(y(R)?" else":"\nelse",h(e.call(n,"alternate"),t)),k(i);case"ForStatement":var B=e.call(n,"init"),F=B.length>1?";\n":"; ",X="for (",U=x(F).join([B,e.call(n,"test"),e.call(n,"update")]).indentTail(X.length),J=k([X,U,")"]),q=h(e.call(n,"body"),t),i=[J];return J.length>1&&(i.push("\n"),q=q.trimLeft()),i.push(q),k(i);case"WhileStatement":return k(["while (",e.call(n,"test"),")",h(e.call(n,"body"),t)]);case"ForInStatement":return k([r.each?"for each (":"for (",e.call(n,"left")," in ",e.call(n,"right"),")",h(e.call(n,"body"),t)]);case"ForOfStatement":return k(["for (",e.call(n,"left")," of ",e.call(n,"right"),")",h(e.call(n,"body"),t)]);case"DoWhileStatement":var V=k(["do",h(e.call(n,"body"),t)]),i=[V];return y(V)?i.push(" while"):i.push("\nwhile"),i.push(" (",e.call(n,"test"),");"),k(i);case"DoExpression":var z=e.call(function(e){return l(e,t,n)},"body");return k(["do {\n",z.indent(t.tabWidth),"\n}"]);case"BreakStatement":var i=["break"];return r.label&&i.push(" ",e.call(n,"label")),i.push(";"),k(i);case"ContinueStatement":var i=["continue"];return r.label&&i.push(" ",e.call(n,"label")),i.push(";"),k(i);case"LabeledStatement":return k([e.call(n,"label"),":\n",e.call(n,"body")]);case"TryStatement":var i=["try ",e.call(n,"block")];return r.handler?i.push(" ",e.call(n,"handler")):r.handlers&&e.each(function(e){i.push(" ",n(e))},"handlers"),r.finalizer&&i.push(" finally ",e.call(n,"finalizer")),k(i);case"CatchClause":var i=["catch (",e.call(n,"param")];return r.guard&&i.push(" if ",e.call(n,"guard")),i.push(") ",e.call(n,"body")),k(i);case"ThrowStatement":return k(["throw ",e.call(n,"argument"),";"]);case"SwitchStatement":return k(["switch (",e.call(n,"discriminant"),") {\n",x("\n").join(e.map(n,"cases")),"\n}"]);case"SwitchCase":var i=[];return r.test?i.push("case ",e.call(n,"test"),":"):i.push("default:"),r.consequent.length>0&&i.push("\n",e.call(function(e){return l(e,t,n)},"consequent").indent(t.tabWidth)),k(i);case"DebuggerStatement":return x("debugger;");case"XJSAttribute":case"JSXAttribute":var i=[e.call(n,"name")];return r.value&&i.push("=",e.call(n,"value")),k(i);case"XJSIdentifier":case"JSXIdentifier":return x(r.name,t);case"XJSNamespacedName":case"JSXNamespacedName":return x(":").join([e.call(n,"namespace"),e.call(n,"name")]);case"XJSMemberExpression":case"JSXMemberExpression":return x(".").join([e.call(n,"object"),e.call(n,"property")]);case"XJSSpreadAttribute":case"JSXSpreadAttribute":return k(["{...",e.call(n,"argument"),"}"]);case"XJSExpressionContainer":case"JSXExpressionContainer":return k(["{",e.call(n,"expression"),"}"]);case"XJSElement":case"JSXElement":var W=e.call(n,"openingElement");if(r.openingElement.selfClosing)return E.ok(!r.closingElement),W;var $=k(e.map(function(e){var t=e.getValue();if(C.Literal.check(t)&&"string"==typeof t.value){if(/\S/.test(t.value))return t.value.replace(/^\s+|\s+$/g,"");if(/\n/.test(t.value))return"\n"}return n(e)},"children")).indentTail(t.tabWidth),H=e.call(n,"closingElement");return k([W,$,H]);case"XJSOpeningElement":case"JSXOpeningElement":var i=["<",e.call(n,"name")],G=[];e.each(function(e){G.push(" ",n(e))},"attributes");var Y=k(G),K=Y.length>1||Y.getLineLength(1)>t.wrapColumn;return K&&(G.forEach(function(e,t){" "===e&&(E.strictEqual(t%2,0),G[t]="\n")}),Y=k(G).indentTail(t.tabWidth)),i.push(Y,r.selfClosing?" />":">"),k(i);case"XJSClosingElement":case"JSXClosingElement":return k(["</",e.call(n,"name"),">"]);case"XJSText":case"JSXText":return x(r.value,t);case"XJSEmptyExpression":case"JSXEmptyExpression":return x("");case"TypeAnnotatedIdentifier":return k([e.call(n,"annotation")," ",e.call(n,"identifier")]);case"ClassBody":return 0===r.body.length?x("{}"):k(["{\n",e.call(function(e){return l(e,t,n)},"body").indent(t.tabWidth),"\n}"]);case"ClassPropertyDefinition":var i=["static ",e.call(n,"definition")];return C.MethodDefinition.check(r.definition)||i.push(";"),k(i);case"ClassProperty":var i=[];return r.static&&i.push("static "),i.push(e.call(n,"key")),r.typeAnnotation&&i.push(e.call(n,"typeAnnotation")),r.value&&i.push(" = ",e.call(n,"value")),i.push(";"),k(i);case"ClassDeclaration":case"ClassExpression":var i=["class"];return r.id&&i.push(" ",e.call(n,"id"),e.call(n,"typeParameters")),r.superClass&&i.push(" extends ",e.call(n,"superClass"),e.call(n,"superTypeParameters")),r.implements&&i.push(" implements ",x(", ").join(e.map(n,"implements"))),i.push(" ",e.call(n,"body")),k(i);case"TemplateElement":return x(r.value.raw,t);case"TemplateLiteral":var Q=e.map(n,"expressions"),i=["`"];return e.each(function(e){var t=e.getName();i.push(n(e)),t<Q.length&&i.push("${",Q[t],"}")},"quasis"),i.push("`"),k(i);case"TaggedTemplateExpression":return k([e.call(n,"tag"),e.call(n,"quasi")]);case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"TupleTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(r.type));case"CommentBlock":case"Block":return k(["/*",x(r.value,t),"*/"]);case"CommentLine":case"Line":return k(["//",x(r.value,t)]);case"TypeAnnotation":var i=[];return r.typeAnnotation?("FunctionTypeAnnotation"!==r.typeAnnotation.type&&i.push(": "),i.push(e.call(n,"typeAnnotation")),k(i)):x("");case"AnyTypeAnnotation":return x("any",t);case"MixedTypeAnnotation":return x("mixed",t);case"ArrayTypeAnnotation":return k([e.call(n,"elementType"),"[]"]);case"BooleanTypeAnnotation":return x("boolean",t);case"BooleanLiteralTypeAnnotation":return E.strictEqual(typeof r.value,"boolean"),x(""+r.value,t);case"DeclareClass":return k([x("declare class ",t),e.call(n,"id")," ",e.call(n,"body")]);case"DeclareFunction":return k([x("declare function ",t),e.call(n,"id"),";"]);case"DeclareModule":return k([x("declare module ",t),e.call(n,"id")," ",e.call(n,"body")]);case"DeclareVariable":return k([x("declare var ",t),e.call(n,"id"),";"]);case"FunctionTypeAnnotation":var i=[],Z=e.getParentNode(0),ee=!(C.ObjectTypeCallProperty.check(Z)||C.DeclareFunction.check(e.getParentNode(2))),te=ee&&!C.FunctionTypeParam.check(Z);return te&&i.push(": "),i.push("(",x(", ").join(e.map(n,"params")),")"),r.returnType&&i.push(ee?" => ":": ",e.call(n,"returnType")),k(i);case"FunctionTypeParam":return k([e.call(n,"name"),": ",e.call(n,"typeAnnotation")]);case"GenericTypeAnnotation":return k([e.call(n,"id"),e.call(n,"typeParameters")]);case"InterfaceDeclaration":var i=[x("interface ",t),e.call(n,"id"),e.call(n,"typeParameters")," "];return r.extends&&i.push("extends ",x(", ").join(e.map(n,"extends"))),i.push(" ",e.call(n,"body")),k(i);case"ClassImplements":case"InterfaceExtends":return k([e.call(n,"id"),e.call(n,"typeParameters")]);case"IntersectionTypeAnnotation":return x(" & ").join(e.map(n,"types"));case"NullableTypeAnnotation":return k(["?",e.call(n,"typeAnnotation")]);case"NumberTypeAnnotation":return x("number",t);case"ObjectTypeCallProperty":return e.call(n,"value");case"ObjectTypeIndexer":return k(["[",e.call(n,"id"),": ",e.call(n,"key"),"]: ",e.call(n,"value")]);case"ObjectTypeProperty":return k([e.call(n,"key"),": ",e.call(n,"value")]);case"QualifiedTypeIdentifier":return k([e.call(n,"qualification"),".",e.call(n,"id")]);case"StringLiteralTypeAnnotation":return x(v(r.value,t),t);case"NumberLiteralTypeAnnotation":return E.strictEqual(typeof r.value,"number"),x(""+r.value,t);case"StringTypeAnnotation":return x("string",t);case"TypeAlias":return k(["type ",e.call(n,"id")," = ",e.call(n,"right"),";"]);case"TypeCastExpression":return k(["(",e.call(n,"expression"),e.call(n,"typeAnnotation"),")"]);case"TypeParameterDeclaration":case"TypeParameterInstantiation":return k(["<",x(", ").join(e.map(n,"params")),">"]);case"TypeofTypeAnnotation":return k([x("typeof ",t),e.call(n,"argument")]);case"UnionTypeAnnotation":return x(" | ").join(e.map(n,"types"));case"VoidTypeAnnotation":return x("void",t);case"ClassHeritage":case"ComprehensionBlock":case"ComprehensionExpression":case"Glob":case"GeneratorExpression":case"LetStatement":case"LetExpression":case"GraphExpression":case"GraphIndexExpression":case"XMLDefaultDeclaration":case"XMLAnyName":case"XMLQualifiedIdentifier":case"XMLFunctionQualifiedIdentifier":case"XMLAttributeSelector":case"XMLFilterExpression":case"XML":case"XMLElement":case"XMLList":case"XMLEscape":case"XMLText":case"XMLStartTag":case"XMLEndTag":case"XMLPointTag":case"XMLName":case"XMLAttribute":case"XMLCdata":case"XMLComment":case"XMLProcessingInstruction":default:throw new Error("unknown type: "+JSON.stringify(r.type))}return p}function l(e,t,n){var r=C.ClassBody&&C.ClassBody.check(e.getParentNode()),i=[],a=!1,o=!1;e.each(function(e){var t=(e.getName(),e.getValue());t&&"EmptyStatement"!==t.type&&(C.Comment.check(t)?a=!0:r||(C.Statement.assert(t),o=!0),i.push({node:t,printed:n(e)}))}),a&&E.strictEqual(o,!1,"Comments may appear as statements in otherwise empty statement lists, but may not coexist with non-Comment nodes.");var s=null,l=i.length,c=[];return i.forEach(function(e,n){var r,i,a=e.printed,o=e.node,p=a.length>1,f=n>0,d=n<l-1,h=o&&o.loc&&o.loc.lines,m=h&&t.reuseWhitespace&&j.getTrueLoc(o,h);if(f)if(m){var y=h.skipSpaces(m.start,!0),g=y?y.line:1,v=m.start.line-g;r=Array(v+1).join("\n")}else r=p?"\n\n":"\n";else r="";if(d)if(m){var b=h.skipSpaces(m.end),E=b?b.line:h.length,S=E-m.end.line;i=Array(S+1).join("\n")}else i=p?"\n\n":"\n";else i="";c.push(u(s,r),a),d?s=i:i&&c.push(i)}),k(c)}function u(e,t){if(!e&&!t)return x("");if(!e)return x(t);if(!t)return x(e);var n=x(e),r=x(t);return r.length>n.length?r:n}function c(e,t,n){var r=e.getNode(),i=r.kind,a=[];C.FunctionExpression.assert(r.value),r.decorators&&e.each(function(e){a.push(n(e),"\n")},"decorators"),r.value.async&&a.push("async "),i&&"init"!==i&&"method"!==i&&"constructor"!==i?(E.ok("get"===i||"set"===i),a.push(i," ")):r.value.generator&&a.push("*");var o=e.call(n,"key");return r.computed&&(o=k(["[",o,"]"])),a.push(o,e.call(n,"value","typeParameters"),"(",e.call(function(e){return d(e,t,n)},"value"),")",e.call(n,"value","returnType")," ",e.call(n,"value","body")),k(a)}function f(e,t,n){var r=e.map(n,"arguments"),i=x(", ").join(r);return i.getLineLength(1)>t.wrapColumn?(i=x(",\n").join(r),k(["(\n",i.indent(t.tabWidth),t.trailingComma?",\n)":"\n)"])):k(["(",i,")"])}function d(e,t,n){var r=e.getValue();C.Function.assert(r);var i=e.map(n,"params");r.defaults&&e.each(function(e){var t=e.getName(),r=i[t];r&&e.getValue()&&(i[t]=k([r,"=",n(e)]))},"defaults"),r.rest&&i.push(k(["...",e.call(n,"rest")]));var a=x(", ").join(i);return a.length>1||a.getLineLength(1)>t.wrapColumn?(a=x(",\n").join(i),t.trailingComma&&!r.rest&&(a=k([a,",\n"])),k(["\n",a.indent(t.tabWidth)])):a}function h(e,t){return k(e.length>1?[" ",e]:["\n",b(e).indent(t.tabWidth)])}function m(e){var t=e.lastPos();do{var n=e.charAt(t);if(/\S/.test(n))return n}while(e.prevPos(t))}function y(e){return"}"===m(e)}function g(e){return e.replace(/['"]/g,function(e){return'"'===e?"'":'"'})}function v(e,t){switch(P.assert(e),t.quote){case"auto":var n=JSON.stringify(e),r=g(JSON.stringify(g(e)));return n.length>r.length?r:n;case"single":return g(JSON.stringify(g(e)));case"double":default:return JSON.stringify(e)}}function b(e){var t=m(e);return!t||"\n};".indexOf(t)<0?k([e,";"]):e}var E=e("assert"),S=(e("source-map"),e("./comments").printComments),w=e("./lines"),x=w.fromString,k=w.concat,T=e("./options").normalize,A=e("./patcher").getReprinter,L=e("./types"),C=L.namedTypes,P=L.builtInTypes.string,_=L.builtInTypes.object,I=e("./fast-path"),j=e("./util"),O=r.prototype,M=!1;O.toString=function(){return M||(console.warn("Deprecation warning: recast.print now returns an object with a .code property. You appear to be treating the object as a string, which might still work but is strongly discouraged."),M=!0),this.code};var N=new r("");n.Printer=i},{"./comments":57,"./fast-path":58,"./lines":59,"./options":61,"./patcher":63,"./types":65,"./util":66,assert:2,"source-map":94}],65:[function(e,t,n){t.exports=e("ast-types")},{"ast-types":83}],66:[function(e,t,n){function r(){for(var e={},t=arguments.length,n=0;n<t;++n)for(var r=Object.keys(arguments[n]),i=r.length,a=0;a<i;++a)e[r[a]]=!0;return e}function i(e,t){return e.line-t.line||e.column-t.column}function a(e){return{line:e.line,column:e.column}}var o=(e("assert"),e("./types")),s=(o.getFieldValue,o.namedTypes),l=e("source-map"),u=l.SourceMapConsumer,c=l.SourceMapGenerator,p=Object.prototype.hasOwnProperty;n.getUnionOfKeys=r,n.comparePos=i,n.copyPos=a,n.composeSourceMaps=function(e,t){if(!e)return t||null;if(!t)return e;var n=new u(e),r=new u(t),i=new c({file:t.file,sourceRoot:t.sourceRoot}),o={};return r.eachMapping(function(e){var t=n.originalPositionFor({line:e.originalLine,column:e.originalColumn}),r=t.source;if(null!==r){i.addMapping({source:r,original:a(t),generated:{line:e.generatedLine,column:e.generatedColumn},name:e.name});var s=n.sourceContentFor(r);s&&!p.call(o,r)&&(o[r]=s,i.setSourceContent(r,s))}}),i.toJSON()},n.getTrueLoc=function(e,t){if(!e.loc)return null;var n=e.loc.start,r=e.loc.end;return e.comments&&e.comments.forEach(function(e){e.loc&&(i(e.loc.start,n)<0&&(n=e.loc.start),i(r,e.loc.end)<0&&(r=e.loc.end))}),{start:t.skipSpaces(n,!1,!1),end:t.skipSpaces(r,!0,!1)}},n.fixFaultyLocations=function(e){(s.MethodDefinition&&s.MethodDefinition.check(e)||s.Property.check(e)&&(e.method||e.shorthand))&&(e.value.loc=null,s.FunctionExpression.check(e.value)&&(e.value.id=null));var t=e.loc;t&&(t.start.line<1&&(t.start.line=1),t.end.line<1&&(t.end.line=1))}},{"./types":65,assert:2,"source-map":94}],67:[function(e,t,n){(function(t){function r(e,t){return new p(t).print(e)}function i(e,t){return new p(t).printGenerically(e)}function a(e,n){return o(t.argv[2],e,n)}function o(t,n,r){e("fs").readFile(t,"utf-8",function(e,t){return e?void console.error(e):void l(t,n,r)})}function s(e){t.stdout.write(e)}function l(e,t,n){var i=n&&n.writeback||s;t(c(e,n),function(e){i(r(e,n).code)})}var u=e("./lib/types"),c=e("./lib/parser").parse,p=e("./lib/printer").Printer;Object.defineProperties(n,{parse:{enumerable:!0,value:c},visit:{enumerable:!0,value:u.visit},print:{enumerable:!0,value:r},prettyPrint:{enumerable:!1,value:i},types:{enumerable:!1,value:u},run:{enumerable:!1,value:a}})}).call(this,e("_process"))},{"./lib/parser":62,"./lib/printer":64,"./lib/types":65,_process:13,fs:1}],68:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=e("../lib/shared").defaults,a=r.Type.def,o=r.Type.or;a("Noop").bases("Node").build(),a("DoExpression").bases("Expression").build("body").field("body",[a("Statement")]),a("Super").bases("Expression").build(),a("BindExpression").bases("Expression").build("object","callee").field("object",o(a("Expression"),null)).field("callee",a("Expression")),a("Decorator").bases("Node").build("expression").field("expression",a("Expression")),a("Property").field("decorators",o([a("Decorator")],null),i.null),a("MethodDefinition").field("decorators",o([a("Decorator")],null),i.null),a("MetaProperty").bases("Expression").build("meta","property").field("meta",a("Identifier")).field("property",a("Identifier")),a("ParenthesizedExpression").bases("Expression").build("expression").field("expression",a("Expression")),a("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",a("Identifier")),a("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local"),a("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local"),a("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",o(a("Declaration"),a("Expression"))),a("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",o(a("Declaration"),null)).field("specifiers",[a("ExportSpecifier")],i.emptyArray).field("source",o(a("Literal"),null),i.null),a("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",a("Identifier")),a("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",a("Identifier")),a("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",a("Identifier")),a("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",o(a("Identifier"),null)).field("source",a("Literal")),a("CommentBlock").bases("Comment").build("value","leading","trailing"),a("CommentLine").bases("Comment").build("value","leading","trailing")},{"../lib/shared":81,"../lib/types":82,"./es7":72}],69:[function(e,t,n){var r=e("../lib/types"),i=r.Type,a=i.def,o=i.or,s=e("../lib/shared"),l=s.defaults,u=s.geq;a("Printable").field("loc",o(a("SourceLocation"),null),l.null,!0),a("Node").bases("Printable").field("type",String).field("comments",o([a("Comment")],null),l.null,!0),a("SourceLocation").build("start","end","source").field("start",a("Position")).field("end",a("Position")).field("source",o(String,null),l.null),a("Position").build("line","column").field("line",u(1)).field("column",u(0)),a("File").bases("Node").build("program").field("program",a("Program")),a("Program").bases("Node").build("body").field("body",[a("Statement")]),a("Function").bases("Node").field("id",o(a("Identifier"),null),l.null).field("params",[a("Pattern")]).field("body",a("BlockStatement")),a("Statement").bases("Node"),a("EmptyStatement").bases("Statement").build(),a("BlockStatement").bases("Statement").build("body").field("body",[a("Statement")]),a("ExpressionStatement").bases("Statement").build("expression").field("expression",a("Expression")),a("IfStatement").bases("Statement").build("test","consequent","alternate").field("test",a("Expression")).field("consequent",a("Statement")).field("alternate",o(a("Statement"),null),l.null),a("LabeledStatement").bases("Statement").build("label","body").field("label",a("Identifier")).field("body",a("Statement")),a("BreakStatement").bases("Statement").build("label").field("label",o(a("Identifier"),null),l.null),a("ContinueStatement").bases("Statement").build("label").field("label",o(a("Identifier"),null),l.null),a("WithStatement").bases("Statement").build("object","body").field("object",a("Expression")).field("body",a("Statement")),a("SwitchStatement").bases("Statement").build("discriminant","cases","lexical").field("discriminant",a("Expression")).field("cases",[a("SwitchCase")]).field("lexical",Boolean,l.false),a("ReturnStatement").bases("Statement").build("argument").field("argument",o(a("Expression"),null)),a("ThrowStatement").bases("Statement").build("argument").field("argument",a("Expression")),a("TryStatement").bases("Statement").build("block","handler","finalizer").field("block",a("BlockStatement")).field("handler",o(a("CatchClause"),null),function(){return this.handlers&&this.handlers[0]||null}).field("handlers",[a("CatchClause")],function(){return this.handler?[this.handler]:[]},!0).field("guardedHandlers",[a("CatchClause")],l.emptyArray).field("finalizer",o(a("BlockStatement"),null),l.null),a("CatchClause").bases("Node").build("param","guard","body").field("param",a("Pattern")).field("guard",o(a("Expression"),null),l.null).field("body",a("BlockStatement")),a("WhileStatement").bases("Statement").build("test","body").field("test",a("Expression")).field("body",a("Statement")),a("DoWhileStatement").bases("Statement").build("body","test").field("body",a("Statement")).field("test",a("Expression")),a("ForStatement").bases("Statement").build("init","test","update","body").field("init",o(a("VariableDeclaration"),a("Expression"),null)).field("test",o(a("Expression"),null)).field("update",o(a("Expression"),null)).field("body",a("Statement")),a("ForInStatement").bases("Statement").build("left","right","body").field("left",o(a("VariableDeclaration"),a("Expression"))).field("right",a("Expression")).field("body",a("Statement")),a("DebuggerStatement").bases("Statement").build(),a("Declaration").bases("Statement"),a("FunctionDeclaration").bases("Function","Declaration").build("id","params","body").field("id",a("Identifier")),a("FunctionExpression").bases("Function","Expression").build("id","params","body"),a("VariableDeclaration").bases("Declaration").build("kind","declarations").field("kind",o("var","let","const")).field("declarations",[a("VariableDeclarator")]),a("VariableDeclarator").bases("Node").build("id","init").field("id",a("Pattern")).field("init",o(a("Expression"),null)),a("Expression").bases("Node","Pattern"),a("ThisExpression").bases("Expression").build(),a("ArrayExpression").bases("Expression").build("elements").field("elements",[o(a("Expression"),null)]),a("ObjectExpression").bases("Expression").build("properties").field("properties",[a("Property")]),a("Property").bases("Node").build("kind","key","value").field("kind",o("init","get","set")).field("key",o(a("Literal"),a("Identifier"))).field("value",a("Expression")),a("SequenceExpression").bases("Expression").build("expressions").field("expressions",[a("Expression")]);var c=o("-","+","!","~","typeof","void","delete");a("UnaryExpression").bases("Expression").build("operator","argument","prefix").field("operator",c).field("argument",a("Expression")).field("prefix",Boolean,l.true);var p=o("==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","&","|","^","in","instanceof","..");a("BinaryExpression").bases("Expression").build("operator","left","right").field("operator",p).field("left",a("Expression")).field("right",a("Expression"));var f=o("=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","^=","&=");a("AssignmentExpression").bases("Expression").build("operator","left","right").field("operator",f).field("left",a("Pattern")).field("right",a("Expression"));var d=o("++","--");a("UpdateExpression").bases("Expression").build("operator","argument","prefix").field("operator",d).field("argument",a("Expression")).field("prefix",Boolean);var h=o("||","&&");a("LogicalExpression").bases("Expression").build("operator","left","right").field("operator",h).field("left",a("Expression")).field("right",a("Expression")),a("ConditionalExpression").bases("Expression").build("test","consequent","alternate").field("test",a("Expression")).field("consequent",a("Expression")).field("alternate",a("Expression")),a("NewExpression").bases("Expression").build("callee","arguments").field("callee",a("Expression")).field("arguments",[a("Expression")]),a("CallExpression").bases("Expression").build("callee","arguments").field("callee",a("Expression")).field("arguments",[a("Expression")]),a("MemberExpression").bases("Expression").build("object","property","computed").field("object",a("Expression")).field("property",o(a("Identifier"),a("Expression"))).field("computed",Boolean,l.false),a("Pattern").bases("Node"),a("SwitchCase").bases("Node").build("test","consequent").field("test",o(a("Expression"),null)).field("consequent",[a("Statement")]),a("Identifier").bases("Node","Expression","Pattern").build("name").field("name",String),a("Literal").bases("Node","Expression").build("value").field("value",o(String,Boolean,null,Number,RegExp)).field("regex",o({pattern:String,flags:String},null),function(){if(this.value instanceof RegExp){var e="";return this.value.ignoreCase&&(e+="i"),this.value.multiline&&(e+="m"),this.value.global&&(e+="g"),{pattern:this.value.source,flags:e}}return null}),a("Comment").bases("Printable").field("value",String).field("leading",Boolean,l.true).field("trailing",Boolean,l.false)},{"../lib/shared":81,"../lib/types":82}],70:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or;i("XMLDefaultDeclaration").bases("Declaration").field("namespace",i("Expression")),i("XMLAnyName").bases("Expression"),i("XMLQualifiedIdentifier").bases("Expression").field("left",a(i("Identifier"),i("XMLAnyName"))).field("right",a(i("Identifier"),i("Expression"))).field("computed",Boolean),
-i("XMLFunctionQualifiedIdentifier").bases("Expression").field("right",a(i("Identifier"),i("Expression"))).field("computed",Boolean),i("XMLAttributeSelector").bases("Expression").field("attribute",i("Expression")),i("XMLFilterExpression").bases("Expression").field("left",i("Expression")).field("right",i("Expression")),i("XMLElement").bases("XML","Expression").field("contents",[i("XML")]),i("XMLList").bases("XML","Expression").field("contents",[i("XML")]),i("XML").bases("Node"),i("XMLEscape").bases("XML").field("expression",i("Expression")),i("XMLText").bases("XML").field("text",String),i("XMLStartTag").bases("XML").field("contents",[i("XML")]),i("XMLEndTag").bases("XML").field("contents",[i("XML")]),i("XMLPointTag").bases("XML").field("contents",[i("XML")]),i("XMLName").bases("XML").field("contents",a(String,[i("XML")])),i("XMLAttribute").bases("XML").field("value",String),i("XMLCdata").bases("XML").field("contents",String),i("XMLComment").bases("XML").field("contents",String),i("XMLProcessingInstruction").bases("XML").field("target",String).field("contents",a(String,null))},{"../lib/types":82,"./core":69}],71:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared").defaults;i("Function").field("generator",Boolean,o.false).field("expression",Boolean,o.false).field("defaults",[a(i("Expression"),null)],o.emptyArray).field("rest",a(i("Identifier"),null),o.null),i("RestElement").bases("Pattern").build("argument").field("argument",i("Pattern")),i("SpreadElementPattern").bases("Pattern").build("argument").field("argument",i("Pattern")),i("FunctionDeclaration").build("id","params","body","generator","expression"),i("FunctionExpression").build("id","params","body","generator","expression"),i("ArrowFunctionExpression").bases("Function","Expression").build("params","body","expression").field("id",null,o.null).field("body",a(i("BlockStatement"),i("Expression"))).field("generator",!1,o.false),i("YieldExpression").bases("Expression").build("argument","delegate").field("argument",a(i("Expression"),null)).field("delegate",Boolean,o.false),i("GeneratorExpression").bases("Expression").build("body","blocks","filter").field("body",i("Expression")).field("blocks",[i("ComprehensionBlock")]).field("filter",a(i("Expression"),null)),i("ComprehensionExpression").bases("Expression").build("body","blocks","filter").field("body",i("Expression")).field("blocks",[i("ComprehensionBlock")]).field("filter",a(i("Expression"),null)),i("ComprehensionBlock").bases("Node").build("left","right","each").field("left",i("Pattern")).field("right",i("Expression")).field("each",Boolean),i("Property").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("value",a(i("Expression"),i("Pattern"))).field("method",Boolean,o.false).field("shorthand",Boolean,o.false).field("computed",Boolean,o.false),i("PropertyPattern").bases("Pattern").build("key","pattern").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("pattern",i("Pattern")).field("computed",Boolean,o.false),i("ObjectPattern").bases("Pattern").build("properties").field("properties",[a(i("PropertyPattern"),i("Property"))]),i("ArrayPattern").bases("Pattern").build("elements").field("elements",[a(i("Pattern"),null)]),i("MethodDefinition").bases("Declaration").build("kind","key","value","static").field("kind",a("constructor","method","get","set")).field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("value",i("Function")).field("computed",Boolean,o.false).field("static",Boolean,o.false),i("SpreadElement").bases("Node").build("argument").field("argument",i("Expression")),i("ArrayExpression").field("elements",[a(i("Expression"),i("SpreadElement"),i("RestElement"),null)]),i("NewExpression").field("arguments",[a(i("Expression"),i("SpreadElement"))]),i("CallExpression").field("arguments",[a(i("Expression"),i("SpreadElement"))]),i("AssignmentPattern").bases("Pattern").build("left","right").field("left",i("Pattern")).field("right",i("Expression"));var s=a(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"));i("ClassProperty").bases("Declaration").build("key").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("computed",Boolean,o.false),i("ClassPropertyDefinition").bases("Declaration").build("definition").field("definition",s),i("ClassBody").bases("Declaration").build("body").field("body",[s]),i("ClassDeclaration").bases("Declaration").build("id","body","superClass").field("id",a(i("Identifier"),null)).field("body",i("ClassBody")).field("superClass",a(i("Expression"),null),o.null),i("ClassExpression").bases("Expression").build("id","body","superClass").field("id",a(i("Identifier"),null),o.null).field("body",i("ClassBody")).field("superClass",a(i("Expression"),null),o.null).field("implements",[i("ClassImplements")],o.emptyArray),i("ClassImplements").bases("Node").build("id").field("id",i("Identifier")).field("superClass",a(i("Expression"),null),o.null),i("Specifier").bases("Node"),i("ModuleSpecifier").bases("Specifier").field("local",a(i("Identifier"),null),o.null).field("id",a(i("Identifier"),null),o.null).field("name",a(i("Identifier"),null),o.null),i("TaggedTemplateExpression").bases("Expression").build("tag","quasi").field("tag",i("Expression")).field("quasi",i("TemplateLiteral")),i("TemplateLiteral").bases("Expression").build("quasis","expressions").field("quasis",[i("TemplateElement")]).field("expressions",[i("Expression")]),i("TemplateElement").bases("Node").build("value","tail").field("value",{cooked:String,raw:String}).field("tail",Boolean)},{"../lib/shared":81,"../lib/types":82,"./core":69}],72:[function(e,t,n){e("./es6");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=(r.builtInTypes,e("../lib/shared").defaults);i("Function").field("async",Boolean,o.false),i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression")),i("ObjectExpression").field("properties",[a(i("Property"),i("SpreadProperty"))]),i("SpreadPropertyPattern").bases("Pattern").build("argument").field("argument",i("Pattern")),i("ObjectPattern").field("properties",[a(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"))]),i("AwaitExpression").bases("Expression").build("argument","all").field("argument",a(i("Expression"),null)).field("all",Boolean,o.false)},{"../lib/shared":81,"../lib/types":82,"./es6":71}],73:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=e("../lib/shared").defaults,a=r.Type.def,o=r.Type.or;a("VariableDeclaration").field("declarations",[o(a("VariableDeclarator"),a("Identifier"))]),a("Property").field("value",o(a("Expression"),a("Pattern"))),a("ArrayPattern").field("elements",[o(a("Pattern"),a("SpreadElement"),null)]),a("ObjectPattern").field("properties",[o(a("Property"),a("PropertyPattern"),a("SpreadPropertyPattern"),a("SpreadProperty"))]),a("ExportSpecifier").bases("ModuleSpecifier").build("id","name"),a("ExportBatchSpecifier").bases("Specifier").build(),a("ImportSpecifier").bases("ModuleSpecifier").build("id","name"),a("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("id"),a("ImportDefaultSpecifier").bases("ModuleSpecifier").build("id"),a("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",o(a("Declaration"),a("Expression"),null)).field("specifiers",[o(a("ExportSpecifier"),a("ExportBatchSpecifier"))],i.emptyArray).field("source",o(a("Literal"),null),i.null),a("ImportDeclaration").bases("Declaration").build("specifiers","source").field("specifiers",[o(a("ImportSpecifier"),a("ImportNamespaceSpecifier"),a("ImportDefaultSpecifier"))],i.emptyArray).field("source",a("Literal")),a("Block").bases("Comment").build("value","leading","trailing"),a("Line").bases("Comment").build("value","leading","trailing")},{"../lib/shared":81,"../lib/types":82,"./es7":72}],74:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared").defaults;i("JSXAttribute").bases("Node").build("name","value").field("name",a(i("JSXIdentifier"),i("JSXNamespacedName"))).field("value",a(i("Literal"),i("JSXExpressionContainer"),null),o.null),i("JSXIdentifier").bases("Identifier").build("name").field("name",String),i("JSXNamespacedName").bases("Node").build("namespace","name").field("namespace",i("JSXIdentifier")).field("name",i("JSXIdentifier")),i("JSXMemberExpression").bases("MemberExpression").build("object","property").field("object",a(i("JSXIdentifier"),i("JSXMemberExpression"))).field("property",i("JSXIdentifier")).field("computed",Boolean,o.false);var s=a(i("JSXIdentifier"),i("JSXNamespacedName"),i("JSXMemberExpression"));i("JSXSpreadAttribute").bases("Node").build("argument").field("argument",i("Expression"));var l=[a(i("JSXAttribute"),i("JSXSpreadAttribute"))];i("JSXExpressionContainer").bases("Expression").build("expression").field("expression",i("Expression")),i("JSXElement").bases("Expression").build("openingElement","closingElement","children").field("openingElement",i("JSXOpeningElement")).field("closingElement",a(i("JSXClosingElement"),null),o.null).field("children",[a(i("JSXElement"),i("JSXExpressionContainer"),i("JSXText"),i("Literal"))],o.emptyArray).field("name",s,function(){return this.openingElement.name},!0).field("selfClosing",Boolean,function(){return this.openingElement.selfClosing},!0).field("attributes",l,function(){return this.openingElement.attributes},!0),i("JSXOpeningElement").bases("Node").build("name","attributes","selfClosing").field("name",s).field("attributes",l,o.emptyArray).field("selfClosing",Boolean,o.false),i("JSXClosingElement").bases("Node").build("name").field("name",s),i("JSXText").bases("Literal").build("value").field("value",String),i("JSXEmptyExpression").bases("Expression").build(),i("Type").bases("Node"),i("AnyTypeAnnotation").bases("Type").build(),i("MixedTypeAnnotation").bases("Type").build(),i("VoidTypeAnnotation").bases("Type").build(),i("NumberTypeAnnotation").bases("Type").build(),i("NumberLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),i("StringTypeAnnotation").bases("Type").build(),i("StringLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",String).field("raw",String),i("BooleanTypeAnnotation").bases("Type").build(),i("BooleanLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Boolean).field("raw",String),i("TypeAnnotation").bases("Node").build("typeAnnotation").field("typeAnnotation",i("Type")),i("NullableTypeAnnotation").bases("Type").build("typeAnnotation").field("typeAnnotation",i("Type")),i("FunctionTypeAnnotation").bases("Type").build("params","returnType","rest","typeParameters").field("params",[i("FunctionTypeParam")]).field("returnType",i("Type")).field("rest",a(i("FunctionTypeParam"),null)).field("typeParameters",a(i("TypeParameterDeclaration"),null)),i("FunctionTypeParam").bases("Node").build("name","typeAnnotation","optional").field("name",i("Identifier")).field("typeAnnotation",i("Type")).field("optional",Boolean),i("ArrayTypeAnnotation").bases("Type").build("elementType").field("elementType",i("Type")),i("ObjectTypeAnnotation").bases("Type").build("properties").field("properties",[i("ObjectTypeProperty")]).field("indexers",[i("ObjectTypeIndexer")],o.emptyArray).field("callProperties",[i("ObjectTypeCallProperty")],o.emptyArray),i("ObjectTypeProperty").bases("Node").build("key","value","optional").field("key",a(i("Literal"),i("Identifier"))).field("value",i("Type")).field("optional",Boolean),i("ObjectTypeIndexer").bases("Node").build("id","key","value").field("id",i("Identifier")).field("key",i("Type")).field("value",i("Type")),i("ObjectTypeCallProperty").bases("Node").build("value").field("value",i("FunctionTypeAnnotation")).field("static",Boolean,!1),i("QualifiedTypeIdentifier").bases("Node").build("qualification","id").field("qualification",a(i("Identifier"),i("QualifiedTypeIdentifier"))).field("id",i("Identifier")),i("GenericTypeAnnotation").bases("Type").build("id","typeParameters").field("id",a(i("Identifier"),i("QualifiedTypeIdentifier"))).field("typeParameters",a(i("TypeParameterInstantiation"),null)),i("MemberTypeAnnotation").bases("Type").build("object","property").field("object",i("Identifier")).field("property",a(i("MemberTypeAnnotation"),i("GenericTypeAnnotation"))),i("UnionTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("IntersectionTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("TypeofTypeAnnotation").bases("Type").build("argument").field("argument",i("Type")),i("Identifier").field("typeAnnotation",a(i("TypeAnnotation"),null),o.null),i("TypeParameterDeclaration").bases("Node").build("params").field("params",[i("Identifier")]),i("TypeParameterInstantiation").bases("Node").build("params").field("params",[i("Type")]),i("Function").field("returnType",a(i("TypeAnnotation"),null),o.null).field("typeParameters",a(i("TypeParameterDeclaration"),null),o.null),i("ClassProperty").build("key","value","typeAnnotation","static").field("value",a(i("Expression"),null)).field("typeAnnotation",a(i("TypeAnnotation"),null)).field("static",Boolean,o.false),i("ClassImplements").field("typeParameters",a(i("TypeParameterInstantiation"),null),o.null),i("InterfaceDeclaration").bases("Statement").build("id","body","extends").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterDeclaration"),null),o.null).field("body",i("ObjectTypeAnnotation")).field("extends",[i("InterfaceExtends")]),i("InterfaceExtends").bases("Node").build("id").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterInstantiation"),null)),i("TypeAlias").bases("Statement").build("id","typeParameters","right").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterDeclaration"),null)).field("right",i("Type")),i("TypeCastExpression").bases("Expression").build("expression","typeAnnotation").field("expression",i("Expression")).field("typeAnnotation",i("TypeAnnotation")),i("TupleTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("DeclareVariable").bases("Statement").build("id").field("id",i("Identifier")),i("DeclareFunction").bases("Statement").build("id").field("id",i("Identifier")),i("DeclareClass").bases("InterfaceDeclaration").build("id"),i("DeclareModule").bases("Statement").build("id","body").field("id",a(i("Identifier"),i("Literal"))).field("body",i("BlockStatement"))},{"../lib/shared":81,"../lib/types":82,"./es7":72}],75:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared"),s=o.geq,l=o.defaults;i("Function").field("body",a(i("BlockStatement"),i("Expression"))),i("ForInStatement").build("left","right","body","each").field("each",Boolean,l.false),i("ForOfStatement").bases("Statement").build("left","right","body").field("left",a(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement")),i("LetStatement").bases("Statement").build("head","body").field("head",[i("VariableDeclarator")]).field("body",i("Statement")),i("LetExpression").bases("Expression").build("head","body").field("head",[i("VariableDeclarator")]).field("body",i("Expression")),i("GraphExpression").bases("Expression").build("index","expression").field("index",s(0)).field("expression",i("Literal")),i("GraphIndexExpression").bases("Expression").build("index").field("index",s(0))},{"../lib/shared":81,"../lib/types":82,"./core":69}],76:[function(e,t,n){function r(e,t,n){return p.check(n)?n.length=0:n=null,a(e,t,n)}function i(e){return/[_$a-z][_$a-z0-9]*/i.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function a(e,t,n){return e===t||(p.check(e)?o(e,t,n):f.check(e)?s(e,t,n):d.check(e)?d.check(t)&&+e===+t:h.check(e)?h.check(t)&&e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.ignoreCase===t.ignoreCase:e==t)}function o(e,t,n){p.assert(e);var r=e.length;if(!p.check(t)||t.length!==r)return n&&n.push("length"),!1;for(var i=0;i<r;++i){if(n&&n.push(i),i in e!=i in t)return!1;if(!a(e[i],t[i],n))return!1;if(n){var o=n.pop();if(o!==i)throw new Error(""+o)}}return!0}function s(e,t,n){if(f.assert(e),!f.check(t))return!1;if(e.type!==t.type)return n&&n.push("type"),!1;var r=u(e),i=r.length,o=u(t),s=o.length;if(i===s){for(var l=0;l<i;++l){var p=r[l],d=c(e,p),h=c(t,p);if(n&&n.push(p),!a(d,h,n))return!1;if(n){var y=n.pop();if(y!==p)throw new Error(""+y)}}return!0}if(!n)return!1;var g=Object.create(null);for(l=0;l<i;++l)g[r[l]]=!0;for(l=0;l<s;++l){if(p=o[l],!m.call(g,p))return n.push(p),!1;delete g[p]}for(p in g){n.push(p);break}return!1}var l=e("../main"),u=l.getFieldNames,c=l.getFieldValue,p=l.builtInTypes.array,f=l.builtInTypes.object,d=l.builtInTypes.Date,h=l.builtInTypes.RegExp,m=Object.prototype.hasOwnProperty;r.assert=function(e,t){var n=[];if(!r(e,t,n)){if(0!==n.length)throw new Error("Nodes differ in the following path: "+n.map(i).join(""));if(e!==t)throw new Error("Nodes must be equal")}},t.exports=r},{"../main":83}],77:[function(e,t,n){function r(e,t,n){if(!(this instanceof r))throw new Error("NodePath constructor cannot be invoked without 'new'");h.call(this,e,t,n)}function i(e){return c.BinaryExpression.check(e)||c.LogicalExpression.check(e)}function a(e){return!!c.CallExpression.check(e)||(d.check(e)?e.some(a):!!c.Node.check(e)&&u.someField(e,function(e,t){return a(t)}))}function o(e){for(var t,n;e.parent;e=e.parent){if(t=e.node,n=e.parent.node,c.BlockStatement.check(n)&&"body"===e.parent.name&&0===e.name){if(n.body[0]!==t)throw new Error("Nodes must be equal");return!0}if(c.ExpressionStatement.check(n)&&"expression"===e.name){if(n.expression!==t)throw new Error("Nodes must be equal");return!0}if(c.SequenceExpression.check(n)&&"expressions"===e.parent.name&&0===e.name){if(n.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(c.CallExpression.check(n)&&"callee"===e.name){if(n.callee!==t)throw new Error("Nodes must be equal")}else if(c.MemberExpression.check(n)&&"object"===e.name){if(n.object!==t)throw new Error("Nodes must be equal")}else if(c.ConditionalExpression.check(n)&&"test"===e.name){if(n.test!==t)throw new Error("Nodes must be equal")}else if(i(n)&&"left"===e.name){if(n.left!==t)throw new Error("Nodes must be equal")}else{if(!c.UnaryExpression.check(n)||n.prefix||"argument"!==e.name)return!1;if(n.argument!==t)throw new Error("Nodes must be equal")}}return!0}function s(e){if(c.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||0===t.length)return e.prune()}else if(c.ExpressionStatement.check(e.node)){if(!e.get("expression").value)return e.prune()}else c.IfStatement.check(e.node)&&l(e);return e}function l(e){var t=e.get("test").value,n=e.get("alternate").value,r=e.get("consequent").value;if(r||n){if(!r&&n){var i=p.unaryExpression("!",t,!0);c.UnaryExpression.check(t)&&"!"===t.operator&&(i=t.argument),e.get("test").replace(i),e.get("consequent").replace(n),e.get("alternate").replace()}}else{var a=p.expressionStatement(t);e.replace(a)}}var u=e("./types"),c=u.namedTypes,p=u.builders,f=u.builtInTypes.number,d=u.builtInTypes.array,h=e("./path"),m=e("./scope"),y=r.prototype=Object.create(h.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}});Object.defineProperties(y,{node:{get:function(){return Object.defineProperty(this,"node",{configurable:!0,value:this._computeNode()}),this.node}},parent:{get:function(){return Object.defineProperty(this,"parent",{configurable:!0,value:this._computeParent()}),this.parent}},scope:{get:function(){return Object.defineProperty(this,"scope",{configurable:!0,value:this._computeScope()}),this.scope}}}),y.replace=function(){return delete this.node,delete this.parent,delete this.scope,h.prototype.replace.apply(this,arguments)},y.prune=function(){var e=this.parent;return this.replace(),s(e)},y._computeNode=function(){var e=this.value;if(c.Node.check(e))return e;var t=this.parentPath;return t&&t.node||null},y._computeParent=function(){var e=this.value,t=this.parentPath;if(!c.Node.check(e)){for(;t&&!c.Node.check(t.value);)t=t.parentPath;t&&(t=t.parentPath)}for(;t&&!c.Node.check(t.value);)t=t.parentPath;return t||null},y._computeScope=function(){var e=this.value,t=this.parentPath,n=t&&t.scope;return c.Node.check(e)&&m.isEstablishedBy(e)&&(n=new m(this,n)),n||null},y.getValueProperty=function(e){return u.getFieldValue(this.value,e)},y.needsParens=function(e){var t=this.parentPath;if(!t)return!1;var n=this.value;if(!c.Expression.check(n))return!1;if("Identifier"===n.type)return!1;for(;!c.Node.check(t.value);)if(t=t.parentPath,!t)return!1;var r=t.value;switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===r.type&&"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":switch(r.type){case"CallExpression":return"callee"===this.name&&r.callee===n;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":var i=r.operator,t=g[i],o=n.operator,s=g[o];if(t>s)return!0;if(t===s&&"right"===this.name){if(r.right!==n)throw new Error("Nodes must be equal");return!0}default:return!1}case"SequenceExpression":switch(r.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==this.name;default:return!0}case"YieldExpression":switch(r.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===r.type&&f.check(n.value)&&"object"===this.name&&r.object===n;case"AssignmentExpression":case"ConditionalExpression":switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===this.name&&r.callee===n;case"ConditionalExpression":return"test"===this.name&&r.test===n;case"MemberExpression":return"object"===this.name&&r.object===n;default:return!1}default:if("NewExpression"===r.type&&"callee"===this.name&&r.callee===n)return a(n)}return!(e===!0||this.canBeFirstInStatement()||!this.firstInStatement())};var g={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){g[e]=t})}),y.canBeFirstInStatement=function(){var e=this.node;return!c.FunctionExpression.check(e)&&!c.ObjectExpression.check(e)},y.firstInStatement=function(){return o(this)},t.exports=r},{"./path":79,"./scope":80,"./types":82}],78:[function(e,t,n){function r(){if(!(this instanceof r))throw new Error("PathVisitor constructor cannot be invoked without 'new'");this._reusableContextStack=[],this._methodNameTable=i(this),this._shouldVisitComments=h.call(this._methodNameTable,"Block")||h.call(this._methodNameTable,"Line"),this.Context=s(this),this._visiting=!1,this._changeReported=!1}function i(e){var t=Object.create(null);for(var n in e)/^visit[A-Z]/.test(n)&&(t[n.slice("visit".length)]=!0);for(var r=u.computeSupertypeLookupTable(t),i=Object.create(null),t=Object.keys(r),a=t.length,o=0;o<a;++o){var s=t[o];n="visit"+r[s],d.check(e[n])&&(i[s]=n)}return i}function a(e,t){for(var n in t)h.call(t,n)&&(e[n]=t[n]);return e}function o(e,t){if(!(e instanceof c))throw new Error("");if(!(t instanceof r))throw new Error("");var n=e.value;if(p.check(n))e.each(t.visitWithoutReset,t);else if(f.check(n)){var i=u.getFieldNames(n);t._shouldVisitComments&&n.comments&&i.indexOf("comments")<0&&i.push("comments");for(var a=i.length,o=[],s=0;s<a;++s){var l=i[s];h.call(n,l)||(n[l]=u.getFieldValue(n,l)),o.push(e.get(l))}for(var s=0;s<a;++s)t.visitWithoutReset(o[s])}else;return e.value}function s(e){function t(n){if(!(this instanceof t))throw new Error("");if(!(this instanceof r))throw new Error("");if(!(n instanceof c))throw new Error("");Object.defineProperty(this,"visitor",{value:e,writable:!1,enumerable:!0,configurable:!1}),this.currentPath=n,this.needToCallTraverse=!0,Object.seal(this)}if(!(e instanceof r))throw new Error("");var n=t.prototype=Object.create(e);return n.constructor=t,a(n,y),t}var l,u=e("./types"),c=e("./node-path"),p=(u.namedTypes.Printable,u.builtInTypes.array),f=u.builtInTypes.object,d=u.builtInTypes.function,h=Object.prototype.hasOwnProperty;r.fromMethodsObject=function(e){function t(){if(!(this instanceof t))throw new Error("Visitor constructor cannot be invoked without 'new'");r.call(this)}if(e instanceof r)return e;if(!f.check(e))return new r;var n=t.prototype=Object.create(m);return n.constructor=t,a(n,e),a(t,r),d.assert(t.fromMethodsObject),d.assert(t.visit),new t},r.visit=function(e,t){return r.fromMethodsObject(t).visit(e)};var m=r.prototype;m.visit=function(){if(this._visiting)throw new Error("Recursively calling visitor.visit(path) resets visitor state. Try this.visit(path) or this.traverse(path) instead.");this._visiting=!0,this._changeReported=!1,this._abortRequested=!1;for(var e=arguments.length,t=new Array(e),n=0;n<e;++n)t[n]=arguments[n];t[0]instanceof c||(t[0]=new c({root:t[0]}).get("root")),this.reset.apply(this,t);try{var r=this.visitWithoutReset(t[0]),i=!0}finally{if(this._visiting=!1,!i&&this._abortRequested)return t[0].value}return r},m.AbortRequest=function(){},m.abort=function(){var e=this;e._abortRequested=!0;var t=new e.AbortRequest;throw t.cancel=function(){e._abortRequested=!1},t},m.reset=function(e){},m.visitWithoutReset=function(e){if(this instanceof this.Context)return this.visitor.visitWithoutReset(e);if(!(e instanceof c))throw new Error("");var t=e.value,n=t&&"object"==typeof t&&"string"==typeof t.type&&this._methodNameTable[t.type];if(!n)return o(e,this);var r=this.acquireContext(e);try{return r.invokeVisitorMethod(n)}finally{this.releaseContext(r)}},m.acquireContext=function(e){return 0===this._reusableContextStack.length?new this.Context(e):this._reusableContextStack.pop().reset(e)},m.releaseContext=function(e){if(!(e instanceof this.Context))throw new Error("");this._reusableContextStack.push(e),e.currentPath=null},m.reportChanged=function(){this._changeReported=!0},m.wasChangeReported=function(){return this._changeReported};var y=Object.create(null);y.reset=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");return this.currentPath=e,this.needToCallTraverse=!0,this},y.invokeVisitorMethod=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");var t=this.visitor[e].call(this,this.currentPath);if(t===!1?this.needToCallTraverse=!1:t!==l&&(this.currentPath=this.currentPath.replace(t)[0],this.needToCallTraverse&&this.traverse(this.currentPath)),this.needToCallTraverse!==!1)throw new Error("Must either call this.traverse or return false in "+e);var n=this.currentPath;return n&&n.value},y.traverse=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,o(e,r.fromMethodsObject(t||this.visitor))},y.visit=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,r.fromMethodsObject(t||this.visitor).visitWithoutReset(e)},y.reportChanged=function(){this.visitor.reportChanged()},y.abort=function(){this.needToCallTraverse=!1,this.visitor.abort()},t.exports=r},{"./node-path":77,"./types":82}],79:[function(e,t,n){function r(e,t,n){if(!(this instanceof r))throw new Error("Path constructor cannot be invoked without 'new'");if(t){if(!(t instanceof r))throw new Error("")}else t=null,n=null;this.value=e,this.parentPath=t,this.name=n,this.__childCache=null}function i(e){return e.__childCache||(e.__childCache=Object.create(null))}function a(e,t){var n=i(e),r=e.getValueProperty(t),a=n[t];return c.call(n,t)&&a.value===r||(a=n[t]=new e.constructor(r,e,t)),a}function o(){}function s(e,t,n,r){if(f.assert(e.value),0===t)return o;var a=e.value.length;if(a<1)return o;var s=arguments.length;2===s?(n=0,r=a):3===s?(n=Math.max(n,0),r=a):(n=Math.max(n,0),r=Math.min(r,a)),d.assert(n),d.assert(r);for(var l=Object.create(null),u=i(e),p=n;p<r;++p)if(c.call(e.value,p)){var h=e.get(p);if(h.name!==p)throw new Error("");var m=p+t;h.name=m,l[m]=h,delete u[p]}return delete u.length,function(){for(var t in l){var n=l[t];if(n.name!==+t)throw new Error("");u[t]=n,e.value[t]=n.value}}}function l(e){if(!(e instanceof r))throw new Error("");var t=e.parentPath;if(!t)return e;var n=t.value,a=i(t);if(n[e.name]===e.value)a[e.name]=e;else if(f.check(n)){var o=n.indexOf(e.value);o>=0&&(a[e.name=o]=e)}else n[e.name]=e.value,a[e.name]=e;if(n[e.name]!==e.value)throw new Error("");if(e.parentPath.get(e.name)!==e)throw new Error("");return e}var u=Object.prototype,c=u.hasOwnProperty,p=e("./types"),f=p.builtInTypes.array,d=p.builtInTypes.number,h=Array.prototype,m=(h.slice,h.map,r.prototype);m.getValueProperty=function(e){return this.value[e]},m.get=function(e){for(var t=this,n=arguments,r=n.length,i=0;i<r;++i)t=a(t,n[i]);return t},m.each=function(e,t){for(var n=[],r=this.value.length,i=0,i=0;i<r;++i)c.call(this.value,i)&&(n[i]=this.get(i));for(t=t||this,i=0;i<r;++i)c.call(n,i)&&e.call(t,n[i])},m.map=function(e,t){var n=[];return this.each(function(t){n.push(e.call(this,t))},t),n},m.filter=function(e,t){var n=[];return this.each(function(t){e.call(this,t)&&n.push(t)},t),n},m.shift=function(){var e=s(this,-1),t=this.value.shift();return e(),t},m.unshift=function(e){var t=s(this,arguments.length),n=this.value.unshift.apply(this.value,arguments);return t(),n},m.push=function(e){return f.assert(this.value),delete i(this).length,this.value.push.apply(this.value,arguments)},m.pop=function(){f.assert(this.value);var e=i(this);return delete e[this.value.length-1],delete e.length,this.value.pop()},m.insertAt=function(e,t){var n=arguments.length,r=s(this,n-1,e);if(r===o)return this;e=Math.max(e,0);for(var i=1;i<n;++i)this.value[e+i-1]=arguments[i];return r(),this},m.insertBefore=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},m.insertAfter=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name+1],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},m.replace=function(e){var t=[],n=this.parentPath.value,r=i(this.parentPath),a=arguments.length;if(l(this),f.check(n)){for(var o=n.length,u=s(this.parentPath,a-1,this.name+1),c=[this.name,1],p=0;p<a;++p)c.push(arguments[p]);var d=n.splice.apply(n,c);if(d[0]!==this.value)throw new Error("");if(n.length!==o-1+a)throw new Error("");if(u(),0===a)delete this.value,delete r[this.name],this.__childCache=null;else{if(n[this.name]!==e)throw new Error("");for(this.value!==e&&(this.value=e,this.__childCache=null),p=0;p<a;++p)t.push(this.parentPath.get(this.name+p));if(t[0]!==this)throw new Error("")}}else if(1===a)this.value!==e&&(this.__childCache=null),this.value=n[this.name]=e,t.push(this);else{if(0!==a)throw new Error("Could not replace path");delete n[this.name],delete this.value,this.__childCache=null}return t},t.exports=r},{"./types":82}],80:[function(e,t,n){function r(t,n){if(!(this instanceof r))throw new Error("Scope constructor cannot be invoked without 'new'");if(!(t instanceof e("./node-path")))throw new Error("");g.assert(t.value);var i;if(n){if(!(n instanceof r))throw new Error("");i=n.depth+1}else n=null,i=0;Object.defineProperties(this,{path:{value:t},node:{value:t.value},isGlobal:{value:!n,enumerable:!0},depth:{value:i},parent:{value:n},bindings:{value:{}}})}function i(e,t){var n=e.value;g.assert(n),c.CatchClause.check(n)?s(e.get("param"),t):a(e,t)}function a(e,t){var n=e.value;e.parent&&c.FunctionExpression.check(e.parent.node)&&e.parent.node.id&&s(e.parent.get("id"),t),
-n&&(d.check(n)?e.each(function(e){o(e,t)}):c.Function.check(n)?(e.get("params").each(function(e){s(e,t)}),o(e.get("body"),t)):c.VariableDeclarator.check(n)?(s(e.get("id"),t),o(e.get("init"),t)):"ImportSpecifier"===n.type||"ImportNamespaceSpecifier"===n.type||"ImportDefaultSpecifier"===n.type?s(e.get(n.local?"local":n.name?"name":"id"),t):p.check(n)&&!f.check(n)&&l.eachField(n,function(n,r){var i=e.get(n);if(i.value!==r)throw new Error("");o(i,t)}))}function o(e,t){var n=e.value;if(!n||f.check(n));else if(c.FunctionDeclaration.check(n))s(e.get("id"),t);else if(c.ClassDeclaration&&c.ClassDeclaration.check(n))s(e.get("id"),t);else if(g.check(n)){if(c.CatchClause.check(n)){var r=n.param.name,i=h.call(t,r);a(e.get("body"),t),i||delete t[r]}}else a(e,t)}function s(e,t){var n=e.value;c.Pattern.assert(n),c.Identifier.check(n)?h.call(t,n.name)?t[n.name].push(e):t[n.name]=[e]:c.ObjectPattern&&c.ObjectPattern.check(n)?e.get("properties").each(function(e){var n=e.value;c.Pattern.check(n)?s(e,t):c.Property.check(n)?s(e.get("value"),t):c.SpreadProperty&&c.SpreadProperty.check(n)&&s(e.get("argument"),t)}):c.ArrayPattern&&c.ArrayPattern.check(n)?e.get("elements").each(function(e){var n=e.value;c.Pattern.check(n)?s(e,t):c.SpreadElement&&c.SpreadElement.check(n)&&s(e.get("argument"),t)}):c.PropertyPattern&&c.PropertyPattern.check(n)?s(e.get("pattern"),t):(c.SpreadElementPattern&&c.SpreadElementPattern.check(n)||c.SpreadPropertyPattern&&c.SpreadPropertyPattern.check(n))&&s(e.get("argument"),t)}var l=e("./types"),u=l.Type,c=l.namedTypes,p=c.Node,f=c.Expression,d=l.builtInTypes.array,h=Object.prototype.hasOwnProperty,m=l.builders,y=[c.Program,c.Function,c.CatchClause],g=u.or.apply(u,y);r.isEstablishedBy=function(e){return g.check(e)};var v=r.prototype;v.didScan=!1,v.declares=function(e){return this.scan(),h.call(this.bindings,e)},v.declareTemporary=function(e){if(e){if(!/^[a-z$_]/i.test(e))throw new Error("")}else e="t$";e+=this.depth.toString(36)+"$",this.scan();for(var t=0;this.declares(e+t);)++t;var n=e+t;return this.bindings[n]=l.builders.identifier(n)},v.injectTemporary=function(e,t){e||(e=this.declareTemporary());var n=this.path.get("body");return c.BlockStatement.check(n.value)&&(n=n.get("body")),n.unshift(m.variableDeclaration("var",[m.variableDeclarator(e,t||null)])),e},v.scan=function(e){if(e||!this.didScan){for(var t in this.bindings)delete this.bindings[t];i(this.path,this.bindings),this.didScan=!0}},v.getBindings=function(){return this.scan(),this.bindings},v.lookup=function(e){for(var t=this;t&&!t.declares(e);t=t.parent);return t},v.getGlobalScope=function(){for(var e=this;!e.isGlobal;)e=e.parent;return e},t.exports=r},{"./node-path":77,"./types":82}],81:[function(e,t,n){var r=e("../lib/types"),i=r.Type,a=r.builtInTypes,o=a.number;n.geq=function(e){return new i(function(t){return o.check(t)&&t>=e},o+" >= "+e)},n.defaults={null:function(){return null},emptyArray:function(){return[]},false:function(){return!1},true:function(){return!0},undefined:function(){}};var s=i.or(a.string,a.number,a.boolean,a.null,a.undefined);n.isPrimitive=new i(function(e){if(null===e)return!0;var t=typeof e;return!("object"===t||"function"===t)},s.toString())},{"../lib/types":82}],82:[function(e,t,n){function r(e,t){var n=this;if(!(n instanceof r))throw new Error("Type constructor cannot be invoked without 'new'");if(b.call(e)!==E)throw new Error(e+" is not a function");var i=b.call(t);if(i!==E&&i!==S)throw new Error(t+" is neither a function nor a string");Object.defineProperties(n,{name:{value:t},check:{value:function(t,r){var i=e.call(n,t,r);return!i&&r&&b.call(r)===E&&r(n,t),i}}})}function i(e){return _.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":P.check(e)?"["+e.map(i).join(", ")+"]":JSON.stringify(e)}function a(e,t){var n=b.call(e),i=new r(function(e){return b.call(e)===n},t);return A[t]=i,e&&"function"==typeof e.constructor&&(k.push(e.constructor),T.push(i)),i}function o(e,t){if(e instanceof r)return e;if(e instanceof l)return e.type;if(P.check(e))return r.fromArray(e);if(_.check(e))return r.fromObject(e);if(C.check(e)){var n=k.indexOf(e);return n>=0?T[n]:new r(e,t)}return new r(function(t){return t===e},j.check(t)?function(){return e+""}:t)}function s(e,t,n,r){var i=this;if(!(i instanceof s))throw new Error("Field constructor cannot be invoked without 'new'");L.assert(e),t=o(t);var a={name:{value:e},type:{value:t},hidden:{value:!!r}};C.check(n)&&(a.defaultFn={value:n}),Object.defineProperties(i,a)}function l(e){var t=this;if(!(t instanceof l))throw new Error("Def constructor cannot be invoked without 'new'");Object.defineProperties(t,{typeName:{value:e},baseNames:{value:[]},ownFields:{value:Object.create(null)},allSupertypes:{value:Object.create(null)},supertypeList:{value:[]},allFields:{value:Object.create(null)},fieldNames:{value:[]},type:{value:new r(function(e,n){return t.check(e,n)},e)}})}function u(e){return e.replace(/^[A-Z]+/,function(e){var t=e.length;switch(t){case 0:return"";case 1:return e.toLowerCase();default:return e.slice(0,t-1).toLowerCase()+e.charAt(t-1)}})}function c(e){return e=u(e),e.replace(/(Expression)?$/,"Statement")}function p(e){var t=l.fromValue(e);if(t)return t.fieldNames.slice(0);if("type"in e)throw new Error("did not recognize object of type "+JSON.stringify(e.type));return Object.keys(e)}function f(e,t){var n=l.fromValue(e);if(n){var r=n.allFields[t];if(r)return r.getValue(e)}return e[t]}function d(e){var t=c(e);if(!D[t]){var n=D[u(e)];n&&(D[t]=function(){return D.expressionStatement(n.apply(D,arguments))})}}function h(e,t){t.length=0,t.push(e);for(var n=Object.create(null),r=0;r<t.length;++r){e=t[r];var i=M[e];if(i.finalized!==!0)throw new Error("");w.call(n,e)&&delete t[n[e]],n[e]=r,t.push.apply(t,i.baseNames)}for(var a=0,o=a,s=t.length;o<s;++o)w.call(t,o)&&(t[a++]=t[o]);t.length=a}function m(e,t){return Object.keys(t).forEach(function(n){e[n]=t[n]}),e}var y=Array.prototype,g=y.slice,v=(y.map,y.forEach,Object.prototype),b=v.toString,E=b.call(function(){}),S=b.call(""),w=v.hasOwnProperty,x=r.prototype;n.Type=r,x.assert=function(e,t){if(!this.check(e,t)){var n=i(e);throw new Error(n+" does not match type "+this)}return!0},x.toString=function(){var e=this.name;return L.check(e)?e:C.check(e)?e.call(this)+"":e+" type"};var k=[],T=[],A={};n.builtInTypes=A;var L=a("truthy","string"),C=a(function(){},"function"),P=a([],"array"),_=a({},"object"),I=(a(/./,"RegExp"),a(new Date,"Date"),a(3,"number")),j=(a(!0,"boolean"),a(null,"null"),a(void 0,"undefined"));r.or=function(){for(var e=[],t=arguments.length,n=0;n<t;++n)e.push(o(arguments[n]));return new r(function(n,r){for(var i=0;i<t;++i)if(e[i].check(n,r))return!0;return!1},function(){return e.join(" | ")})},r.fromArray=function(e){if(!P.check(e))throw new Error("");if(1!==e.length)throw new Error("only one element type is permitted for typed arrays");return o(e[0]).arrayOf()},x.arrayOf=function(){var e=this;return new r(function(t,n){return P.check(t)&&t.every(function(t){return e.check(t,n)})},function(){return"["+e+"]"})},r.fromObject=function(e){var t=Object.keys(e).map(function(t){return new s(t,e[t])});return new r(function(e,n){return _.check(e)&&t.every(function(t){return t.type.check(e[t.name],n)})},function(){return"{ "+t.join(", ")+" }"})};var O=s.prototype;O.toString=function(){return JSON.stringify(this.name)+": "+this.type},O.getValue=function(e){var t=e[this.name];return j.check(t)?(this.defaultFn&&(t=this.defaultFn.call(e)),t):t},r.def=function(e){return L.assert(e),w.call(M,e)?M[e]:M[e]=new l(e)};var M=Object.create(null);l.fromValue=function(e){if(e&&"object"==typeof e){var t=e.type;if("string"==typeof t&&w.call(M,t)){var n=M[t];if(n.finalized)return n}}return null};var N=l.prototype;N.isSupertypeOf=function(e){if(e instanceof l){if(this.finalized!==!0||e.finalized!==!0)throw new Error("");return w.call(e.allSupertypes,this.typeName)}throw new Error(e+" is not a Def")},n.getSupertypeNames=function(e){if(!w.call(M,e))throw new Error("");var t=M[e];if(t.finalized!==!0)throw new Error("");return t.supertypeList.slice(1)},n.computeSupertypeLookupTable=function(e){for(var t={},n=Object.keys(M),r=n.length,i=0;i<r;++i){var a=n[i],o=M[a];if(o.finalized!==!0)throw new Error(""+a);for(var s=0;s<o.supertypeList.length;++s){var l=o.supertypeList[s];if(w.call(e,l)){t[a]=l;break}}}return t},N.checkAllFields=function(e,t){function n(n){var i=r[n],a=i.type,o=i.getValue(e);return a.check(o,t)}var r=this.allFields;if(this.finalized!==!0)throw new Error(""+this.typeName);return _.check(e)&&Object.keys(r).every(n)},N.check=function(e,t){if(this.finalized!==!0)throw new Error("prematurely checking unfinalized type "+this.typeName);if(!_.check(e))return!1;var n=l.fromValue(e);return n?t&&n===this?this.checkAllFields(e,t):!!this.isSupertypeOf(n)&&(!t||n.checkAllFields(e,t)&&this.checkAllFields(e,!1)):("SourceLocation"===this.typeName||"Position"===this.typeName)&&this.checkAllFields(e,t)},N.bases=function(){var e=g.call(arguments),t=this.baseNames;if(this.finalized){if(e.length!==t.length)throw new Error("");for(var n=0;n<e.length;n++)if(e[n]!==t[n])throw new Error("");return this}return e.forEach(function(e){L.assert(e),t.indexOf(e)<0&&t.push(e)}),this},Object.defineProperty(N,"buildable",{value:!1});var D={};n.builders=D;var R={};n.defineMethod=function(e,t){var n=R[e];return j.check(t)?delete R[e]:(C.assert(t),Object.defineProperty(R,e,{enumerable:!0,configurable:!0,value:t})),n};var B=L.arrayOf();N.build=function(){var e=this,t=g.call(arguments);return B.assert(t),Object.defineProperty(e,"buildParams",{value:t,writable:!1,enumerable:!1,configurable:!0}),e.buildable?e:(e.field("type",String,function(){return e.typeName}),Object.defineProperty(e,"buildable",{value:!0}),Object.defineProperty(D,u(e.typeName),{enumerable:!0,value:function(){function t(t,o){if(!w.call(a,t)){var s=e.allFields;if(!w.call(s,t))throw new Error(""+t);var l,u=s[t],c=u.type;if(I.check(o)&&o<r)l=n[o];else{if(!u.defaultFn){var p="no value or default function given for field "+JSON.stringify(t)+" of "+e.typeName+"("+e.buildParams.map(function(e){return s[e]}).join(", ")+")";throw new Error(p)}l=u.defaultFn.call(a)}if(!c.check(l))throw new Error(i(l)+" does not match field "+u+" of type "+e.typeName);a[t]=l}}var n=arguments,r=n.length,a=Object.create(R);if(!e.finalized)throw new Error("attempting to instantiate unfinalized type "+e.typeName);if(e.buildParams.forEach(function(e,n){t(e,n)}),Object.keys(e.allFields).forEach(function(e){t(e)}),a.type!==e.typeName)throw new Error("");return a}}),e)},n.getBuilderName=u,n.getStatementBuilderName=c,N.field=function(e,t,n,r){return this.finalized?(console.error("Ignoring attempt to redefine field "+JSON.stringify(e)+" of finalized type "+JSON.stringify(this.typeName)),this):(this.ownFields[e]=new s(e,t,n,r),this)};var F={};n.namedTypes=F,n.getFieldNames=p,n.getFieldValue=f,n.eachField=function(e,t,n){p(e).forEach(function(n){t.call(this,n,f(e,n))},n)},n.someField=function(e,t,n){return p(e).some(function(n){return t.call(this,n,f(e,n))},n)},Object.defineProperty(N,"finalized",{value:!1}),N.finalize=function(){var e=this;if(!e.finalized){var t=e.allFields,n=e.allSupertypes;e.baseNames.forEach(function(r){var i=M[r];if(!(i instanceof l)){var a="unknown supertype name "+JSON.stringify(r)+" for subtype "+JSON.stringify(e.typeName);throw new Error(a)}i.finalize(),m(t,i.allFields),m(n,i.allSupertypes)}),m(t,e.ownFields),n[e.typeName]=e,e.fieldNames.length=0;for(var r in t)w.call(t,r)&&!t[r].hidden&&e.fieldNames.push(r);Object.defineProperty(F,e.typeName,{enumerable:!0,value:e.type}),Object.defineProperty(e,"finalized",{value:!0}),h(e.typeName,e.supertypeList),e.buildable&&e.supertypeList.lastIndexOf("Expression")>=0&&d(e.typeName)}},n.finalize=function(){Object.keys(M).forEach(function(e){M[e].finalize()})}},{}],83:[function(e,t,n){var r=e("./lib/types");e("./def/core"),e("./def/es6"),e("./def/es7"),e("./def/mozilla"),e("./def/e4x"),e("./def/fb-harmony"),e("./def/esprima"),e("./def/babel"),r.finalize(),n.Type=r.Type,n.builtInTypes=r.builtInTypes,n.namedTypes=r.namedTypes,n.builders=r.builders,n.defineMethod=r.defineMethod,n.getFieldNames=r.getFieldNames,n.getFieldValue=r.getFieldValue,n.eachField=r.eachField,n.someField=r.someField,n.getSupertypeNames=r.getSupertypeNames,n.astNodesAreEquivalent=e("./lib/equiv"),n.finalize=r.finalize,n.NodePath=e("./lib/node-path"),n.PathVisitor=e("./lib/path-visitor"),n.visit=n.PathVisitor.visit},{"./def/babel":68,"./def/core":69,"./def/e4x":70,"./def/es6":71,"./def/es7":72,"./def/esprima":73,"./def/fb-harmony":74,"./def/mozilla":75,"./lib/equiv":76,"./lib/node-path":77,"./lib/path-visitor":78,"./lib/types":82}],84:[function(e,t,n){function r(){this._array=[],this._set=Object.create(null)}var i=e("./util"),a=Object.prototype.hasOwnProperty;r.fromArray=function(e,t){for(var n=new r,i=0,a=e.length;i<a;i++)n.add(e[i],t);return n},r.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=i.toSetString(e),r=a.call(this._set,n),o=this._array.length;r&&!t||this._array.push(e),r||(this._set[n]=o)},r.prototype.has=function(e){var t=i.toSetString(e);return a.call(this._set,t)},r.prototype.indexOf=function(e){var t=i.toSetString(e);if(a.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":93}],85:[function(e,t,n){function r(e){return e<0?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var a=e("./base64"),o=5,s=1<<o,l=s-1,u=s;n.encode=function(e){var t,n="",i=r(e);do t=i&l,i>>>=o,i>0&&(t|=u),n+=a.encode(t);while(i>0);return n},n.decode=function(e,t,n){var r,s,c=e.length,p=0,f=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(s=a.decode(e.charCodeAt(t++)),s===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(s&u),s&=l,p+=s<<f,f+=o}while(r);n.value=i(p),n.rest=t}},{"./base64":86}],86:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){var t=65,n=90,r=97,i=122,a=48,o=57,s=43,l=47,u=26,c=52;return t<=e&&e<=n?e-t:r<=e&&e<=i?e-r+u:a<=e&&e<=o?e-a+c:e==s?62:e==l?63:-1}},{}],87:[function(e,t,n){function r(e,t,i,a,o,s){var l=Math.floor((t-e)/2)+e,u=o(i,a[l],!0);return 0===u?l:u>0?t-l>1?r(l,t,i,a,o,s):s==n.LEAST_UPPER_BOUND?t<a.length?t:-1:l:l-e>1?r(e,l,i,a,o,s):s==n.LEAST_UPPER_BOUND?l:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,a){if(0===t.length)return-1;var o=r(-1,t.length,e,t,i,a||n.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(t[o],t[o-1],!0);)--o;return o}},{}],88:[function(e,t,n){function r(e,t){var n=e.generatedLine,r=t.generatedLine,i=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=i||a.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var a=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){r(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(a.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=i},{"./util":93}],89:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t){return Math.round(e+Math.random()*(t-e))}function a(e,t,n,o){if(n<o){var s=i(n,o),l=n-1;r(e,s,o);for(var u=e[o],c=n;c<o;c++)t(e[c],u)<=0&&(l+=1,r(e,l,c));r(e,l+1,c);var p=l+1;a(e,t,n,p-1),a(e,t,p+1,o)}}n.quickSort=function(e,t){a(e,t,0,e.length-1)}},{}],90:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new o(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=s.getArg(t,"version"),r=s.getArg(t,"sources"),i=s.getArg(t,"names",[]),a=s.getArg(t,"sourceRoot",null),o=s.getArg(t,"sourcesContent",null),l=s.getArg(t,"mappings"),c=s.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(s.normalize).map(function(e){return a&&s.isAbsolute(a)&&s.isAbsolute(e)?s.relative(a,e):e}),this._names=u.fromArray(i.map(String),!0),this._sources=u.fromArray(r,!0),this.sourceRoot=a,this.sourcesContent=o,this._mappings=l,this.file=c}function a(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function o(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=s.getArg(t,"version"),i=s.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new u,this._names=new u;var a={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=s.getArg(e,"offset"),n=s.getArg(t,"line"),i=s.getArg(t,"column");if(n<a.line||n===a.line&&i<a.column)throw new Error("Section offsets must be ordered and non-overlapping.");return a=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(s.getArg(e,"map"))}})}var s=e("./util"),l=e("./binary-search"),u=e("./array-set").ArraySet,c=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,a=t||null,o=n||r.GENERATED_ORDER;switch(o){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=l&&(t=s.join(l,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,a)},r.prototype.allGeneratedPositionsFor=function(e){var t=s.getArg(e,"line"),n={source:s.getArg(e,"source"),originalLine:t,originalColumn:s.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=s.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",s.compareByOriginalPositions,l.LEAST_UPPER_BOUND);if(i>=0){var a=this._originalMappings[i];if(void 0===e.column)for(var o=a.originalLine;a&&a.originalLine===o;)r.push({line:s.getArg(a,"generatedLine",null),column:s.getArg(a,"generatedColumn",null),lastColumn:s.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i];else for(var u=a.originalColumn;a&&a.originalLine===t&&a.originalColumn==u;)r.push({line:s.getArg(a,"generatedLine",null),column:s.getArg(a,"generatedColumn",null),lastColumn:s.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,i.prototype=Object.create(r.prototype),i.prototype.consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=u.fromArray(e._names.toArray(),!0),r=t._sources=u.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var o=e._mappings.toArray().slice(),l=t.__generatedMappings=[],c=t.__originalMappings=[],f=0,d=o.length;f<d;f++){var h=o[f],m=new a;m.generatedLine=h.generatedLine,m.generatedColumn=h.generatedColumn,h.source&&(m.source=r.indexOf(h.source),m.originalLine=h.originalLine,m.originalColumn=h.originalColumn,h.name&&(m.name=n.indexOf(h.name)),c.push(m)),l.push(m)}return p(t.__originalMappings,s.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?s.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,o,l,u=1,f=0,d=0,h=0,m=0,y=0,g=e.length,v=0,b={},E={},S=[],w=[];v<g;)if(";"===e.charAt(v))u++,v++,f=0;else if(","===e.charAt(v))v++;else{for(n=new a,n.generatedLine=u,o=v;o<g&&!this._charIsMappingSeparator(e,o);o++);if(r=e.slice(v,o),i=b[r])v+=r.length;else{for(i=[];v<o;)c.decode(e,v,E),l=E.value,v=E.rest,i.push(l);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[r]=i}n.generatedColumn=f+i[0],f=n.generatedColumn,i.length>1&&(n.source=m+i[1],m+=i[1],n.originalLine=d+i[2],d=n.originalLine,n.originalLine+=1,n.originalColumn=h+i[3],h=n.originalColumn,i.length>4&&(n.name=y+i[4],y+=i[4])),w.push(n),"number"==typeof n.originalLine&&S.push(n)}p(w,s.compareByGeneratedPositionsDeflated),this.__generatedMappings=w,p(S,s.compareByOriginalPositions),this.__originalMappings=S},i.prototype._findMapping=function(e,t,n,r,i,a){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return l.search(e,t,i,a)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:s.getArg(e,"line"),generatedColumn:s.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",s.compareByGeneratedPositionsDeflated,s.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var a=s.getArg(i,"source",null);null!==a&&(a=this._sources.at(a),null!=this.sourceRoot&&(a=s.join(this.sourceRoot,a)));var o=s.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:a,line:s.getArg(i,"originalLine",null),column:s.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=s.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=s.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=s.getArg(e,"source");if(null!=this.sourceRoot&&(t=s.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var n={source:t,originalLine:s.getArg(e,"line"),originalColumn:s.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",s.compareByOriginalPositions,s.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var a=this._originalMappings[i];if(a.source===n.source)return{line:s.getArg(a,"generatedLine",null),column:s.getArg(a,"generatedColumn",null),lastColumn:s.getArg(a,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,o.prototype=Object.create(r.prototype),o.prototype.constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),o.prototype.originalPositionFor=function(e){var t={generatedLine:s.getArg(e,"line"),generatedColumn:s.getArg(e,"column")},n=l.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n?n:e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},o.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n],i=r.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(n.consumer.sources.indexOf(s.getArg(e,"source"))!==-1){var r=n.consumer.generatedPositionFor(e);if(r){var i={line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},o.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,a=0;a<i.length;a++){var o=i[a],l=r.consumer._sources.at(o.source);null!==r.consumer.sourceRoot&&(l=s.join(r.consumer.sourceRoot,l)),this._sources.add(l),l=this._sources.indexOf(l);var u=r.consumer._names.at(o.name);this._names.add(u),u=this._names.indexOf(u);var c={source:l,generatedLine:o.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(r.generatedOffset.generatedLine===o.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:u};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}p(this.__generatedMappings,s.compareByGeneratedPositionsDeflated),p(this.__originalMappings,s.compareByOriginalPositions)},n.IndexedSourceMapConsumer=o},{"./array-set":84,"./base64-vlq":85,"./binary-search":87,"./quick-sort":89,"./util":93}],91:[function(e,t,n){function r(e){e||(e={}),this._file=a.getArg(e,"file",null),this._sourceRoot=a.getArg(e,"sourceRoot",null),this._skipValidation=a.getArg(e,"skipValidation",!1),this._sources=new o,this._names=new o,this._mappings=new s,this._sourcesContents=null}var i=e("./base64-vlq"),a=e("./util"),o=e("./array-set").ArraySet,s=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=a.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=a.getArg(e,"generated"),n=a.getArg(e,"original",null),r=a.getArg(e,"source",null),i=a.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=a.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[a.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[a.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=a.relative(i,r));var s=new o,l=new o;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var o=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=o.source&&(t.source=o.source,null!=n&&(t.source=a.join(n,t.source)),null!=i&&(t.source=a.relative(i,t.source)),t.originalLine=o.line,t.originalColumn=o.column,null!=o.name&&(t.name=o.name))}var u=t.source;null==u||s.has(u)||s.add(u);var c=t.name;null==c||l.has(c)||l.add(c)},this),this._sources=s,this._names=l,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=a.join(n,t)),null!=i&&(t=a.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r,o=0,s=1,l=0,u=0,c=0,p=0,f="",d=this._mappings.toArray(),h=0,m=d.length;h<m;h++){if(t=d[h],e="",t.generatedLine!==s)for(o=0;t.generatedLine!==s;)e+=";",s++;else if(h>0){if(!a.compareByGeneratedPositionsInflated(t,d[h-1]))continue;e+=","}e+=i.encode(t.generatedColumn-o),o=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=i.encode(r-p),p=r,e+=i.encode(t.originalLine-1-u),u=t.originalLine-1,e+=i.encode(t.originalColumn-l),l=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=i.encode(n-c),c=n)),f+=e}return f},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=a.relative(t,e));var n=a.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":84,"./base64-vlq":85,"./mapping-list":88,"./util":93}],92:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[l]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,a=e("./util"),o=/(\r?\n)/,s=10,l="$$$isSourceNode$$$";
-r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)s.add(t);else{var i=n?a.join(n,e.source):e.source;s.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var s=new r,l=e.split(o),u=function(){var e=l.shift(),t=l.shift()||"";return e+t},c=1,p=0,f=null;return t.eachMapping(function(e){if(null!==f){if(!(c<e.generatedLine)){var t=l[0],n=t.substr(0,e.generatedColumn-p);return l[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(f,n),void(f=e)}i(f,u()),c++,p=0}for(;c<e.generatedLine;)s.add(u()),c++;if(p<e.generatedColumn){var t=l[0];s.add(t.substr(0,e.generatedColumn)),l[0]=t.substr(e.generatedColumn),p=e.generatedColumn}f=e},this),l.length>0&&(f&&i(f,u()),s.add(l.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=a.join(n,e)),s.setSourceContent(e,r))}),s},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n<r;n++)t=this.children[n],t[l]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[l]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[a.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][l]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(a.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,a=null,o=null,l=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(a===i.source&&o===i.line&&l===i.column&&u===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),a=i.source,o=i.line,l=i.column,u=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),a=null,r=!1);for(var c=0,p=e.length;c<p;c++)e.charCodeAt(c)===s?(t.line++,t.column=0,c+1===p?(a=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":91,"./util":93}],93:[function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(g);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function a(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var t=e,r=i(e);if(r){if(!r.path)return e;t=r.path}for(var o,s=n.isAbsolute(t),l=t.split(/\/+/),u=0,c=l.length-1;c>=0;c--)o=l[c],"."===o?l.splice(c,1):".."===o?u++:u>0&&(""===o?(l.splice(c+1,u),u=0):(l.splice(c,2),u--));return t=l.join("/"),""===t&&(t=s?"/":"."),r?(r.path=t,a(r)):t}function s(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),a(n);if(n||t.match(v))return t;if(r&&!r.host&&!r.path)return r.host=t,a(r);var s="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=s,a(r)):s}function l(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}function u(e){return e}function c(e){return f(e)?"$"+e:e}function p(e){return f(e)?e.slice(1):e}function f(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function d(e,t,n){var r=e.source-t.source;return 0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r||n?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=e.generatedLine-t.generatedLine,0!==r?r:e.name-t.name))))}function h(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r||n?r:(r=e.source-t.source,0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:e.name-t.name))))}function m(e,t){return e===t?0:e>t?1:-1}function y(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:(n=e.generatedColumn-t.generatedColumn,0!==n?n:(n=m(e.source,t.source),0!==n?n:(n=e.originalLine-t.originalLine,0!==n?n:(n=e.originalColumn-t.originalColumn,0!==n?n:m(e.name,t.name)))))}n.getArg=r;var g=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;n.urlParse=i,n.urlGenerate=a,n.normalize=o,n.join=s,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(g)},n.relative=l;var b=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=b?u:c,n.fromSetString=b?u:p,n.compareByOriginalPositions=d,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=y},{}],94:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":90,"./lib/source-map-generator":91,"./lib/source-node":92}],95:[function(e,t,n){(function(r){function i(e,t,n){function i(){for(;u.length&&!p.paused;){var e=u.shift();if(null===e)return p.emit("end");p.emit("data",e)}}function o(){p.writable=!1,t.call(p),!p.readable&&p.autoDestroy&&p.destroy()}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var s=!1,l=!1,u=[],c=!1,p=new a;return p.readable=p.writable=!0,p.paused=!1,p.autoDestroy=!(n&&n.autoDestroy===!1),p.write=function(t){return e.call(this,t),!p.paused},p.queue=p.push=function(e){return c?p:(null===e&&(c=!0),u.push(e),i(),p)},p.on("end",function(){p.readable=!1,!p.writable&&p.autoDestroy&&r.nextTick(function(){p.destroy()})}),p.end=function(e){if(!s)return s=!0,arguments.length&&p.write(e),o(),p},p.destroy=function(){if(!l)return l=!0,s=!0,u.length=0,p.writable=p.readable=!1,p.emit("close"),p},p.pause=function(){if(!p.paused)return p.paused=!0,p},p.resume=function(){return p.paused&&(p.paused=!1,p.emit("resume")),i(),p.paused||p.emit("drain"),p},p}var a=e("stream");n=t.exports=i,i.through=i}).call(this,e("_process"))},{_process:13,stream:30}],96:[function(e,t,n){(function(e,n){!function(n){"use strict";function r(e,t,n,r){var i=Object.create((t||a).prototype),o=new h(r||[]);return i._invoke=p(e,n,o),i}function i(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function a(){}function o(){}function s(){}function l(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(e){this.arg=e}function c(t){function n(e,r,a,o){var s=i(t[e],t,r);if("throw"!==s.type){var l=s.arg,c=l.value;return c instanceof u?Promise.resolve(c.arg).then(function(e){n("next",e,a,o)},function(e){n("throw",e,a,o)}):Promise.resolve(c).then(function(e){l.value=e,a(l)},o)}o(s.arg)}function r(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return a=a?a.then(r,r):r()}"object"==typeof e&&e.domain&&(n=e.domain.bind(n));var a;this._invoke=r}function p(e,t,n){var r=k;return function(a,o){if(r===A)throw new Error("Generator is already running");if(r===L){if("throw"===a)throw o;return y()}for(;;){var s=n.delegate;if(s){if("return"===a||"throw"===a&&s.iterator[a]===g){n.delegate=null;var l=s.iterator.return;if(l){var u=i(l,s.iterator,o);if("throw"===u.type){a="throw",o=u.arg;continue}}if("return"===a)continue}var u=i(s.iterator[a],s.iterator,o);if("throw"===u.type){n.delegate=null,a="throw",o=u.arg;continue}a="next",o=g;var c=u.arg;if(!c.done)return r=T,c;n[s.resultName]=c.value,n.next=s.nextLoc,n.delegate=null}if("next"===a)r===T?n.sent=o:n.sent=g;else if("throw"===a){if(r===k)throw r=L,o;n.dispatchException(o)&&(a="next",o=g)}else"return"===a&&n.abrupt("return",o);r=A;var u=i(e,t,n);if("normal"===u.type){r=n.done?L:T;var c={value:u.arg,done:n.done};if(u.arg!==C)return c;n.delegate&&"next"===a&&(o=g)}else"throw"===u.type&&(r=L,a="throw",o=u.arg)}}}function f(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function h(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(f,this),this.reset(!0)}function m(e){if(e){var t=e[E];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(v.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=g,t.done=!0,t};return r.next=r}}return{next:y}}function y(){return{value:g,done:!0}}var g,v=Object.prototype.hasOwnProperty,b="function"==typeof Symbol?Symbol:{},E=b.iterator||"@@iterator",S=b.toStringTag||"@@toStringTag",w="object"==typeof t,x=n.regeneratorRuntime;if(x)return void(w&&(t.exports=x));x=n.regeneratorRuntime=w?t.exports:{},x.wrap=r;var k="suspendedStart",T="suspendedYield",A="executing",L="completed",C={},P=s.prototype=a.prototype;o.prototype=P.constructor=s,s.constructor=o,s[S]=o.displayName="GeneratorFunction",x.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===o||"GeneratorFunction"===(t.displayName||t.name))},x.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,S in e||(e[S]="GeneratorFunction")),e.prototype=Object.create(P),e},x.awrap=function(e){return new u(e)},l(c.prototype),x.async=function(e,t,n,i){var a=new c(r(e,t,n,i));return x.isGeneratorFunction(t)?a:a.next().then(function(e){return e.done?e.value:a.next()})},l(P),P[E]=function(){return this},P[S]="Generator",P.toString=function(){return"[object Generator]"},x.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},x.values=m,h.prototype={constructor:h,reset:function(e){if(this.prev=0,this.next=0,this.sent=g,this.done=!1,this.delegate=null,this.tryEntries.forEach(d),!e)for(var t in this)"t"===t.charAt(0)&&v.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=g)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,r){return a.type="throw",a.arg=e,n.next=t,!!r}if(this.done)throw e;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var o=v.call(i,"catchLoc"),s=v.call(i,"finallyLoc");if(o&&s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(o){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&v.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?this.next=i.finallyLoc:this.complete(a),C},complete:function(e,t){if("throw"===e.type)throw e.arg;"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=e.arg,this.next="end"):"normal"===e.type&&t&&(this.next=t)},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),d(n),C}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;d(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:m(e),resultName:t,nextLoc:n},C}}}("object"==typeof n?n:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:13}],regenerator:[function(e,t,n){(function(n){function r(e,t){function n(e){i.push(e)}function r(){this.queue(a(i.join(""),t).code),this.queue(null)}var i=[];return h(n,r)}function i(){e("./runtime")}function a(e,t){if(t=o(t),!b.test(e))return{code:(t.includeRuntime===!0?d.readFileSync(f.join(n,"runtime.js"),"utf-8")+"\n":"")+e};var r=s(t),i=g.parse(e,r),a=new v.NodePath(i),u=a.get("program");return l(e,t)&&c(u.node),m(u,t),g.print(a,r)}function o(t){return t=y.defaults(t||{},{includeRuntime:!1,supportBlockBinding:!0}),t.esprima||(t.esprima=e("esprima-fb")),p.ok(/harmony/.test(t.esprima.version),"Bad esprima version: "+t.esprima.version),t}function s(e){function t(t){t in e&&(n[t]=e[t])}var n={range:!0};return t("esprima"),t("sourceFileName"),t("sourceMapName"),t("inputSourceMap"),t("sourceRoot"),n}function l(e,t){var n=!!t.supportBlockBinding;return n&&(E.test(e)||(n=!1)),n}function u(e,t){var n=s(o(t)),r=g.parse(e,n);return c(r.program),g.print(r,n).code}function c(t){v.namedTypes.Program.assert(t);var n=e("defs")(t,{ast:!0,disallowUnknownReferences:!1,disallowDuplicated:!1,disallowVars:!1,loopClosures:"iife"});if(n.errors)throw new Error(n.errors.join("\n"));return t}var p=e("assert"),f=e("path"),d=e("fs"),h=e("through"),m=e("./lib/visit").transform,y=e("./lib/util"),g=e("recast"),v=g.types,b=/\bfunction\s*\*|\basync\b/,E=/\b(let|const)\s+/;t.exports=r,r.runtime=i,i.path=f.join(n,"runtime.js"),r.varify=u,r.types=v,r.compile=a,r.transform=m}).call(this,"/node_modules/regenerator")},{"./lib/util":39,"./lib/visit":40,"./runtime":96,assert:2,defs:41,"esprima-fb":55,fs:1,path:12,recast:67,through:95}]},{},[]); \ No newline at end of file
+/* regenerator 0.9.5: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */
+require=function e(t,n,r){function i(s,o){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!o&&u)return u(s,!0);if(a)return a(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var a="function"==typeof require&&require,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(e,t,n){},{}],2:[function(e,t,n){function r(e,t){return h.isUndefined(t)?""+t:h.isNumber(t)&&!isFinite(t)?t.toString():h.isFunction(t)||h.isRegExp(t)?t.toString():t}function i(e,t){return h.isString(e)?e.length<t?e:e.slice(0,t):e}function a(e){return i(JSON.stringify(e.actual,r),128)+" "+e.operator+" "+i(JSON.stringify(e.expected,r),128)}function s(e,t,n,r,i){throw new m.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function o(e,t){e||s(e,!0,t,"==",m.ok)}function u(e,t){if(e===t)return!0;if(h.isBuffer(e)&&h.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return h.isDate(e)&&h.isDate(t)?e.getTime()===t.getTime():h.isRegExp(e)&&h.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:h.isObject(e)||h.isObject(t)?c(e,t):e==t}function l(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function c(e,t){if(h.isNullOrUndefined(e)||h.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(h.isPrimitive(e)||h.isPrimitive(t))return e===t;var n=l(e),r=l(t);if(n&&!r||!n&&r)return!1;if(n)return e=d.call(e),t=d.call(t),u(e,t);var i,a,s=b(e),o=b(t);if(s.length!=o.length)return!1;for(s.sort(),o.sort(),a=s.length-1;a>=0;a--)if(s[a]!=o[a])return!1;for(a=s.length-1;a>=0;a--)if(i=s[a],!u(e[i],t[i]))return!1;return!0}function p(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||t.call({},e)===!0)}function f(e,t,n,r){var i;h.isString(n)&&(r=n,n=null);try{t()}catch(e){i=e}if(r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&s(i,n,"Missing expected exception"+r),!e&&p(i,n)&&s(i,n,"Got unwanted exception"+r),e&&i&&n&&!p(i,n)||!e&&i)throw i}var h=e("util/"),d=Array.prototype.slice,y=Object.prototype.hasOwnProperty,m=t.exports=o;m.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=a(this),this.generatedMessage=!0);var t=e.stackStartFunction||s;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=t.name,o=r.indexOf("\n"+i);if(o>=0){var u=r.indexOf("\n",o+1);r=r.substring(u+1)}this.stack=r}}},h.inherits(m.AssertionError,Error),m.fail=s,m.ok=o,m.equal=function(e,t,n){e!=t&&s(e,t,n,"==",m.equal)},m.notEqual=function(e,t,n){e==t&&s(e,t,n,"!=",m.notEqual)},m.deepEqual=function(e,t,n){u(e,t)||s(e,t,n,"deepEqual",m.deepEqual)},m.notDeepEqual=function(e,t,n){u(e,t)&&s(e,t,n,"notDeepEqual",m.notDeepEqual)},m.strictEqual=function(e,t,n){e!==t&&s(e,t,n,"===",m.strictEqual)},m.notStrictEqual=function(e,t,n){e===t&&s(e,t,n,"!==",m.notStrictEqual)},m.throws=function(e,t,n){f.apply(this,[!0].concat(d.call(arguments)))},m.doesNotThrow=function(e,t){f.apply(this,[!1].concat(d.call(arguments)))},m.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var n in e)y.call(e,n)&&t.push(n);return t}},{"util/":35}],3:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],4:[function(e,t,n){(function(t){"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,n){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return c(this,e)}return o(this,e,t,n)}function o(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?h(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function l(e,t,n,r){return u(t),t<=0?a(e,t):void 0!==n?"string"==typeof r?a(e,t).fill(n,r):a(e,t).fill(n):a(e,t)}function c(e,t){if(u(t),e=a(e,t<0?0:0|y(t)),!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!s.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|b(t,n);e=a(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function f(e,t){var n=t.length<0?0:0|y(t.length);e=a(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=f(e,t),e}function d(e,t){if(s.isBuffer(t)){var n=0|y(t.length);return e=a(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||H(t.length)?a(e,0):f(e,t);if("Buffer"===t.type&&Z(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function y(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),s.alloc(+e)}function b(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return X(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return X(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return B(this,t,n);case"utf8":case"utf-8":return F(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return j(this,t,n);case"base64":return k(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function x(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:_(e,t,n,r,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):_(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function _(e,t,n,r,i){function a(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,o=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,o/=2,u/=2,n/=2}var l;if(i){var c=-1;for(l=n;l<o;l++)if(a(e,l)===a(t,c===-1?0:l-c)){if(c===-1&&(c=l),l-c+1===u)return c*s}else c!==-1&&(l-=l-c),c=-1}else for(n+u>o&&(n=o-u),l=n;l>=0;l--){for(var p=!0,f=0;f<u;f++)if(a(e,l+f)!==a(t,f)){p=!1;break}if(p)return l}return-1}function E(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var a=t.length;if(a%2!==0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var s=0;s<r;++s){var o=parseInt(t.substr(2*s,2),16);if(isNaN(o))return s;e[n+s]=o}return s}function A(e,t,n,r){return Y(X(t,e.length-n),e,n,r)}function D(e,t,n,r){return Y(J(t),e,n,r)}function C(e,t,n,r){return D(e,t,n,r)}function S(e,t,n,r){return Y(z(t),e,n,r)}function w(e,t,n,r){return Y(W(t,e.length-n),e,n,r)}function k(e,t,n){return 0===t&&n===e.length?$.fromByteArray(e):$.fromByteArray(e.slice(t,n))}function F(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a=e[i],s=null,o=a>239?4:a>223?3:a>191?2:1;if(i+o<=n){var u,l,c,p;switch(o){case 1:a<128&&(s=a);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&a)<<6|63&u,p>127&&(s=p));break;case 3:u=e[i+1],l=e[i+2],128===(192&u)&&128===(192&l)&&(p=(15&a)<<12|(63&u)<<6|63&l,p>2047&&(p<55296||p>57343)&&(s=p));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(p=(15&a)<<18|(63&u)<<12|(63&l)<<6|63&c,p>65535&&p<1114112&&(s=p))}}null===s?(s=65533,o=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=o}return T(r)}function T(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function j(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function B(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=K(e[a]);return i}function O(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,r,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function R(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function U(e,t,n,r,i){return i||R(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Q.write(e,t,n,r,23,4),n+4}function V(e,t,n,r,i){return i||R(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Q.write(e,t,n,r,52,8),n+8}function G(e){if(e=q(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function q(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function K(e){return e<16?"0"+e.toString(16):e.toString(16)}function X(e,t){t=t||1/0;for(var n,r=e.length,i=null,a=[],s=0;s<r;++s){if(n=e.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function J(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function W(e,t){for(var n,r,i,a=[],s=0;s<e.length&&!((t-=2)<0);++s)n=e.charCodeAt(s),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function z(e){return $.toByteArray(G(e))}function Y(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function H(e){return e!==e}var $=e("base64-js"),Q=e("ieee754"),Z=e("isarray");n.Buffer=s,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==t.TYPED_ARRAY_SUPPORT?t.TYPED_ARRAY_SUPPORT:r(),n.kMaxLength=i(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return o(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return l(null,e,t,n)},s.allocUnsafe=function(e){return c(null,e)},s.allocUnsafeSlow=function(e){return c(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!Z(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=s.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var a=e[n];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,i),i+=a.length}return r},s.byteLength=b,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?F(this,0,e):g.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,n,r,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,o=n-t,u=Math.min(a,o),l=this.slice(r,i),c=e.slice(t,n),p=0;p<u;++p)if(l[p]!==c[p]){a=l[p],o=c[p];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},s.prototype.indexOf=function(e,t,n){return x(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return x(this,e,t,n,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return A(this,e,t,n);case"ascii":return D(this,e,t,n);case"latin1":case"binary":return C(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(s.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=s.prototype;else{var i=t-e;r=new s(i,void 0);for(var a=0;a<i;++a)r[a]=this[a+e]}return r},s.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},s.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},s.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},s.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),Q.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),Q.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),Q.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),Q.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;N(this,e,t,n,i,0)}var a=1,s=0;for(this[t]=255&e;++s<n&&(a*=256);)this[t+s]=e/a&255;return t+n},s.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;N(this,e,t,n,i,0)}var a=n-1,s=1;for(this[t+a]=255&e;--a>=0&&(s*=256);)this[t+a]=e/s&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=0,s=1,o=0;for(this[t]=255&e;++a<n&&(s*=256);)e<0&&0===o&&0!==this[t+a-1]&&(o=1),this[t+a]=(e/s>>0)-o&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}var a=n-1,s=1,o=0;for(this[t+a]=255&e;--a>=0&&(s*=256);)e<0&&0===o&&0!==this[t+a+1]&&(o=1),this[t+a]=(e/s>>0)-o&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return U(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return U(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},s.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=s.isBuffer(e)?e:X(new s(e,r).toString()),u=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":5,ieee754:6,isarray:7}],5:[function(e,t,n){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-r(e)}function a(e){var t,n,i,a,s,o,u=e.length;s=r(e),o=new p(3*u/4-s),i=s>0?u-4:u;var l=0;for(t=0,n=0;t<i;t+=4,n+=3)a=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],o[l++]=a>>16&255,o[l++]=a>>8&255,o[l++]=255&a;return 2===s?(a=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,o[l++]=255&a):1===s&&(a=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,o[l++]=a>>8&255,o[l++]=255&a),o}function s(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function o(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(s(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",a=[],s=16383,u=0,c=n-r;u<c;u+=s)a.push(o(e,u,u+s>c?c:u+s));return 1===r?(t=e[n-1],i+=l[t>>2],i+=l[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=l[t>>10],i+=l[t>>4&63],i+=l[t<<2&63],i+="="),a.push(i),a.join("")}n.byteLength=i,n.toByteArray=a,n.fromByteArray=u;for(var l=[],c=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,d=f.length;h<d;++h)l[h]=f[h],c[f.charCodeAt(h)]=h;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],6:[function(e,t,n){n.read=function(e,t,n,r,i){var a,s,o=8*i-r-1,u=(1<<o)-1,l=u>>1,c=-7,p=n?i-1:0,f=n?-1:1,h=e[t+p];for(p+=f,a=h&(1<<-c)-1,h>>=-c,c+=o;c>0;a=256*a+e[t+p],p+=f,c-=8);for(s=a&(1<<-c)-1,a>>=-c,c+=r;c>0;s=256*s+e[t+p],p+=f,c-=8);if(0===a)a=1-l;else{if(a===u)return s?NaN:(h?-1:1)*(1/0);s+=Math.pow(2,r),a-=l}return(h?-1:1)*s*Math.pow(2,a-r)},n.write=function(e,t,n,r,i,a){var s,o,u,l=8*a-i-1,c=(1<<l)-1,p=c>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+p>=1?f/u:f*Math.pow(2,1-p),t*u>=2&&(s++,u/=2),s+p>=c?(o=0,s=c):s+p>=1?(o=(t*u-1)*Math.pow(2,i),s+=p):(o=t*Math.pow(2,p-1)*Math.pow(2,i),s=0));i>=8;e[n+h]=255&o,h+=d,o/=256,i-=8);for(s=s<<i|o,l+=i;l>0;e[n+h]=255&s,h+=d,s/=256,l-=8);e[n+h-d]|=128*y}},{}],7:[function(e,t,n){var r={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},{}],8:[function(e,t,n){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function a(e){return"number"==typeof e}function s(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!a(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,n,r,a,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(n=this._events[e],o(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),n.apply(this,a)}else if(s(n))for(a=Array.prototype.slice.call(arguments,1),l=n.slice(),r=l.length,u=0;u<r;u++)l[u].apply(this,a);return!0},r.prototype.addListener=function(e,t){var n;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?s(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,s(this._events[e])&&!this._events[e].warned&&(n=o(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,a,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(n)){for(o=a;o-- >0;)if(n[o]===t||n[o].listener&&n[o].listener===t){r=o;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},r.listenerCount=function(e,t){return e.listenerCount(t)}},{}],9:[function(e,t,n){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},{}],10:[function(e,t,n){function r(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&r(e.slice(0,0))}t.exports=function(e){return null!=e&&(r(e)||i(e)||!!e._isBuffer)}},{}],11:[function(e,t,n){n.endianness=function(){return"LE"},n.hostname=function(){return"undefined"!=typeof location?location.hostname:""},n.loadavg=function(){return[]},n.uptime=function(){return 0},n.freemem=function(){return Number.MAX_VALUE},n.totalmem=function(){return Number.MAX_VALUE},n.cpus=function(){return[]},n.type=function(){return"Browser"},n.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},n.networkInterfaces=n.getNetworkInterfaces=function(){return{}},n.arch=function(){return"javascript"},n.platform=function(){return"browser"},n.tmpdir=n.tmpDir=function(){return"/tmp"},n.EOL="\n"},{}],12:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,a=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var s=a>=0?arguments[a]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(n=s+"/"+n,i="/"===s.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),a="/"===s(e,-1);return e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&a&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");
+return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),a=r(t.split("/")),s=Math.min(i.length,a.length),o=s,u=0;u<s;u++)if(i[u]!==a[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return l=l.concat(a.slice(o)),l.join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=a(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=a(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return a(e)[3]};var s="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:13}],13:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function s(e){if(f===clearTimeout)return clearTimeout(e);if((f===i||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function o(){m&&d&&(m=!1,d.length?y=d.concat(y):b=-1,y.length&&u())}function u(){if(!m){var e=a(o);m=!0;for(var t=y.length;t;){for(d=y,y=[];++b<t;)d&&d[b].run();b=-1,t=y.length}d=null,m=!1,s(e)}}function l(e,t){this.fun=e,this.array=t}function c(){}var p,f,h=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{f="function"==typeof clearTimeout?clearTimeout:i}catch(e){f=i}}();var d,y=[],m=!1,b=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new l(e,t)),1!==y.length||m||a(u)},l.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=c,h.addListener=c,h.once=c,h.off=c,h.removeListener=c,h.removeAllListeners=c,h.emit=c,h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},{}],14:[function(e,t,n){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":15}],15:[function(e,t,n){"use strict";function r(e){return this instanceof r?(l.call(this,e),c.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",i)):new r(e)}function i(){this.allowHalfOpen||this._writableState.ended||o(a,this)}function a(e){e.end()}var s=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};t.exports=r;var o=e("process-nextick-args"),u=e("core-util-is");u.inherits=e("inherits");var l=e("./_stream_readable"),c=e("./_stream_writable");u.inherits(r,l);for(var p=s(c.prototype),f=0;f<p.length;f++){var h=p[f];r.prototype[h]||(r.prototype[h]=c.prototype[h])}},{"./_stream_readable":17,"./_stream_writable":19,"core-util-is":22,inherits:9,"process-nextick-args":24}],16:[function(e,t,n){"use strict";function r(e){return this instanceof r?void i.call(this,e):new r(e)}t.exports=r;var i=e("./_stream_transform"),a=e("core-util-is");a.inherits=e("inherits"),a.inherits(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},{"./_stream_transform":18,"core-util-is":22,inherits:9}],17:[function(e,t,n){(function(n){"use strict";function r(e,t,n){return"function"==typeof e.prependListener?e.prependListener(t,n):void(e._events&&e._events[t]?P(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n))}function i(t,n){F=F||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof F&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new U,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(R||(R=e("string_decoder/").StringDecoder),this.decoder=new R(t.encoding),this.encoding=t.encoding)}function a(t){return F=F||e("./_stream_duplex"),this instanceof a?(this._readableState=new i(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),void j.call(this)):new a(t)}function s(e,t,n,r,i){var a=c(t,n);if(a)e.emit("error",a);else if(null===n)t.reading=!1,p(e,t);else if(t.objectMode||n&&n.length>0)if(t.ended&&!i){var s=new Error("stream.push() after EOF");e.emit("error",s)}else if(t.endEmitted&&i){var u=new Error("stream.unshift() after end event");e.emit("error",u)}else{var l;!t.decoder||i||r||(n=t.decoder.write(n),l=!t.objectMode&&0===n.length),i||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&f(e))),d(e,t)}else i||(t.reading=!1);return o(t)}function o(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function u(e){return e>=V?e=V:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function l(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=u(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var n=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function p(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,f(e)}}function f(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?T(h,e):h(e))}function h(e){M("emit readable"),e.emit("readable"),x(e)}function d(e,t){t.readingMore||(t.readingMore=!0,T(y,e,t))}function y(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(M("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function m(e){return function(){var t=e._readableState;M("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&B(e,"data")&&(t.flowing=!0,x(e))}}function b(e){M("readable nexttick read 0"),e.read(0)}function g(e,t){t.resumeScheduled||(t.resumeScheduled=!0,T(v,e,t))}function v(e,t){t.reading||(M("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(M("flow",t.flowing);t.flowing&&null!==e.read(););}function _(e,t){if(0===t.length)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=E(e,t.buffer,t.decoder),n}function E(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?A(e,t):D(e,t),r}function A(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(i+=s===a.length?a:a.slice(0,e),e-=s,0===e){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function D(e,t){var n=I.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var a=r.data,s=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,s),e-=s,0===e){s===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(s));break}++i}return t.length-=i,n}function C(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,T(S,t,e))}function S(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function w(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n)}function k(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}t.exports=a;var F,T=e("process-nextick-args"),P=e("isarray");a.ReadableState=i;var j,B=(e("events").EventEmitter,function(e,t){return e.listeners(t).length});!function(){try{j=e("stream")}catch(e){}finally{j||(j=e("events").EventEmitter)}}();var O=e("buffer").Buffer,I=e("buffer-shims"),N=e("core-util-is");N.inherits=e("inherits");var L=e("util"),M=void 0;M=L&&L.debuglog?L.debuglog("stream"):function(){};var R,U=e("./internal/streams/BufferList");N.inherits(a,j),a.prototype.push=function(e,t){var n=this._readableState;return n.objectMode||"string"!=typeof e||(t=t||n.defaultEncoding,t!==n.encoding&&(e=I.from(e,t),t="")),s(this,n,e,t,!1)},a.prototype.unshift=function(e){var t=this._readableState;return s(this,t,e,"",!0)},a.prototype.isPaused=function(){return this._readableState.flowing===!1},a.prototype.setEncoding=function(t){return R||(R=e("string_decoder/").StringDecoder),this._readableState.decoder=new R(t),this._readableState.encoding=t,this};var V=8388608;a.prototype.read=function(e){M("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?C(this):f(this),null;if(e=l(e,t),0===e&&t.ended)return 0===t.length&&C(this),null;var r=t.needReadable;M("need readable",r),(0===t.length||t.length-e<t.highWaterMark)&&(r=!0,M("length less than watermark",r)),t.ended||t.reading?(r=!1,M("reading or ended",r)):r&&(M("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=l(n,t)));var i;return i=e>0?_(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&C(this)),null!==i&&this.emit("data",i),i},a.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},a.prototype.pipe=function(e,t){function i(e){M("onunpipe"),e===f&&s()}function a(){M("onend"),e.end()}function s(){M("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",b),e.removeListener("error",u),e.removeListener("unpipe",i),f.removeListener("end",a),f.removeListener("end",s),f.removeListener("data",o),g=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||b()}function o(t){M("ondata"),v=!1;var n=e.write(t);!1!==n||v||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&k(h.pipes,e)!==-1)&&!g&&(M("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,v=!0),f.pause())}function u(t){M("onerror",t),p(),e.removeListener("error",u),0===B(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),p()}function c(){M("onfinish"),e.removeListener("close",l),p()}function p(){M("unpipe"),f.unpipe(e)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,M("pipe count=%d opts=%j",h.pipesCount,t);var d=(!t||t.end!==!1)&&e!==n.stdout&&e!==n.stderr,y=d?a:s;h.endEmitted?T(y):f.once("end",y),e.on("unpipe",i);var b=m(f);e.on("drain",b);var g=!1,v=!1;return f.on("data",o),r(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",f),h.flowing||(M("pipe resume"),f.resume()),e},a.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<r;i++)n[i].emit("unpipe",this);return this}var a=k(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},a.prototype.on=function(e,t){var n=j.prototype.on.call(this,e,t);if("data"===e)this._readableState.flowing!==!1&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&f(this,r):T(b,this))}return n},a.prototype.addListener=a.prototype.on,a.prototype.resume=function(){var e=this._readableState;return e.flowing||(M("resume"),e.flowing=!0,g(this,e)),this},a.prototype.pause=function(){return M("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(M("pause"),this._readableState.flowing=!1,this.emit("pause")),this},a.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(M("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)}),e.on("data",function(i){if(M("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)){var a=r.push(i);a||(n=!0,e.pause())}});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));var a=["error","close","destroy","pause","resume"];return w(a,function(t){e.on(t,r.emit.bind(r,t))}),r._read=function(t){M("wrapped _read",t),n&&(n=!1,e.resume())},r},a._fromList=_}).call(this,e("_process"))},{"./_stream_duplex":15,"./internal/streams/BufferList":20,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,isarray:23,"process-nextick-args":24,"string_decoder/":31,util:3}],18:[function(e,t,n){"use strict";function r(e){this.afterTransform=function(t,n){return i(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);o.call(this,e),this._transformState=new r(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){s(t,e,n)}):s(t)})}function s(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0!==n&&e.push(n);var r=e._writableState,i=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}t.exports=a;var o=e("./_stream_duplex"),u=e("core-util-is");u.inherits=e("inherits"),u.inherits(a,o),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,o.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0}},{"./_stream_duplex":15,"core-util-is":22,inherits:9}],19:[function(e,t,n){(function(n){"use strict";function r(){}function i(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function a(t,n){A=A||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,n instanceof A&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var r=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var a=t.decodeStrings===!1;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){d(n,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new E(this)}function s(t){return A=A||e("./_stream_duplex"),P.call(s,this)||this instanceof A?(this._writableState=new a(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev)),void w.call(this)):new s(t)}function o(e,t){var n=new Error("write after end");e.emit("error",n),D(t,n)}function u(e,t,n,r){var i=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):F.isBuffer(n)||"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),D(r,a),i=!1),i}function l(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=T.from(t,n)),t}function c(e,t,n,r,a){n=l(t,n,r),F.isBuffer(n)&&(r="buffer");var s=t.objectMode?1:n.length;t.length+=s;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest=new i(n,r,a),u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else p(e,t,!1,s,n,r,a);return o}function p(e,t,n,r,i,a,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function f(e,t,n,r,i){--t.pendingcb,n?D(i,r):i(r),e._writableState.errorEmitted=!0,e.emit("error",r)}function h(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function d(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(h(n),t)f(e,n,r,t,i);else{var a=g(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||b(e,n),r?C(y,e,n,a,i):y(e,n,a,i)}}function y(e,t,n,r){n||m(e,t),t.pendingcb--,r(),x(e,t)}function m(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function b(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var s=0;n;)i[s]=n,n=n.next,s+=1;p(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new E(t)}else{for(;n;){var o=n.chunk,u=n.encoding,l=n.callback,c=t.objectMode?1:o.length;if(p(e,t,!1,c,o,u,l),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function g(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function v(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function x(e,t){var n=g(t);return n&&(0===t.pendingcb?(v(e,t),t.finished=!0,e.emit("finish")):v(e,t)),n}function _(e,t,n){t.ending=!0,x(e,t),n&&(t.finished?D(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function E(e){var t=this;this.next=null,this.entry=null,this.finish=function(n){var r=t.entry;for(t.entry=null;r;){var i=r.callback;e.pendingcb--,i(n),r=r.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}t.exports=s;var A,D=e("process-nextick-args"),C=!n.browser&&["v0.10","v0.9."].indexOf(n.version.slice(0,5))>-1?setImmediate:D;s.WritableState=a;var S=e("core-util-is");S.inherits=e("inherits");var w,k={deprecate:e("util-deprecate")};!function(){try{w=e("stream")}catch(e){}finally{w||(w=e("events").EventEmitter)}}();var F=e("buffer").Buffer,T=e("buffer-shims");S.inherits(s,w),a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:k.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var P;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(P=Function.prototype[Symbol.hasInstance],Object.defineProperty(s,Symbol.hasInstance,{value:function(e){return!!P.call(this,e)||e&&e._writableState instanceof a}})):P=function(e){return e instanceof this},s.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},s.prototype.write=function(e,t,n){var i=this._writableState,a=!1;return"function"==typeof t&&(n=t,t=null),F.isBuffer(e)?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=r),i.ended?o(this,n):u(this,i,e,n)&&(i.pendingcb++,a=c(this,i,e,t,n)),a},s.prototype.cork=function(){var e=this._writableState;e.corked++},s.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||b(this,e))},s.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},s.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},s.prototype._writev=null,s.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||_(this,r,n)}}).call(this,e("_process"))},{"./_stream_duplex":15,_process:13,buffer:4,"buffer-shims":21,"core-util-is":22,events:8,inherits:9,"process-nextick-args":24,"util-deprecate":25}],20:[function(e,t,n){"use strict";function r(){this.head=null,this.tail=null,this.length=0}var i=(e("buffer").Buffer,e("buffer-shims"));t.exports=r,r.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},r.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t}},{buffer:4,"buffer-shims":21}],21:[function(e,t,n){(function(t){"use strict";var r=e("buffer"),i=r.Buffer,a=r.SlowBuffer,s=r.kMaxLength||2147483647;n.alloc=function(e,t,n){if("function"==typeof i.alloc)return i.alloc(e,t,n);if("number"==typeof n)throw new TypeError("encoding must not be number");if("number"!=typeof e)throw new TypeError("size must be a number");if(e>s)throw new RangeError("size is too large");var r=n,a=t;void 0===a&&(r=void 0,a=0);var o=new i(e);if("string"==typeof a)for(var u=new i(a,r),l=u.length,c=-1;++c<e;)o[c]=u[c%l];else o.fill(a);return o},n.allocUnsafe=function(e){if("function"==typeof i.allocUnsafe)return i.allocUnsafe(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>s)throw new RangeError("size is too large");return new i(e)},n.from=function(e,n,r){if("function"==typeof i.from&&(!t.Uint8Array||Uint8Array.from!==i.from))return i.from(e,n,r);if("number"==typeof e)throw new TypeError('"value" argument must not be a number');if("string"==typeof e)return new i(e,n);if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer){var a=n;if(1===arguments.length)return new i(e);"undefined"==typeof a&&(a=0);var s=r;if("undefined"==typeof s&&(s=e.byteLength-a),a>=e.byteLength)throw new RangeError("'offset' is out of bounds");if(s>e.byteLength-a)throw new RangeError("'length' is out of bounds");return new i(e.slice(a,a+s))}if(i.isBuffer(e)){var o=new i(e.length);return e.copy(o,0,0,e.length),o}if(e){if(Array.isArray(e)||"undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return new i(e);if("Buffer"===e.type&&Array.isArray(e.data))return new i(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},n.allocUnsafeSlow=function(e){if("function"==typeof i.allocUnsafeSlow)return i.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=s)throw new RangeError("size is too large");return new a(e)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{buffer:4}],22:[function(e,t,n){(function(e){function t(e){return Array.isArray?Array.isArray(e):"[object Array]"===m(e)}function r(e){return"boolean"==typeof e}function i(e){return null===e}function a(e){return null==e}function s(e){return"number"==typeof e}function o(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function l(e){return void 0===e}function c(e){return"[object RegExp]"===m(e)}function p(e){return"object"==typeof e&&null!==e}function f(e){return"[object Date]"===m(e)}function h(e){return"[object Error]"===m(e)||e instanceof Error}function d(e){return"function"==typeof e}function y(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function m(e){return Object.prototype.toString.call(e)}n.isArray=t,n.isBoolean=r,n.isNull=i,n.isNullOrUndefined=a,n.isNumber=s,n.isString=o,n.isSymbol=u,n.isUndefined=l,n.isRegExp=c,n.isObject=p,n.isDate=f,n.isError=h,n.isFunction=d,n.isPrimitive=y,n.isBuffer=e.isBuffer}).call(this,{isBuffer:e("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":10}],23:[function(e,t,n){arguments[4][7][0].apply(n,arguments)},{dup:7}],24:[function(e,t,n){(function(e){"use strict";function n(t,n,r,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var a,s,o=arguments.length;switch(o){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,n)});case 3:return e.nextTick(function(){t.call(null,n,r)});case 4:return e.nextTick(function(){t.call(null,n,r,i)});default:for(a=new Array(o-1),s=0;s<a.length;)a[s++]=arguments[s];return e.nextTick(function(){t.apply(null,a)})}}!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=n:t.exports=e.nextTick}).call(this,e("_process"))},{_process:13}],25:[function(e,t,n){(function(e){function n(e,t){function n(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var i=!1;return n}function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var n=e.localStorage[t];return null!=n&&"true"===String(n).toLowerCase()}t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],26:[function(e,t,n){t.exports=e("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":16}],27:[function(e,t,n){(function(r){var i=function(){try{return e("stream")}catch(e){}}();n=t.exports=e("./lib/_stream_readable.js"),n.Stream=i||n,n.Readable=n,n.Writable=e("./lib/_stream_writable.js"),n.Duplex=e("./lib/_stream_duplex.js"),n.Transform=e("./lib/_stream_transform.js"),n.PassThrough=e("./lib/_stream_passthrough.js"),!r.browser&&"disable"===r.env.READABLE_STREAM&&i&&(t.exports=i)}).call(this,e("_process"))},{"./lib/_stream_duplex.js":15,"./lib/_stream_passthrough.js":16,"./lib/_stream_readable.js":17,"./lib/_stream_transform.js":18,"./lib/_stream_writable.js":19,_process:13}],28:[function(e,t,n){t.exports=e("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":18}],29:[function(e,t,n){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":19}],30:[function(e,t,n){function r(){i.call(this)}t.exports=r;var i=e("events").EventEmitter,a=e("inherits");a(r,i),r.Readable=e("readable-stream/readable.js"),r.Writable=e("readable-stream/writable.js"),r.Duplex=e("readable-stream/duplex.js"),r.Transform=e("readable-stream/transform.js"),r.PassThrough=e("readable-stream/passthrough.js"),r.Stream=r,r.prototype.pipe=function(e,t){function n(t){e.writable&&!1===e.write(t)&&l.pause&&l.pause()}function r(){l.readable&&l.resume&&l.resume()}function a(){c||(c=!0,e.end())}function s(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function o(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){l.removeListener("data",n),e.removeListener("drain",r),l.removeListener("end",a),l.removeListener("close",s),l.removeListener("error",o),e.removeListener("error",o),l.removeListener("end",u),l.removeListener("close",u),e.removeListener("close",u)}var l=this;l.on("data",n),e.on("drain",r),e._isStdio||t&&t.end===!1||(l.on("end",a),l.on("close",s));var c=!1;return l.on("error",o),e.on("error",o),l.on("end",u),l.on("close",u),e.on("close",u),e.emit("pipe",l),e}},{events:8,inherits:9,"readable-stream/duplex.js":14,"readable-stream/passthrough.js":26,"readable-stream/readable.js":27,"readable-stream/transform.js":28,"readable-stream/writable.js":29}],31:[function(e,t,n){function r(e){if(e&&!u(e))throw new Error("Unknown encoding: "+e)}function i(e){return e.toString(this.encoding)}function a(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function s(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var o=e("buffer").Buffer,u=o.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},l=n.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=a;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=s;break;default:return void(this.write=i)}this.charBuffer=new o(6),this.charReceived=0,this.charLength=0};l.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return"";e=e.slice(n,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var r=t.charCodeAt(t.length-1);if(!(r>=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,r=t.charCodeAt(i);if(r>=55296&&r<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,i)}return t},l.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},l.prototype.end=function(e){var t="";
+if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,i=this.encoding;t+=r.slice(0,n).toString(i)}return t}},{buffer:4}],32:[function(e,t,n){function r(){throw new Error("tty.ReadStream is not implemented")}function i(){throw new Error("tty.ReadStream is not implemented")}n.isatty=function(){return!1},n.ReadStream=r,n.WriteStream=i},{}],33:[function(e,t,n){arguments[4][9][0].apply(n,arguments)},{dup:9}],34:[function(e,t,n){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],35:[function(e,t,n){(function(t,r){function i(e,t){var r={seen:[],stylize:s};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(t)?r.showHidden=t:t&&n._extend(r,t),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),u(r,e,r.depth)}function a(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function s(e,t){return e}function o(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,t,r){if(e.customInspect&&t&&S(t.inspect)&&t.inspect!==n.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(r,e);return v(i)||(i=u(e,i,r)),i}var a=l(e,t);if(a)return a;var s=Object.keys(t),y=o(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),C(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return c(t);if(0===s.length){if(S(t)){var m=t.name?": "+t.name:"";return e.stylize("[Function"+m+"]","special")}if(E(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(D(t))return e.stylize(Date.prototype.toString.call(t),"date");if(C(t))return c(t)}var b="",g=!1,x=["{","}"];if(d(t)&&(g=!0,x=["[","]"]),S(t)){var _=t.name?": "+t.name:"";b=" [Function"+_+"]"}if(E(t)&&(b=" "+RegExp.prototype.toString.call(t)),D(t)&&(b=" "+Date.prototype.toUTCString.call(t)),C(t)&&(b=" "+c(t)),0===s.length&&(!g||0==t.length))return x[0]+b+x[1];if(r<0)return E(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var A;return A=g?p(e,t,r,y,s):s.map(function(n){return f(e,t,r,y,n,g)}),e.seen.pop(),h(A,b,x)}function l(e,t){if(_(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):y(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var a=[],s=0,o=t.length;s<o;++s)P(t,String(s))?a.push(f(e,t,n,r,String(s),!0)):a.push("");return i.forEach(function(i){i.match(/^\d+$/)||a.push(f(e,t,n,r,i,!0))}),a}function f(e,t,n,r,i,a){var s,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(o=e.stylize("[Setter]","special")),P(r,i)||(s="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=m(n)?u(e,l.value,null):u(e,l.value,n-1),o.indexOf("\n")>-1&&(o=a?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),_(s)){if(a&&i.match(/^\d+$/))return o;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+o}function h(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function y(e){return"boolean"==typeof e}function m(e){return null===e}function b(e){return null==e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function x(e){return"symbol"==typeof e}function _(e){return void 0===e}function E(e){return A(e)&&"[object RegExp]"===k(e)}function A(e){return"object"==typeof e&&null!==e}function D(e){return A(e)&&"[object Date]"===k(e)}function C(e){return A(e)&&("[object Error]"===k(e)||e instanceof Error)}function S(e){return"function"==typeof e}function w(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function k(e){return Object.prototype.toString.call(e)}function F(e){return e<10?"0"+e.toString(10):e.toString(10)}function T(){var e=new Date,t=[F(e.getHours()),F(e.getMinutes()),F(e.getSeconds())].join(":");return[e.getDate(),I[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var j=/%[sdj%]/g;n.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,a=r.length,s=String(e).replace(j,function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),o=r[n];n<a;o=r[++n])s+=m(o)||!A(o)?" "+o:" "+i(o);return s},n.deprecate=function(e,i){function a(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}if(_(r.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(t.noDeprecation===!0)return e;var s=!1;return a};var B,O={};n.debuglog=function(e){if(_(B)&&(B=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!O[e])if(new RegExp("\\b"+e+"\\b","i").test(B)){var r=t.pid;O[e]=function(){var t=n.format.apply(n,arguments);console.error("%s %d: %s",e,r,t)}}else O[e]=function(){};return O[e]},n.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=d,n.isBoolean=y,n.isNull=m,n.isNullOrUndefined=b,n.isNumber=g,n.isString=v,n.isSymbol=x,n.isUndefined=_,n.isRegExp=E,n.isObject=A,n.isDate=D,n.isError=C,n.isFunction=S,n.isPrimitive=w,n.isBuffer=e("./support/isBuffer");var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",T(),n.format.apply(n,arguments))},n.inherits=e("inherits"),n._extend=function(e,t){if(!t||!A(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":34,_process:13,inherits:33}],36:[function(e,t,n){var r=(e("assert"),e("recast").types),i=r.namedTypes,a=r.builders,s=Object.prototype.hasOwnProperty;n.defaults=function(e){for(var t,n=arguments.length,r=1;r<n;++r)if(t=arguments[r])for(var i in t)s.call(t,i)&&!s.call(e,i)&&(e[i]=t[i]);return e},n.runtimeProperty=function(e){return a.memberExpression(a.identifier("regeneratorRuntime"),a.identifier(e),!1)},n.isReference=function(e,t){var n=e.value;if(!i.Identifier.check(n))return!1;if(t&&n.name!==t)return!1;var r=e.parent.value;switch(r.type){case"VariableDeclarator":return"init"===e.name;case"MemberExpression":return"object"===e.name||r.computed&&"property"===e.name;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return"id"!==e.name&&("params"!==e.parentPath.name||r.params!==e.parentPath.value||r.params[e.name]!==n);case"ClassDeclaration":case"ClassExpression":return"id"!==e.name;case"CatchClause":return"param"!==e.name;case"Property":case"MethodDefinition":return"key"!==e.name;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"LabeledStatement":return!1;default:return!0}}},{assert:2,recast:539}],37:[function(e,t,n){function r(t){s.Program.assert(t);var n=e("..").runtime.path,r=fs.readFileSync(n,"utf8"),a=i.parse(r,{sourceFileName:n}).program.body,o=t.body;o.unshift.apply(o,a)}var i=e("recast"),a=i.types,s=a.namedTypes,o=e("./util.js");n.transform=function(t,n){n=o.defaults(n||{},{includeRuntime:!1});var i=e("babel-core").transformFromAst(t,null,{presets:[e("regenerator-preset")],code:!1,ast:!0});return t=i.ast,n.includeRuntime===!0&&r(s.File.check(t)?t.program:t),t}},{"..":"regenerator","./util.js":36,"babel-core":38,recast:539,"regenerator-preset":572}],38:[function(e,t,n){t.exports=e("./lib/api/node.js")},{"./lib/api/node.js":39}],39:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")}function s(e,t,n){(0,d.default)(t)&&(n=t,t={}),t.filename=e,m.default.readFile(e,function(e,r){var i=void 0;if(!e)try{i=T(r,t)}catch(t){e=t}e?n(e):n(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,T(m.default.readFileSync(e,"utf8"),t)}n.__esModule=!0,n.transformFromAst=n.transform=n.analyse=n.Pipeline=n.OptionManager=n.traverse=n.types=n.messages=n.util=n.version=n.template=n.buildExternalHelpers=n.options=n.File=void 0;var u=e("../transformation/file");Object.defineProperty(n,"File",{enumerable:!0,get:function(){return i(u).default}});var l=e("../transformation/file/options/config");Object.defineProperty(n,"options",{enumerable:!0,get:function(){return i(l).default}});var c=e("../tools/build-external-helpers");Object.defineProperty(n,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var p=e("babel-template");Object.defineProperty(n,"template",{enumerable:!0,get:function(){return i(p).default}});var f=e("../../package");Object.defineProperty(n,"version",{enumerable:!0,get:function(){return f.version}}),n.Plugin=a,n.transformFile=s,n.transformFileSync=o;var h=e("lodash/isFunction"),d=i(h),y=e("fs"),m=i(y),b=e("../util"),g=r(b),v=e("babel-messages"),x=r(v),_=e("babel-types"),E=r(_),A=e("babel-traverse"),D=i(A),C=e("../transformation/file/options/option-manager"),S=i(C),w=e("../transformation/pipeline"),k=i(w);n.util=g,n.messages=x,n.types=E,n.traverse=D.default,n.OptionManager=S.default,n.Pipeline=k.default;var F=new k.default,T=(n.analyse=F.analyse.bind(F),n.transform=F.transform.bind(F));n.transformFromAst=F.transformFromAst.bind(F)},{"../../package":528,"../tools/build-external-helpers":44,"../transformation/file":45,"../transformation/file/options/config":49,"../transformation/file/options/option-manager":51,"../transformation/pipeline":56,"../util":59,"babel-messages":99,"babel-template":225,"babel-traverse":229,"babel-types":265,fs:1,"lodash/isFunction":480}],40:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/get-iterator"),a=r(i);n.default=function(e,t){if(e&&t)return(0,o.default)(e,t,function(e,t){if(t&&Array.isArray(e)){for(var n=t.slice(0),r=e,i=Array.isArray(r),s=0,r=i?r:(0,a.default)(r);;){var o;if(i){if(s>=r.length)break;o=r[s++]}else{if(s=r.next(),s.done)break;o=s.value}var u=o;n.indexOf(u)<0&&n.push(u)}return n}})};var s=e("lodash/mergeWith"),o=r(s);t.exports=n.default},{"babel-runtime/core-js/get-iterator":100,"lodash/mergeWith":495}],41:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0,n.default=function(e,t,n){if(e){if("Program"===e.type)return a.file(e,t||[],n||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var i=e("babel-types"),a=r(i);t.exports=n.default},{"babel-types":265}],42:[function(e,t,n){(function(r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/helpers/typeof"),s=i(a);n.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.cwd();if("object"===("undefined"==typeof u.default?"undefined":(0,s.default)(u.default)))return null;var n=p[t];if(!n){n=new u.default;var i=c.default.join(t,".babelrc");n.id=i,n.filename=i,n.paths=u.default._nodeModulePaths(t),p[t]=n}try{return u.default._resolveFilename(e,n)}catch(e){return null}};var o=e("module"),u=i(o),l=e("path"),c=i(l),p={};t.exports=n.default}).call(this,e("_process"))},{_process:13,"babel-runtime/helpers/typeof":118,module:1,path:12}],43:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/map"),a=r(i),s=e("babel-runtime/helpers/classCallCheck"),o=r(s),u=e("babel-runtime/helpers/possibleConstructorReturn"),l=r(u),c=e("babel-runtime/helpers/inherits"),p=r(c),f=function(e){function t(){(0,o.default)(this,t);var n=(0,l.default)(this,e.call(this));return n.dynamicData={},n}return(0,p.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var n=this.dynamicData[t]();return this.set(t,n),n}},t}(a.default);n.default=f,t.exports=n.default},{"babel-runtime/core-js/map":102,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117}],44:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(e,t){var n=[],r=x.functionExpression(null,[x.identifier("global")],x.blockStatement(n)),i=x.program([x.expressionStatement(x.callExpression(r,[c.get("selfGlobal")]))]);return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.assignmentExpression("=",x.memberExpression(x.identifier("global"),e),x.objectExpression([])))])),t(n),i}function s(e,t){var n=[];return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.identifier("global"))])),t(n),x.program([_({FACTORY_PARAMETERS:x.identifier("global"),BROWSER_ARGUMENTS:x.assignmentExpression("=",x.memberExpression(x.identifier("root"),e),x.objectExpression([])),COMMON_ARGUMENTS:x.identifier("exports"),AMD_ARGUMENTS:x.arrayExpression([x.stringLiteral("exports")]),FACTORY_BODY:n,UMD_ROOT:x.identifier("this")})])}function o(e,t){var n=[];return n.push(x.variableDeclaration("var",[x.variableDeclarator(e,x.objectExpression([]))])),t(n),n.push(x.expressionStatement(e)),x.program(n)}function u(e,t,n){(0,g.default)(c.list,function(r){if(!(n&&n.indexOf(r)<0)){var i=x.identifier(r);e.push(x.expressionStatement(x.assignmentExpression("=",x.memberExpression(t,i),c.get(r))))}})}n.__esModule=!0,n.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",n=x.identifier("babelHelpers"),r=function(t){return u(t,n,e)},i=void 0,l={global:a,umd:s,var:o}[t];if(!l)throw new Error(d.get("unsupportedOutputType",t));return i=l(n,r),(0,f.default)(i).code};var l=e("babel-helpers"),c=i(l),p=e("babel-generator"),f=r(p),h=e("babel-messages"),d=i(h),y=e("babel-template"),m=r(y),b=e("lodash/each"),g=r(b),v=e("babel-types"),x=i(v),_=(0,m.default)('\n (function (root, factory) {\n if (typeof define === "function" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === "object") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n');t.exports=n.default},{"babel-generator":85,"babel-helpers":98,"babel-messages":99,"babel-template":225,"babel-types":265,"lodash/each":461}],45:[function(e,t,n){(function(t){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0,n.File=void 0;var a=e("babel-runtime/helpers/typeof"),s=i(a),o=e("babel-runtime/core-js/get-iterator"),u=i(o),l=e("babel-runtime/core-js/object/create"),c=i(l),p=e("babel-runtime/core-js/object/assign"),f=i(p),h=e("babel-runtime/helpers/classCallCheck"),d=i(h),y=e("babel-runtime/helpers/possibleConstructorReturn"),m=i(y),b=e("babel-runtime/helpers/inherits"),g=i(b),v=e("babel-helpers"),x=i(v),_=e("./metadata"),E=r(_),A=e("convert-source-map"),D=i(A),C=e("./options/option-manager"),S=i(C),w=e("../plugin-pass"),k=i(w),F=e("babel-traverse"),T=i(F),P=e("source-map"),j=i(P),B=e("babel-generator"),O=i(B),I=e("babel-code-frame"),N=i(I),L=e("lodash/defaults"),M=i(L),R=e("./logger"),U=i(R),V=e("../../store"),G=i(V),q=e("babylon"),K=e("../../util"),X=r(K),J=e("path"),W=i(J),z=e("babel-types"),Y=r(z),H=e("../../helpers/resolve"),$=i(H),Q=e("../internal-plugins/block-hoist"),Z=i(Q),ee=e("../internal-plugins/shadow-functions"),te=i(ee),ne=/^#!.*/,re=[[Z.default],[te.default]],ie={enter:function(e,t){var n=e.node.loc;n&&(t.loc=n,e.stop())}},ae=function(n){function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];(0,d.default)(this,r);var i=(0,m.default)(this,n.call(this));return i.pipeline=t,i.log=new U.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,f.default)((0,c.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new F.Hub(i),i}return(0,g.default)(r,n),r.prototype.getMetadata=function(){for(var e=!1,t=this.ast.program.body,n=Array.isArray(t),r=0,t=n?t:(0,u.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;if(Y.isModuleDeclaration(a)){e=!0;break}}e&&this.path.traverse(E,this)},r.prototype.initOptions=function(e){e=new S.default(this.log,this.pipeline).init(e),e.inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=W.default.basename(e.filename,W.default.extname(e.filename)),e.ignore=X.arrayify(e.ignore,X.regexify),e.only&&(e.only=X.arrayify(e.only,X.regexify)),(0,M.default)(e,{moduleRoot:e.sourceRoot}),(0,M.default)(e,{sourceRoot:e.moduleRoot}),(0,M.default)(e,{filenameRelative:e.filename});var t=W.default.basename(e.filenameRelative);return(0,M.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},r.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){for(var t=e.plugins.concat(re),n=[],r=[],i=t,a=Array.isArray(i),s=0,i=a?i:(0,u.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var l=o,c=l[0],p=l[1];n.push(c.visitor),r.push(new k.default(this,c,p)),c.manipulateOptions&&c.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(n),this.pluginPasses.push(r)}},r.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,n="";if(null!=e.moduleRoot&&(n=e.moduleRoot+"/"),!e.filenameRelative)return n+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var r=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(r,"")}return t=t.replace(/\.(\w*?)$/,""),n+=t,n=n.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(n)||n:n},r.prototype.resolveModuleSource=function e(t){var e=this.opts.resolveModuleSource;return e&&(t=e(t,this.opts.filename)),t},r.prototype.addImport=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=e+":"+t,i=this.dynamicImportIds[r];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[r]=this.scope.generateUidIdentifier(n);var a=[];"*"===t?a.push(Y.importNamespaceSpecifier(i)):"default"===t?a.push(Y.importDefaultSpecifier(i)):a.push(Y.importSpecifier(i,Y.identifier(t)));var s=Y.importDeclaration(a,Y.stringLiteral(e));s._blockHoist=3,this.path.unshiftContainer("body",s)}return i},r.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var n=this.get("helperGenerator"),r=this.get("helpersNamespace");if(n){var i=n(e);if(i)return i}else if(r)return Y.memberExpression(r,Y.identifier(e));var a=(0,x.default)(e),s=this.declarations[e]=this.scope.generateUidIdentifier(e);return Y.isFunctionExpression(a)&&!a.id?(a.body._compact=!0,a._generated=!0,a.id=s,a.type="FunctionDeclaration",this.path.unshiftContainer("body",a)):(a._compact=!0,this.scope.push({id:s,init:a,unique:!0})),s},r.prototype.addTemplateObject=function(e,t,n){var r=n.elements.map(function(e){return e.value}),i=e+"_"+n.elements.length+"_"+r.join(","),a=this.declarations[i];if(a)return a;var s=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=Y.callExpression(o,[t,n]);return u._compact=!0,this.scope.push({id:s,init:u,_blockHoist:1.9}),s},r.prototype.buildCodeFrameError=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,r=e&&(e.loc||e._loc),i=new n(t);return r?i.loc=r.start:((0,T.default)(e,ie,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},r.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(!t)return e;var n=function(){var n=new j.default.SourceMapConsumer(t),r=new j.default.SourceMapConsumer(e),i=new j.default.SourceMapGenerator({file:n.file,sourceRoot:n.sourceRoot}),a=r.sources[0];n.eachMapping(function(e){var t=r.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:a});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var s=i.toJSON();return t.mappings=s.mappings,{v:t}}();return"object"===("undefined"==typeof n?"undefined":(0,s.default)(n))?n.v:void 0},r.prototype.parse=function(n){var r=q.parse,i=this.opts.parserOpts;if(i&&(i=(0,f.default)({},this.parserOpts,i),i.parser)){if("string"==typeof i.parser){var a=W.default.dirname(this.opts.filename)||t.cwd(),s=(0,$.default)(i.parser,a);if(!s)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+a);r=e(s).parse}else r=i.parser;i.parser={parse:function(e){return(0,q.parse)(e,i)}}}this.log.debug("Parse start");var o=r(n,i||this.parserOpts);return this.log.debug("Parse stop"),o},r.prototype._addAst=function(e){this.path=F.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},r.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},r.prototype.transform=function(){for(var e=0;e<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var n=T.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,T.default)(this.ast,n,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},r.prototype.wrap=function(e,n){e+="";try{return this.shouldIgnore()?this.makeResult({code:e,ignored:!0}):n()}catch(n){if(n._babel)throw n;n._babel=!0;var r=n.message=this.opts.filename+": "+n.message,i=n.loc;if(i&&(n.codeFrame=(0,N.default)(e,i.line,i.column+1,this.opts),r+="\n"+n.codeFrame),t.browser&&(n.message=r),n.stack){var a=n.stack.replace(n.message,r);n.stack=a}throw n}},r.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},r.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},r.prototype.shouldIgnore=function(){var e=this.opts;return X.shouldIgnore(e.filename,e.ignore,e.only)},r.prototype.call=function(e,t){for(var n=t,r=Array.isArray(n),i=0,n=r?n:(0,u.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a,o=s.plugin,l=o[e];l&&l.call(s,this)}},r.prototype.parseInputSourceMap=function(e){var t=this.opts;if(t.inputSourceMap!==!1){var n=D.default.fromSource(e);n&&(t.inputSourceMap=n.toObject(),e=D.default.removeComments(e))}return e},r.prototype.parseShebang=function(){var e=ne.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(ne,""))},r.prototype.makeResult=function(e){var t=e.code,n=e.map,r=e.ast,i=e.ignored,a={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:n||null};return this.opts.code&&(a.code=t),this.opts.ast&&(a.ast=r),this.opts.metadata&&(a.metadata=this.metadata),a},r.prototype.generate=function(){var n=this.opts,r=this.ast,i={ast:r};if(!n.code)return this.makeResult(i);var a=O.default;if(n.generatorOpts.generator&&(a=n.generatorOpts.generator,"string"==typeof a)){var s=W.default.dirname(this.opts.filename)||t.cwd(),o=(0,$.default)(a,s);if(!o)throw new Error("Couldn't find generator "+a+' with "print" method relative to directory '+s);a=e(o).print}this.log.debug("Generation start");var u=a(r,n.generatorOpts?(0,f.default)(n,n.generatorOpts):n,this.code);return i.code=u.code,i.map=u.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==n.sourceMaps&&"both"!==n.sourceMaps||(i.code+="\n"+D.default.fromObject(i.map).toComment()),"inline"===n.sourceMaps&&(i.map=null),this.makeResult(i)},r}(G.default);n.default=ae,n.File=ae}).call(this,e("_process"))},{"../../helpers/resolve":42,"../../store":43,"../../util":59,"../internal-plugins/block-hoist":54,"../internal-plugins/shadow-functions":55,"../plugin-pass":57,"./logger":46,"./metadata":47,"./options/option-manager":51,_process:13,"babel-code-frame":60,"babel-generator":85,"babel-helpers":98,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/object/assign":104,"babel-runtime/core-js/object/create":105,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117,"babel-runtime/helpers/typeof":118,"babel-traverse":229,"babel-types":265,babylon:274,"convert-source-map":275,"lodash/defaults":460,path:12,"source-map":527}],46:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=e("debug/node"),o=r(s),u=(0,o.default)("babel:verbose"),l=(0,o.default)("babel"),c=[],p=function(){function e(t,n){(0,a.default)(this,e),this.filename=n,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error;throw new t(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),c.indexOf(e)>=0||(c.push(e),console.error(e)))},e.prototype.verbose=function(e){u.enabled&&u(this._buildMessage(e))},e.prototype.debug=function(e){l.enabled&&l(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();n.default=p,t.exports=n.default},{"babel-runtime/helpers/classCallCheck":114,"debug/node":276}],47:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=e.node,r=n.source?n.source.value:null,i=t.metadata.modules.exports,a=e.get("declaration");if(a.isStatement()){var s=a.getBindingIdentifiers();for(var o in s)i.exported.push(o),i.specifiers.push({kind:"local",local:o,exported:e.isExportDefaultDeclaration()?"default":o})}if(e.isExportNamedDeclaration()&&n.specifiers)for(var l=n.specifiers,p=Array.isArray(l),f=0,l=p?l:(0,u.default)(l);;){var h;if(p){if(f>=l.length)break;h=l[f++]}else{if(f=l.next(),f.done)break;h=f.value}var d=h,y=d.exported.name;i.exported.push(y),c.isExportDefaultSpecifier(d)&&i.specifiers.push({kind:"external",local:y,exported:y,source:r}),c.isExportNamespaceSpecifier(d)&&i.specifiers.push({kind:"external-namespace",exported:y,source:r});var m=d.local;m&&(r&&i.specifiers.push({kind:"external",local:m.name,exported:y,source:r}),r||i.specifiers.push({kind:"local",local:m.name,exported:y}))}e.isExportAllDeclaration()&&i.specifiers.push({kind:"external-all",source:r})}function s(e){e.skip()}n.__esModule=!0,n.ImportDeclaration=n.ModuleDeclaration=void 0;var o=e("babel-runtime/core-js/get-iterator"),u=i(o);n.ExportDeclaration=a,n.Scope=s;var l=e("babel-types"),c=r(l);n.ModuleDeclaration={enter:function(e,t){var n=e.node;n.source&&(n.source.value=t.resolveModuleSource(n.source.value))}},n.ImportDeclaration={exit:function(e,t){var n=e.node,r=[],i=[];t.metadata.modules.imports.push({source:n.source.value,imported:i,specifiers:r});for(var a=e.get("specifiers"),s=Array.isArray(a),o=0,a=s?a:(0,u.default)(a);;){var l;if(s){if(o>=a.length)break;l=a[o++]}else{if(o=a.next(),o.done)break;l=o.value}var c=l,p=c.node.local.name;if(c.isImportDefaultSpecifier()&&(i.push("default"),r.push({kind:"named",imported:"default",local:p})),c.isImportSpecifier()){var f=c.node.imported.name;i.push(f),r.push({kind:"named",imported:f,local:p})}c.isImportNamespaceSpecifier()&&(i.push("*"),r.push({kind:"namespace",local:p}))}}}},{"babel-runtime/core-js/get-iterator":100,"babel-types":265}],48:[function(e,t,n){(function(r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e){var t=_[e];return null==t?_[e]=x.default.existsSync(e):t}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=e.filename,r=new S(t);return e.babelrc!==!1&&r.findConfigs(n),r.mergeConfig({options:e,alias:"base",dirname:n&&g.default.dirname(n)}),r.configs}n.__esModule=!0;var o=e("babel-runtime/core-js/object/assign"),u=i(o),l=e("babel-runtime/helpers/classCallCheck"),c=i(l);n.default=s;var p=e("../../../helpers/resolve"),f=i(p),h=e("json5"),d=i(h),y=e("path-is-absolute"),m=i(y),b=e("path"),g=i(b),v=e("fs"),x=i(v),_={},E={},A=".babelignore",D=".babelrc",C="package.json",S=function(){function e(t){(0,c.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,m.default)(e)||(e=g.default.join(r.cwd(),e));for(var t=!1,n=!1;e!==(e=g.default.dirname(e));){if(!t){var i=g.default.join(e,D);a(i)&&(this.addConfig(i),t=!0);var s=g.default.join(e,C);!t&&a(s)&&(t=this.addConfig(s,"babel",JSON))}if(!n){var o=g.default.join(e,A);a(o)&&(this.addIgnoreConfig(o),n=!0)}if(n&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=x.default.readFileSync(e,"utf8"),n=t.split("\n");n=n.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e}),n.length&&this.mergeConfig({options:{ignore:n},alias:e,dirname:g.default.dirname(e)})},e.prototype.addConfig=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1;this.resolvedConfigs.push(e);var r=x.default.readFileSync(e,"utf8"),i=void 0;try{i=E[r]=E[r]||n.parse(r),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:g.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,n=e.alias,i=e.loc,a=e.dirname;
+if(!t)return!1;if(t=(0,u.default)({},t),a=a||r.cwd(),i=i||n,t.extends){var s=(0,f.default)(t.extends,a);s?this.addConfig(s):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+n),delete t.extends}this.configs.push({options:t,alias:n,loc:i,dirname:a});var o=void 0,l=r.env.BABEL_ENV||r.env.NODE_ENV||"development";t.env&&(o=t.env[l],delete t.env),this.mergeConfig({options:o,alias:n+".env."+l,dirname:a})},e}();t.exports=n.default}).call(this,e("_process"))},{"../../../helpers/resolve":42,_process:13,"babel-runtime/core-js/object/assign":104,"babel-runtime/helpers/classCallCheck":114,fs:1,json5:281,path:12,"path-is-absolute":515}],49:[function(e,t,n){"use strict";t.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},{}],50:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var n=e[t];if(null!=n){var r=l.default[t];if(r&&r.alias&&(r=l.default[r.alias]),r){var i=o[r.type];i&&(n=i(n)),e[t]=n}}}return e}n.__esModule=!0,n.config=void 0,n.normaliseOptions=a;var s=e("./parsers"),o=i(s),u=e("./config"),l=r(u);n.config=l.default},{"./config":49,"./parsers":52}],51:[function(e,t,n){(function(r){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var s=e("babel-runtime/helpers/objectWithoutProperties"),o=a(s),u=e("babel-runtime/core-js/json/stringify"),l=a(u),c=e("babel-runtime/core-js/object/assign"),p=a(c),f=e("babel-runtime/core-js/get-iterator"),h=a(f),d=e("babel-runtime/helpers/typeof"),y=a(d),m=e("babel-runtime/helpers/classCallCheck"),b=a(m),g=e("../../../api/node"),v=i(g),x=e("../../plugin"),_=a(x),E=e("babel-messages"),A=i(E),D=e("./index"),C=e("../../../helpers/resolve"),S=a(C),w=e("lodash/cloneDeepWith"),k=a(w),F=e("lodash/clone"),T=a(F),P=e("../../../helpers/merge"),j=a(P),B=e("./config"),O=a(B),I=e("./removed"),N=a(I),L=e("./build-config-chain"),M=a(L),R=e("path"),U=a(R),V=function(){function t(e){(0,b.default)(this,t),this.resolvedConfigs=[],this.options=t.createBareOptions(),this.log=e}return t.memoisePluginContainer=function(e,n,r,i){for(var a=t.memoisedPlugins,s=Array.isArray(a),o=0,a=s?a:(0,h.default)(a);;){var u;if(s){if(o>=a.length)break;u=a[o++]}else{if(o=a.next(),o.done)break;u=o.value}var l=u;if(l.container===e)return l.plugin}var c=void 0;if(c="function"==typeof e?e(v):e,"object"===("undefined"==typeof c?"undefined":(0,y.default)(c))){var p=new _.default(c,i);return t.memoisedPlugins.push({container:e,plugin:p}),p}throw new TypeError(A.get("pluginNotObject",n,r,"undefined"==typeof c?"undefined":(0,y.default)(c))+n+r)},t.createBareOptions=function(){var e={};for(var t in O.default){var n=O.default[t];e[t]=(0,T.default)(n.default)}return e},t.normalisePlugin=function(e,n,r,i){if(e=e.__esModule?e.default:e,!(e instanceof _.default)){if("function"!=typeof e&&"object"!==("undefined"==typeof e?"undefined":(0,y.default)(e)))throw new TypeError(A.get("pluginNotFunction",n,r,"undefined"==typeof e?"undefined":(0,y.default)(e)));e=t.memoisePluginContainer(e,n,r,i)}return e.init(n,r),e},t.normalisePlugins=function(n,r,i){return i.map(function(i,a){var s=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(s=i[0],o=i[1]):s=i;var u="string"==typeof s?s:n+"$"+a;if("string"==typeof s){var l=(0,S.default)("babel-plugin-"+s,r)||(0,S.default)(s,r);if(!l)throw new ReferenceError(A.get("pluginUnknown",s,n,a,r));s=e(l)}return s=t.normalisePlugin(s,n,a,u),[s,o]})},t.prototype.mergeOptions=function(e){var n=this,i=e.options,a=e.extending,s=e.alias,o=e.loc,u=e.dirname;if(s=s||"foreign",i){("object"!==("undefined"==typeof i?"undefined":(0,y.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+s,TypeError);var l=(0,k.default)(i,function(e){if(e instanceof _.default)return e});u=u||r.cwd(),o=o||s;for(var c in l){var f=O.default[c];if(!f&&this.log)if(N.default[c])this.log.error("Using removed Babel 5 option: "+s+"."+c+" - "+N.default[c].message,ReferenceError);else{var h="Unknown option: "+s+"."+c+". Check out http://babeljs.io/docs/usage/options/ for more information about options.",d="A common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n `{ presets: [{option: value}] }`\nValid:\n `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.";this.log.error(h+"\n\n"+d,ReferenceError)}}(0,D.normaliseOptions)(l),l.plugins&&(l.plugins=t.normalisePlugins(o,u,l.plugins)),l.presets&&(l.passPerPreset?l.presets=this.resolvePresets(l.presets,u,function(e,t){n.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:u})}):(this.mergePresets(l.presets,u),delete l.presets)),i===a?(0,p.default)(a,l):(0,j.default)(a||this.options,l)}},t.prototype.mergePresets=function(e,t){var n=this;this.resolvePresets(e,t,function(e,t){n.mergeOptions({options:e,alias:t,loc:t,dirname:U.default.dirname(t||"")})})},t.prototype.resolvePresets=function(t,n,r){return t.map(function(t){var i=void 0;if(Array.isArray(t)){if(t.length>2)throw new Error("Unexpected extra options "+(0,l.default)(t.slice(2))+" passed to preset.");var a=t;t=a[0],i=a[1]}var s=void 0;try{if("string"==typeof t){if(s=(0,S.default)("babel-preset-"+t,n)||(0,S.default)(t,n),!s){var u=t.match(/^(@[^\/]+)\/(.+)$/);if(u){var c=u[1],p=u[2];t=c+"/babel-preset-"+p,s=(0,S.default)(t,n)}}if(!s)throw new Error("Couldn't find preset "+(0,l.default)(t)+" relative to directory "+(0,l.default)(n));t=e(s)}if("object"===("undefined"==typeof t?"undefined":(0,y.default)(t))&&t.__esModule)if(t.default)t=t.default;else{var f=t,h=(f.__esModule,(0,o.default)(f,["__esModule"]));t=h}if("object"===("undefined"==typeof t?"undefined":(0,y.default)(t))&&t.buildPreset&&(t=t.buildPreset),"function"!=typeof t&&void 0!==i)throw new Error("Options "+(0,l.default)(i)+" passed to "+(s||"a preset")+" which does not accept options.");if("function"==typeof t&&(t=t(v,i)),"object"!==("undefined"==typeof t?"undefined":(0,y.default)(t)))throw new Error("Unsupported preset format: "+t+".");r&&r(t,s)}catch(e){throw s&&(e.message+=" (While processing preset: "+(0,l.default)(s)+")"),e}return t})},t.prototype.normaliseOptions=function(){var e=this.options;for(var t in O.default){var n=O.default[t],r=e[t];!r&&n.optional||(n.alias?e[n.alias]=e[n.alias]||r:e[t]=r)}},t.prototype.init=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,M.default)(e,this.log),n=Array.isArray(t),r=0,t=n?t:(0,h.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;this.mergeOptions(a)}return this.normaliseOptions(e),this.options},t}();n.default=V,V.memoisedPlugins=[],t.exports=n.default}).call(this,e("_process"))},{"../../../api/node":39,"../../../helpers/merge":40,"../../../helpers/resolve":42,"../../plugin":58,"./build-config-chain":48,"./config":49,"./index":50,"./removed":53,_process:13,"babel-messages":99,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/json/stringify":101,"babel-runtime/core-js/object/assign":104,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/objectWithoutProperties":116,"babel-runtime/helpers/typeof":118,"lodash/clone":455,"lodash/cloneDeepWith":457,path:12}],52:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return!!e}function s(e){return p.booleanify(e)}function o(e){return p.list(e)}n.__esModule=!0,n.filename=void 0,n.boolean=a,n.booleanString=s,n.list=o;var u=e("slash"),l=i(u),c=e("../../../util"),p=r(c);n.filename=l.default},{"../../../util":59,slash:516}],53:[function(e,t,n){"use strict";t.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},{}],54:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("../plugin"),a=r(i),s=e("lodash/sortBy"),o=r(s);n.default=new a.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,n=!1,r=0;r<t.body.length;r++){var i=t.body[r];if(i&&null!=i._blockHoist){n=!0;break}}n&&(t.body=(0,o.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),t===!0&&(t=2),-1*t}))}}}}),t.exports=n.default},{"../plugin":58,"lodash/sortBy":499}],55:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){return!!e.is("_forceShadow")||t}function s(e,t){var n=e.inShadow(t);if(a(e,n)){var r=e.node._shadowedFunctionLiteral,i=void 0,s=!1,o=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(i=i||t),t.isProgram())return s=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(r){if(t===r||t.node===r.node)return!0}else if(!t.is("shadow"))return!0;return s=!0,!1}return!1});if(r&&o.isProgram()&&!r.isProgram()&&(o=e.findParent(function(e){return e.isProgram()||e.isFunction()})),o!==i&&s){var u=o.getData(t);if(u)return e.replaceWith(u);var l=e.scope.generateUidIdentifier(t);o.setData(t,l);var c=o.findParent(function(e){return e.isClass()}),p=!!(c&&c.node&&c.node.superClass);if("this"===t&&o.isMethod({kind:"constructor"})&&p)o.scope.push({id:l}),o.traverse(d,{id:l});else{var h="this"===t?f.thisExpression():f.identifier(t);r&&(h._shadowedFunctionLiteral=r),o.scope.push({id:l,init:h})}return e.replaceWith(l)}}}n.__esModule=!0;var o=e("babel-runtime/core-js/symbol"),u=i(o),l=e("../plugin"),c=i(l),p=e("babel-types"),f=r(p),h=(0,u.default)("super this bound"),d={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[h]||(t[h]=!0,e.replaceWith(f.assignmentExpression("=",this.id,t)))}}};n.default=new c.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){s(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&s(e,"arguments")}}}),t.exports=n.default},{"../plugin":58,"babel-runtime/core-js/symbol":109,"babel-types":265}],56:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=e("../helpers/normalize-ast"),o=r(s),u=e("./plugin"),l=r(u),c=e("./file"),p=r(c),f=function(){function e(){(0,a.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var n=new p.default(t,this);return n.wrap(e,function(){return n.addCode(e),n.parseCode(e),n})},e.prototype.transform=function(e,t){var n=new p.default(t,this);return n.wrap(e,function(){return n.addCode(e),n.parseCode(e),n.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];return t.code=!1,n&&(t.plugins=t.plugins||[],t.plugins.push(new l.default({visitor:n}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,n){e=(0,o.default)(e);var r=new p.default(n,this);return r.wrap(t,function(){return r.addCode(t),r.addAst(e),r.transform()})},e}();n.default=f,t.exports=n.default},{"../helpers/normalize-ast":41,"./file":45,"./plugin":58,"babel-runtime/helpers/classCallCheck":114}],57:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=e("babel-runtime/helpers/possibleConstructorReturn"),o=r(s),u=e("babel-runtime/helpers/inherits"),l=r(u),c=e("../store"),p=r(c),f=e("./file"),h=(r(f),function(e){function t(n,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,a.default)(this,t);var s=(0,o.default)(this,e.call(this));return s.plugin=r,s.key=r.key,s.file=n,s.opts=i,s}return(0,l.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(p.default));n.default=h,t.exports=n.default},{"../store":43,"./file":45,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117}],58:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/core-js/get-iterator"),s=i(a),o=e("babel-runtime/helpers/classCallCheck"),u=i(o),l=e("babel-runtime/helpers/possibleConstructorReturn"),c=i(l),p=e("babel-runtime/helpers/inherits"),f=i(p),h=e("./file/options/option-manager"),d=i(h),y=e("babel-messages"),m=r(y),b=e("../store"),g=i(b),v=e("babel-traverse"),x=i(v),_=e("lodash/assign"),E=i(_),A=e("lodash/clone"),D=i(A),C=["enter","exit"],S=function(e){function t(n,r){(0,u.default)(this,t);var i=(0,c.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,E.default)({},n),i.key=i.take("name")||r,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,D.default)(i.take("visitor"))||{}),i}return(0,f.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var n=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,r=Array(t),i=0;i<t;i++)r[i]=arguments[i];for(var a=n,o=Array.isArray(a),u=0,a=o?a:(0,s.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(c){var p=c.apply(this,r);null!=p&&(e=p)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=d.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=x.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var n in this.raw)throw new Error(m.get("pluginInvalidProperty",e,t,n))}},t.prototype.normaliseVisitor=function(e){for(var t=C,n=Array.isArray(t),r=0,t=n?t:(0,s.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;if(e[a])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return x.default.explode(e),e},t}(g.default);n.default=S,t.exports=n.default},{"../store":43,"./file/options/option-manager":51,"babel-messages":99,"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117,"babel-traverse":229,"lodash/assign":453,"lodash/clone":455}],59:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=t||i.EXTENSIONS,r=F.default.extname(e);return(0,A.default)(n,r)}function a(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function s(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(y.default).join("|"),"i")),"string"==typeof e){e=(0,P.default)(e),((0,b.default)(e,"./")||(0,b.default)(e,"*/"))&&(e=e.slice(2)),(0,b.default)(e,"**/")&&(e=e.slice(3));var t=_.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,w.default)(e))return e;throw new TypeError("illegal type for regexify")}function o(e,t){return e?(0,v.default)(e)?o([e],t):(0,C.default)(e)?o(a(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function u(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments[2];if(e=e.replace(/\\/g,"/"),n){for(var r=n,i=Array.isArray(r),a=0,r=i?r:(0,f.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if(c(o,e))return!1}return!0}if(t.length)for(var u=t,l=Array.isArray(u),p=0,u=l?u:(0,f.default)(u);;){var h;if(l){if(p>=u.length)break;h=u[p++]}else{if(p=u.next(),p.done)break;h=p.value}var d=h;if(c(d,e))return!0}return!1}function c(e,t){return"function"==typeof e?e(t):e.test(t)}n.__esModule=!0,n.inspect=n.inherits=void 0;var p=e("babel-runtime/core-js/get-iterator"),f=r(p),h=e("util");Object.defineProperty(n,"inherits",{enumerable:!0,get:function(){return h.inherits}}),Object.defineProperty(n,"inspect",{enumerable:!0,get:function(){return h.inspect}}),n.canCompile=i,n.list=a,n.regexify=s,n.arrayify=o,n.booleanify=u,n.shouldIgnore=l;var d=e("lodash/escapeRegExp"),y=r(d),m=e("lodash/startsWith"),b=r(m),g=e("lodash/isBoolean"),v=r(g),x=e("minimatch"),_=r(x),E=e("lodash/includes"),A=r(E),D=e("lodash/isString"),C=r(D),S=e("lodash/isRegExp"),w=r(S),k=e("path"),F=r(k),T=e("slash"),P=r(T);i.EXTENSIONS=[".js",".jsx",".es6",".es"]},{"babel-runtime/core-js/get-iterator":100,"lodash/escapeRegExp":463,"lodash/includes":473,"lodash/isBoolean":478,"lodash/isRegExp":487,"lodash/isString":488,"lodash/startsWith":500,minimatch:511,path:12,slash:516,util:35}],60:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}function a(e){var t=e.slice(-2),n=t[0],r=t[1],i=u.default.matchToToken(e);if("name"===i.type){if(c.default.keyword.isReservedWordES6(i.value))return"keyword";if(d.test(i.value)&&("<"===r[n-1]||"</"==r.substr(n-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&y.test(i.value)?"bracket":i.type}function s(e,t){return t.replace(u.default,function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=a(n),s=e[i];return s?n[0].split(h).map(function(e){return s(e)}).join("\n"):n[0]})}n.__esModule=!0,n.default=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=Math.max(n,0);var a=r.highlightCode&&f.default.supportsColor||r.forceColor,o=f.default;r.forceColor&&(o=new f.default.constructor({enabled:!0}));var u=function(e,t){return a?e(t):t},l=i(o);a&&(e=s(l,e));var c=r.linesAbove||2,p=r.linesBelow||3,d=e.split(h),y=Math.max(t-(c+1),0),m=Math.min(d.length,t+p);t||n||(y=0,m=d.length);var b=String(m).length,g=d.slice(y,m).map(function(e,r){var i=y+1+r,a=(" "+i).slice(-b),s=" "+a+" | ";if(i===t){var o="";if(n){var c=e.slice(0,n-1).replace(/[^\t]/g," ");o=["\n ",u(l.gutter,s.replace(/\d/g," ")),c,u(l.marker,"^")].join("")}return[u(l.marker,">"),u(l.gutter,s),e,o].join("")}return" "+u(l.gutter,s)+e}).join("\n");return a?o.reset(g):g};var o=e("js-tokens"),u=r(o),l=e("esutils"),c=r(l),p=e("chalk"),f=r(p),h=/\r\n|[\n\r\u2028\u2029]/,d=/^[a-z][\w-]*$/i,y=/^[()\[\]{}]$/;t.exports=n.default},{chalk:61,esutils:72,"js-tokens":73}],61:[function(e,t,n){(function(n){"use strict";function r(e){this.enabled=e&&void 0!==e.enabled?e.enabled:p}function i(e){var t=function(){return a.apply(t,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=y,t}function a(){var e=arguments,t=e.length,n=0!==t&&String(arguments[0]);if(t>1)for(var r=1;r<t;r++)n+=" "+e[r];if(!this.enabled||!n)return n;var i=this._styles,a=i.length,s=u.dim.open;for(!h||i.indexOf("gray")===-1&&i.indexOf("grey")===-1||(u.dim.open="");a--;){var o=u[i[a]];n=o.open+n.replace(o.closeRe,o.open)+o.close}return u.dim.open=s,n}function s(){var e={};return Object.keys(d).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}var o=e("escape-string-regexp"),u=e("ansi-styles"),l=e("strip-ansi"),c=e("has-ansi"),p=e("supports-color"),f=Object.defineProperties,h="win32"===n.platform&&!/^xterm/i.test(n.env.TERM);h&&(u.blue.open="");var d=function(){var e={};return Object.keys(u).forEach(function(t){u[t].closeRe=new RegExp(o(u[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),y=f(function(){},d);f(r.prototype,s()),t.exports=new r,t.exports.styles=u,t.exports.hasColor=c,t.exports.stripColor=l,t.exports.supportsColor=p}).call(this,e("_process"))},{_process:13,"ansi-styles":62,"escape-string-regexp":63,"has-ansi":64,"strip-ansi":66,"supports-color":68}],62:[function(e,t,n){"use strict";function r(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var n=e[t];Object.keys(n).forEach(function(t){var r=n[t];e[t]=n[t]={open:"["+r[0]+"m",close:"["+r[1]+"m"}}),Object.defineProperty(e,t,{value:n,enumerable:!1})}),e}Object.defineProperty(t,"exports",{enumerable:!0,get:r})},{}],63:[function(e,t,n){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},{}],64:[function(e,t,n){"use strict";var r=e("ansi-regex"),i=new RegExp(r().source);t.exports=i.test.bind(i)},{"ansi-regex":65}],65:[function(e,t,n){"use strict";t.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g}},{}],66:[function(e,t,n){"use strict";var r=e("ansi-regex")();t.exports=function(e){return"string"==typeof e?e.replace(r,""):e}},{"ansi-regex":67}],67:[function(e,t,n){arguments[4][65][0].apply(n,arguments)},{dup:65}],68:[function(e,t,n){(function(e){"use strict";var n=e.argv,r=n.indexOf("--"),i=function(e){e="--"+e;var t=n.indexOf(e);return t!==-1&&(r===-1||t<r)};t.exports=function(){return"FORCE_COLOR"in e.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(e.stdout&&!e.stdout.isTTY)&&("win32"===e.platform||("COLORTERM"in e.env||"dumb"!==e.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(e.env.TERM))))}()}).call(this,e("_process"))},{_process:13}],69:[function(e,t,n){!function(){"use strict";function e(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function n(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function r(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function i(e){return r(e)||null!=e&&"FunctionDeclaration"===e.type}function a(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}function s(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=a(t)}while(t);return!1}t.exports={isExpression:e,isStatement:r,isIterationStatement:n,isSourceElement:i,isProblematicIfStatement:s,trailingStatement:a}}()},{}],70:[function(e,t,n){!function(){"use strict";function e(e){return 48<=e&&e<=57}function n(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70}function r(e){return e>=48&&e<=55}function i(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&h.indexOf(e)>=0}function a(e){return 10===e||13===e||8232===e||8233===e}function s(e){if(e<=65535)return String.fromCharCode(e);var t=String.fromCharCode(Math.floor((e-65536)/1024)+55296),n=String.fromCharCode((e-65536)%1024+56320);return t+n}function o(e){return e<128?d[e]:f.NonAsciiIdentifierStart.test(s(e))}function u(e){return e<128?y[e]:f.NonAsciiIdentifierPart.test(s(e))}function l(e){return e<128?d[e]:p.NonAsciiIdentifierStart.test(s(e))}function c(e){return e<128?y[e]:p.NonAsciiIdentifierPart.test(s(e))}var p,f,h,d,y,m;for(f={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
+NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},p={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},h=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],d=new Array(128),m=0;m<128;++m)d[m]=m>=97&&m<=122||m>=65&&m<=90||36===m||95===m;for(y=new Array(128),m=0;m<128;++m)y[m]=m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||36===m||95===m;t.exports={isDecimalDigit:e,isHexDigit:n,isOctalDigit:r,isWhiteSpace:i,isLineTerminator:a,isIdentifierStartES5:o,isIdentifierPartES5:u,isIdentifierStartES6:l,isIdentifierPartES6:c}}()},{}],71:[function(e,t,n){!function(){"use strict";function n(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function r(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&n(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function a(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function s(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function o(e){return"eval"===e||"arguments"===e}function u(e){var t,n,r;if(0===e.length)return!1;if(r=e.charCodeAt(0),!h.isIdentifierStartES5(r))return!1;for(t=1,n=e.length;t<n;++t)if(r=e.charCodeAt(t),!h.isIdentifierPartES5(r))return!1;return!0}function l(e,t){return 1024*(e-55296)+(t-56320)+65536}function c(e){var t,n,r,i,a;if(0===e.length)return!1;for(a=h.isIdentifierStartES6,t=0,n=e.length;t<n;++t){if(r=e.charCodeAt(t),55296<=r&&r<=56319){if(++t,t>=n)return!1;if(i=e.charCodeAt(t),!(56320<=i&&i<=57343))return!1;r=l(r,i)}if(!a(r))return!1;a=h.isIdentifierPartES6}return!0}function p(e,t){return u(e)&&!a(e,t)}function f(e,t){return c(e)&&!s(e,t)}var h=e("./code");t.exports={isKeywordES5:r,isKeywordES6:i,isReservedWordES5:a,isReservedWordES6:s,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:c,isIdentifierES5:p,isIdentifierES6:f}}()},{"./code":70}],72:[function(e,t,n){!function(){"use strict";n.ast=e("./ast"),n.code=e("./code"),n.keyword=e("./keyword")}()},{"./ast":69,"./code":70,"./keyword":71}],73:[function(e,t,n){t.exports=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]{1,6}\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,t.exports.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},{}],74:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=e("lodash/trimEnd"),o=r(s),u=/^[ \t]+$/,l=function(){function e(t){(0,a.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,o.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,n=t.line,r=t.column,i=t.filename,a=t.identifierName;this._append(e,n,r,a,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&u.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,n=t.line,r=t.column,i=t.filename,a=t.identifierName;this._queue.unshift([e,n,r,a,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,n,r,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,n,r,i),this._buf.push(e),this._last=e[e.length-1];for(var a=0;a<e.length;a++)"\n"===e[a]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var n=this._queue[0][0];t=n[n.length-1]}else t=this._last;return t===e}var r=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=r.length&&r.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var n=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=n?n.line:null,this._sourcePosition.column=n?n.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,n){if(!this._map)return n();var r=this._sourcePosition.line,i=this._sourcePosition.column,a=this._sourcePosition.filename,s=this._sourcePosition.identifierName;this.source(e,t),n(),this._sourcePosition.line=r,this._sourcePosition.column=i,this._sourcePosition.filename=a,this._sourcePosition.identifierName=s},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return t===-1?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,n=0;n<e.length;n++)"\n"===e[n]&&t++;return this._position.line+t},e}();n.default=l,t.exports=n.default},{"babel-runtime/helpers/classCallCheck":114,"lodash/trimEnd":508}],75:[function(e,t,n){"use strict";function r(e){this.print(e.program,e)}function i(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)}function a(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))}function s(){}function o(e){this.print(e.value,e),this.semicolon()}n.__esModule=!0,n.File=r,n.Program=i,n.BlockStatement=a,n.Noop=s,n.Directive=o;var u=e("./types");Object.defineProperty(n,"DirectiveLiteral",{enumerable:!0,get:function(){return u.StringLiteral}})},{"./types":84}],76:[function(e,t,n){"use strict";function r(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}function i(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())}function a(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()}function s(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)}n.__esModule=!0,n.ClassDeclaration=r,n.ClassBody=i,n.ClassProperty=a,n.ClassMethod=s,n.ClassExpression=r},{}],77:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)}function s(e){this.word("do"),this.space(),this.print(e.body,e)}function o(e){this.token("("),this.print(e.expression,e),this.token(")")}function u(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))}function l(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)}function c(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||F.isCallExpression(t,{callee:e})||F.isMemberExpression(t)||F.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))}function p(e){this.printList(e.expressions,e)}function f(){this.word("this")}function h(){this.word("super")}function d(e){this.token("@"),this.print(e.expression,e),this.newline()}function y(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function m(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,n=void 0;t&&(n=y,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:n}),t&&(this.newline(),this.dedent()),this.token(")")}function b(){this.word("import")}function g(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var n=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(n)}}}function v(){this.semicolon(!0)}function x(e){this.print(e.expression,e),this.semicolon()}function _(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)}function E(e,t){var n=this.inForStatementInitCounter&&"in"===e.operator&&!P.needsParens(e,t);n&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),n&&this.token(")")}function A(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)}function D(e){if(this.print(e.object,e),!e.computed&&F.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;F.isLiteral(e.property)&&(0,w.default)(e.property.value)&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))}function C(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)}n.__esModule=!0,n.LogicalExpression=n.BinaryExpression=n.AwaitExpression=n.YieldExpression=void 0,n.UnaryExpression=a,n.DoExpression=s,n.ParenthesizedExpression=o,n.UpdateExpression=u,n.ConditionalExpression=l,n.NewExpression=c,n.SequenceExpression=p,n.ThisExpression=f,n.Super=h,n.Decorator=d,n.CallExpression=m,n.Import=b,n.EmptyStatement=v,n.ExpressionStatement=x,n.AssignmentPattern=_,n.AssignmentExpression=E,n.BindExpression=A,n.MemberExpression=D,n.MetaProperty=C;var S=e("lodash/isNumber"),w=i(S),k=e("babel-types"),F=r(k),T=e("../node"),P=r(T);n.YieldExpression=g("yield"),n.AwaitExpression=g("await");n.BinaryExpression=E,n.LogicalExpression=E},{"../node":86,"babel-types":265,"lodash/isNumber":483}],78:[function(e,t,n){"use strict";function r(){this.word("any")}function i(e){this.print(e.elementType,e),this.token("["),this.token("]")}function a(){this.word("boolean")}function s(e){this.word(e.value?"true":"false")}function o(){this.word("null")}function u(e){this.word("declare"),this.space(),this.word("class"),this.space(),this._interfaceish(e)}function l(e){this.word("declare"),this.space(),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),
+this.semicolon()}function c(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function p(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)}function f(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)}function h(e){this.word("declare"),this.space(),this.TypeAlias(e)}function d(e){this.word("declare"),this.space(),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()}function y(){this.token("*")}function m(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)}function b(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)}function g(e){this.print(e.id,e),this.print(e.typeParameters,e)}function v(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)}function x(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")}function _(e){this.word("interface"),this.space(),this._interfaceish(e)}function E(){this.space(),this.token("&"),this.space()}function A(e){this.printJoin(e.types,e,{separator:E})}function D(){this.word("mixed")}function C(){this.word("empty")}function S(e){this.token("?"),this.print(e.typeAnnotation,e)}function w(){this.word("number")}function k(){this.word("string")}function F(){this.word("this")}function T(e){this.token("["),this.printList(e.types,e),this.token("]")}function P(e){this.word("typeof"),this.space(),this.print(e.argument,e)}function j(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()}function B(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)}function O(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))}function I(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}function N(e){var t=this;e.exact?this.token("{|"):this.token("{");var n=e.properties.concat(e.callProperties,e.indexers);n.length&&(this.space(),this.printJoin(n,e,{addNewlines:function(e){if(e&&!n[0])return 1},indent:!0,statement:!0,iterator:function(){1!==n.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")}function L(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)}function M(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)}function R(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)}function U(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)}function V(){this.space(),this.token("|"),this.space()}function G(e){this.printJoin(e.types,e,{separator:V})}function q(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")}function K(){this.word("void")}n.__esModule=!0,n.AnyTypeAnnotation=r,n.ArrayTypeAnnotation=i,n.BooleanTypeAnnotation=a,n.BooleanLiteralTypeAnnotation=s,n.NullLiteralTypeAnnotation=o,n.DeclareClass=u,n.DeclareFunction=l,n.DeclareInterface=c,n.DeclareModule=p,n.DeclareModuleExports=f,n.DeclareTypeAlias=h,n.DeclareVariable=d,n.ExistentialTypeParam=y,n.FunctionTypeAnnotation=m,n.FunctionTypeParam=b,n.InterfaceExtends=g,n._interfaceish=v,n._variance=x,n.InterfaceDeclaration=_,n.IntersectionTypeAnnotation=A,n.MixedTypeAnnotation=D,n.EmptyTypeAnnotation=C,n.NullableTypeAnnotation=S;var X=e("./types");Object.defineProperty(n,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return X.NumericLiteral}}),Object.defineProperty(n,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return X.StringLiteral}}),n.NumberTypeAnnotation=w,n.StringTypeAnnotation=k,n.ThisTypeAnnotation=F,n.TupleTypeAnnotation=T,n.TypeofTypeAnnotation=P,n.TypeAlias=j,n.TypeAnnotation=B,n.TypeParameter=O,n.TypeParameterInstantiation=I,n.ObjectTypeAnnotation=N,n.ObjectTypeCallProperty=L,n.ObjectTypeIndexer=M,n.ObjectTypeProperty=R,n.QualifiedTypeIdentifier=U,n.UnionTypeAnnotation=G,n.TypeCastExpression=q,n.VoidTypeAnnotation=K,n.ClassImplements=g,n.GenericTypeAnnotation=g,n.TypeParameterDeclaration=I},{"./types":84}],79:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))}function a(e){this.word(e.name)}function s(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)}function o(e){this.print(e.object,e),this.token("."),this.print(e.property,e)}function u(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")}function l(e){this.token("{"),this.print(e.expression,e),this.token("}")}function c(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")}function p(e){this.token(e.value)}function f(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();for(var n=e.children,r=Array.isArray(n),i=0,n=r?n:(0,g.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;this.print(s,e)}this.dedent(),this.print(e.closingElement,e)}}function h(){this.space()}function d(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:h})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")}function y(e){this.token("</"),this.print(e.name,e),this.token(">")}function m(){}n.__esModule=!0;var b=e("babel-runtime/core-js/get-iterator"),g=r(b);n.JSXAttribute=i,n.JSXIdentifier=a,n.JSXNamespacedName=s,n.JSXMemberExpression=o,n.JSXSpreadAttribute=u,n.JSXExpressionContainer=l,n.JSXSpreadChild=c,n.JSXText=p,n.JSXElement=f,n.JSXOpeningElement=d,n.JSXClosingElement=y,n.JSXEmptyExpression=m},{"babel-runtime/core-js/get-iterator":100}],80:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)}function a(e){var t=e.kind,n=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(n,e),this.token("]")):this.print(n,e),this._params(e),this.space(),this.print(e.body,e)}function s(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}function o(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&c.isIdentifier(t)&&!u(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)}function u(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}n.__esModule=!0,n.FunctionDeclaration=void 0,n._params=i,n._method=a,n.FunctionExpression=s,n.ArrowFunctionExpression=o;var l=e("babel-types"),c=r(l);n.FunctionDeclaration=s},{"babel-types":265}],81:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))}function a(e){this.print(e.local,e)}function s(e){this.print(e.exported,e)}function o(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))}function u(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)}function l(e){this.word("export"),this.space(),this.token("*"),e.exported&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e)),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()}function c(){this.word("export"),this.space(),f.apply(this,arguments)}function p(){this.word("export"),this.space(),this.word("default"),this.space(),f.apply(this,arguments)}function f(e){if(e.declaration){var t=e.declaration;this.print(t,e),m.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var n=e.specifiers.slice(0),r=!1;;){var i=n[0];if(!m.isExportDefaultSpecifier(i)&&!m.isExportNamespaceSpecifier(i))break;r=!0,this.print(n.shift(),e),n.length&&(this.token(","),this.space())}(n.length||!n.length&&!r)&&(this.token("{"),n.length&&(this.space(),this.printList(n,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}function h(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var n=t[0];if(!m.isImportDefaultSpecifier(n)&&!m.isImportNamespaceSpecifier(n))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()}function d(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)}n.__esModule=!0,n.ImportSpecifier=i,n.ImportDefaultSpecifier=a,n.ExportDefaultSpecifier=s,n.ExportSpecifier=o,n.ExportNamespaceSpecifier=u,n.ExportAllDeclaration=l,n.ExportNamedDeclaration=c,n.ExportDefaultDeclaration=p,n.ImportDeclaration=h,n.ImportNamespaceSpecifier=d;var y=e("babel-types"),m=r(y)},{"babel-types":265}],82:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)}function s(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&C.isIfStatement(o(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))}function o(e){return C.isStatement(e.body)?o(e.body):e}function u(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)}function l(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)}function c(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(n){this.word(e);var r=n[t];if(r){this.space();var i=this.startTerminatorless();this.print(r,n),this.endTerminatorless(i)}this.semicolon()}}function f(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)}function h(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))}function d(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)}function y(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,n){if(!t&&e.cases[e.cases.length-1]===n)return-1}}),this.token("}")}function m(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))}function b(){this.word("debugger"),this.semicolon()}function g(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function v(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}function x(e,t){this.word(e.kind),this.space();var n=!1;if(!C.isFor(t))for(var r=e.declarations,i=Array.isArray(r),a=0,r=i?r:(0,A.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;o.init&&(n=!0)}var u=void 0;n&&(u="const"===e.kind?v:g),this.printList(e.declarations,e,{separator:u}),(!C.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()}function _(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))}n.__esModule=!0,n.ThrowStatement=n.BreakStatement=n.ReturnStatement=n.ContinueStatement=n.ForAwaitStatement=n.ForOfStatement=n.ForInStatement=void 0;var E=e("babel-runtime/core-js/get-iterator"),A=i(E);n.WithStatement=a,n.IfStatement=s,n.ForStatement=u,n.WhileStatement=l,n.DoWhileStatement=c,n.LabeledStatement=f,n.TryStatement=h,n.CatchClause=d,n.SwitchStatement=y,n.SwitchCase=m,n.DebuggerStatement=b,n.VariableDeclaration=x,n.VariableDeclarator=_;var D=e("babel-types"),C=r(D),S=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space(),e="of"),this.token("("),this.print(t.left,t),this.space(),this.word(e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};n.ForInStatement=S("in"),n.ForOfStatement=S("of"),n.ForAwaitStatement=S("await"),n.ContinueStatement=p("continue"),n.ReturnStatement=p("return","argument"),n.BreakStatement=p("break"),n.ThrowStatement=p("throw","argument")},{"babel-runtime/core-js/get-iterator":100,"babel-types":265}],83:[function(e,t,n){"use strict";function r(e){this.print(e.tag,e),this.print(e.quasi,e)}function i(e,t){var n=t.quasis[0]===e,r=t.quasis[t.quasis.length-1]===e,i=(n?"`":"}")+e.value.raw+(r?"`":"${");n||this.space(),this.token(i),r||this.space()}function a(e){for(var t=e.quasis,n=0;n<t.length;n++)this.print(t[n],e),n+1<t.length&&this.print(e.expressions[n],e)}n.__esModule=!0,n.TaggedTemplateExpression=r,n.TemplateElement=i,n.TemplateLiteral=a},{}],84:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)}function s(e){this.token("..."),this.print(e.argument,e)}function o(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function u(e){this.printJoin(e.decorators,e),this._method(e)}function l(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(b.isAssignmentPattern(e.value)&&b.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&b.isIdentifier(e.key)&&b.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)}function c(e){var t=e.elements,n=t.length;this.token("["),this.printInnerComments(e);for(var r=0;r<t.length;r++){var i=t[r];i?(r>0&&this.space(),this.print(i,e),r<n-1&&this.token(",")):this.token(",")}this.token("]")}function p(e){this.word("/"+e.pattern+"/"+e.flags)}function f(e){this.word(e.value?"true":"false")}function h(){this.word("null")}function d(e){var t=this.getPossibleRaw(e),n=e.value+"";null==t?this.number(n):this.format.minified?this.number(t.length<n.length?t:n):this.number(t)}function y(e,t){var n=this.getPossibleRaw(e);if(!this.format.minified&&null!=n)return void this.token(n);var r={quotes:b.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(r.json=!0);var i=(0,v.default)(e.value,r);return this.token(i)}n.__esModule=!0,n.ArrayPattern=n.ObjectPattern=n.RestProperty=n.SpreadProperty=n.SpreadElement=void 0,n.Identifier=a,n.RestElement=s,n.ObjectExpression=o,n.ObjectMethod=u,n.ObjectProperty=l,n.ArrayExpression=c,n.RegExpLiteral=p,n.BooleanLiteral=f,n.NullLiteral=h,n.NumericLiteral=d,n.StringLiteral=y;var m=e("babel-types"),b=i(m),g=e("jsesc"),v=r(g);n.SpreadElement=s,n.SpreadProperty=s,n.RestProperty=s,n.ObjectPattern=o,n.ArrayPattern=c},{"babel-types":265,jsesc:96}],85:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n){var r=" ";if(e&&"string"==typeof e){var i=(0,d.default)(e).indent;i&&" "!==i&&(r=i)}var a={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||s(e,n),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:r,base:0},flowCommaSeparator:t.flowCommaSeparator};return a.minified?(a.compact=!0,a.shouldPrintComment=a.shouldPrintComment||function(){return a.comments}):a.shouldPrintComment=a.shouldPrintComment||function(e){return a.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===a.compact&&(a.compact=e.length>5e5,a.compact&&console.error("[BABEL] "+g.get("codeGeneratorDeopt",t.filename,"500KB"))),a.compact&&(a.indent.adjustMultilineComment=!1),a}function s(e,t){var n="double";if(!e)return n;for(var r={single:0,double:0},i=0,a=0;a<t.length;a++){var s=t[a];if("string"===s.type.label){var o=e.slice(s.start,s.end);if("'"===o[0]?r.single++:r.double++,i++,i>=3)break}}return r.single>r.double?"single":"double"}n.__esModule=!0,n.CodeGenerator=void 0;var o=e("babel-runtime/helpers/classCallCheck"),u=i(o),l=e("babel-runtime/helpers/possibleConstructorReturn"),c=i(l),p=e("babel-runtime/helpers/inherits"),f=i(p);n.default=function(e,t,n){var r=new _(e,t,n);return r.generate()};var h=e("detect-indent"),d=i(h),y=e("./source-map"),m=i(y),b=e("babel-messages"),g=r(b),v=e("./printer"),x=i(v),_=function(e){function t(n,r,i){(0,u.default)(this,t),r=r||{};var s=n.tokens||[],o=a(i,r,s),l=r.sourceMaps?new m.default(r,i):null,p=(0,c.default)(this,e.call(this,o,l,s));return p.ast=n,p}return(0,f.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(x.default);n.CodeGenerator=function(){function e(t,n,r){(0,u.default)(this,e),this._generator=new _(t,n,r)}return e.prototype.generate=function(){return this._generator.generate()},e}()},{"./printer":89,"./source-map":90,"babel-messages":99,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/inherits":115,"babel-runtime/helpers/possibleConstructorReturn":117,"detect-indent":92}],86:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){function t(e,t){var r=n[e];n[e]=r?function(e,n,i){var a=r(e,n,i);return null==a?t(e,n,i):a}:t}for(var n={},r=(0,y.default)(e),i=Array.isArray(r),a=0,r=i?r:(0,h.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s,u=_.FLIPPED_ALIAS_KEYS[o];if(u)for(var l=u,c=Array.isArray(l),p=0,l=c?l:(0,h.default)(l);;){var f;if(c){if(p>=l.length)break;f=l[p++]}else{if(p=l.next(),p.done)break;f=p.value}var d=f;t(d,e[o])}else t(o,e[o])}return n}function s(e,t,n,r){var i=e[t.type];return i?i(t,n,r):null}function o(e){return!!_.isCallExpression(e)||!!_.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,n){if(!e)return 0;_.isExpressionStatement(e)&&(e=e.expression);var r=s(A,e,t);if(!r){var i=s(D,e,t);if(i)for(var a=0;a<i.length&&!(r=u(i[a],e,n));a++);}return r&&r[n]||0}function l(e,t){return u(e,t,"before")}function c(e,t){return u(e,t,"after")}function p(e,t,n){return!!t&&(!(!_.isNewExpression(t)||t.callee!==e||!o(e))||s(E,e,t,n))}n.__esModule=!0;var f=e("babel-runtime/core-js/get-iterator"),h=i(f),d=e("babel-runtime/core-js/object/keys"),y=i(d);n.needsWhitespace=u,n.needsWhitespaceBefore=l,n.needsWhitespaceAfter=c,n.needsParens=p;var m=e("./whitespace"),b=i(m),g=e("./parentheses"),v=r(g),x=e("babel-types"),_=r(x),E=a(v),A=a(b.default.nodes),D=a(b.default.list)},{"./parentheses":87,"./whitespace":88,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/object/keys":107,"babel-types":265}],87:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){return v.isArrayTypeAnnotation(t)}function a(e,t){return!(!v.isMemberExpression(t)||t.object!==e)}function s(e,t,n){return b(n,{considerArrow:!0})}function o(e,t){if((v.isCallExpression(t)||v.isNewExpression(t))&&t.callee===e)return!0;if(v.isUnaryLike(t))return!0;if(v.isMemberExpression(t)&&t.object===e)return!0;if(v.isBinary(t)){var n=t.operator,r=x[n],i=e.operator,a=x[i];if(r>a)return!0;if(r===a&&t.right===e&&!v.isLogicalExpression(t))return!0}return!1}function u(e,t){if("in"===e.operator){if(v.isVariableDeclarator(t))return!0;if(v.isFor(t))return!0}return!1}function l(e,t){return!v.isForStatement(t)&&((!v.isExpressionStatement(t)||t.expression!==e)&&(!v.isReturnStatement(t)&&(!v.isThrowStatement(t)&&((!v.isSwitchStatement(t)||t.discriminant!==e)&&((!v.isWhileStatement(t)||t.test!==e)&&((!v.isIfStatement(t)||t.test!==e)&&(!v.isForInStatement(t)||t.right!==e)))))))}function c(e,t){return v.isBinary(t)||v.isUnaryLike(t)||v.isCallExpression(t)||v.isMemberExpression(t)||v.isNewExpression(t)||v.isConditionalExpression(t)&&e===t.test}function p(e,t,n){return b(n,{considerDefaultExports:!0})}function f(e,t){return!!v.isMemberExpression(t,{object:e})||!(!v.isCallExpression(t,{callee:e})&&!v.isNewExpression(t,{callee:e}))}function h(e,t,n){return b(n,{considerDefaultExports:!0})}function d(e,t){return!!v.isExportDeclaration(t)||(!(!v.isBinaryExpression(t)&&!v.isLogicalExpression(t))||(!!v.isUnaryExpression(t)||f(e,t)))}function y(e,t){return!!v.isUnaryLike(t)||(!!v.isBinary(t)||(!!v.isConditionalExpression(t,{test:e})||f(e,t)))}function m(e){return!!v.isObjectPattern(e.left)||y.apply(void 0,arguments)}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.considerArrow,r=void 0!==n&&n,i=t.considerDefaultExports,a=void 0!==i&&i,s=e.length-1,o=e[s];s--;for(var u=e[s];s>0;){if(v.isExpressionStatement(u,{expression:o}))return!0;if(a&&v.isExportDefaultDeclaration(u,{declaration:o}))return!0;if(r&&v.isArrowFunctionExpression(u,{body:o}))return!0;if(!(v.isCallExpression(u,{callee:o})||v.isSequenceExpression(u)&&u.expressions[0]===o||v.isMemberExpression(u,{object:o})||v.isConditional(u,{test:o})||v.isBinary(u,{left:o})||v.isAssignmentExpression(u,{left:o})))return!1;o=u,s--,u=e[s]}return!1}n.__esModule=!0,n.AwaitExpression=n.FunctionTypeAnnotation=void 0,n.NullableTypeAnnotation=i,n.UpdateExpression=a,n.ObjectExpression=s,n.Binary=o,n.BinaryExpression=u,n.SequenceExpression=l,n.YieldExpression=c,n.ClassExpression=p,n.UnaryLike=f,n.FunctionExpression=h,n.ArrowFunctionExpression=d,n.ConditionalExpression=y,n.AssignmentExpression=m;var g=e("babel-types"),v=r(g),x={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};n.FunctionTypeAnnotation=i,n.AwaitExpression=c},{"babel-types":265}],88:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return y.isMemberExpression(e)?(a(e.object,t),e.computed&&a(e.property,t)):y.isBinary(e)||y.isAssignmentExpression(e)?(a(e.left,t),a(e.right,t)):y.isCallExpression(e)?(t.hasCall=!0,a(e.callee,t)):y.isFunction(e)?t.hasFunction=!0:y.isIdentifier(e)&&(t.hasHelper=t.hasHelper||s(e.callee)),t}function s(e){return y.isMemberExpression(e)?s(e.object)||s(e.property):y.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:y.isCallExpression(e)?s(e.callee):!(!y.isBinary(e)&&!y.isAssignmentExpression(e))&&(y.isIdentifier(e.left)&&s(e.left)||s(e.right))}function o(e){return y.isLiteral(e)||y.isObjectExpression(e)||y.isArrayExpression(e)||y.isIdentifier(e)||y.isMemberExpression(e)}var u=e("lodash/isBoolean"),l=i(u),c=e("lodash/each"),p=i(c),f=e("lodash/map"),h=i(f),d=e("babel-types"),y=r(d);n.nodes={AssignmentExpression:function(e){var t=a(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(y.isFunction(e.left)||y.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(y.isFunction(e.callee)||s(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t<e.declarations.length;t++){var n=e.declarations[t],r=s(n.id)&&!o(n.init);if(!r){var i=a(n.init);r=s(n.init)&&i.hasCall||i.hasFunction}if(r)return{before:!0,after:!0}}},IfStatement:function(e){if(y.isBlockStatement(e.consequent))return{before:!0,after:!0}}},n.nodes.ObjectProperty=n.nodes.ObjectTypeProperty=n.nodes.ObjectMethod=n.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},n.list={VariableDeclaration:function(e){return(0,h.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},(0,p.default)({Function:!0,Class:!0,Loop:!0,LabeledStatement:!0,SwitchStatement:!0,TryStatement:!0},function(e,t){(0,l.default)(e)&&(e={after:e,before:e}),(0,p.default)([t].concat(y.FLIPPED_ALIAS_KEYS[t]||[]),function(t){n.nodes[t]=function(){return e}})})},{"babel-types":265,"lodash/each":461,"lodash/isBoolean":478,"lodash/map":493}],89:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(){this.token(","),this.space()}n.__esModule=!0;var s=e("babel-runtime/core-js/object/assign"),o=i(s),u=e("babel-runtime/core-js/get-iterator"),l=i(u),c=e("babel-runtime/core-js/json/stringify"),p=i(c),f=e("babel-runtime/core-js/weak-set"),h=i(f),d=e("babel-runtime/helpers/classCallCheck"),y=i(d),m=e("lodash/find"),b=i(m),g=e("lodash/findLast"),v=i(g),x=e("lodash/isInteger"),_=i(x),E=e("lodash/repeat"),A=i(E),D=e("./buffer"),C=i(D),S=e("./node"),w=r(S),k=e("./whitespace"),F=i(k),T=e("babel-types"),P=r(T),j=/e/i,B=/\.0+$/,O=/^0[box]/,I=function(){function e(t,n,r){(0,y.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new h.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new C.default(n),this._whitespace=r.length>0?new F.default(r):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,_.default)(+e)&&!O.test(e)&&!j.test(e)&&!B.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t<e;t++)this._newline()}},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,n){this._catchUp(e,t),this._buf.withSource(e,t,n)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var n=void 0;for(n=0;n<e.length&&" "===e[n];n++);if(n!==e.length){var r=e[n];"\n"!==r&&"/"!==r||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var n=t?t[e]:null;if(n&&null!==n.line)for(var r=n.line-this._buf.getCurrentLine(),i=0;i<r;i++)this._newline()}},e.prototype._getIndent=function(){return(0,A.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var n=this;if(e){
+var r=this.format.concise;e._compact&&(this.format.concise=!0);var i=this[e.type];if(!i)throw new ReferenceError("unknown node of type "+(0,p.default)(e.type)+" with constructor "+(0,p.default)(e&&e.constructor.name));this._printStack.push(e);var a=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!a);var s=w.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var o=P.isProgram(e)||P.isFile(e)?null:e.loc;this.withSource("start",o,function(){n[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=r,this._insideAux=a}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){n.indent&&this.indent();for(var r={addNewlines:n.addNewlines},i=0;i<e.length;i++){var a=e[i];a&&(n.statement&&this._printNewline(!0,a,t,r),this.print(a,t),n.iterator&&n.iterator(a,i),n.separator&&i<e.length-1&&n.separator.call(this),n.statement&&this._printNewline(!1,a,t,r))}n.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var n=!!e.leadingComments;n&&this.indent(),this.print(e,t),n&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;P.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.statement=!0,this.printJoin(e,t,n)},e.prototype.printList=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==n.separator&&(n.separator=a),this.printJoin(e,t,n)},e.prototype._printNewline=function(e,t,n,r){var i=this;if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();var a=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var s=t.leadingComments,o=s&&(0,b.default)(s,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});a=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,v.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});a=this._whitespace.getNewlinesAfter(l||t)}else{e||a++,r.addNewlines&&(a+=r.addNewlines(e,t)||0);var c=w.needsWhitespaceAfter;e&&(c=w.needsWhitespaceBefore),c(t,n)&&a++,this._buf.hasContent()||(a=0)}this.newline(a)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var n="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var r=e.loc&&e.loc.start.column;if(r){var i=new RegExp("\\n\\s{1,"+r+"}","g");n=n.replace(i,"\n")}var a=Math.max(this._getIndent().length,this._buf.getCurrentColumn());n=n.replace(/\n(?!$)/g,"\n"+(0,A.default)(" ",a))}this.withSource("start",e.loc,function(){t._append(n)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length)for(var t=e,n=Array.isArray(t),r=0,t=n?t:(0,l.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;this._printComment(a)}},e}();n.default=I;for(var N=[e("./generators/template-literals"),e("./generators/expressions"),e("./generators/statements"),e("./generators/classes"),e("./generators/methods"),e("./generators/modules"),e("./generators/types"),e("./generators/flow"),e("./generators/base"),e("./generators/jsx")],L=0;L<N.length;L++){var M=N[L];(0,o.default)(I.prototype,M)}t.exports=n.default},{"./buffer":74,"./generators/base":75,"./generators/classes":76,"./generators/expressions":77,"./generators/flow":78,"./generators/jsx":79,"./generators/methods":80,"./generators/modules":81,"./generators/statements":82,"./generators/template-literals":83,"./generators/types":84,"./node":86,"./whitespace":91,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/json/stringify":101,"babel-runtime/core-js/object/assign":104,"babel-runtime/core-js/weak-set":113,"babel-runtime/helpers/classCallCheck":114,"babel-types":265,"lodash/find":464,"lodash/findLast":466,"lodash/isInteger":481,"lodash/repeat":498}],90:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/object/keys"),a=r(i),s=e("babel-runtime/helpers/typeof"),o=r(s),u=e("babel-runtime/helpers/classCallCheck"),l=r(u),c=e("source-map"),p=r(c),f=function(){function e(t,n){(0,l.default)(this,e),this._cachedMap=null,this._code=n,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){var e=this;return this._cachedMap||!function(){var t=e._cachedMap=new p.default.SourceMapGenerator({file:e._opts.sourceMapTarget,sourceRoot:e._opts.sourceRoot}),n=e._code;"string"==typeof n?t.setSourceContent(e._opts.sourceFileName,n):"object"===("undefined"==typeof n?"undefined":(0,o.default)(n))&&(0,a.default)(n).forEach(function(e){t.setSourceContent(e,n[e])}),e._rawMappings.forEach(t.addMapping,t)}(),this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,n,r,i,a){this._lastGenLine!==e&&null===n||this._lastGenLine===e&&this._lastSourceLine===n&&this._lastSourceColumn===r||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=n,this._lastSourceColumn=r,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==n?void 0:a||this._opts.sourceFileName,original:null==n?void 0:{line:n,column:r}}))},e}();n.default=f,t.exports=n.default},{"babel-runtime/core-js/object/keys":107,"babel-runtime/helpers/classCallCheck":114,"babel-runtime/helpers/typeof":118,"source-map":527}],91:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=function(){function e(t){(0,a.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,n=void 0,r=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,r.length);if(i>=0){for(;i&&e.start===r[i-1].start;)--i;t=r[i-1],n=r[i]}return this._getNewlinesBetween(t,n)},e.prototype.getNewlinesAfter=function(e){var t=void 0,n=void 0,r=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,r.length);if(i>=0){for(;i&&e.end===r[i-1].end;)--i;t=r[i],n=r[i+1],","===n.type.label&&(n=r[i+2])}return n&&"eof"===n.type.label?1:this._getNewlinesBetween(t,n)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var n=e?e.loc.end.line:1,r=t.loc.start.line,i=0,a=n;a<r;a++)"undefined"==typeof this.used[a]&&(this.used[a]=!0,i++);return i},e.prototype._findToken=function(e,t,n){if(t>=n)return-1;var r=t+n>>>1,i=e(this.tokens[r]);return i<0?this._findToken(e,r+1,n):i>0?this._findToken(e,t,r):0===i?r:-1},e}();n.default=s,t.exports=n.default},{"babel-runtime/helpers/classCallCheck":114}],92:[function(e,t,n){"use strict";function r(e){var t=0,n=0,r=0;for(var i in e){var a=e[i],s=a[0],o=a[1];(s>n||s===n&&o>r)&&(n=s,r=o,t=Number(i))}return t}var i=e("repeating"),a=/^(?:( )+|\t+)/;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,n,s=0,o=0,u=0,l={};e.split(/\n/g).forEach(function(e){if(e){var r,i=e.match(a);i?(r=i[0].length,i[1]?o++:s++):r=0;var c=r-u;u=r,c?(n=c>0,t=l[n?c:-c],t?t[0]++:t=l[c]=[1,0]):t&&(t[1]+=Number(n))}});var c,p,f=r(l);return f?o>=s?(c="space",p=i(" ",f)):(c="tab",p=i("\t",f)):(c=null,p=""),{amount:f,type:c,indent:p}}},{repeating:93}],93:[function(e,t,n){"use strict";var r=e("is-finite");t.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!r(t))throw new TypeError("Expected `count` to be a positive finite number");var n="";do 1&t&&(n+=e),e+=e;while(t>>=1);return n}},{"is-finite":94}],94:[function(e,t,n){"use strict";var r=e("number-is-nan");t.exports=Number.isFinite||function(e){return!("number"!=typeof e||r(e)||e===1/0||e===-(1/0))}},{"number-is-nan":95}],95:[function(e,t,n){"use strict";t.exports=Number.isNaN||function(e){return e!==e}},{}],96:[function(e,t,n){(function(e){!function(r){var i="object"==typeof n&&n,a="object"==typeof t&&t&&t.exports==i&&t,s="object"==typeof e&&e;s.global!==s&&s.window!==s||(r=s);var o={},u=o.hasOwnProperty,l=function(e,t){var n;for(n in e)u.call(e,n)&&t(n,e[n])},c=function(e,t){return t?(l(t,function(t,n){e[t]=n}),e):e},p=function(e,t){for(var n=e.length,r=-1;++r<n;)t(e[r])},f=o.toString,h=function(e){return"[object Array]"==f.call(e)},d=function(e){return"[object Object]"==f.call(e)},y=function(e){return"string"==typeof e||"[object String]"==f.call(e)},m=function(e){return"number"==typeof e||"[object Number]"==f.call(e)},b=function(e){return"function"==typeof e||"[object Function]"==f.call(e)},g=function(e){return"[object Map]"==f.call(e)},v=function(e){return"[object Set]"==f.call(e)},x={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},_=/["'\\\b\f\n\r\t]/,E=/[0-9]/,A=/[ !#-&\(-\[\]-~]/,D=function(e,t){var n={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},r=t&&t.json;r&&(n.quotes="double",n.wrap=!0),t=c(n,t),"single"!=t.quotes&&"double"!=t.quotes&&(t.quotes="single");var i,a="double"==t.quotes?'"':"'",s=t.compact,o=t.indent,u=t.lowercaseHex,f="",C=t.__inline1__,S=t.__inline2__,w=s?"":"\n",k=!0,F="binary"==t.numbers,T="octal"==t.numbers,P="decimal"==t.numbers,j="hexadecimal"==t.numbers;if(r&&e&&b(e.toJSON)&&(e=e.toJSON()),!y(e)){if(g(e))return 0==e.size?"new Map()":(s||(t.__inline1__=!0),"new Map("+D(Array.from(e),t)+")");if(v(e))return 0==e.size?"new Set()":"new Set("+D(Array.from(e),t)+")";if(h(e))return i=[],t.wrap=!0,C?(t.__inline1__=!1,t.__inline2__=!0):(f=t.__indent__,o+=f,t.__indent__=o),p(e,function(e){k=!1,S&&(t.__inline2__=!1),i.push((s||S?"":o)+D(e,t))}),k?"[]":S?"["+i.join(", ")+"]":"["+w+i.join(","+w)+w+(s?"":f)+"]";if(!m(e))return d(e)?(i=[],t.wrap=!0,f=t.__indent__,o+=f,t.__indent__=o,l(e,function(e,n){k=!1,i.push((s?"":o)+D(e,t)+":"+(s?"":" ")+D(n,t))}),k?"{}":"{"+w+i.join(","+w)+w+(s?"":f)+"}"):r?JSON.stringify(e)||"null":String(e);if(r)return JSON.stringify(e);if(P)return String(e);if(j){var B=e.toString(16);return u||(B=B.toUpperCase()),"0x"+B}if(F)return"0b"+e.toString(2);if(T)return"0o"+e.toString(8)}var O,I,N,L=e,M=-1,R=L.length;for(i="";++M<R;){var U=L.charAt(M);if(t.es6&&(O=L.charCodeAt(M),O>=55296&&O<=56319&&R>M+1&&(I=L.charCodeAt(M+1),I>=56320&&I<=57343))){N=1024*(O-55296)+I-56320+65536;var V=N.toString(16);u||(V=V.toUpperCase()),i+="\\u{"+V+"}",M++}else{if(!t.escapeEverything){if(A.test(U)){i+=U;continue}if('"'==U){i+=a==U?'\\"':U;continue}if("'"==U){i+=a==U?"\\'":U;continue}}if("\0"!=U||r||E.test(L.charAt(M+1)))if(_.test(U))i+=x[U];else{var G=U.charCodeAt(0),V=G.toString(16);u||(V=V.toUpperCase());var q=V.length>2||r,K="\\"+(q?"u":"x")+("0000"+V).slice(q?-4:-2);i+=K}else i+="\\0"}}return t.wrap&&(i=a+i+a),t.escapeEtago?i.replace(/<\/(script|style)/gi,"<\\/$1"):i};D.version="1.3.0","function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return D}):i&&!i.nodeType?a?a.exports=D:i.jsesc=D:r.jsesc=D}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],97:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-template"),a=r(i),s={};n.default=s,s.typeof=(0,a.default)('\n (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n ? function (obj) { return typeof obj; }\n : function (obj) {\n return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n ? "symbol"\n : typeof obj;\n };\n'),s.jsx=(0,a.default)('\n (function () {\n var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n return function createRawReactElement (type, props, key, children) {\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n // If we\'re going to assign props.children, we create a new object now\n // to avoid mutating defaultProps.\n props = {};\n }\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : \'\' + key,\n ref: null,\n props: props,\n _owner: null,\n };\n };\n\n })()\n'),s.asyncIterator=(0,a.default)('\n (function (iterable) {\n if (typeof Symbol === "function") {\n if (Symbol.asyncIterator) {\n var method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n if (Symbol.iterator) {\n return iterable[Symbol.iterator]();\n }\n }\n throw new TypeError("Object is not async iterable");\n })\n'),s.asyncGenerator=(0,a.default)('\n (function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg)\n var value = result.value;\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(\n function (arg) { resume("next", arg); },\n function (arg) { resume("throw", arg); });\n } else {\n settle(result.done ? "return" : "normal", result.value);\n }\n } catch (err) {\n settle("throw", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case "return":\n front.resolve({ value: value, done: true });\n break;\n case "throw":\n front.reject(value);\n break;\n default:\n front.resolve({ value: value, done: false });\n break;\n }\n\n front = front.next;\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n // Hide "return" method if generator return is not supported\n if (typeof gen.return !== "function") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === "function" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n }\n\n AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n\n })()\n'),s.asyncGeneratorDelegate=(0,a.default)('\n (function (inner, awaitWrap) {\n var iter = {}, waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) { resolve(inner[key](value)); });\n return { done: false, value: awaitWrap(value) };\n };\n\n if (typeof Symbol === "function" && Symbol.iterator) {\n iter[Symbol.iterator] = function () { return this; };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n return pump("next", value);\n };\n\n if (typeof inner.throw === "function") {\n iter.throw = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n return pump("throw", value);\n };\n }\n\n if (typeof inner.return === "function") {\n iter.return = function (value) {\n return pump("return", value);\n };\n }\n\n return iter;\n })\n'),s.asyncToGenerator=(0,a.default)('\n (function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step("next", value);\n }, function (err) {\n step("throw", err);\n });\n }\n }\n\n return step("next");\n });\n };\n })\n'),s.classCallCheck=(0,a.default)('\n (function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n });\n'),s.createClass=(0,a.default)('\n (function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i ++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n })()\n'),s.defineEnumerableProperties=(0,a.default)('\n (function (obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ("value" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n return obj;\n })\n'),s.defaults=(0,a.default)("\n (function (obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n return obj;\n })\n"),s.defineProperty=(0,a.default)("\n (function (obj, key, value) {\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n });\n"),s.extends=(0,a.default)("\n Object.assign || (function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n })\n"),s.get=(0,a.default)('\n (function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if ("value" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n });\n'),s.inherits=(0,a.default)('\n (function (subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n })\n'),s.instanceof=(0,a.default)('\n (function (left, right) {\n if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n return right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n });\n'),s.interopRequireDefault=(0,a.default)("\n (function (obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n })\n"),s.interopRequireWildcard=(0,a.default)("\n (function (obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n })\n"),s.newArrowCheck=(0,a.default)('\n (function (innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError("Cannot instantiate an arrow function");\n }\n });\n'),s.objectDestructuringEmpty=(0,a.default)('\n (function (obj) {\n if (obj == null) throw new TypeError("Cannot destructure undefined");\n });\n'),s.objectWithoutProperties=(0,a.default)("\n (function (obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n })\n"),s.possibleConstructorReturn=(0,a.default)('\n (function (self, call) {\n if (!self) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n return call && (typeof call === "object" || typeof call === "function") ? call : self;\n });\n'),s.selfGlobal=(0,a.default)('\n typeof global === "undefined" ? self : global\n'),s.set=(0,a.default)('\n (function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if ("value" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n });\n'),s.slicedToArray=(0,a.default)('\n (function () {\n // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n // array iterator case.\n function sliceIterator(arr, i) {\n // this is an expanded form of `for...of` that properly supports abrupt completions of\n // iterators etc. variable names have been minimised to reduce the size of this massive\n // helper. sometimes spec compliancy is annoying :(\n //\n // _n = _iteratorNormalCompletion\n // _d = _didIteratorError\n // _e = _iteratorError\n // _i = _iterator\n // _s = _step\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i["return"]) _i["return"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n };\n })();\n'),s.slicedToArrayLoose=(0,a.default)('\n (function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n var _arr = [];\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n _arr.push(_step.value);\n if (i && _arr.length === i) break;\n }\n return _arr;\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n });\n'),s.taggedTemplateLiteral=(0,a.default)("\n (function (strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: { value: Object.freeze(raw) }\n }));\n });\n"),s.taggedTemplateLiteralLoose=(0,a.default)("\n (function (strings, raw) {\n strings.raw = raw;\n return strings;\n });\n"),s.temporalRef=(0,a.default)('\n (function (val, name, undef) {\n if (val === undef) {\n throw new ReferenceError(name + " is not defined - temporal dead zone");\n } else {\n return val;\n }\n })\n'),s.temporalUndefined=(0,a.default)("\n ({})\n"),s.toArray=(0,a.default)("\n (function (arr) {\n return Array.isArray(arr) ? arr : Array.from(arr);\n });\n"),s.toConsumableArray=(0,a.default)("\n (function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n return arr2;\n } else {\n return Array.from(arr);\n }\n });\n"),t.exports=n.default},{"babel-template":225}],98:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}n.__esModule=!0,n.list=void 0;var a=e("babel-runtime/core-js/object/keys"),s=r(a);n.get=i;var o=e("./helpers"),u=r(o);n.list=(0,s.default)(u.default).map(function(e){return"_"===e[0]?e.slice(1):e}).filter(function(e){return"__esModule"!==e});n.default=i},{"./helpers":97,"babel-runtime/core-js/object/keys":107}],99:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=p[e];if(!i)throw new ReferenceError("Unknown message "+(0,u.default)(e));return n=s(n),i.replace(/\$(\d+)/g,function(e,t){return n[t-1]})}function s(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,u.default)(e)||e+""}catch(t){return c.inspect(e)}})}n.__esModule=!0,n.MESSAGES=void 0;var o=e("babel-runtime/core-js/json/stringify"),u=i(o);n.get=a,n.parseArgs=s;var l=e("util"),c=r(l),p=n.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",
+traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},{"babel-runtime/core-js/json/stringify":101,util:35}],100:[function(e,t,n){t.exports={default:e("core-js/library/fn/get-iterator"),__esModule:!0}},{"core-js/library/fn/get-iterator":119}],101:[function(e,t,n){t.exports={default:e("core-js/library/fn/json/stringify"),__esModule:!0}},{"core-js/library/fn/json/stringify":120}],102:[function(e,t,n){t.exports={default:e("core-js/library/fn/map"),__esModule:!0}},{"core-js/library/fn/map":121}],103:[function(e,t,n){t.exports={default:e("core-js/library/fn/number/max-safe-integer"),__esModule:!0}},{"core-js/library/fn/number/max-safe-integer":122}],104:[function(e,t,n){t.exports={default:e("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":123}],105:[function(e,t,n){t.exports={default:e("core-js/library/fn/object/create"),__esModule:!0}},{"core-js/library/fn/object/create":124}],106:[function(e,t,n){t.exports={default:e("core-js/library/fn/object/get-own-property-symbols"),__esModule:!0}},{"core-js/library/fn/object/get-own-property-symbols":125}],107:[function(e,t,n){t.exports={default:e("core-js/library/fn/object/keys"),__esModule:!0}},{"core-js/library/fn/object/keys":126}],108:[function(e,t,n){t.exports={default:e("core-js/library/fn/object/set-prototype-of"),__esModule:!0}},{"core-js/library/fn/object/set-prototype-of":127}],109:[function(e,t,n){t.exports={default:e("core-js/library/fn/symbol"),__esModule:!0}},{"core-js/library/fn/symbol":129}],110:[function(e,t,n){t.exports={default:e("core-js/library/fn/symbol/for"),__esModule:!0}},{"core-js/library/fn/symbol/for":128}],111:[function(e,t,n){t.exports={default:e("core-js/library/fn/symbol/iterator"),__esModule:!0}},{"core-js/library/fn/symbol/iterator":130}],112:[function(e,t,n){t.exports={default:e("core-js/library/fn/weak-map"),__esModule:!0}},{"core-js/library/fn/weak-map":131}],113:[function(e,t,n){t.exports={default:e("core-js/library/fn/weak-set"),__esModule:!0}},{"core-js/library/fn/weak-set":132}],114:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},{}],115:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("../core-js/object/set-prototype-of"),a=r(i),s=e("../core-js/object/create"),o=r(s),u=e("../helpers/typeof"),l=r(u);n.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,l.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(a.default?(0,a.default)(e,t):e.__proto__=t)}},{"../core-js/object/create":105,"../core-js/object/set-prototype-of":108,"../helpers/typeof":118}],116:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},{}],117:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("../helpers/typeof"),a=r(i);n.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":(0,a.default)(t))&&"function"!=typeof t?e:t}},{"../helpers/typeof":118}],118:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("../core-js/symbol/iterator"),a=r(i),s=e("../core-js/symbol"),o=r(s),u="function"==typeof o.default&&"symbol"==typeof a.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};n.default="function"==typeof o.default&&"symbol"===u(a.default)?function(e){return"undefined"==typeof e?"undefined":u(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":"undefined"==typeof e?"undefined":u(e)}},{"../core-js/symbol":109,"../core-js/symbol/iterator":111}],119:[function(e,t,n){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.get-iterator")},{"../modules/core.get-iterator":208,"../modules/es6.string.iterator":217,"../modules/web.dom.iterable":224}],120:[function(e,t,n){var r=e("../../modules/_core"),i=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function(e){return i.stringify.apply(i,arguments)}},{"../../modules/_core":148}],121:[function(e,t,n){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.map"),e("../modules/es7.map.to-json"),t.exports=e("../modules/_core").Map},{"../modules/_core":148,"../modules/es6.map":210,"../modules/es6.object.to-string":216,"../modules/es6.string.iterator":217,"../modules/es7.map.to-json":221,"../modules/web.dom.iterable":224}],122:[function(e,t,n){e("../../modules/es6.number.max-safe-integer"),t.exports=9007199254740991},{"../../modules/es6.number.max-safe-integer":211}],123:[function(e,t,n){e("../../modules/es6.object.assign"),t.exports=e("../../modules/_core").Object.assign},{"../../modules/_core":148,"../../modules/es6.object.assign":212}],124:[function(e,t,n){e("../../modules/es6.object.create");var r=e("../../modules/_core").Object;t.exports=function(e,t){return r.create(e,t)}},{"../../modules/_core":148,"../../modules/es6.object.create":213}],125:[function(e,t,n){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Object.getOwnPropertySymbols},{"../../modules/_core":148,"../../modules/es6.symbol":218}],126:[function(e,t,n){e("../../modules/es6.object.keys"),t.exports=e("../../modules/_core").Object.keys},{"../../modules/_core":148,"../../modules/es6.object.keys":214}],127:[function(e,t,n){e("../../modules/es6.object.set-prototype-of"),t.exports=e("../../modules/_core").Object.setPrototypeOf},{"../../modules/_core":148,"../../modules/es6.object.set-prototype-of":215}],128:[function(e,t,n){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Symbol.for},{"../../modules/_core":148,"../../modules/es6.symbol":218}],129:[function(e,t,n){e("../../modules/es6.symbol"),e("../../modules/es6.object.to-string"),e("../../modules/es7.symbol.async-iterator"),e("../../modules/es7.symbol.observable"),t.exports=e("../../modules/_core").Symbol},{"../../modules/_core":148,"../../modules/es6.object.to-string":216,"../../modules/es6.symbol":218,"../../modules/es7.symbol.async-iterator":222,"../../modules/es7.symbol.observable":223}],130:[function(e,t,n){e("../../modules/es6.string.iterator"),e("../../modules/web.dom.iterable"),t.exports=e("../../modules/_wks-ext").f("iterator")},{"../../modules/_wks-ext":205,"../../modules/es6.string.iterator":217,"../../modules/web.dom.iterable":224}],131:[function(e,t,n){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-map"),t.exports=e("../modules/_core").WeakMap},{"../modules/_core":148,"../modules/es6.object.to-string":216,"../modules/es6.weak-map":219,"../modules/web.dom.iterable":224}],132:[function(e,t,n){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-set"),t.exports=e("../modules/_core").WeakSet},{"../modules/_core":148,"../modules/es6.object.to-string":216,"../modules/es6.weak-set":220,"../modules/web.dom.iterable":224}],133:[function(e,t,n){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},{}],134:[function(e,t,n){t.exports=function(){}},{}],135:[function(e,t,n){t.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},{}],136:[function(e,t,n){var r=e("./_is-object");t.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},{"./_is-object":166}],137:[function(e,t,n){var r=e("./_for-of");t.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},{"./_for-of":157}],138:[function(e,t,n){var r=e("./_to-iobject"),i=e("./_to-length"),a=e("./_to-index");t.exports=function(e){return function(t,n,s){var o,u=r(t),l=i(u.length),c=a(s,l);if(e&&n!=n){for(;l>c;)if(o=u[c++],o!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}}},{"./_to-index":197,"./_to-iobject":199,"./_to-length":200}],139:[function(e,t,n){var r=e("./_ctx"),i=e("./_iobject"),a=e("./_to-object"),s=e("./_to-length"),o=e("./_array-species-create");t.exports=function(e,t){var n=1==e,u=2==e,l=3==e,c=4==e,p=6==e,f=5==e||p,h=t||o;return function(t,o,d){for(var y,m,b=a(t),g=i(b),v=r(o,d,3),x=s(g.length),_=0,E=n?h(t,x):u?h(t,0):void 0;x>_;_++)if((f||_ in g)&&(y=g[_],m=v(y,_,b),e))if(n)E[_]=m;else if(m)switch(e){case 3:return!0;case 5:return y;case 6:return _;case 2:E.push(y)}else if(c)return!1;return p?-1:l||c?c:E}}},{"./_array-species-create":141,"./_ctx":149,"./_iobject":163,"./_to-length":200,"./_to-object":201}],140:[function(e,t,n){var r=e("./_is-object"),i=e("./_is-array"),a=e("./_wks")("species");t.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&(t=t[a],null===t&&(t=void 0))),void 0===t?Array:t}},{"./_is-array":165,"./_is-object":166,"./_wks":206}],141:[function(e,t,n){var r=e("./_array-species-constructor");t.exports=function(e,t){return new(r(e))(t)}},{"./_array-species-constructor":140}],142:[function(e,t,n){var r=e("./_cof"),i=e("./_wks")("toStringTag"),a="Arguments"==r(function(){return arguments}()),s=function(e,t){try{return e[t]}catch(e){}};t.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=s(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},{"./_cof":143,"./_wks":206}],143:[function(e,t,n){var r={}.toString;t.exports=function(e){return r.call(e).slice(8,-1)}},{}],144:[function(e,t,n){"use strict";var r=e("./_object-dp").f,i=e("./_object-create"),a=e("./_redefine-all"),s=e("./_ctx"),o=e("./_an-instance"),u=e("./_defined"),l=e("./_for-of"),c=e("./_iter-define"),p=e("./_iter-step"),f=e("./_set-species"),h=e("./_descriptors"),d=e("./_meta").fastKey,y=h?"_s":"size",m=function(e,t){var n,r=d(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};t.exports={getConstructor:function(e,t,n,c){var p=e(function(e,r){o(e,p,t,"_i"),e._i=i(null),e._f=void 0,e._l=void 0,e[y]=0,void 0!=r&&l(r,n,e[c],e)});return a(p.prototype,{clear:function(){for(var e=this,t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[y]=0},delete:function(e){var t=this,n=m(t,e);if(n){var r=n.n,i=n.p;delete t._i[n.i],n.r=!0,i&&(i.n=r),r&&(r.p=i),t._f==n&&(t._f=r),t._l==n&&(t._l=i),t[y]--}return!!n},forEach:function(e){o(this,p,"forEach");for(var t,n=s(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!m(this,e)}}),h&&r(p.prototype,"size",{get:function(){return u(this[y])}}),p},def:function(e,t,n){var r,i,a=m(e,t);return a?a.v=n:(e._l=a={i:i=d(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[y]++,"F"!==i&&(e._i[i]=a)),e},getEntry:m,setStrong:function(e,t,n){c(e,t,function(e,t){this._t=e,this._k=t,this._l=void 0},function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?"keys"==t?p(0,n.k):"values"==t?p(0,n.v):p(0,[n.k,n.v]):(e._t=void 0,p(1))},n?"entries":"values",!n,!0),f(t)}}},{"./_an-instance":135,"./_ctx":149,"./_defined":150,"./_descriptors":151,"./_for-of":157,"./_iter-define":169,"./_iter-step":170,"./_meta":174,"./_object-create":176,"./_object-dp":177,"./_redefine-all":189,"./_set-species":192}],145:[function(e,t,n){var r=e("./_classof"),i=e("./_array-from-iterable");t.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},{"./_array-from-iterable":137,"./_classof":142}],146:[function(e,t,n){"use strict";var r=e("./_redefine-all"),i=e("./_meta").getWeak,a=e("./_an-object"),s=e("./_is-object"),o=e("./_an-instance"),u=e("./_for-of"),l=e("./_array-methods"),c=e("./_has"),p=l(5),f=l(6),h=0,d=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},m=function(e,t){return p(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=m(this,e);if(t)return t[1]},has:function(e){return!!m(this,e)},set:function(e,t){var n=m(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,n,a){var l=e(function(e,r){o(e,l,t,"_i"),e._i=h++,e._l=void 0,void 0!=r&&u(r,n,e[a],e)});return r(l.prototype,{delete:function(e){if(!s(e))return!1;var t=i(e);return t===!0?d(this).delete(e):t&&c(t,this._i)&&delete t[this._i]},has:function(e){if(!s(e))return!1;var t=i(e);return t===!0?d(this).has(e):t&&c(t,this._i)}}),l},def:function(e,t,n){var r=i(a(t),!0);return r===!0?d(e).set(t,n):r[e._i]=n,e},ufstore:d}},{"./_an-instance":135,"./_an-object":136,"./_array-methods":139,"./_for-of":157,"./_has":159,"./_is-object":166,"./_meta":174,"./_redefine-all":189}],147:[function(e,t,n){"use strict";var r=e("./_global"),i=e("./_export"),a=e("./_meta"),s=e("./_fails"),o=e("./_hide"),u=e("./_redefine-all"),l=e("./_for-of"),c=e("./_an-instance"),p=e("./_is-object"),f=e("./_set-to-string-tag"),h=e("./_object-dp").f,d=e("./_array-methods")(0),y=e("./_descriptors");t.exports=function(e,t,n,m,b,g){var v=r[e],x=v,_=b?"set":"add",E=x&&x.prototype,A={};return y&&"function"==typeof x&&(g||E.forEach&&!s(function(){(new x).entries().next()}))?(x=t(function(t,n){c(t,x,e,"_c"),t._c=new v,void 0!=n&&l(n,b,t[_],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in E&&(!g||"clear"!=e)&&o(x.prototype,e,function(n,r){if(c(this,x,e),!t&&g&&!p(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),"size"in E&&h(x.prototype,"size",{get:function(){return this._c.size}})):(x=m.getConstructor(t,e,b,_),u(x.prototype,n),a.NEED=!0),f(x,e),A[e]=x,i(i.G+i.W+i.F,A),g||m.setStrong(x,e,b),x}},{"./_an-instance":135,"./_array-methods":139,"./_descriptors":151,"./_export":155,"./_fails":156,"./_for-of":157,"./_global":158,"./_hide":160,"./_is-object":166,"./_meta":174,"./_object-dp":177,"./_redefine-all":189,"./_set-to-string-tag":193}],148:[function(e,t,n){var r=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=r)},{}],149:[function(e,t,n){var r=e("./_a-function");t.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":133}],150:[function(e,t,n){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],151:[function(e,t,n){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":156}],152:[function(e,t,n){var r=e("./_is-object"),i=e("./_global").document,a=r(i)&&r(i.createElement);t.exports=function(e){return a?i.createElement(e):{}}},{"./_global":158,"./_is-object":166}],153:[function(e,t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],154:[function(e,t,n){var r=e("./_object-keys"),i=e("./_object-gops"),a=e("./_object-pie");t.exports=function(e){var t=r(e),n=i.f;if(n)for(var s,o=n(e),u=a.f,l=0;o.length>l;)u.call(e,s=o[l++])&&t.push(s);return t}},{"./_object-gops":182,"./_object-keys":185,"./_object-pie":186}],155:[function(e,t,n){var r=e("./_global"),i=e("./_core"),a=e("./_ctx"),s=e("./_hide"),o="prototype",u=function(e,t,n){var l,c,p,f=e&u.F,h=e&u.G,d=e&u.S,y=e&u.P,m=e&u.B,b=e&u.W,g=h?i:i[t]||(i[t]={}),v=g[o],x=h?r:d?r[t]:(r[t]||{})[o];h&&(n=t);for(l in n)c=!f&&x&&void 0!==x[l],c&&l in g||(p=c?x[l]:n[l],g[l]=h&&"function"!=typeof x[l]?n[l]:m&&c?a(p,r):b&&x[l]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[o]=e[o],t}(p):y&&"function"==typeof p?a(Function.call,p):p,y&&((g.virtual||(g.virtual={}))[l]=p,e&u.R&&v&&!v[l]&&s(v,l,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},{"./_core":148,"./_ctx":149,"./_global":158,"./_hide":160}],156:[function(e,t,n){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],157:[function(e,t,n){var r=e("./_ctx"),i=e("./_iter-call"),a=e("./_is-array-iter"),s=e("./_an-object"),o=e("./_to-length"),u=e("./core.get-iterator-method"),l={},c={},n=t.exports=function(e,t,n,p,f){var h,d,y,m,b=f?function(){return e}:u(e),g=r(n,p,t?2:1),v=0;if("function"!=typeof b)throw TypeError(e+" is not iterable!");if(a(b)){for(h=o(e.length);h>v;v++)if(m=t?g(s(d=e[v])[0],d[1]):g(e[v]),m===l||m===c)return m}else for(y=b.call(e);!(d=y.next()).done;)if(m=i(y,g,d.value,t),m===l||m===c)return m};n.BREAK=l,n.RETURN=c},{"./_an-object":136,"./_ctx":149,"./_is-array-iter":164,"./_iter-call":167,"./_to-length":200,"./core.get-iterator-method":207}],158:[function(e,t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},{}],159:[function(e,t,n){var r={}.hasOwnProperty;t.exports=function(e,t){return r.call(e,t)}},{}],160:[function(e,t,n){var r=e("./_object-dp"),i=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},{"./_descriptors":151,"./_object-dp":177,"./_property-desc":188}],161:[function(e,t,n){t.exports=e("./_global").document&&document.documentElement},{"./_global":158}],162:[function(e,t,n){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":151,"./_dom-create":152,"./_fails":156}],163:[function(e,t,n){var r=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},{"./_cof":143}],164:[function(e,t,n){var r=e("./_iterators"),i=e("./_wks")("iterator"),a=Array.prototype;t.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},{"./_iterators":171,"./_wks":206}],165:[function(e,t,n){var r=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==r(e)}},{"./_cof":143}],166:[function(e,t,n){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],167:[function(e,t,n){var r=e("./_an-object");t.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},{"./_an-object":136}],168:[function(e,t,n){"use strict";var r=e("./_object-create"),i=e("./_property-desc"),a=e("./_set-to-string-tag"),s={};e("./_hide")(s,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),a(e,t+" Iterator")}},{"./_hide":160,"./_object-create":176,"./_property-desc":188,"./_set-to-string-tag":193,"./_wks":206}],169:[function(e,t,n){"use strict";var r=e("./_library"),i=e("./_export"),a=e("./_redefine"),s=e("./_hide"),o=e("./_has"),u=e("./_iterators"),l=e("./_iter-create"),c=e("./_set-to-string-tag"),p=e("./_object-gpo"),f=e("./_wks")("iterator"),h=!([].keys&&"next"in[].keys()),d="@@iterator",y="keys",m="values",b=function(){return this};t.exports=function(e,t,n,g,v,x,_){l(n,t,g);var E,A,D,C=function(e){if(!h&&e in F)return F[e];switch(e){case y:return function(){return new n(this,e)};case m:return function(){return new n(this,e)}}return function(){return new n(this,e)}},S=t+" Iterator",w=v==m,k=!1,F=e.prototype,T=F[f]||F[d]||v&&F[v],P=T||C(v),j=v?w?C("entries"):P:void 0,B="Array"==t?F.entries||T:T;if(B&&(D=p(B.call(new e)),D!==Object.prototype&&(c(D,S,!0),r||o(D,f)||s(D,f,b))),w&&T&&T.name!==m&&(k=!0,P=function(){return T.call(this)}),r&&!_||!h&&!k&&F[f]||s(F,f,P),u[t]=P,u[S]=b,v)if(E={values:w?P:C(m),keys:x?P:C(y),entries:j},_)for(A in E)A in F||a(F,A,E[A]);else i(i.P+i.F*(h||k),t,E);return E}},{"./_export":155,"./_has":159,"./_hide":160,"./_iter-create":168,"./_iterators":171,"./_library":173,"./_object-gpo":183,"./_redefine":190,"./_set-to-string-tag":193,"./_wks":206}],170:[function(e,t,n){t.exports=function(e,t){return{value:t,done:!!e}}},{}],171:[function(e,t,n){t.exports={}},{}],172:[function(e,t,n){var r=e("./_object-keys"),i=e("./_to-iobject");t.exports=function(e,t){for(var n,a=i(e),s=r(a),o=s.length,u=0;o>u;)if(a[n=s[u++]]===t)return n}},{"./_object-keys":185,"./_to-iobject":199}],173:[function(e,t,n){t.exports=!0},{}],174:[function(e,t,n){var r=e("./_uid")("meta"),i=e("./_is-object"),a=e("./_has"),s=e("./_object-dp").f,o=0,u=Object.isExtensible||function(){return!0},l=!e("./_fails")(function(){return u(Object.preventExtensions({}))}),c=function(e){s(e,r,{value:{i:"O"+ ++o,w:{}}})},p=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[r].i},f=function(e,t){if(!a(e,r)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[r].w},h=function(e){return l&&d.NEED&&u(e)&&!a(e,r)&&c(e),e},d=t.exports={KEY:r,NEED:!1,fastKey:p,getWeak:f,onFreeze:h}},{"./_fails":156,"./_has":159,"./_is-object":166,"./_object-dp":177,"./_uid":203}],175:[function(e,t,n){"use strict";var r=e("./_object-keys"),i=e("./_object-gops"),a=e("./_object-pie"),s=e("./_to-object"),o=e("./_iobject"),u=Object.assign;t.exports=!u||e("./_fails")(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=s(e),u=arguments.length,l=1,c=i.f,p=a.f;u>l;)for(var f,h=o(arguments[l++]),d=c?r(h).concat(c(h)):r(h),y=d.length,m=0;y>m;)p.call(h,f=d[m++])&&(n[f]=h[f]);return n}:u},{"./_fails":156,"./_iobject":163,"./_object-gops":182,"./_object-keys":185,"./_object-pie":186,"./_to-object":201}],176:[function(e,t,n){var r=e("./_an-object"),i=e("./_object-dps"),a=e("./_enum-bug-keys"),s=e("./_shared-key")("IE_PROTO"),o=function(){},u="prototype",l=function(){var t,n=e("./_dom-create")("iframe"),r=a.length,i="<",s=">";for(n.style.display="none",e("./_html").appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write(i+"script"+s+"document.F=Object"+i+"/script"+s),t.close(),l=t.F;r--;)delete l[u][a[r]];return l()};t.exports=Object.create||function(e,t){var n;return null!==e?(o[u]=r(e),n=new o,o[u]=null,n[s]=e):n=l(),void 0===t?n:i(n,t)}},{"./_an-object":136,"./_dom-create":152,"./_enum-bug-keys":153,"./_html":161,"./_object-dps":178,"./_shared-key":194}],177:[function(e,t,n){var r=e("./_an-object"),i=e("./_ie8-dom-define"),a=e("./_to-primitive"),s=Object.defineProperty;n.f=e("./_descriptors")?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},{"./_an-object":136,"./_descriptors":151,"./_ie8-dom-define":162,"./_to-primitive":202}],178:[function(e,t,n){var r=e("./_object-dp"),i=e("./_an-object"),a=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){i(e);for(var n,s=a(t),o=s.length,u=0;o>u;)r.f(e,n=s[u++],t[n]);return e}},{"./_an-object":136,"./_descriptors":151,"./_object-dp":177,"./_object-keys":185}],179:[function(e,t,n){var r=e("./_object-pie"),i=e("./_property-desc"),a=e("./_to-iobject"),s=e("./_to-primitive"),o=e("./_has"),u=e("./_ie8-dom-define"),l=Object.getOwnPropertyDescriptor;n.f=e("./_descriptors")?l:function(e,t){if(e=a(e),t=s(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!r.f.call(e,t),e[t])}},{"./_descriptors":151,"./_has":159,"./_ie8-dom-define":162,"./_object-pie":186,"./_property-desc":188,"./_to-iobject":199,"./_to-primitive":202}],180:[function(e,t,n){var r=e("./_to-iobject"),i=e("./_object-gopn").f,a={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],o=function(e){try{return i(e)}catch(e){return s.slice()}};t.exports.f=function(e){return s&&"[object Window]"==a.call(e)?o(e):i(r(e))}},{"./_object-gopn":181,"./_to-iobject":199}],181:[function(e,t,n){var r=e("./_object-keys-internal"),i=e("./_enum-bug-keys").concat("length","prototype");n.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},{"./_enum-bug-keys":153,"./_object-keys-internal":184}],182:[function(e,t,n){n.f=Object.getOwnPropertySymbols},{}],183:[function(e,t,n){var r=e("./_has"),i=e("./_to-object"),a=e("./_shared-key")("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},{"./_has":159,"./_shared-key":194,"./_to-object":201}],184:[function(e,t,n){var r=e("./_has"),i=e("./_to-iobject"),a=e("./_array-includes")(!1),s=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var n,o=i(e),u=0,l=[];for(n in o)n!=s&&r(o,n)&&l.push(n);for(;t.length>u;)r(o,n=t[u++])&&(~a(l,n)||l.push(n));return l}},{"./_array-includes":138,"./_has":159,"./_shared-key":194,"./_to-iobject":199}],185:[function(e,t,n){var r=e("./_object-keys-internal"),i=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return r(e,i)}},{"./_enum-bug-keys":153,"./_object-keys-internal":184}],186:[function(e,t,n){n.f={}.propertyIsEnumerable},{}],187:[function(e,t,n){var r=e("./_export"),i=e("./_core"),a=e("./_fails");t.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),r(r.S+r.F*a(function(){n(1)}),"Object",s)}},{"./_core":148,"./_export":155,"./_fails":156}],188:[function(e,t,n){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],189:[function(e,t,n){var r=e("./_hide");t.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},{"./_hide":160}],190:[function(e,t,n){t.exports=e("./_hide")},{"./_hide":160}],191:[function(e,t,n){var r=e("./_is-object"),i=e("./_an-object"),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,r){try{r=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2),r(t,[]),n=!(t instanceof Array)}catch(e){n=!0}return function(e,t){return a(e,t),n?e.__proto__=t:r(e,t),e}}({},!1):void 0),check:a}},{"./_an-object":136,"./_ctx":149,"./_is-object":166,"./_object-gopd":179}],192:[function(e,t,n){"use strict";var r=e("./_global"),i=e("./_core"),a=e("./_object-dp"),s=e("./_descriptors"),o=e("./_wks")("species");t.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];s&&t&&!t[o]&&a.f(t,o,{configurable:!0,get:function(){return this}})}},{"./_core":148,"./_descriptors":151,"./_global":158,"./_object-dp":177,"./_wks":206}],193:[function(e,t,n){var r=e("./_object-dp").f,i=e("./_has"),a=e("./_wks")("toStringTag");t.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},{"./_has":159,"./_object-dp":177,"./_wks":206}],194:[function(e,t,n){var r=e("./_shared")("keys"),i=e("./_uid");t.exports=function(e){return r[e]||(r[e]=i(e))}},{"./_shared":195,"./_uid":203}],195:[function(e,t,n){var r=e("./_global"),i="__core-js_shared__",a=r[i]||(r[i]={});t.exports=function(e){return a[e]||(a[e]={})}},{"./_global":158}],196:[function(e,t,n){var r=e("./_to-integer"),i=e("./_defined");t.exports=function(e){return function(t,n){var a,s,o=String(i(t)),u=r(n),l=o.length;return u<0||u>=l?e?"":void 0:(a=o.charCodeAt(u),a<55296||a>56319||u+1===l||(s=o.charCodeAt(u+1))<56320||s>57343?e?o.charAt(u):a:e?o.slice(u,u+2):(a-55296<<10)+(s-56320)+65536)}}},{"./_defined":150,"./_to-integer":198}],197:[function(e,t,n){var r=e("./_to-integer"),i=Math.max,a=Math.min;t.exports=function(e,t){return e=r(e),e<0?i(e+t,0):a(e,t)}},{"./_to-integer":198}],198:[function(e,t,n){var r=Math.ceil,i=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?i:r)(e)}},{}],199:[function(e,t,n){var r=e("./_iobject"),i=e("./_defined");t.exports=function(e){return r(i(e))}},{"./_defined":150,"./_iobject":163}],200:[function(e,t,n){var r=e("./_to-integer"),i=Math.min;t.exports=function(e){return e>0?i(r(e),9007199254740991):0}},{"./_to-integer":198}],201:[function(e,t,n){var r=e("./_defined");t.exports=function(e){return Object(r(e))}},{"./_defined":150}],202:[function(e,t,n){var r=e("./_is-object");t.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":166}],203:[function(e,t,n){var r=0,i=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+i).toString(36))}},{}],204:[function(e,t,n){var r=e("./_global"),i=e("./_core"),a=e("./_library"),s=e("./_wks-ext"),o=e("./_object-dp").f;t.exports=function(e){var t=i.Symbol||(i.Symbol=a?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:s.f(e)})}},{"./_core":148,"./_global":158,"./_library":173,"./_object-dp":177,"./_wks-ext":205}],205:[function(e,t,n){n.f=e("./_wks")},{"./_wks":206}],206:[function(e,t,n){var r=e("./_shared")("wks"),i=e("./_uid"),a=e("./_global").Symbol,s="function"==typeof a,o=t.exports=function(e){return r[e]||(r[e]=s&&a[e]||(s?a:i)("Symbol."+e))};o.store=r},{"./_global":158,"./_shared":195,"./_uid":203}],207:[function(e,t,n){var r=e("./_classof"),i=e("./_wks")("iterator"),a=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||a[r(e)]}},{"./_classof":142,"./_core":148,"./_iterators":171,"./_wks":206}],208:[function(e,t,n){var r=e("./_an-object"),i=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},{"./_an-object":136,"./_core":148,"./core.get-iterator-method":207}],209:[function(e,t,n){"use strict";var r=e("./_add-to-unscopables"),i=e("./_iter-step"),a=e("./_iterators"),s=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},{"./_add-to-unscopables":134,"./_iter-define":169,"./_iter-step":170,"./_iterators":171,"./_to-iobject":199}],210:[function(e,t,n){"use strict";var r=e("./_collection-strong");t.exports=e("./_collection")("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(this,e);return t&&t.v},set:function(e,t){return r.def(this,0===e?0:e,t)}},r,!0)},{"./_collection":147,"./_collection-strong":144}],211:[function(e,t,n){var r=e("./_export");r(r.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{"./_export":155}],212:[function(e,t,n){var r=e("./_export");r(r.S+r.F,"Object",{assign:e("./_object-assign")})},{"./_export":155,"./_object-assign":175}],213:[function(e,t,n){var r=e("./_export");r(r.S,"Object",{create:e("./_object-create")})},{"./_export":155,
+"./_object-create":176}],214:[function(e,t,n){var r=e("./_to-object"),i=e("./_object-keys");e("./_object-sap")("keys",function(){return function(e){return i(r(e))}})},{"./_object-keys":185,"./_object-sap":187,"./_to-object":201}],215:[function(e,t,n){var r=e("./_export");r(r.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":155,"./_set-proto":191}],216:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],217:[function(e,t,n){"use strict";var r=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":169,"./_string-at":196}],218:[function(e,t,n){"use strict";var r=e("./_global"),i=e("./_has"),a=e("./_descriptors"),s=e("./_export"),o=e("./_redefine"),u=e("./_meta").KEY,l=e("./_fails"),c=e("./_shared"),p=e("./_set-to-string-tag"),f=e("./_uid"),h=e("./_wks"),d=e("./_wks-ext"),y=e("./_wks-define"),m=e("./_keyof"),b=e("./_enum-keys"),g=e("./_is-array"),v=e("./_an-object"),x=e("./_to-iobject"),_=e("./_to-primitive"),E=e("./_property-desc"),A=e("./_object-create"),D=e("./_object-gopn-ext"),C=e("./_object-gopd"),S=e("./_object-dp"),w=e("./_object-keys"),k=C.f,F=S.f,T=D.f,P=r.Symbol,j=r.JSON,B=j&&j.stringify,O="prototype",I=h("_hidden"),N=h("toPrimitive"),L={}.propertyIsEnumerable,M=c("symbol-registry"),R=c("symbols"),U=c("op-symbols"),V=Object[O],G="function"==typeof P,q=r.QObject,K=!q||!q[O]||!q[O].findChild,X=a&&l(function(){return 7!=A(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=k(V,t);r&&delete V[t],F(e,t,n),r&&e!==V&&F(V,t,r)}:F,J=function(e){var t=R[e]=A(P[O]);return t._k=e,t},W=G&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},z=function(e,t,n){return e===V&&z(U,t,n),v(e),t=_(t,!0),v(n),i(R,t)?(n.enumerable?(i(e,I)&&e[I][t]&&(e[I][t]=!1),n=A(n,{enumerable:E(0,!1)})):(i(e,I)||F(e,I,E(1,{})),e[I][t]=!0),X(e,t,n)):F(e,t,n)},Y=function(e,t){v(e);for(var n,r=b(t=x(t)),i=0,a=r.length;a>i;)z(e,n=r[i++],t[n]);return e},H=function(e,t){return void 0===t?A(e):Y(A(e),t)},$=function(e){var t=L.call(this,e=_(e,!0));return!(this===V&&i(R,e)&&!i(U,e))&&(!(t||!i(this,e)||!i(R,e)||i(this,I)&&this[I][e])||t)},Q=function(e,t){if(e=x(e),t=_(t,!0),e!==V||!i(R,t)||i(U,t)){var n=k(e,t);return!n||!i(R,t)||i(e,I)&&e[I][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=T(x(e)),r=[],a=0;n.length>a;)i(R,t=n[a++])||t==I||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===V,r=T(n?U:x(e)),a=[],s=0;r.length>s;)!i(R,t=r[s++])||n&&!i(V,t)||a.push(R[t]);return a};G||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===V&&t.call(U,n),i(this,I)&&i(this[I],e)&&(this[I][e]=!1),X(this,e,E(1,n))};return a&&K&&X(V,e,{configurable:!0,set:t}),J(e)},o(P[O],"toString",function(){return this._k}),C.f=Q,S.f=z,e("./_object-gopn").f=D.f=Z,e("./_object-pie").f=$,e("./_object-gops").f=ee,a&&!e("./_library")&&o(V,"propertyIsEnumerable",$,!0),d.f=function(e){return J(h(e))}),s(s.G+s.W+s.F*!G,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var te=w(h.store),ne=0;te.length>ne;)y(te[ne++]);s(s.S+s.F*!G,"Symbol",{for:function(e){return i(M,e+="")?M[e]:M[e]=P(e)},keyFor:function(e){if(W(e))return m(M,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){K=!0},useSimple:function(){K=!1}}),s(s.S+s.F*!G,"Object",{create:H,defineProperty:z,defineProperties:Y,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:ee}),j&&s(s.S+s.F*(!G||l(function(){var e=P();return"[null]"!=B([e])||"{}"!=B({a:e})||"{}"!=B(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!W(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&g(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!W(t))return t}),r[1]=t,B.apply(j,r)}}}),P[O][N]||e("./_hide")(P[O],N,P[O].valueOf),p(P,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},{"./_an-object":136,"./_descriptors":151,"./_enum-keys":154,"./_export":155,"./_fails":156,"./_global":158,"./_has":159,"./_hide":160,"./_is-array":165,"./_keyof":172,"./_library":173,"./_meta":174,"./_object-create":176,"./_object-dp":177,"./_object-gopd":179,"./_object-gopn":181,"./_object-gopn-ext":180,"./_object-gops":182,"./_object-keys":185,"./_object-pie":186,"./_property-desc":188,"./_redefine":190,"./_set-to-string-tag":193,"./_shared":195,"./_to-iobject":199,"./_to-primitive":202,"./_uid":203,"./_wks":206,"./_wks-define":204,"./_wks-ext":205}],219:[function(e,t,n){"use strict";var r,i=e("./_array-methods")(0),a=e("./_redefine"),s=e("./_meta"),o=e("./_object-assign"),u=e("./_collection-weak"),l=e("./_is-object"),c=s.getWeak,p=Object.isExtensible,f=u.ufstore,h={},d=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(l(e)){var t=c(e);return t===!0?f(this).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(this,e,t)}},m=t.exports=e("./_collection")("WeakMap",d,y,u,!0,!0);7!=(new m).set((Object.freeze||Object)(h),7).get(h)&&(r=u.getConstructor(d),o(r.prototype,y),s.NEED=!0,i(["delete","has","get","set"],function(e){var t=m.prototype,n=t[e];a(t,e,function(t,i){if(l(t)&&!p(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)})}))},{"./_array-methods":139,"./_collection":147,"./_collection-weak":146,"./_is-object":166,"./_meta":174,"./_object-assign":175,"./_redefine":190}],220:[function(e,t,n){"use strict";var r=e("./_collection-weak");e("./_collection")("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(this,e,!0)}},r,!1,!0)},{"./_collection":147,"./_collection-weak":146}],221:[function(e,t,n){var r=e("./_export");r(r.P+r.R,"Map",{toJSON:e("./_collection-to-json")("Map")})},{"./_collection-to-json":145,"./_export":155}],222:[function(e,t,n){e("./_wks-define")("asyncIterator")},{"./_wks-define":204}],223:[function(e,t,n){e("./_wks-define")("observable")},{"./_wks-define":204}],224:[function(e,t,n){e("./es6.array.iterator");for(var r=e("./_global"),i=e("./_hide"),a=e("./_iterators"),s=e("./_wks")("toStringTag"),o=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var l=o[u],c=r[l],p=c&&c.prototype;p&&!p[s]&&i(p,s,l),a[l]=a.Array}},{"./_global":158,"./_hide":160,"./_iterators":171,"./_wks":206,"./es6.array.iterator":209}],225:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){e=(0,l.default)(e);var n=e,r=n.program;return t.length&&(0,y.default)(e,E,null,t),r.body.length>1?r.body:r.body[0]}n.__esModule=!0;var s=e("babel-runtime/core-js/symbol"),o=i(s);n.default=function(e,t){var n=void 0;try{throw new Error}catch(e){e.stack&&(n=e.stack.split("\n").slice(1).join("\n"))}t=(0,p.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var r=function(){var i=void 0;try{i=b.parse(e,t),i=y.default.removeProperties(i,{preserveComments:t.preserveComments}),y.default.cheap(i,function(e){e[x]=!0})}catch(e){throw e.stack=e.stack+"from\n"+n,e}return r=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return a(r(),t)}};var u=e("lodash/cloneDeep"),l=i(u),c=e("lodash/assign"),p=i(c),f=e("lodash/has"),h=i(f),d=e("babel-traverse"),y=i(d),m=e("babylon"),b=r(m),g=e("babel-types"),v=r(g),x="_fromTemplate",_=(0,o.default)(),E={noScope:!0,enter:function(e,t){var n=e.node;if(n[_])return e.skip();v.isExpressionStatement(n)&&(n=n.expression);var r=void 0;if(v.isIdentifier(n)&&n[x])if((0,h.default)(t[0],n.name))r=t[0][n.name];else if("$"===n.name[0]){var i=+n.name.slice(1);t[i]&&(r=t[i])}null===r&&e.remove(),r&&(r[_]=!0,e.replaceInline(r))},exit:function(e){var t=e.node;t.loc||y.default.clearNode(t)}};t.exports=n.default},{"babel-runtime/core-js/symbol":109,"babel-traverse":229,"babel-types":265,babylon:274,"lodash/assign":453,"lodash/cloneDeep":456,"lodash/has":470}],226:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){a(),s()}function a(){n.path=l=new u.default}function s(){n.scope=c=new u.default}n.__esModule=!0,n.scope=n.path=void 0;var o=e("babel-runtime/core-js/weak-map"),u=r(o);n.clear=i,n.clearPath=a,n.clearScope=s;var l=n.path=new u.default,c=n.scope=new u.default},{"babel-runtime/core-js/weak-map":112}],227:[function(e,t,n){(function(r){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function a(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var s=e("babel-runtime/core-js/get-iterator"),o=a(s),u=e("babel-runtime/helpers/classCallCheck"),l=a(u),c=e("./path"),p=a(c),f=e("babel-types"),h=i(f),d="test"===r.env.NODE_ENV,y=function(){function e(t,n,r,i){(0,l.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=r,this.opts=n}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var n=h.VISITOR_KEYS[e.type];if(!n||!n.length)return!1;for(var r=n,i=Array.isArray(r),a=0,r=i?r:(0,o.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var u=s;if(e[u])return!0}return!1},e.prototype.create=function(e,t,n,r){return p.default.get({parentPath:this.parentPath,parent:e,container:t,key:n,listKey:r})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,n){if(0===e.length)return!1;for(var r=[],i=0;i<e.length;i++){var a=e[i];a&&this.shouldVisit(a)&&r.push(this.create(t,e,i,n))}return this.visitQueue(r)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=[],n=!1,r=e,i=Array.isArray(r),a=0,r=i?r:(0,o.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var u=s;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&(d&&e.length>=1e4&&(this.trap=!0),!(t.indexOf(u.node)>=0))){if(t.push(u.node),u.visit()){n=!0;break}if(this.priorityQueue.length&&(n=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,n))break}}for(var l=e,c=Array.isArray(l),p=0,l=c?l:(0,o.default)(l);;){var f;if(c){if(p>=l.length)break;f=l[p++]}else{if(p=l.next(),p.done)break;f=p.value}var h=f;h.popContext()}return this.queue=null,n},e.prototype.visit=function(e,t){var n=e[t];return!!n&&(Array.isArray(n)?this.visitMultiple(n,e,t):this.visitSingle(e,t))},e}();n.default=y,t.exports=n.default}).call(this,e("_process"))},{"./path":236,_process:13,"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/classCallCheck":114,"babel-types":265}],228:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=function e(t,n){(0,a.default)(this,e),this.file=t,this.options=n};n.default=s,t.exports=n.default},{"babel-runtime/helpers/classCallCheck":114}],229:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n,r,i){if(e){if(t||(t={}),!t.noScope&&!n&&"Program"!==e.type&&"File"!==e.type)throw new Error(b.get("traverseNeedsParent",e.type));y.explode(t),a.node(e,t,n,r,i)}}function s(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}n.__esModule=!0,n.visitors=n.Hub=n.Scope=n.NodePath=void 0;var o=e("babel-runtime/core-js/get-iterator"),u=i(o),l=e("./path");Object.defineProperty(n,"NodePath",{enumerable:!0,get:function(){return i(l).default}});var c=e("./scope");Object.defineProperty(n,"Scope",{enumerable:!0,get:function(){return i(c).default}});var p=e("./hub");Object.defineProperty(n,"Hub",{enumerable:!0,get:function(){return i(p).default}}),n.default=a;var f=e("./context"),h=i(f),d=e("./visitors"),y=r(d),m=e("babel-messages"),b=r(m),g=e("lodash/includes"),v=i(g),x=e("babel-types"),_=r(x),E=e("./cache"),A=r(E);n.visitors=y,a.visitors=y,a.verify=y.verify,a.explode=y.explode,a.NodePath=e("./path"),a.Scope=e("./scope"),a.Hub=e("./hub"),a.cheap=function(e,t){return _.traverseFast(e,t)},a.node=function(e,t,n,r,i,a){var s=_.VISITOR_KEYS[e.type];if(s)for(var o=new h.default(n,t,r,i),l=s,c=Array.isArray(l),p=0,l=c?l:(0,u.default)(l);;){var f;if(c){if(p>=l.length)break;f=l[p++]}else{if(p=l.next(),p.done)break;f=p.value}var d=f;if((!a||!a[d])&&o.visit(e,d))return}},a.clearNode=function(e,t){_.removeProperties(e,t),A.path.delete(e)},a.removeProperties=function(e,t){return _.traverseFast(e,a.clearNode,t),e},a.hasType=function(e,t,n,r){if((0,v.default)(r,e.type))return!1;if(e.type===n)return!0;var i={has:!1,type:n};return a(e,{blacklist:r,enter:s},t,i),i.has},a.clearCache=function(){A.clear()},a.clearCache.clearPath=A.clearPath,a.clearCache.clearScope=A.clearScope,a.copyCache=function(e,t){A.path.has(e)&&A.path.set(t,A.path.get(e))}},{"./cache":226,"./context":227,"./hub":228,"./path":236,"./scope":248,"./visitors":250,"babel-messages":99,"babel-runtime/core-js/get-iterator":100,"babel-types":265,"lodash/includes":473}],230:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null}function s(e){var t=this;do if(e(t))return t;while(t=t.parentPath);return null}function o(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})}function u(){var e=this;do if(Array.isArray(e.container))return e;while(e=e.parentPath)}function l(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,n){for(var r=void 0,i=v.VISITOR_KEYS[e.type],a=n,s=Array.isArray(a),o=0,a=s?a:(0,b.default)(a);;){var u;if(s){if(o>=a.length)break;u=a[o++]}else{if(o=a.next(),o.done)break;u=o.value}var l=u,c=l[t+1];if(r)if(c.listKey&&r.listKey===c.listKey&&c.key<r.key)r=c;else{var p=i.indexOf(r.parentKey),f=i.indexOf(c.parentKey);p>f&&(r=c)}else r=c}return r})}function c(e,t){var n=this;if(!e.length)return this;if(1===e.length)return e[0];var r=1/0,i=void 0,a=void 0,s=e.map(function(e){var t=[];do t.unshift(e);while((e=e.parentPath)&&e!==n);return t.length<r&&(r=t.length),t}),o=s[0];e:for(var u=0;u<r;u++){for(var l=o[u],c=s,p=Array.isArray(c),f=0,c=p?c:(0,b.default)(c);;){var h;if(p){if(f>=c.length)break;h=c[f++]}else{if(f=c.next(),f.done)break;h=f.value}var d=h;if(d[u]!==l)break e}i=u,a=l}if(a)return t?t(a,i,s):a;throw new Error("Couldn't find intersection")}function p(){var e=this,t=[];do t.push(e);while(e=e.parentPath);return t}function f(e){return e.isDescendant(this)}function h(e){return!!this.findParent(function(t){return t===e})}function d(){for(var e=this;e;){for(var t=arguments,n=Array.isArray(t),r=0,t=n?t:(0,b.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;if(e.node.type===a)return!0}e=e.parentPath}return!1}function y(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var n=t.node.shadow;if(n&&(!e||n[e]!==!1))return t}else if(t.isArrowFunctionExpression())return t;return null}}n.__esModule=!0;var m=e("babel-runtime/core-js/get-iterator"),b=i(m);n.findParent=a,n.find=s,n.getFunctionParent=o,n.getStatementParent=u,n.getEarliestCommonAncestorFrom=l,n.getDeepestCommonAncestorFrom=c,n.getAncestry=p,n.isAncestor=f,n.isDescendant=h,n.inType=d,n.inShadow=y;var g=e("babel-types"),v=r(g),x=e("./index");i(x)},{"./index":236,"babel-runtime/core-js/get-iterator":100,"babel-types":265}],231:[function(e,t,n){"use strict";function r(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,n=e.leadingComments;if(t||n){var r=this.getSibling(this.key-1),i=this.getSibling(this.key+1);r.node||(r=i),i.node||(i=r),r.addComments("trailing",n),i.addComments("leading",t)}}}}function i(e,t,n){this.addComments(e,[{type:n?"CommentLine":"CommentBlock",value:t}])}function a(e,t){if(t){var n=this.node;if(n){var r=e+"Comments";n[r]?n[r]=n[r].concat(t):n[r]=t}}}n.__esModule=!0,n.shareCommentsWithSiblings=r,n.addComment=i,n.addComments=a},{}],232:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])}function a(e){if(!e)return!1;for(var t=e,n=Array.isArray(t),r=0,t=n?t:(0,C.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;if(a){var s=this.node;if(!s)return!0;var o=a.call(this.state,this,this.state);if(o)throw new Error("Unexpected return value from visitor method "+a);if(this.node!==s)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1}function s(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1}function o(){return!!this.node&&(!this.isBlacklisted()&&((!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),w.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))))}function u(){this.shouldSkip=!0}function l(e){this.skipKeys[e]=!0}function c(){this.shouldStop=!0,this.shouldSkip=!0}function p(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}}function f(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this}function h(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())}function d(){this.parentPath&&(this.parent=this.parentPath.node)}function y(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}}function m(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function b(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()}function g(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])}function v(e){this.contexts.push(e),this.setContext(e)}function x(e,t,n,r){this.inList=!!n,this.listKey=n,this.parentKey=n||r,this.container=t,this.parentPath=e||this.parentPath,this.setKey(r)}function _(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type}function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed)for(var t=this.contexts,n=t,r=Array.isArray(n),i=0,n=r?n:(0,C.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;s.maybeQueue(e)}}function A(){for(var e=this,t=this.contexts;!t.length;)e=e.parentPath,t=e.contexts;return t}n.__esModule=!0;var D=e("babel-runtime/core-js/get-iterator"),C=r(D);n.call=i,n._call=a,n.isBlacklisted=s,n.visit=o,n.skip=u,n.skipKey=l,n.stop=c,n.setScope=p,n.setContext=f,n.resync=h,n._resyncParent=d,n._resyncKey=y,n._resyncList=m,n._resyncRemoved=b,n.popContext=g,n.pushContext=v,n.setup=x,n.setKey=_,n.requeue=E,n._getQueueContexts=A;var S=e("../index"),w=r(S)},{"../index":229,"babel-runtime/core-js/get-iterator":100}],233:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||u.isIdentifier(t)&&(t=u.stringLiteral(t.name)),t}function a(){return u.ensureBlock(this.node)}function s(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}}n.__esModule=!0,n.toComputedKey=i,n.ensureBlock=a,n.arrowFunctionToShadowed=s;var o=e("babel-types"),u=r(o)},{"babel-types":265}],234:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this.evaluate();if(e.confident)return!!e.value}function a(){function e(e){i&&(a=e,i=!1)}function n(t){var n=t.node;if(s.has(n)){var a=s.get(n);return a.resolved?a.value:void e(t)}var o={resolved:!1};s.set(n,o);var u=r(t);return i&&(o.resolved=!0,o.value=u),u}function r(r){if(i){var a=r.node;if(r.isSequenceExpression()){var s=r.get("expressions");return n(s[s.length-1])}if(r.isStringLiteral()||r.isNumericLiteral()||r.isBooleanLiteral())return a.value;if(r.isNullLiteral())return null;if(r.isTemplateLiteral()){for(var u="",c=0,p=r.get("expressions"),d=a.quasis,y=Array.isArray(d),m=0,d=y?d:(0,l.default)(d);;){var b;if(y){if(m>=d.length)break;b=d[m++]}else{if(m=d.next(),m.done)break;b=m.value}var g=b;if(!i)break;u+=g.value.cooked;var v=p[c++];v&&(u+=String(n(v)))}if(!i)return;return u}if(r.isConditionalExpression()){var x=n(r.get("test"));if(!i)return;return n(x?r.get("consequent"):r.get("alternate"))}if(r.isExpressionWrapper())return n(r.get("expression"));if(r.isMemberExpression()&&!r.parentPath.isCallExpression({callee:a})){var _=r.get("property"),E=r.get("object");if(E.isLiteral()&&_.isIdentifier()){var A=E.node.value,D="undefined"==typeof A?"undefined":(0,o.default)(A);if("number"===D||"string"===D)return A[_.node.name]}}if(r.isReferencedIdentifier()){var C=r.scope.getBinding(a.name);if(C&&C.constantViolations.length>0)return e(C.path);if(C&&r.node.start<C.path.node.end)return e(C.path);if(C&&C.hasValue)return C.value;if("undefined"===a.name)return;if("Infinity"===a.name)return 1/0;if("NaN"===a.name)return NaN;var S=r.resolve();return S===r?e(r):n(S)}if(r.isUnaryExpression({prefix:!0})){if("void"===a.operator)return;var w=r.get("argument");if("typeof"===a.operator&&(w.isFunction()||w.isClass()))return"function";var k=n(w);if(!i)return;switch(a.operator){case"!":return!k;case"+":return+k;case"-":return-k;case"~":return~k;case"typeof":return"undefined"==typeof k?"undefined":(0,o.default)(k)}}if(r.isArrayExpression()){for(var F=[],T=r.get("elements"),P=T,j=Array.isArray(P),B=0,P=j?P:(0,l.default)(P);;){var O;if(j){if(B>=P.length)break;O=P[B++]}else{if(B=P.next(),B.done)break;O=B.value}var I=O;if(I=I.evaluate(),!I.confident)return e(I);F.push(I.value)}return F}if(r.isObjectExpression()){for(var N={},L=r.get("properties"),M=L,R=Array.isArray(M),U=0,M=R?M:(0,l.default)(M);;){var V;if(R){if(U>=M.length)break;V=M[U++]}else{if(U=M.next(),U.done)break;V=U.value}var G=V;if(G.isObjectMethod()||G.isSpreadProperty())return e(G);var q=G.get("key"),K=q;if(G.node.computed){if(K=K.evaluate(),!K.confident)return e(q);K=K.value}else K=K.isIdentifier()?K.node.name:K.node.value;var X=G.get("value"),J=X.evaluate();if(!J.confident)return e(X);J=J.value,N[K]=J}return N}if(r.isLogicalExpression()){var W=i,z=n(r.get("left")),Y=i;i=W;var H=n(r.get("right")),$=i;switch(i=Y&&$,a.operator){case"||":if(z&&Y)return i=!0,z;if(!i)return;return z||H;case"&&":if((!z&&Y||!H&&$)&&(i=!0),!i)return;return z&&H}}if(r.isBinaryExpression()){var Q=n(r.get("left"));if(!i)return;var Z=n(r.get("right"));if(!i)return;switch(a.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q<Z;case">":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<<Z;case">>":return Q>>Z;case">>>":return Q>>>Z}}if(r.isCallExpression()){var ee=r.get("callee"),te=void 0,ne=void 0;if(ee.isIdentifier()&&!r.scope.getBinding(ee.node.name,!0)&&f.indexOf(ee.node.name)>=0&&(ne=t[a.callee.name]),ee.isMemberExpression()){var re=ee.get("object"),ie=ee.get("property");if(re.isIdentifier()&&ie.isIdentifier()&&f.indexOf(re.node.name)>=0&&h.indexOf(ie.node.name)<0&&(te=t[re.node.name],ne=te[ie.node.name]),re.isLiteral()&&ie.isIdentifier()){var ae=(0,o.default)(re.node.value);"string"!==ae&&"number"!==ae||(te=re.node.value,ne=te[ie.node.name])}}if(ne){var se=r.get("arguments").map(n);if(!i)return;return ne.apply(te,se)}}e(r)}}var i=!0,a=void 0,s=new p.default,u=n(this);return i||(u=void 0),{confident:i,deopt:a,value:u}}n.__esModule=!0;var s=e("babel-runtime/helpers/typeof"),o=r(s),u=e("babel-runtime/core-js/get-iterator"),l=r(u),c=e("babel-runtime/core-js/map"),p=r(c);n.evaluateTruthy=i,n.evaluate=a;var f=["String","Number","Math"],h=["random"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/map":102,"babel-runtime/helpers/typeof":118}],235:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e}function s(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0}function o(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e}function u(e){return _.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})}function l(e,t){t===!0&&(t=this.context);var n=e.split(".");return 1===n.length?this._getKey(e,t):this._getPattern(n,t)}function c(e,t){var n=this,r=this.node,i=r[e];return Array.isArray(i)?i.map(function(a,s){return _.default.get({listKey:e,parentPath:n,parent:r,container:i,key:s}).setContext(t)}):_.default.get({parentPath:this,parent:r,container:r,key:e}).setContext(t)}function p(e,t){for(var n=this,r=e,i=Array.isArray(r),a=0,r=i?r:(0,v.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;n="."===o?n.parentPath:Array.isArray(n)?n[o]:n.get(o,t)}return n}function f(e){return A.getBindingIdentifiers(this.node,e)}function h(e){return A.getOuterBindingIdentifiers(this.node,e)}function d(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this,r=[].concat(n),i=(0,b.default)(null);r.length;){var a=r.shift();if(a&&a.node){var s=A.getBindingIdentifiers.keys[a.node.type];if(a.isIdentifier())if(e){var o=i[a.node.name]=i[a.node.name]||[];o.push(a)}else i[a.node.name]=a;else if(a.isExportDeclaration()){var u=a.get("declaration");u.isDeclaration()&&r.push(u)}else{if(t){if(a.isFunctionDeclaration()){r.push(a.get("id"));continue}if(a.isFunctionExpression())continue}if(s)for(var l=0;l<s.length;l++){var c=s[l],p=a.get(c);(Array.isArray(p)||p.node)&&(r=r.concat(p))}}}}return i}function y(e){return this.getBindingIdentifierPaths(e,!0)}n.__esModule=!0;var m=e("babel-runtime/core-js/object/create"),b=i(m),g=e("babel-runtime/core-js/get-iterator"),v=i(g);n.getStatementParent=a,n.getOpposite=s,n.getCompletionRecords=o,n.getSibling=u,n.get=l,n._getKey=c,n._getPattern=p,n.getBindingIdentifiers=f,n.getOuterBindingIdentifiers=h,n.getBindingIdentifierPaths=d,n.getOuterBindingIdentifierPaths=y;var x=e("./index"),_=i(x),E=e("babel-types"),A=r(E)},{"./index":236,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/object/create":105,"babel-types":265}],236:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/core-js/get-iterator"),s=i(a),o=e("babel-runtime/helpers/classCallCheck"),u=i(o),l=e("./lib/virtual-types"),c=r(l),p=e("debug"),f=i(p),h=e("invariant"),d=i(h),y=e("../index"),m=i(y),b=e("lodash/assign"),g=i(b),v=e("../scope"),x=i(v),_=e("babel-types"),E=r(_),A=e("../cache"),D=(0,f.default)("babel"),C=function(){function e(t,n){(0,u.default)(this,e),this.parent=n,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var n=t.hub,r=t.parentPath,i=t.parent,a=t.container,s=t.listKey,o=t.key;!n&&r&&(n=r.hub),(0,d.default)(i,"To get a node path the parent needs to exist");var u=a[o],l=A.path.get(i)||[];A.path.has(i)||A.path.set(i,l);for(var c=void 0,p=0;p<l.length;p++){var f=l[p];if(f.node===u){c=f;break}}return c||(c=new e(n,i),l.push(c)),c.setup(r,a,s,o),c},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new x.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var n=this.data[e];return!n&&t&&(n=this.data[e]=t),n},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,m.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){E.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var n=t.key;t.inList&&(n=t.listKey+"["+n+"]"),e.unshift(n)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){D.enabled&&D(this.getPathLocation()+" "+this.type+": "+e())},e}();n.default=C,(0,g.default)(C.prototype,e("./ancestry")),(0,g.default)(C.prototype,e("./inference")),(0,g.default)(C.prototype,e("./replacement")),(0,g.default)(C.prototype,e("./evaluation")),(0,g.default)(C.prototype,e("./conversion")),(0,g.default)(C.prototype,e("./introspection")),(0,g.default)(C.prototype,e("./context")),(0,g.default)(C.prototype,e("./removal")),(0,g.default)(C.prototype,e("./modification")),(0,g.default)(C.prototype,e("./family")),
+(0,g.default)(C.prototype,e("./comments"));for(var S=function(){if(k){if(F>=w.length)return"break";T=w[F++]}else{if(F=w.next(),F.done)return"break";T=F.value}var e=T,t="is"+e;C.prototype[t]=function(e){return E[t](this.node,e)},C.prototype["assert"+e]=function(n){if(!this[t](n))throw new TypeError("Expected node path of type "+e)}},w=E.TYPES,k=Array.isArray(w),F=0,w=k?w:(0,s.default)(w);;){var T,P=S();if("break"===P)break}var j=function(e){if("_"===e[0])return"continue";E.TYPES.indexOf(e)<0&&E.TYPES.push(e);var t=c[e];C.prototype["is"+e]=function(e){return t.checkPath(this,e)}};for(var B in c){j(B)}t.exports=n.default},{"../cache":226,"../index":229,"../scope":248,"./ancestry":230,"./comments":231,"./context":232,"./conversion":233,"./evaluation":234,"./family":235,"./inference":237,"./introspection":240,"./lib/virtual-types":243,"./modification":244,"./removal":245,"./replacement":246,"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/classCallCheck":114,"babel-types":265,debug:278,invariant:253,"lodash/assign":453}],237:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||b.anyTypeAnnotation();return b.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e}function s(){var e=this.node;{if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=y[e.type];return t?t.call(this,e):(t=y[this.parentPath.type],t&&t.validParent?this.parentPath.getTypeAnnotation():void 0)}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var n=this.parentPath.parentPath,r=n.parentPath;return"left"===n.key&&r.isForInStatement()?b.stringTypeAnnotation():"left"===n.key&&r.isForOfStatement()?b.anyTypeAnnotation():b.voidTypeAnnotation()}}}function o(e,t){return u(e,this.getTypeAnnotation(),t)}function u(e,t,n){if("string"===e)return b.isStringTypeAnnotation(t);if("number"===e)return b.isNumberTypeAnnotation(t);if("boolean"===e)return b.isBooleanTypeAnnotation(t);if("any"===e)return b.isAnyTypeAnnotation(t);if("mixed"===e)return b.isMixedTypeAnnotation(t);if("empty"===e)return b.isEmptyTypeAnnotation(t);if("void"===e)return b.isVoidTypeAnnotation(t);if(n)return!1;throw new Error("Unknown base type "+e)}function l(e){var t=this.getTypeAnnotation();if(b.isAnyTypeAnnotation(t))return!0;if(b.isUnionTypeAnnotation(t)){for(var n=t.types,r=Array.isArray(n),i=0,n=r?n:(0,h.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;if(b.isAnyTypeAnnotation(s)||u(e,s,!0))return!0}return!1}return u(e,t,!0)}function c(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!b.isAnyTypeAnnotation(t)&&b.isFlowBaseAnnotation(t))return e.type===t.type}function p(e){var t=this.getTypeAnnotation();return b.isGenericTypeAnnotation(t)&&b.isIdentifier(t.id,{name:e})}n.__esModule=!0;var f=e("babel-runtime/core-js/get-iterator"),h=i(f);n.getTypeAnnotation=a,n._getTypeAnnotation=s,n.isBaseType=o,n.couldBeBaseType=l,n.baseTypeStrictlyMatches=c,n.isGenericType=p;var d=e("./inferers"),y=r(d),m=e("babel-types"),b=r(m)},{"./inferers":239,"babel-runtime/core-js/get-iterator":100,"babel-types":265}],238:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=e.scope.getBinding(t),r=[];e.typeAnnotation=h.unionTypeAnnotation(r);var i=[],a=s(n,e,i),o=l(e,t);if(o&&!function(){var e=s(n,o.ifStatement);a=a.filter(function(t){return e.indexOf(t)<0}),r.push(o.typeAnnotation)}(),a.length){a=a.concat(i);for(var u=a,c=Array.isArray(u),f=0,u=c?u:(0,p.default)(u);;){var d;if(c){if(f>=u.length)break;d=u[f++]}else{if(f=u.next(),f.done)break;d=f.value}var y=d;r.push(y.getTypeAnnotation())}}if(r.length)return h.createUnionTypeAnnotation(r)}function s(e,t,n){var r=e.constantViolations.slice();return r.unshift(e.path),r.filter(function(e){e=e.resolve();var r=e._guessExecutionStatusRelativeTo(t);return n&&"function"===r&&n.push(e),"before"===r})}function o(e,t){var n=t.node.operator,r=t.get("right").resolve(),i=t.get("left").resolve(),a=void 0;if(i.isIdentifier({name:e})?a=r:r.isIdentifier({name:e})&&(a=i),a)return"==="===n?a.getTypeAnnotation():h.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(n)>=0?h.numberTypeAnnotation():void 0;if("==="===n){var s=void 0,o=void 0;if(i.isUnaryExpression({operator:"typeof"})?(s=i,o=r):r.isUnaryExpression({operator:"typeof"})&&(s=r,o=i),(o||s)&&(o=o.resolve(),o.isLiteral())){var u=o.node.value;if("string"==typeof u&&s.get("argument").isIdentifier({name:e}))return h.createTypeAnnotationBasedOnTypeof(o.node.value)}}}function u(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}function l(e,t){var n=u(e);if(n){var r=n.get("test"),i=[r],a=[];do{var s=i.shift().resolve();if(s.isLogicalExpression()&&(i.push(s.get("left")),i.push(s.get("right"))),s.isBinaryExpression()){var c=o(t,s);c&&a.push(c)}}while(i.length);return a.length?{typeAnnotation:h.createUnionTypeAnnotation(a),ifStatement:n}:l(n,t)}}n.__esModule=!0;var c=e("babel-runtime/core-js/get-iterator"),p=i(c);n.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:a(this,e.name):"undefined"===e.name?h.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?h.numberTypeAnnotation():void("arguments"===e.name)}};var f=e("babel-types"),h=r(f);t.exports=n.default},{"babel-runtime/core-js/get-iterator":100,"babel-types":265}],239:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(){var e=this.get("id");return e.isIdentifier()?this.get("init").getTypeAnnotation():void 0}function s(e){return e.typeAnnotation}function o(e){if(this.get("callee").isIdentifier())return T.genericTypeAnnotation(e.callee)}function u(){return T.stringTypeAnnotation()}function l(e){var t=e.operator;return"void"===t?T.voidTypeAnnotation():T.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?T.numberTypeAnnotation():T.STRING_UNARY_OPERATORS.indexOf(t)>=0?T.stringTypeAnnotation():T.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?T.booleanTypeAnnotation():void 0}function c(e){var t=e.operator;if(T.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return T.numberTypeAnnotation();if(T.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return T.booleanTypeAnnotation();if("+"===t){var n=this.get("right"),r=this.get("left");return r.isBaseType("number")&&n.isBaseType("number")?T.numberTypeAnnotation():r.isBaseType("string")||n.isBaseType("string")?T.stringTypeAnnotation():T.unionTypeAnnotation([T.stringTypeAnnotation(),T.numberTypeAnnotation()])}}function p(){return T.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])}function f(){return T.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])}function h(){return this.get("expressions").pop().getTypeAnnotation()}function d(){return this.get("right").getTypeAnnotation()}function y(e){var t=e.operator;if("++"===t||"--"===t)return T.numberTypeAnnotation()}function m(){return T.stringTypeAnnotation()}function b(){return T.numberTypeAnnotation()}function g(){return T.booleanTypeAnnotation()}function v(){return T.nullLiteralTypeAnnotation()}function x(){return T.genericTypeAnnotation(T.identifier("RegExp"))}function _(){return T.genericTypeAnnotation(T.identifier("Object"))}function E(){return T.genericTypeAnnotation(T.identifier("Array"))}function A(){return E()}function D(){return T.genericTypeAnnotation(T.identifier("Function"))}function C(){return w(this.get("callee"))}function S(){return w(this.get("tag"))}function w(e){if(e=e.resolve(),e.isFunction()){if(e.is("async"))return e.is("generator")?T.genericTypeAnnotation(T.identifier("AsyncIterator")):T.genericTypeAnnotation(T.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}n.__esModule=!0,n.ClassDeclaration=n.ClassExpression=n.FunctionDeclaration=n.ArrowFunctionExpression=n.FunctionExpression=n.Identifier=void 0;var k=e("./inferer-reference");Object.defineProperty(n,"Identifier",{enumerable:!0,get:function(){return i(k).default}}),n.VariableDeclarator=a,n.TypeCastExpression=s,n.NewExpression=o,n.TemplateLiteral=u,n.UnaryExpression=l,n.BinaryExpression=c,n.LogicalExpression=p,n.ConditionalExpression=f,n.SequenceExpression=h,n.AssignmentExpression=d,n.UpdateExpression=y,n.StringLiteral=m,n.NumericLiteral=b,n.BooleanLiteral=g,n.NullLiteral=v,n.RegExpLiteral=x,n.ObjectExpression=_,n.ArrayExpression=E,n.RestElement=A,n.CallExpression=C,n.TaggedTemplateExpression=S;var F=e("babel-types"),T=r(F);s.validParent=!0,A.validParent=!0,n.FunctionExpression=D,n.ArrowFunctionExpression=D,n.FunctionDeclaration=D,n.ClassExpression=D,n.ClassDeclaration=D},{"./inferer-reference":238,"babel-types":265}],240:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){function n(e){var t=r[a];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var r=e.split("."),i=[this.node],a=0;i.length;){var s=i.shift();if(t&&a===r.length)return!0;if(F.isIdentifier(s)){if(!n(s.name))return!1}else if(F.isLiteral(s)){if(!n(s.value))return!1}else{if(F.isMemberExpression(s)){if(s.computed&&!F.isLiteral(s.property))return!1;i.unshift(s.property),i.unshift(s.object);continue}if(!F.isThisExpression(s))return!1;if(!n("this"))return!1}if(++a>r.length)return!1}return a===r.length}function s(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}function o(){return this.scope.isStatic(this.node)}function u(e){return!this.has(e)}function l(e,t){return this.node[e]===t}function c(e){return F.isType(this.type,e)}function p(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function f(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?F.isBlockStatement(e):!!this.isBlockStatement()&&F.isExpression(e))}function h(e){var t=this,n=!0;do{var r=t.container;if(t.isFunction()&&!n)return!!e;if(n=!1,Array.isArray(r)&&t.key!==r.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0}function d(){return!this.parentPath.isLabeledStatement()&&!F.isBlockStatement(this.container)&&(0,w.default)(F.STATEMENT_OR_BLOCK_KEYS,this.key)}function y(e,t){if(!this.isReferencedIdentifier())return!1;var n=this.scope.getBinding(this.node.name);if(!n||"module"!==n.kind)return!1;var r=n.path,i=r.parentPath;return!!i.isImportDeclaration()&&(i.node.source.value===e&&(!t||(!(!r.isImportDefaultSpecifier()||"default"!==t)||(!(!r.isImportNamespaceSpecifier()||"*"!==t)||!(!r.isImportSpecifier()||r.node.imported.name!==t)))))}function m(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""}function b(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function g(e){var t=e.scope.getFunctionParent(),n=this.scope.getFunctionParent();if(t.node!==n.node){var r=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(r)return r;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var a=this.getAncestry(),s=void 0,o=void 0,u=void 0;for(u=0;u<a.length;u++){var l=a[u];if(o=i.indexOf(l),o>=0){s=l;break}}if(!s)return"before";var c=i[o-1],p=a[u-1];if(!c||!p)return"before";if(c.listKey&&c.container===p.container)return c.key>p.key?"before":"after";var f=F.VISITOR_KEYS[c.type].indexOf(c.key),h=F.VISITOR_KEYS[p.type].indexOf(p.key);return f>h?"before":"after"}function v(e){var t=e.path;if(t.isFunctionDeclaration()){var n=t.scope.getBinding(t.node.id.name);if(!n.references)return"before";for(var r=n.referencePaths,i=r,a=Array.isArray(i),s=0,i=a?i:(0,C.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var u=o;if("callee"!==u.key||!u.parentPath.isCallExpression())return}for(var l=void 0,c=r,p=Array.isArray(c),f=0,c=p?c:(0,C.default)(c);;){var h;if(p){if(f>=c.length)break;h=c[f++]}else{if(f=c.next(),f.done)break;h=f.value}var d=h,y=!!d.find(function(e){return e.node===t.node});if(!y){var m=this._guessExecutionStatusRelativeTo(d);if(l){if(l!==m)return}else l=m}}return l}}function x(e,t){return this._resolve(e,t)||this}function _(e,t){var n=this;if(!(t&&t.indexOf(this)>=0))if(t=t||[],t.push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var i=function(){var i=r.path.resolve(e,t);return n.find(function(e){return e.node===i.node})?{v:void 0}:{v:i}}();if("object"===("undefined"==typeof i?"undefined":(0,A.default)(i)))return i.v}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var a=this.toComputedKey();if(!F.isLiteral(a))return;var s=a.value,o=this.get("object").resolve(e,t);if(o.isObjectExpression())for(var u=o.get("properties"),l=u,c=Array.isArray(l),p=0,l=c?l:(0,C.default)(l);;){var f;if(c){if(p>=l.length)break;f=l[p++]}else{if(p=l.next(),p.done)break;f=p.value}var h=f;if(h.isProperty()){var d=h.get("key"),y=h.isnt("computed")&&d.isIdentifier({name:s});if(y=y||d.isLiteral({value:s}))return h.get("value").resolve(e,t)}}else if(o.isArrayExpression()&&!isNaN(+s)){var m=o.get("elements"),b=m[s];if(b)return b.resolve(e,t)}}}}n.__esModule=!0,n.is=void 0;var E=e("babel-runtime/helpers/typeof"),A=i(E),D=e("babel-runtime/core-js/get-iterator"),C=i(D);n.matchesPattern=a,n.has=s,n.isStatic=o,n.isnt=u,n.equals=l,n.isNodeType=c,n.canHaveVariableDeclarationOrExpression=p,n.canSwapBetweenExpressionAndStatement=f,n.isCompletionRecord=h,n.isStatementOrBlock=d,n.referencesImport=y,n.getSource=m,n.willIMaybeExecuteBefore=b,n._guessExecutionStatusRelativeTo=g,n._guessExecutionStatusRelativeToDifferentFunctions=v,n.resolve=x,n._resolve=_;var S=e("lodash/includes"),w=i(S),k=e("babel-types"),F=r(k);n.is=s},{"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/typeof":118,"babel-types":265,"lodash/includes":473}],241:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/helpers/classCallCheck"),s=i(a),o=e("babel-runtime/core-js/get-iterator"),u=i(o),l=e("babel-types"),c=r(l),p={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!l.react.isCompatTag(e.node.name)){var n=e.scope.getBinding(e.node.name);if(n&&n===t.scope.getBinding(e.node.name))if(n.constant)t.bindings[e.node.name]=n;else for(var r=n.constantViolations,i=Array.isArray(r),a=0,r=i?r:(0,u.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;t.breakOnScopePaths=t.breakOnScopePaths.concat(o.getAncestry())}}}},f=function(){function e(t,n){(0,s.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=n,this.path=t}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var n=this.bindings[t];if(!e.bindingIdentifierEquals(t,n.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var n in this.bindings)if(t.hasOwnBinding(n)){var r=this.bindings[n];if("param"!==r.kind&&this.getAttachmentParentForPath(r.path).key>e.key)return}return e}},e.prototype._getAttachmentPath=function(){var e=this.scopes,t=e.pop();if(t){if(t.path.isFunction()){if(this.hasOwnParamBindings(t)){if(this.scope===t)return;return t.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return t.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&e.parentPath.node.declarations.length>1)return e;while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var n=this.bindings[t];if("param"===n.kind)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(p,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var n=t.scope.generateUidIdentifier("ref"),r=c.variableDeclarator(n,this.path.node);t.insertBefore([t.isVariableDeclarator()?r:c.variableDeclaration("var",[r])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(n=c.JSXExpressionContainer(n)),this.path.replaceWith(n)}}},e}();n.default=f,t.exports=n.default},{"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/classCallCheck":114,"babel-types":265}],242:[function(e,t,n){"use strict";n.__esModule=!0;n.hooks=[function(e,t){if("body"===e.key&&t.isArrowFunctionExpression())return e.replaceWith(e.scope.buildUndefinedNode()),!0},function(e,t){var n=!1;if(n=n||"test"===e.key&&(t.isWhile()||t.isSwitchCase()),n=n||"declaration"===e.key&&t.isExportDeclaration(),n=n||"body"===e.key&&t.isLabeledStatement(),n=n||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length,n=n||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||t.isLoop()&&"body"===e.key)return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},{}],243:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0,n.Flow=n.Pure=n.Generated=n.User=n.Var=n.BlockScoped=n.Referenced=n.Scope=n.Expression=n.Statement=n.BindingIdentifier=n.ReferencedMemberExpression=n.ReferencedIdentifier=void 0;var i=e("babel-types"),a=r(i);n.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var n=e.node,r=e.parent;if(!a.isIdentifier(n,t)&&!a.isJSXMemberExpression(r,t)){if(!a.isJSXIdentifier(n,t))return!1;if(i.react.isCompatTag(n.name))return!1}return a.isReferenced(n,r)}},n.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,n=e.parent;return a.isMemberExpression(t)&&a.isReferenced(t,n)}},n.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,n=e.parent;return a.isIdentifier(t)&&a.isBinding(t,n)}},n.Statement={types:["Statement"],checkPath:function(e){var t=e.node,n=e.parent;if(a.isStatement(t)){if(a.isVariableDeclaration(t)){if(a.isForXStatement(n,{left:t}))return!1;if(a.isForStatement(n,{init:t}))return!1}return!0}return!1}},n.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():a.isExpression(e.node)}},n.Scope={types:["Scopable"],checkPath:function(e){return a.isScope(e.node,e.parent)}},n.Referenced={checkPath:function(e){return a.isReferenced(e.node,e.parent)}},n.BlockScoped={checkPath:function(e){return a.isBlockScoped(e.node)}},n.Var={types:["VariableDeclaration"],checkPath:function(e){return a.isVar(e.node)}},n.User={checkPath:function(e){return e.node&&!!e.node.loc}},n.Generated={checkPath:function(e){return!e.isUser()}},n.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},n.Flow={types:["Flow","ImportDeclaration","ExportDeclaration"],checkPath:function(e){var t=e.node;return!!a.isFlow(t)||(a.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:!!a.isExportDeclaration(t)&&"type"===t.exportKind)}}},{"babel-types":265}],244:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(S.blockStatement(e))}return[this]}function s(e,t){this.updateSiblingKeys(e,t.length);for(var n=[],r=0;r<t.length;r++){var i=e+r,a=t[r];if(this.container.splice(i,0,a),this.context){var s=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&s.pushContext(this.context),n.push(s)}else n.push(D.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}for(var o=this._getQueueContexts(),u=n,l=Array.isArray(u),c=0,u=l?u:(0,v.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;f.setScope(),f.debug(function(){return"Inserted."});for(var h=o,d=Array.isArray(h),y=0,h=d?h:(0,v.default)(h);;){var m;if(d){if(y>=h.length)break;m=h[y++]}else{if(y=h.next(),y.done)break;m=y.value}var b=m;b.maybeQueue(f,!0)}}return n}function o(e){return this._containerInsert(this.key,e)}function u(e){return this._containerInsert(this.key+1,e)}function l(e){var t=e[e.length-1],n=S.isIdentifier(t)||S.isExpressionStatement(t)&&S.isIdentifier(t.expression);n&&!this.isCompletionRecord()&&e.pop()}function c(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(S.expressionStatement(S.assignmentExpression("=",t,this.node))),e.push(S.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(S.blockStatement(e))}return[this]}function p(e,t){if(this.parent)for(var n=x.path.get(this.parent),r=0;r<n.length;r++){var i=n[r];i.key>=e&&(i.key+=t)}}function f(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var n=e[t],r=void 0;if(n?"object"!==("undefined"==typeof n?"undefined":(0,b.default)(n))?r="contains a non-object node":n.type?n instanceof D.default&&(r="has a NodePath when it expected a raw object"):r="without a type":r="has falsy node",r){var i=Array.isArray(n)?"array":"undefined"==typeof n?"undefined":(0,b.default)(n);throw new Error("Node list "+r+" with the index of "+t+" and type of "+i)}}return e}function h(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var n=D.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0});return n.insertBefore(t)}function d(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var n=this.node[e],r=D.default.get({parentPath:this,parent:this.node,container:n,listKey:e,key:n.length});return r.replaceWithMultiple(t)}function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.scope,t=new E.default(this,e);return t.run()}n.__esModule=!0;var m=e("babel-runtime/helpers/typeof"),b=i(m),g=e("babel-runtime/core-js/get-iterator"),v=i(g);n.insertBefore=a,n._containerInsert=s,n._containerInsertBefore=o,n._containerInsertAfter=u,n._maybePopFromStatements=l,n.insertAfter=c,n.updateSiblingKeys=p,n._verifyNodeList=f,n.unshiftContainer=h,n.pushContainer=d,n.hoist=y;var x=e("../cache"),_=e("./lib/hoister"),E=i(_),A=e("./index"),D=i(A),C=e("babel-types"),S=r(C)},{"../cache":226,"./index":236,"./lib/hoister":241,"babel-runtime/core-js/get-iterator":100,"babel-runtime/helpers/typeof":118,"babel-types":265}],245:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return this._assertUnremoved(),this.resync(),this._callRemovalHooks()?void this._markRemoved():(this.shareCommentsWithSiblings(),this._remove(),void this._markRemoved())}function a(){for(var e=p.hooks,t=Array.isArray(e),n=0,e=t?e:(0,c.default)(e);;){var r;if(t){if(n>=e.length)break;r=e[n++]}else{if(n=e.next(),n.done)break;r=n.value}var i=r;if(i(this,this.parentPath))return!0}}function s(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)}function o(){this.shouldSkip=!0,this.removed=!0,this.node=null}function u(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}n.__esModule=!0;var l=e("babel-runtime/core-js/get-iterator"),c=r(l);n.remove=i,n._callRemovalHooks=a,n._remove=s,n._markRemoved=o,n._assertUnremoved=u;var p=e("./lib/removal-hooks")},{"./lib/removal-hooks":242,"babel-runtime/core-js/get-iterator":100}],246:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){this.resync(),e=this._verifyNodeList(e),_.inheritLeadingComments(e[0],this.node),_.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()}function s(e){this.resync();try{e="("+e+")",e=(0,v.parse)(e)}catch(n){var t=n.loc;throw t&&(n.message+=" - make sure this is an expression.",n.message+="\n"+(0,d.default)(e,t.line,t.column+1)),n}return e=e.program.body[0].expression,m.default.removeProperties(e),this.replaceWith(e)}function o(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof g.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!_.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&_.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||(e=_.expressionStatement(e))),this.isNodeType("Expression")&&_.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(_.inheritsComments(e,t),_.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}}function u(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?_.validate(this.parent,this.key,[e]):_.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e}function l(e){this.resync();var t=_.toSequenceExpression(e,this.scope);if(_.isSequenceExpression(t)){var n=t.expressions;n.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(n),1===n.length?this.replaceWith(n[0]):this.replaceWith(t)}else{if(!t){var r=_.functionExpression(null,[],_.blockStatement(e));r.shadow=!0,this.replaceWith(_.callExpression(r,[])),this.traverse(E);for(var i=this.get("callee").getCompletionRecords(),a=i,s=Array.isArray(a),o=0,a=s?a:(0,f.default)(a);;){var u;if(s){if(o>=a.length)break;u=a[o++]}else{if(o=a.next(),o.done)break;u=o.value}var l=u;if(l.isExpressionStatement()){var c=l.findParent(function(e){return e.isLoop()});if(c){var p=this.get("callee"),h=p.scope.generateDeclaredUidIdentifier("ret");p.get("body").pushContainer("body",_.returnStatement(h)),l.get("expression").replaceWith(_.assignmentExpression("=",h,l.node.expression))}else l.replaceWith(_.returnStatement(l.node.expression))}}return this.node}this.replaceWith(t)}}function c(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)}n.__esModule=!0;var p=e("babel-runtime/core-js/get-iterator"),f=i(p);n.replaceWithMultiple=a,n.replaceWithSourceString=s,n.replaceWith=o,n._replaceWith=u,n.replaceExpressionWithStatements=l,n.replaceInline=c;var h=e("babel-code-frame"),d=i(h),y=e("../index"),m=i(y),b=e("./index"),g=i(b),v=e("babylon"),x=e("babel-types"),_=r(x),E={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var n in t)e.scope.push({id:t[n]});for(var r=[],i=e.node.declarations,a=Array.isArray(i),s=0,i=a?i:(0,f.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var u=o;u.init&&r.push(_.expressionStatement(_.assignmentExpression("=",u.id,u.init)))}e.replaceWithMultiple(r)}}}},{"../index":229,"./index":236,"babel-code-frame":60,"babel-runtime/core-js/get-iterator":100,"babel-types":265,babylon:274}],247:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/helpers/classCallCheck"),a=r(i),s=function(){function e(t){var n=t.existing,r=t.identifier,i=t.scope,s=t.path,o=t.kind;(0,a.default)(this,e),this.identifier=r,this.scope=i,this.path=s,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),n&&(this.constantViolations=[].concat(n.path,n.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,this.constantViolations.indexOf(e)===-1&&this.constantViolations.push(e)},e.prototype.reference=function(e){this.referencePaths.indexOf(e)===-1&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();n.default=s,t.exports=n.default},{"babel-runtime/helpers/classCallCheck":114}],248:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;
+var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n){for(var r=I.scope.get(e.node)||[],i=r,a=Array.isArray(i),s=0,i=a?i:(0,m.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var u=o;if(u.parent===t&&u.path===e)return u}r.push(n),I.scope.has(e.node)||I.scope.set(e.node,r)}function s(e,t){if(O.isModuleDeclaration(e))if(e.source)s(e.source,t);else if(e.specifiers&&e.specifiers.length)for(var n=e.specifiers,r=Array.isArray(n),i=0,n=r?n:(0,m.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var o=a;s(o,t)}else e.declaration&&s(e.declaration,t);else if(O.isModuleSpecifier(e))s(e.local,t);else if(O.isMemberExpression(e))s(e.object,t),s(e.property,t);else if(O.isIdentifier(e))t.push(e.name);else if(O.isLiteral(e))t.push(e.value);else if(O.isCallExpression(e))s(e.callee,t);else if(O.isObjectExpression(e)||O.isObjectPattern(e))for(var u=e.properties,l=Array.isArray(u),c=0,u=l?u:(0,m.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;s(f.key||f.argument,t)}}n.__esModule=!0;var o=e("babel-runtime/core-js/object/keys"),u=i(o),l=e("babel-runtime/core-js/object/create"),c=i(l),p=e("babel-runtime/core-js/map"),f=i(p),h=e("babel-runtime/helpers/classCallCheck"),d=i(h),y=e("babel-runtime/core-js/get-iterator"),m=i(y),b=e("lodash/includes"),g=i(b),v=e("lodash/repeat"),x=i(v),_=e("./lib/renamer"),E=i(_),A=e("../index"),D=i(A),C=e("lodash/defaults"),S=i(C),w=e("babel-messages"),k=r(w),F=e("./binding"),T=i(F),P=e("globals"),j=i(P),B=e("babel-types"),O=r(B),I=e("../cache"),N=0,L={For:function(e){for(var t=O.FOR_INIT_KEYS,n=Array.isArray(t),r=0,t=n?t:(0,m.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i,s=e.get(a);s.isVar()&&e.scope.getFunctionParent().registerBinding("var",s)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var n=e.get("left");(n.isPattern()||n.isIdentifier())&&t.constantViolations.push(n)},ExportDeclaration:{exit:function(e){var t=e.node,n=e.scope,r=t.declaration;if(O.isClassDeclaration(r)||O.isFunctionDeclaration(r)){var i=r.id;if(!i)return;var a=n.getBinding(i.name);a&&a.reference(e)}else if(O.isVariableDeclaration(r))for(var s=r.declarations,o=Array.isArray(s),u=0,s=o?s:(0,m.default)(s);;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l,p=O.getBindingIdentifiers(c);for(var f in p){var h=n.getBinding(f);h&&h.reference(e)}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var n=t.name;e.scope.bindings[n]=e.scope.getBinding(n)}},Block:function(e){for(var t=e.get("body"),n=t,r=Array.isArray(n),i=0,n=r?n:(0,m.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;s.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(s)}}},M=0,R=function(){function e(t,n){if((0,d.default)(this,e),n&&n.block===t.node)return n;var r=a(t,n,this);return r?r:(this.uid=M++,this.parent=n,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,void(this.labels=new f.default))}return e.prototype.traverse=function(e,t,n){(0,D.default)(e,t,this,n,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return O.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=O.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,n=0;do t=this._generateUid(e,n),n++;while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var r=this.getProgramParent();return r.references[t]=!0,r.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var n=e;return t>1&&(n+=t),"_"+n},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var n=e;O.isAssignmentExpression(e)?n=e.left:O.isVariableDeclarator(e)?n=e.id:(O.isObjectProperty(n)||O.isObjectMethod(n))&&(n=n.key);var r=[];s(n,r);var i=r.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(O.isThisExpression(e)||O.isSuper(e))return!0;if(O.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var n=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:n}),n},e.prototype.checkBlockScopedCollisions=function(e,t,n,r){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){var i=!1;if(i||(i="let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind),i||(i="param"===e.kind&&("let"===t||"const"===t)),i)throw this.hub.file.buildCodeFrameError(r,k.get("scopeDuplicateDeclaration",n),TypeError)}},e.prototype.rename=function(e,t,n){var r=this.getBinding(e);if(r)return t=t||this.generateUidIdentifier(e).name,new E.default(r,e,t).rename(n)},e.prototype._renameFromMap=function(e,t,n,r){e[t]&&(e[n]=r,e[t]=null)},e.prototype.dump=function(){var e=(0,x.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var n in t.bindings){var r=t.bindings[n];console.log(" -",n,{constant:r.constant,references:r.references,violations:r.constantViolations.length,kind:r.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var n=this.hub.file;if(O.isIdentifier(e)){var r=this.getBinding(e.name);if(r&&r.constant&&r.path.isGenericType("Array"))return e}if(O.isArrayExpression(e))return e;if(O.isIdentifier(e,{name:"arguments"}))return O.callExpression(O.memberExpression(O.memberExpression(O.memberExpression(O.identifier("Array"),O.identifier("prototype")),O.identifier("slice")),O.identifier("call")),[e]);var i="toArray",a=[e];return t===!0?i="toConsumableArray":t&&(a.push(O.numericLiteral(t)),i="slicedToArray"),O.callExpression(n.addHelper(i),a)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration())for(var t=e.get("declarations"),n=t,r=Array.isArray(n),i=0,n=r?n:(0,m.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;this.registerBinding(e.node.kind,s)}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration())for(var o=e.get("specifiers"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,m.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;this.registerBinding("module",f)}else if(e.isExportDeclaration()){var h=e.get("declaration");(h.isClassDeclaration()||h.isFunctionDeclaration()||h.isVariableDeclaration())&&this.registerDeclaration(h)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?O.unaryExpression("void",O.numericLiteral(0),!0):O.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var n in t){var r=this.getBinding(n);r&&r.reassign(e)}},e.prototype.registerBinding=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration())for(var r=t.get("declarations"),i=r,a=Array.isArray(i),s=0,i=a?i:(0,m.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var u=o;this.registerBinding(e,u)}else{var l=this.getProgramParent(),c=t.getBindingIdentifiers(!0);for(var p in c)for(var f=c[p],h=Array.isArray(f),d=0,f=h?f:(0,m.default)(f);;){var y;if(h){if(d>=f.length)break;y=f[d++]}else{if(d=f.next(),d.done)break;y=d.value}var b=y,g=this.getOwnBinding(p);if(g){if(g.identifier===b)continue;this.checkBlockScopedCollisions(g,e,p,b)}g&&g.path.isFlow()&&(g=null),l.references[p]=!0,this.bindings[p]=new T.default({identifier:b,existing:g,scope:this,path:n,kind:e})}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do if(t.uids[e])return!0;while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do if(t.globals[e])return!0;while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do if(t.references[e])return!0;while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(O.isIdentifier(e)){var n=this.getBinding(e.name);return!!n&&(!t||n.constant)}if(O.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(O.isClassBody(e)){for(var r=e.body,i=Array.isArray(r),a=0,r=i?r:(0,m.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if(!this.isPure(o,t))return!1}return!0}if(O.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(O.isArrayExpression(e)){for(var u=e.elements,l=Array.isArray(u),c=0,u=l?u:(0,m.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;if(!this.isPure(f,t))return!1}return!0}if(O.isObjectExpression(e)){for(var h=e.properties,d=Array.isArray(h),y=0,h=d?h:(0,m.default)(h);;){var b;if(d){if(y>=h.length)break;b=h[y++]}else{if(y=h.next(),y.done)break;b=y.value}var g=b;if(!this.isPure(g,t))return!1}return!0}return O.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):O.isClassProperty(e)||O.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):O.isUnaryExpression(e)?this.isPure(e.argument,t):O.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var n=t.data[e];if(null!=n)return n}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{var n=t.data[e];null!=n&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){N++,this._crawl(),N--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,c.default)(null),this.bindings=(0,c.default)(null),this.globals=(0,c.default)(null),this.uids=(0,c.default)(null),this.data=(0,c.default)(null),e.isLoop())for(var t=O.FOR_INIT_KEYS,n=Array.isArray(t),r=0,t=n?t:(0,m.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i,s=e.get(a);s.isBlockScoped()&&this.registerBinding(s.node.kind,s)}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[O.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[O.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction())for(var o=e.get("params"),u=o,l=Array.isArray(u),p=0,u=l?u:(0,m.default)(u);;){var f;if(l){if(p>=u.length)break;f=u[p++]}else{if(p=u.next(),p.done)break;f=p.value}var h=f;this.registerBinding("param",h)}e.isCatchClause()&&this.registerBinding("let",e);var d=this.getProgramParent();if(!d.crawling){var y={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(L,y),this.crawling=!1;for(var b=y.assignments,g=Array.isArray(b),v=0,b=g?b:(0,m.default)(b);;){var x;if(g){if(v>=b.length)break;x=b[v++]}else{if(v=b.next(),v.done)break;x=v.value}var _=x,E=_.getBindingIdentifiers(),A=void 0;for(var D in E)_.scope.getBinding(D)||(A=A||_.scope.getProgramParent(),A.addGlobal(E[D]));_.scope.registerConstantViolation(_)}for(var C=y.references,S=Array.isArray(C),w=0,C=S?C:(0,m.default)(C);;){var k;if(S){if(w>=C.length)break;k=C[w++]}else{if(w=C.next(),w.done)break;k=w.value}var F=k,T=F.scope.getBinding(F.node.name);T?T.reference(F):F.scope.getProgramParent().addGlobal(F.node)}for(var P=y.constantViolations,j=Array.isArray(P),B=0,P=j?P:(0,m.default)(P);;){var I;if(j){if(B>=P.length)break;I=P[B++]}else{if(B=P.next(),B.done)break;I=B.value}var N=I;N.scope.registerConstantViolation(N)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(O.ensureBlock(t.node),t=t.get("body"));var n=e.unique,r=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,a="declaration:"+r+":"+i,s=!n&&t.getData(a);if(!s){var o=O.variableDeclaration(r,[]);o._generated=!0,o._blockHoist=i;var u=t.unshiftContainer("body",[o]);s=u[0],n||t.setData(a,s)}var l=O.variableDeclarator(e.id,e.init);s.node.declarations.push(l),this.registerBinding(r,s.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do if(e.path.isProgram())return e;while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do if(e.path.isFunctionParent())return e;while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do if(e.path.isBlockParent())return e;while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,c.default)(null),t=this;do(0,S.default)(e,t.bindings),t=t.parent;while(t);return e},e.prototype.getAllBindingsOfKind=function(){for(var e=(0,c.default)(null),t=arguments,n=Array.isArray(t),r=0,t=n?t:(0,m.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i,s=this;do{for(var o in s.bindings){var u=s.bindings[o];u.kind===a&&(e[o]=u)}s=s.parent}while(s)}return e},e.prototype.bindingIdentifierEquals=function(e,t){return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===N&&e&&e.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 "),e},e.prototype.getBinding=function(e){var t=this;do{var n=t.getOwnBinding(e);if(n)return this.warnOnFlowBinding(n)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,n){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,n)||(!!this.hasUid(t)||(!(n||!(0,g.default)(e.globals,t))||!(n||!(0,g.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var n=this.getBinding(e);n&&(n.scope.removeOwnBinding(e),n.scope=t,t.bindings[e]=n)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var n=this;do n.uids[e]&&(n.uids[e]=!1);while(n=n.parent)},e}();R.globals=(0,u.default)(j.default.builtin),R.contextVariables=["arguments","undefined","Infinity","NaN"],n.default=R,t.exports=n.default},{"../cache":226,"../index":229,"./binding":247,"./lib/renamer":249,"babel-messages":99,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/map":102,"babel-runtime/core-js/object/create":105,"babel-runtime/core-js/object/keys":107,"babel-runtime/helpers/classCallCheck":114,"babel-types":265,globals:252,"lodash/defaults":460,"lodash/includes":473,"lodash/repeat":498}],249:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/helpers/classCallCheck"),s=i(a),o=e("../binding"),u=(i(o),e("babel-types")),l=r(u),c={ReferencedIdentifier:function(e,t){var n=e.node;n.name===t.oldName&&(n.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var n=e.getOuterBindingIdentifiers();for(var r in n)r===t.oldName&&(n[r].name=t.newName)}},p=function(){function e(t,n,r){(0,s.default)(this,e),this.newName=r,this.oldName=n,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var n=t.isExportDefaultDeclaration();n&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var r=e.getOuterBindingIdentifiers(),i=[];for(var a in r){var s=a===this.oldName?this.newName:a,o=n?"default":a;i.push(l.exportSpecifier(l.identifier(s),l.identifier(o)))}if(i.length){var u=l.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(u._blockHoist=3),t.insertAfter(u),t.replaceWith(e.node)}}},e.prototype.maybeConvertFromClassFunctionDeclaration=function(e){},e.prototype.maybeConvertFromClassFunctionExpression=function(e){},e.prototype.rename=function(e){var t=this.binding,n=this.oldName,r=this.newName,i=t.scope,a=t.path,s=a.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});s&&this.maybeConvertFromExportDeclaration(s),i.traverse(e||i.block,c,this),e||(i.removeOwnBinding(n),i.bindings[r]=t,this.binding.identifier.name=r),"hoisted"===t.type,s&&(this.maybeConvertFromClassFunctionDeclaration(s),this.maybeConvertFromClassFunctionExpression(s))},e}();n.default=p,t.exports=n.default},{"../binding":247,"babel-runtime/helpers/classCallCheck":114,"babel-types":265}],250:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!h(t)){var n=t.split("|");if(1!==n.length){var r=e[t];delete e[t];for(var i=n,a=Array.isArray(i),o=0,i=a?i:(0,x.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;e[l]=r}}}s(e),delete e.__esModule,c(e),p(e);for(var y=(0,g.default)(e),m=Array.isArray(y),b=0,y=m?y:(0,x.default)(y);;){var v;if(m){if(b>=y.length)break;v=y[b++]}else{if(b=y.next(),b.done)break;v=b.value}var _=v;if(!h(_)){var A=E[_];if(A){var D=e[_];for(var C in D)D[C]=f(A,D[C]);if(delete e[_],A.types)for(var w=A.types,F=Array.isArray(w),T=0,w=F?w:(0,x.default)(w);;){var P;if(F){if(T>=w.length)break;P=w[T++]}else{if(T=w.next(),T.done)break;P=T.value}var j=P;e[j]?d(e[j],D):e[j]=D}else d(e,D)}}}for(var B in e)if(!h(B)){var O=e[B],I=S.FLIPPED_ALIAS_KEYS[B],N=S.DEPRECATED_KEYS[B];if(N&&(console.trace("Visitor defined for "+B+" but it has been renamed to "+N),I=[N]),I){delete e[B];for(var L=I,M=Array.isArray(L),R=0,L=M?L:(0,x.default)(L);;){var U;if(M){if(R>=L.length)break;U=L[R++]}else{if(R=L.next(),R.done)break;U=R.value}var V=U,G=e[V];G?d(G,O):e[V]=(0,k.default)(O)}}}for(var q in e)h(q)||p(e[q]);return e}function s(e){if(!e._verified){if("function"==typeof e)throw new Error(D.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!h(t)){if(S.TYPES.indexOf(t)<0)throw new Error(D.get("traverseVerifyNodeType",t));var n=e[t];if("object"===("undefined"==typeof n?"undefined":(0,m.default)(n)))for(var r in n){if("enter"!==r&&"exit"!==r)throw new Error(D.get("traverseVerifyVisitorProperty",t,r));o(t+"."+r,n[r])}}e._verified=!0}}function o(e,t){for(var n=[].concat(t),r=n,i=Array.isArray(r),a=0,r=i?r:(0,x.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if("function"!=typeof o)throw new TypeError("Non-function found defined in "+e+" with type "+("undefined"==typeof o?"undefined":(0,m.default)(o)))}}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments[2],r={},i=0;i<e.length;i++){var s=e[i],o=t[i];a(s);for(var u in s){var c=s[u];(o||n)&&(c=l(c,o,n));var p=r[u]=r[u]||{};d(p,c)}}return r}function l(e,t,n){var r={},i=function(i){var a=e[i];return Array.isArray(a)?(a=a.map(function(e){var r=e;return t&&(r=function(n){return e.call(t,n,t)}),n&&(r=n(t.key,i,r)),r}),void(r[i]=a)):"continue"};for(var a in e){i(a)}return r}function c(e){for(var t in e)if(!h(t)){var n=e[t];"function"==typeof n&&(e[t]={enter:n})}}function p(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function f(e,t){var n=function(n){if(e.checkPath(n))return t.apply(this,arguments)};return n.toString=function(){return t.toString()},n}function h(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function d(e,t){for(var n in t)e[n]=[].concat(e[n]||[],t[n])}n.__esModule=!0;var y=e("babel-runtime/helpers/typeof"),m=i(y),b=e("babel-runtime/core-js/object/keys"),g=i(b),v=e("babel-runtime/core-js/get-iterator"),x=i(v);n.explode=a,n.verify=s,n.merge=u;var _=e("./path/lib/virtual-types"),E=r(_),A=e("babel-messages"),D=r(A),C=e("babel-types"),S=r(C),w=e("lodash/clone"),k=i(w)},{"./path/lib/virtual-types":243,"babel-messages":99,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/object/keys":107,"babel-runtime/helpers/typeof":118,"babel-types":265,"lodash/clone":455}],251:[function(e,t,n){t.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,
+SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},{}],252:[function(e,t,n){t.exports=e("./globals.json")},{"./globals.json":251}],253:[function(e,t,n){"use strict";var r=function(e,t,n,r,i,a,s,o){if(void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,a,s,o],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=r},{}],254:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0,n.NOT_LOCAL_BINDING=n.BLOCK_SCOPED_SYMBOL=n.INHERIT_KEYS=n.UNARY_OPERATORS=n.STRING_UNARY_OPERATORS=n.NUMBER_UNARY_OPERATORS=n.BOOLEAN_UNARY_OPERATORS=n.BINARY_OPERATORS=n.NUMBER_BINARY_OPERATORS=n.BOOLEAN_BINARY_OPERATORS=n.COMPARISON_BINARY_OPERATORS=n.EQUALITY_BINARY_OPERATORS=n.BOOLEAN_NUMBER_BINARY_OPERATORS=n.UPDATE_OPERATORS=n.LOGICAL_OPERATORS=n.COMMENT_KEYS=n.FOR_INIT_KEYS=n.FLATTENABLE_KEYS=n.STATEMENT_OR_BLOCK_KEYS=void 0;var i=e("babel-runtime/core-js/symbol/for"),a=r(i),s=(n.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],n.FLATTENABLE_KEYS=["body","expressions"],n.FOR_INIT_KEYS=["left","init"],n.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],n.LOGICAL_OPERATORS=["||","&&"],n.UPDATE_OPERATORS=["++","--"],n.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),o=n.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],u=n.COMPARISON_BINARY_OPERATORS=[].concat(o,["in","instanceof"]),l=n.BOOLEAN_BINARY_OPERATORS=[].concat(u,s),c=n.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],p=(n.BINARY_OPERATORS=["+"].concat(c,l),n.BOOLEAN_UNARY_OPERATORS=["delete","!"]),f=n.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],h=n.STRING_UNARY_OPERATORS=["typeof"];n.UNARY_OPERATORS=["void"].concat(p,f,h),n.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},n.BLOCK_SCOPED_SYMBOL=(0,a.default)("var used to be block scoped"),n.NOT_LOCAL_BINDING=(0,a.default)("should not be considered a local binding")},{"babel-runtime/core-js/symbol/for":110}],255:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||F.isIdentifier(t)&&(t=F.stringLiteral(t.name)),t}function s(e,t){function n(e){for(var a=!1,s=[],o=e,u=Array.isArray(o),l=0,o=u?o:(0,v.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var p=c;if(F.isExpression(p))s.push(p);else if(F.isExpressionStatement(p))s.push(p.expression);else{if(F.isVariableDeclaration(p)){if("var"!==p.kind)return i=!0;for(var f=p.declarations,h=Array.isArray(f),d=0,f=h?f:(0,v.default)(f);;){var y;if(h){if(d>=f.length)break;y=f[d++]}else{if(d=f.next(),d.done)break;y=d.value}var m=y,b=F.getBindingIdentifiers(m);for(var g in b)r.push({kind:p.kind,id:b[g]});m.init&&s.push(F.assignmentExpression("=",m.id,m.init))}a=!0;continue}if(F.isIfStatement(p)){var x=p.consequent?n([p.consequent]):t.buildUndefinedNode(),_=p.alternate?n([p.alternate]):t.buildUndefinedNode();if(!x||!_)return i=!0;s.push(F.conditionalExpression(p.test,x,_))}else{if(!F.isBlockStatement(p)){if(F.isEmptyStatement(p)){a=!0;continue}return i=!0}s.push(n(p.body))}}a=!1}return(a||0===s.length)&&s.push(t.buildUndefinedNode()),1===s.length?s[0]:F.sequenceExpression(s)}if(e&&e.length){var r=[],i=!1,a=n(e);if(!i){for(var s=0;s<r.length;s++)t.push(r[s]);return a}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,n=void 0;return"method"===e.kind?o.increment()+"":(n=F.isIdentifier(t)?t.name:F.isStringLiteral(t)?(0,b.default)(t.value):(0,b.default)(F.removePropertiesDeep(F.cloneDeep(t))),e.computed&&(n="["+n+"]"),e.static&&(n="static:"+n),n)}function u(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),F.isValidIdentifier(e)||(e="_"+e),e||"_"}function l(e){return e=u(e),"eval"!==e&&"arguments"!==e||(e="_"+e),e}function c(e,t){if(F.isStatement(e))return e;var n=!1,r=void 0;if(F.isClass(e))n=!0,r="ClassDeclaration";else if(F.isFunction(e))n=!0,r="FunctionDeclaration";else if(F.isAssignmentExpression(e))return F.expressionStatement(e);if(n&&!e.id&&(r=!1),!r){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=r,e}function p(e){if(F.isExpressionStatement(e)&&(e=e.expression),F.isExpression(e))return e;if(F.isClass(e)?e.type="ClassExpression":F.isFunction(e)&&(e.type="FunctionExpression"),!F.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function f(e,t){return F.isBlockStatement(e)?e:(F.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(F.isStatement(e)||(e=F.isFunction(t)?F.returnStatement(e):F.expressionStatement(e)),e=[e]),F.blockStatement(e))}function h(e){if(void 0===e)return F.identifier("undefined");if(e===!0||e===!1)return F.booleanLiteral(e);if(null===e)return F.nullLiteral();if((0,w.default)(e))return F.stringLiteral(e);if((0,A.default)(e))return F.numericLiteral(e);if((0,C.default)(e)){var t=e.source,n=e.toString().match(/\/([a-z]+|)$/)[1];return F.regExpLiteral(t,n)}if(Array.isArray(e))return F.arrayExpression(e.map(F.valueToNode));if((0,_.default)(e)){var r=[];for(var i in e){var a=void 0;a=F.isValidIdentifier(i)?F.identifier(i):F.stringLiteral(i),r.push(F.objectProperty(a,F.valueToNode(e[i])))}return F.objectExpression(r)}throw new Error("don't know how to turn this value into a node")}n.__esModule=!0;var d=e("babel-runtime/core-js/number/max-safe-integer"),y=i(d),m=e("babel-runtime/core-js/json/stringify"),b=i(m),g=e("babel-runtime/core-js/get-iterator"),v=i(g);n.toComputedKey=a,n.toSequenceExpression=s,n.toKeyAlias=o,n.toIdentifier=u,n.toBindingIdentifierName=l,n.toStatement=c,n.toExpression=p,n.toBlock=f,n.valueToNode=h;var x=e("lodash/isPlainObject"),_=i(x),E=e("lodash/isNumber"),A=i(E),D=e("lodash/isRegExp"),C=i(D),S=e("lodash/isString"),w=i(S),k=e("./index"),F=r(k);o.uid=0,o.increment=function(){return o.uid>=y.default?o.uid=0:o.uid++}},{"./index":265,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/json/stringify":101,"babel-runtime/core-js/number/max-safe-integer":103,"lodash/isNumber":483,"lodash/isPlainObject":486,"lodash/isRegExp":487,"lodash/isString":488}],256:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}var a=e("../index"),s=i(a),o=e("../constants"),u=e("./index"),l=r(u);(0,l.default)("ArrayExpression",{fields:{elements:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,l.default)("AssignmentExpression",{fields:{operator:{validate:(0,u.assertValueType)("string")},left:{validate:(0,u.assertNodeType)("LVal")},right:{validate:(0,u.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,l.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:u.assertOneOf.apply(void 0,o.BINARY_OPERATORS)},left:{validate:(0,u.assertNodeType)("Expression")},right:{validate:(0,u.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,l.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,u.assertNodeType)("DirectiveLiteral")}}}),(0,l.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,u.assertValueType)("string")}}}),(0,l.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Directive"))),default:[]},body:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,l.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,u.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,l.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,u.assertNodeType)("Expression")},arguments:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,l.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,u.assertNodeType)("Identifier")},body:{validate:(0,u.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,l.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,u.assertNodeType)("Expression")},consequent:{validate:(0,u.assertNodeType)("Expression")},alternate:{validate:(0,u.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,l.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,u.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,l.default)("DebuggerStatement",{aliases:["Statement"]}),(0,l.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,u.assertNodeType)("Expression")},body:{validate:(0,u.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,l.default)("EmptyStatement",{aliases:["Statement"]}),(0,l.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,u.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,l.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,u.assertNodeType)("Program")}}}),(0,l.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,u.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,u.assertNodeType)("Expression")},body:{validate:(0,u.assertNodeType)("Statement")}}}),(0,l.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,u.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,u.assertNodeType)("Expression"),optional:!0},update:{validate:(0,u.assertNodeType)("Expression"),optional:!0},body:{validate:(0,u.assertNodeType)("Statement")}}}),(0,l.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,u.assertNodeType)("Identifier")},params:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("LVal")))},body:{validate:(0,u.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,u.assertValueType)("boolean")},async:{default:!1,validate:(0,u.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,l.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,u.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("LVal")))},body:{validate:(0,u.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,u.assertValueType)("boolean")},async:{default:!1,validate:(0,u.assertValueType)("boolean")}}}),(0,l.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,n){!s.isValidIdentifier(n)}},decorators:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Decorator")))}}}),(0,l.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,u.assertNodeType)("Expression")},consequent:{validate:(0,u.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,u.assertNodeType)("Statement")}}}),(0,l.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,u.assertNodeType)("Identifier")},body:{validate:(0,u.assertNodeType)("Statement")}}}),(0,l.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,u.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,l.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,u.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,l.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,l.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,u.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,l.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,u.assertValueType)("string")},flags:{validate:(0,u.assertValueType)("string"),default:""}}}),(0,l.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:u.assertOneOf.apply(void 0,o.LOGICAL_OPERATORS)},left:{validate:(0,u.assertNodeType)("Expression")},right:{validate:(0,u.assertNodeType)("Expression")}}}),(0,l.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,u.assertNodeType)("Expression")},property:{validate:function(e,t,n){var r=e.computed?"Expression":"Identifier";(0,u.assertNodeType)(r)(e,t,n)}},computed:{default:!1}}}),(0,l.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,u.assertNodeType)("Expression")},arguments:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Expression","SpreadElement")))}}}),(0,l.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Directive"))),default:[]},body:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,l.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,l.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,u.chain)((0,u.assertValueType)("string"),(0,u.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,u.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,n){var r=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];u.assertNodeType.apply(void 0,r)(e,t,n)}},decorators:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Decorator")))},body:{validate:(0,u.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,u.assertValueType)("boolean")},async:{default:!1,validate:(0,u.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,l.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,u.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,n){var r=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];u.assertNodeType.apply(void 0,r)(e,t,n)}},value:{validate:(0,u.assertNodeType)("Expression")},shorthand:{validate:(0,u.assertValueType)("boolean"),default:!1},decorators:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,l.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,u.assertNodeType)("LVal")},decorators:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Decorator")))}}}),(0,l.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,u.assertNodeType)("Expression"),optional:!0}}}),(0,l.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,l.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,u.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("Statement")))}}}),(0,l.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,u.assertNodeType)("Expression")},cases:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("SwitchCase")))}}}),(0,l.default)("ThisExpression",{aliases:["Expression"]}),(0,l.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,u.assertNodeType)("Expression")}}}),(0,l.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,u.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,u.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,u.assertNodeType)("BlockStatement")}}}),(0,l.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,u.assertNodeType)("Expression")},operator:{validate:u.assertOneOf.apply(void 0,o.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,l.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,u.assertNodeType)("Expression")},operator:{validate:u.assertOneOf.apply(void 0,o.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,l.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,u.chain)((0,u.assertValueType)("string"),(0,u.assertOneOf)("var","let","const"))},declarations:{validate:(0,u.chain)((0,u.assertValueType)("array"),(0,u.assertEach)((0,u.assertNodeType)("VariableDeclarator")))}}}),(0,l.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,u.assertNodeType)("LVal")},init:{optional:!0,validate:(0,u.assertNodeType)("Expression")}}}),(0,l.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,u.assertNodeType)("Expression")},body:{validate:(0,u.assertNodeType)("BlockStatement","Statement")}}}),(0,l.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,u.assertNodeType)("Expression")},body:{validate:(0,u.assertNodeType)("BlockStatement","Statement")}}})},{"../constants":254,"../index":265,"./index":260}],257:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=e("./index"),a=r(i);(0,a.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,i.assertNodeType)("Identifier")},right:{validate:(0,i.assertNodeType)("Expression")},decorators:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Decorator")))}}}),(0,a.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Expression")))},decorators:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Decorator")))}}}),(0,a.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("LVal")))},body:{validate:(0,i.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,i.assertValueType)("boolean"),default:!1}}}),(0,a.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,a.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,i.assertNodeType)("Identifier")},body:{validate:(0,i.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,i.assertNodeType)("Expression")},decorators:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Decorator")))}}}),(0,a.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,i.assertNodeType)("Identifier")
+},body:{validate:(0,i.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,i.assertNodeType)("Expression")},decorators:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Decorator")))}}}),(0,a.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,i.assertNodeType)("StringLiteral")}}}),(0,a.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,i.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,a.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,i.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("ExportSpecifier")))},source:{validate:(0,i.assertNodeType)("StringLiteral"),optional:!0}}}),(0,a.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,i.assertNodeType)("Identifier")},exported:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,i.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,i.assertNodeType)("Expression")},body:{validate:(0,i.assertNodeType)("Statement")}}}),(0,a.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,i.assertNodeType)("StringLiteral")}}}),(0,a.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,i.assertNodeType)("Identifier")},imported:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,i.assertValueType)("string")},property:{validate:(0,i.assertValueType)("string")}}}),(0,a.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,i.chain)((0,i.assertValueType)("string"),(0,i.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,i.assertValueType)("boolean")},static:{default:!1,validate:(0,i.assertValueType)("boolean")},key:{validate:function(e,t,n){var r=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];i.assertNodeType.apply(void 0,r)(e,t,n)}},params:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("LVal")))},body:{validate:(0,i.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,i.assertValueType)("boolean")},async:{default:!1,validate:(0,i.assertValueType)("boolean")}}}),(0,a.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Decorator")))}}}),(0,a.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("Super",{aliases:["Expression"]}),(0,a.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,i.assertNodeType)("Expression")},quasi:{validate:(0,i.assertNodeType)("TemplateLiteral")}}}),(0,a.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,i.assertValueType)("boolean"),default:!1}}}),(0,a.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("TemplateElement")))},expressions:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("Expression")))}}}),(0,a.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,i.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,i.assertNodeType)("Expression")}}})},{"./index":260}],258:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=e("./index"),a=r(i);(0,a.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,i.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,i.assertNodeType)("Expression")},body:{validate:(0,i.assertNodeType)("Statement")}}}),(0,a.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,a.default)("Import",{aliases:["Expression"]}),(0,a.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,i.assertNodeType)("BlockStatement")}}}),(0,a.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,i.assertNodeType)("Identifier")}}}),(0,a.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,i.assertNodeType)("LVal")}}}),(0,a.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,i.assertNodeType)("Expression")}}})},{"./index":260}],259:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=e("./index"),a=r(i);(0,a.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,a.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,a.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,a.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,i.assertValueType)("boolean"),default:!1}}}),(0,a.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,a.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,a.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,a.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,a.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,a.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,a.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,a.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,a.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,a.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,a.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,a.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,a.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,a.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,a.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,a.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,a.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,a.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,a.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,a.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,a.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,a.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,a.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,a.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,a.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,a.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,a.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},{"./index":260}],260:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":"undefined"==typeof e?"undefined":(0,g.default)(e)}function s(e){function t(t,n,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)e(t,n+"["+i+"]",r[i])}return t.each=e,t}function o(){function e(e,t,r){if(n.indexOf(r)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,m.default)(n)+" but got "+(0,m.default)(r))}for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.oneOf=n,e}function u(){function e(e,t,r){for(var i=!1,a=n,s=Array.isArray(a),o=0,a=s?a:(0,d.default)(a);;){var u;if(s){if(o>=a.length)break;u=a[o++]}else{if(o=a.next(),o.done)break;u=o.value}var l=u;if(x.is(l,r)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(n)+" but instead got "+(0,m.default)(r&&r.type))}for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.oneOfNodeTypes=n,e}function l(){function e(e,t,r){for(var i=!1,s=n,o=Array.isArray(s),u=0,s=o?s:(0,d.default)(s);;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(a(r)===c||x.is(c,r)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(n)+" but instead got "+(0,m.default)(r&&r.type))}for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.oneOfNodeOrValueTypes=n,e}function c(e){function t(t,n,r){var i=a(r)===e;if(!i)throw new TypeError("Property "+n+" expected type of "+e+" but got "+a(r))}return t.type=e,t}function p(){function e(){for(var e=n,t=Array.isArray(e),r=0,e=t?e:(0,d.default)(e);;){var i;if(t){if(r>=e.length)break;i=e[r++]}else{if(r=e.next(),r.done)break;i=r.value}var a=i;a.apply(void 0,arguments)}}for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e.chainOf=n,e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.inherits&&S[t.inherits]||{};t.fields=t.fields||n.fields||{},t.visitor=t.visitor||n.visitor||[],t.aliases=t.aliases||n.aliases||[],t.builder=t.builder||n.builder||t.visitor||[],t.deprecatedAlias&&(C[t.deprecatedAlias]=e);for(var r=t.visitor.concat(t.builder),i=Array.isArray(r),s=0,r=i?r:(0,d.default)(r);;){var o;if(i){if(s>=r.length)break;o=r[s++]}else{if(s=r.next(),s.done)break;o=s.value}var u=o;t.fields[u]=t.fields[u]||{}}for(var l in t.fields){var p=t.fields[l];t.builder.indexOf(l)===-1&&(p.optional=!0),void 0===p.default?p.default=null:p.validate||(p.validate=c(a(p.default)))}_[e]=t.visitor,D[e]=t.builder,A[e]=t.fields,E[e]=t.aliases,S[e]=t}n.__esModule=!0,n.DEPRECATED_KEYS=n.BUILDER_KEYS=n.NODE_FIELDS=n.ALIAS_KEYS=n.VISITOR_KEYS=void 0;var h=e("babel-runtime/core-js/get-iterator"),d=i(h),y=e("babel-runtime/core-js/json/stringify"),m=i(y),b=e("babel-runtime/helpers/typeof"),g=i(b);n.assertEach=s,n.assertOneOf=o,n.assertNodeType=u,n.assertNodeOrValueType=l,n.assertValueType=c,n.chain=p,n.default=f;var v=e("../index"),x=r(v),_=n.VISITOR_KEYS={},E=n.ALIAS_KEYS={},A=n.NODE_FIELDS={},D=n.BUILDER_KEYS={},C=n.DEPRECATED_KEYS={},S={}},{"../index":265,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/json/stringify":101,"babel-runtime/helpers/typeof":118}],261:[function(e,t,n){"use strict";e("./index"),e("./core"),e("./es2015"),e("./flow"),e("./jsx"),e("./misc"),e("./experimental")},{"./core":256,"./es2015":257,"./experimental":258,"./flow":259,"./index":260,"./jsx":262,"./misc":263}],262:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=e("./index"),a=r(i);(0,a.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,i.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,i.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,a.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,i.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,a.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,i.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,i.assertNodeType)("JSXClosingElement")},children:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,a.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,a.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,i.assertValueType)("string")}}}),(0,a.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,i.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,i.assertNodeType)("JSXIdentifier")}}}),(0,a.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,i.assertNodeType)("JSXIdentifier")},name:{validate:(0,i.assertNodeType)("JSXIdentifier")}}}),(0,a.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,i.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,i.assertValueType)("boolean")},attributes:{validate:(0,i.chain)((0,i.assertValueType)("array"),(0,i.assertEach)((0,i.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,a.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,i.assertNodeType)("Expression")}}}),(0,a.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,i.assertValueType)("string")}}})},{"./index":260}],263:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=e("./index"),a=r(i);(0,a.default)("Noop",{visitor:[]}),(0,a.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,i.assertNodeType)("Expression")}}})},{"./index":260}],264:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){var t=a(e);return 1===t.length?t[0]:u.unionTypeAnnotation(t)}function a(e){for(var t={},n={},r=[],i=[],s=0;s<e.length;s++){var o=e[s];if(o&&!(i.indexOf(o)>=0)){if(u.isAnyTypeAnnotation(o))return[o];if(u.isFlowBaseAnnotation(o))n[o.type]=o;else if(u.isUnionTypeAnnotation(o))r.indexOf(o.types)<0&&(e=e.concat(o.types),r.push(o.types));else if(u.isGenericTypeAnnotation(o)){var l=o.id.name;if(t[l]){var c=t[l];c.typeParameters?o.typeParameters&&(c.typeParameters.params=a(c.typeParameters.params.concat(o.typeParameters.params))):c=o.typeParameters}else t[l]=o}else i.push(o)}}for(var p in n)i.push(n[p]);for(var f in t)i.push(t[f]);return i}function s(e){if("string"===e)return u.stringTypeAnnotation();if("number"===e)return u.numberTypeAnnotation();if("undefined"===e)return u.voidTypeAnnotation();if("boolean"===e)return u.booleanTypeAnnotation();if("function"===e)return u.genericTypeAnnotation(u.identifier("Function"));if("object"===e)return u.genericTypeAnnotation(u.identifier("Object"));if("symbol"===e)return u.genericTypeAnnotation(u.identifier("Symbol"));throw new Error("Invalid typeof value")}n.__esModule=!0,n.createUnionTypeAnnotation=i,n.removeTypeDuplicates=a,n.createTypeAnnotationBasedOnTypeof=s;var o=e("./index"),u=r(o)},{"./index":265}],265:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){var t=te["is"+e];t||(t=te["is"+e]=function(t,n){return te.is(e,t,n)}),te["assert"+e]=function(n,r){if(r=r||{},!t(n,r))throw new Error("Expected type "+(0,N.default)(e)+" with option "+(0,N.default)(r))}}function s(e,t,n){if(!t)return!1;var r=o(t.type,e);return!!r&&("undefined"==typeof n||te.shallowEqual(t,n))}function o(e,t){if(e===t)return!0;if(te.ALIAS_KEYS[t])return!1;var n=te.FLIPPED_ALIAS_KEYS[t];if(n){if(n[0]===e)return!0;for(var r=n,i=Array.isArray(r),a=0,r=i?r:(0,j.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if(e===o)return!0}}return!1}function u(e,t,n){if(e){var r=te.NODE_FIELDS[e.type];if(r){var i=r[t];i&&i.validate&&(i.optional&&null==n||i.validate(e,t,n))}}}function l(e,t){for(var n=(0,O.default)(t),r=n,i=Array.isArray(r),a=0,r=i?r:(0,j.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if(e[o]!==t[o])return!1}return!0}function c(e,t,n){return e.object=te.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!n,e}function p(e,t){return e.object=te.memberExpression(t,e.object),e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=te.toBlock(e[t],e)}function h(e){if(!e)return e;var t={};for(var n in e)"_"!==n[0]&&(t[n]=e[n]);return t}function d(e){var t=h(e);return delete t.loc,t}function y(e){if(!e)return e;var t={};for(var n in e)if("_"!==n[0]){var r=e[n];r&&(r.type?r=te.cloneDeep(r):Array.isArray(r)&&(r=r.map(te.cloneDeep))),t[n]=r}return t}function m(e,t){var n=e.split(".");return function(e){if(!te.isMemberExpression(e))return!1;for(var r=[e],i=0;r.length;){var a=r.shift();if(t&&i===n.length)return!0;if(te.isIdentifier(a)){if(n[i]!==a.name)return!1}else{if(!te.isStringLiteral(a)){if(te.isMemberExpression(a)){if(a.computed&&!te.isStringLiteral(a.property))return!1;r.push(a.object),r.push(a.property);continue}return!1}if(n[i]!==a.value)return!1}if(++i>n.length)return!1}return!0}}function b(e){for(var t=te.COMMENT_KEYS,n=Array.isArray(t),r=0,t=n?t:(0,j.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;delete e[a]}return e}function g(e,t){return v(e,t),x(e,t),_(e,t),e}function v(e,t){E("trailingComments",e,t)}function x(e,t){E("leadingComments",e,t)}function _(e,t){E("innerComments",e,t)}function E(e,t,n){t&&n&&(t[e]=(0,$.default)((0,X.default)([].concat(t[e],n[e]))))}function A(e,t){if(!e||!t)return e;for(var n=te.INHERIT_KEYS.optional,r=Array.isArray(n),i=0,n=r?n:(0,j.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;null==e[s]&&(e[s]=t[s])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);for(var u=te.INHERIT_KEYS.force,l=Array.isArray(u),c=0,u=l?u:(0,j.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;e[f]=t[f]}return te.inheritsComments(e,t),e}function D(e){if(!C(e))throw new TypeError("Not a valid node "+(e&&e.type))}function C(e){return!(!e||!Q.VISITOR_KEYS[e.type])}function S(e,t,n){if(e){var r=te.VISITOR_KEYS[e.type];if(r){n=n||{},t(e,n);for(var i=r,a=Array.isArray(i),s=0,i=a?i:(0,j.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var u=o,l=e[u];if(Array.isArray(l))for(var c=l,p=Array.isArray(c),f=0,c=p?c:(0,j.default)(c);;){var h;if(p){if(f>=c.length)break;h=c[f++]}else{if(f=c.next(),f.done)break;h=f.value}var d=h;S(d,t,n)}else S(l,t,n)}}}}function w(e,t){t=t||{};for(var n=t.preserveComments?ae:se,r=n,i=Array.isArray(r),a=0,r=i?r:(0,j.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;null!=e[o]&&(e[o]=void 0)}for(var u in e)"_"===u[0]&&null!=e[u]&&(e[u]=void 0);for(var l=(0,T.default)(e),c=l,p=Array.isArray(c),f=0,c=p?c:(0,j.default)(c);;){var h;if(p){if(f>=c.length)break;h=c[f++]}else{if(f=c.next(),f.done)break;h=f.value}var d=h;e[d]=null}}function k(e,t){return S(e,w,t),e}n.__esModule=!0,n.createTypeAnnotationBasedOnTypeof=n.removeTypeDuplicates=n.createUnionTypeAnnotation=n.valueToNode=n.toBlock=n.toExpression=n.toStatement=n.toBindingIdentifierName=n.toIdentifier=n.toKeyAlias=n.toSequenceExpression=n.toComputedKey=n.isNodesEquivalent=n.isImmutable=n.isScope=n.isSpecifierDefault=n.isVar=n.isBlockScoped=n.isLet=n.isValidIdentifier=n.isReferenced=n.isBinding=n.getOuterBindingIdentifiers=n.getBindingIdentifiers=n.TYPES=n.react=n.DEPRECATED_KEYS=n.BUILDER_KEYS=n.NODE_FIELDS=n.ALIAS_KEYS=n.VISITOR_KEYS=n.NOT_LOCAL_BINDING=n.BLOCK_SCOPED_SYMBOL=n.INHERIT_KEYS=n.UNARY_OPERATORS=n.STRING_UNARY_OPERATORS=n.NUMBER_UNARY_OPERATORS=n.BOOLEAN_UNARY_OPERATORS=n.BINARY_OPERATORS=n.NUMBER_BINARY_OPERATORS=n.BOOLEAN_BINARY_OPERATORS=n.COMPARISON_BINARY_OPERATORS=n.EQUALITY_BINARY_OPERATORS=n.BOOLEAN_NUMBER_BINARY_OPERATORS=n.UPDATE_OPERATORS=n.LOGICAL_OPERATORS=n.COMMENT_KEYS=n.FOR_INIT_KEYS=n.FLATTENABLE_KEYS=n.STATEMENT_OR_BLOCK_KEYS=void 0;var F=e("babel-runtime/core-js/object/get-own-property-symbols"),T=i(F),P=e("babel-runtime/core-js/get-iterator"),j=i(P),B=e("babel-runtime/core-js/object/keys"),O=i(B),I=e("babel-runtime/core-js/json/stringify"),N=i(I),L=e("./constants");Object.defineProperty(n,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return L.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(n,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return L.FLATTENABLE_KEYS}}),Object.defineProperty(n,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return L.FOR_INIT_KEYS}}),Object.defineProperty(n,"COMMENT_KEYS",{enumerable:!0,get:function(){return L.COMMENT_KEYS}}),Object.defineProperty(n,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return L.LOGICAL_OPERATORS}}),Object.defineProperty(n,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return L.UPDATE_OPERATORS}}),Object.defineProperty(n,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return L.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(n,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return L.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(n,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return L.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(n,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return L.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(n,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return L.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(n,"BINARY_OPERATORS",{enumerable:!0,get:function(){return L.BINARY_OPERATORS}}),Object.defineProperty(n,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return L.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(n,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return L.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(n,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return L.STRING_UNARY_OPERATORS}}),Object.defineProperty(n,"UNARY_OPERATORS",{enumerable:!0,get:function(){return L.UNARY_OPERATORS}}),Object.defineProperty(n,"INHERIT_KEYS",{enumerable:!0,get:function(){return L.INHERIT_KEYS}}),Object.defineProperty(n,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return L.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(n,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return L.NOT_LOCAL_BINDING}}),n.is=s,n.isType=o,n.validate=u,n.shallowEqual=l,n.appendToMemberExpression=c,n.prependToMemberExpression=p,n.ensureBlock=f,n.clone=h,n.cloneWithoutLoc=d,n.cloneDeep=y,n.buildMatchMemberExpression=m,n.removeComments=b,n.inheritsComments=g,n.inheritTrailingComments=v,n.inheritLeadingComments=x,n.inheritInnerComments=_,n.inherits=A,n.assertNode=D,n.isNode=C,n.traverseFast=S,n.removeProperties=w,n.removePropertiesDeep=k;var M=e("./retrievers");Object.defineProperty(n,"getBindingIdentifiers",{enumerable:!0,get:function(){return M.getBindingIdentifiers}}),Object.defineProperty(n,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return M.getOuterBindingIdentifiers}});var R=e("./validators");Object.defineProperty(n,"isBinding",{enumerable:!0,get:function(){return R.isBinding}}),Object.defineProperty(n,"isReferenced",{enumerable:!0,get:function(){return R.isReferenced}}),Object.defineProperty(n,"isValidIdentifier",{enumerable:!0,get:function(){return R.isValidIdentifier}}),Object.defineProperty(n,"isLet",{enumerable:!0,get:function(){return R.isLet}}),Object.defineProperty(n,"isBlockScoped",{enumerable:!0,get:function(){return R.isBlockScoped}}),Object.defineProperty(n,"isVar",{enumerable:!0,get:function(){return R.isVar}}),Object.defineProperty(n,"isSpecifierDefault",{enumerable:!0,get:function(){return R.isSpecifierDefault}}),Object.defineProperty(n,"isScope",{enumerable:!0,get:function(){return R.isScope}}),Object.defineProperty(n,"isImmutable",{enumerable:!0,get:function(){return R.isImmutable}}),Object.defineProperty(n,"isNodesEquivalent",{enumerable:!0,get:function(){return R.isNodesEquivalent}});var U=e("./converters");Object.defineProperty(n,"toComputedKey",{enumerable:!0,get:function(){return U.toComputedKey}}),Object.defineProperty(n,"toSequenceExpression",{enumerable:!0,get:function(){return U.toSequenceExpression}}),Object.defineProperty(n,"toKeyAlias",{enumerable:!0,get:function(){return U.toKeyAlias}}),Object.defineProperty(n,"toIdentifier",{enumerable:!0,get:function(){return U.toIdentifier}}),Object.defineProperty(n,"toBindingIdentifierName",{enumerable:!0,get:function(){return U.toBindingIdentifierName}}),Object.defineProperty(n,"toStatement",{enumerable:!0,get:function(){return U.toStatement}}),Object.defineProperty(n,"toExpression",{enumerable:!0,get:function(){return U.toExpression}}),Object.defineProperty(n,"toBlock",{enumerable:!0,get:function(){return U.toBlock}}),Object.defineProperty(n,"valueToNode",{enumerable:!0,get:function(){return U.valueToNode}});var V=e("./flow");Object.defineProperty(n,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return V.createUnionTypeAnnotation}}),Object.defineProperty(n,"removeTypeDuplicates",{enumerable:!0,get:function(){return V.removeTypeDuplicates}}),Object.defineProperty(n,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return V.createTypeAnnotationBasedOnTypeof}});var G=e("to-fast-properties"),q=i(G),K=e("lodash/compact"),X=i(K),J=e("lodash/clone"),W=i(J),z=e("lodash/each"),Y=i(z),H=e("lodash/uniq"),$=i(H);e("./definitions/init");var Q=e("./definitions"),Z=e("./react"),ee=r(Z),te=n;n.VISITOR_KEYS=Q.VISITOR_KEYS,n.ALIAS_KEYS=Q.ALIAS_KEYS,n.NODE_FIELDS=Q.NODE_FIELDS,n.BUILDER_KEYS=Q.BUILDER_KEYS,n.DEPRECATED_KEYS=Q.DEPRECATED_KEYS,n.react=ee;for(var ne in te.VISITOR_KEYS)a(ne);te.FLIPPED_ALIAS_KEYS={},(0,Y.default)(te.ALIAS_KEYS,function(e,t){(0,Y.default)(e,function(e){var n=te.FLIPPED_ALIAS_KEYS[e]=te.FLIPPED_ALIAS_KEYS[e]||[];n.push(t)})}),(0,Y.default)(te.FLIPPED_ALIAS_KEYS,function(e,t){te[t.toUpperCase()+"_TYPES"]=e,a(t)});n.TYPES=(0,O.default)(te.VISITOR_KEYS).concat((0,O.default)(te.FLIPPED_ALIAS_KEYS)).concat((0,O.default)(te.DEPRECATED_KEYS));(0,Y.default)(te.BUILDER_KEYS,function(e,t){function n(){if(arguments.length>e.length)throw new Error("t."+t+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+e.length);var n={};n.type=t;for(var r=0,i=e,a=Array.isArray(i),s=0,i=a?i:(0,j.default)(i);;){var o;if(a){if(s>=i.length)break;o=i[s++]}else{if(s=i.next(),s.done)break;o=s.value}var l=o,c=te.NODE_FIELDS[t][l],p=arguments[r++];void 0===p&&(p=(0,W.default)(c.default)),n[l]=p}for(var f in n)u(n,f,n[f]);return n}te[t]=n,te[t[0].toLowerCase()+t.slice(1)]=n});var re=function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+n),t.apply(this,arguments)}}var n=te.DEPRECATED_KEYS[e];te[e]=te[e[0].toLowerCase()+e.slice(1)]=t(te[n]),te["is"+e]=t(te["is"+n]),te["assert"+e]=t(te["assert"+n])};for(var ie in te.DEPRECATED_KEYS)re(ie);(0,q.default)(te),
+(0,q.default)(te.VISITOR_KEYS);var ae=["tokens","start","end","loc","raw","rawValue"],se=te.COMMENT_KEYS.concat(["comments"]).concat(ae)},{"./constants":254,"./converters":255,"./definitions":260,"./definitions/init":261,"./flow":264,"./react":266,"./retrievers":267,"./validators":268,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/json/stringify":101,"babel-runtime/core-js/object/get-own-property-symbols":106,"babel-runtime/core-js/object/keys":107,"lodash/clone":455,"lodash/compact":458,"lodash/each":461,"lodash/uniq":509,"to-fast-properties":273}],266:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return!!e&&/^[a-z]|\-/.test(e)}function a(e,t){for(var n=e.value.split(/\r\n|\n|\r/),r=0,i=0;i<n.length;i++)n[i].match(/[^ \t]/)&&(r=i);for(var a="",s=0;s<n.length;s++){var o=n[s],l=0===s,c=s===n.length-1,p=s===r,f=o.replace(/\t/g," ");l||(f=f.replace(/^[ ]+/,"")),c||(f=f.replace(/[ ]+$/,"")),f&&(p||(f+=" "),a+=f)}a&&t.push(u.stringLiteral(a))}function s(e){for(var t=[],n=0;n<e.children.length;n++){var r=e.children[n];u.isJSXText(r)?a(r,t):(u.isJSXExpressionContainer(r)&&(r=r.expression),u.isJSXEmptyExpression(r)||t.push(r))}return t}n.__esModule=!0,n.isReactComponent=void 0,n.isCompatTag=i,n.buildChildren=s;var o=e("./index"),u=r(o);n.isReactComponent=u.buildMatchMemberExpression("React.Component")},{"./index":265}],267:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n){for(var r=[].concat(e),i=(0,u.default)(null);r.length;){var a=r.shift();if(a){var s=c.getBindingIdentifiers.keys[a.type];if(c.isIdentifier(a))if(t){var o=i[a.name]=i[a.name]||[];o.push(a)}else i[a.name]=a;else if(c.isExportDeclaration(a))c.isDeclaration(e.declaration)&&r.push(e.declaration);else{if(n){if(c.isFunctionDeclaration(a)){r.push(a.id);continue}if(c.isFunctionExpression(a))continue}if(s)for(var l=0;l<s.length;l++){var p=s[l];a[p]&&(r=r.concat(a[p]))}}}}return i}function s(e,t){return a(e,t,!0)}n.__esModule=!0;var o=e("babel-runtime/core-js/object/create"),u=i(o);n.getBindingIdentifiers=a,n.getOuterBindingIdentifiers=s;var l=e("./index"),c=r(l);a.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},{"./index":265,"babel-runtime/core-js/object/create":105}],268:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=_.getBindingIdentifiers.keys[t.type];if(n)for(var r=0;r<n.length;r++){var i=n[r],a=t[i];if(Array.isArray(a)){if(a.indexOf(e)>=0)return!0}else if(a===e)return!0}return!1}function s(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":for(var n=t.params,r=Array.isArray(n),i=0,n=r?n:(0,x.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":return t.right===e;case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0}function o(e){return"string"==typeof e&&!A.default.keyword.isReservedWordES6(e,!0)&&A.default.keyword.isIdentifierNameES6(e)}function u(e){return C.isVariableDeclaration(e)&&("var"!==e.kind||e[S.BLOCK_SCOPED_SYMBOL])}function l(e){return C.isFunctionDeclaration(e)||C.isClassDeclaration(e)||C.isLet(e)}function c(e){return C.isVariableDeclaration(e,{kind:"var"})&&!e[S.BLOCK_SCOPED_SYMBOL]}function p(e){return C.isImportDefaultSpecifier(e)||C.isIdentifier(e.imported||e.exported,{name:"default"})}function f(e,t){return(!C.isBlockStatement(e)||!C.isFunction(t,{body:e}))&&C.isScopable(e)}function h(e){return!!C.isType(e.type,"Immutable")||!!C.isIdentifier(e)&&"undefined"===e.name}function d(e,t){if("object"!==("undefined"==typeof e?"undefined":(0,g.default)(e))||"object"!==("undefined"==typeof e?"undefined":(0,g.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;for(var n=(0,m.default)(C.NODE_FIELDS[e.type]||e.type),r=n,i=Array.isArray(r),a=0,r=i?r:(0,x.default)(r);;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;if((0,g.default)(e[o])!==(0,g.default)(t[o]))return!1;if(Array.isArray(e[o])){if(!Array.isArray(t[o]))return!1;if(e[o].length!==t[o].length)return!1;for(var u=0;u<e[o].length;u++)if(!d(e[o][u],t[o][u]))return!1}else if(!d(e[o],t[o]))return!1}return!0}n.__esModule=!0;var y=e("babel-runtime/core-js/object/keys"),m=i(y),b=e("babel-runtime/helpers/typeof"),g=i(b),v=e("babel-runtime/core-js/get-iterator"),x=i(v);n.isBinding=a,n.isReferenced=s,n.isValidIdentifier=o,n.isLet=u,n.isBlockScoped=l,n.isVar=c,n.isSpecifierDefault=p,n.isScope=f,n.isImmutable=h,n.isNodesEquivalent=d;var _=e("./retrievers"),E=e("esutils"),A=i(E),D=e("./index"),C=r(D),S=e("./constants")},{"./constants":254,"./index":265,"./retrievers":267,"babel-runtime/core-js/get-iterator":100,"babel-runtime/core-js/object/keys":107,"babel-runtime/helpers/typeof":118,esutils:272}],269:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],270:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],271:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":270,dup:71}],272:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":269,"./code":270,"./keyword":271,dup:72}],273:[function(e,t,n){"use strict";t.exports=function e(t){function n(){}n.prototype=t,new n}},{}],274:[function(e,t,n){"use strict";function r(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function i(e,t){for(var n=65536,r=0;r<t.length;r+=2){if(n+=t[r],n>e)return!1;if(n+=t[r+1],n>=e)return!0}}function a(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&T.test(String.fromCharCode(e)):i(e,j)))}function s(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&P.test(String.fromCharCode(e)):i(e,j)||i(e,B))))}function o(e){var t={};for(var n in O)t[n]=e&&n in e?e[n]:O[n];return t}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){return new I(e,{beforeExpr:!0,binop:t})}function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.keyword=e,R[e]=M["_"+e]=new I(e,t)}function p(e){return 10===e||13===e||8232===e||8233===e}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var n=1,r=0;;){V.lastIndex=r;var i=V.exec(e);if(!(i&&i.index<t))return new X(n,t-r);++n,r=i.index+i[0].length}}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function x(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function E(e,t,n,r){return e.type=t,e.end=n,e.loc.end=r,this.processComment(e),e}function A(e){return e[e.length-1]}function D(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?D(e.object)+"."+D(e.property):void 0}function C(e,t){return new $(t,e).parse()}Object.defineProperty(n,"__esModule",{value:!0});var S={6:r("enum await"),strict:r("implements interface let package private protected public static yield"),strictBind:r("eval arguments")},w=r("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),k="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",F="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",T=new RegExp("["+k+"]"),P=new RegExp("["+k+F+"]");k=F=null;var j=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],B=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],O={sourceType:"script",sourceFilename:void 0,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},I=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};u(this,e),this.label=t,this.keyword=n.keyword,this.beforeExpr=!!n.beforeExpr,this.startsExpr=!!n.startsExpr,this.rightAssociative=!!n.rightAssociative,this.isLoop=!!n.isLoop,this.isAssign=!!n.isAssign,this.prefix=!!n.prefix,this.postfix=!!n.postfix,this.binop=n.binop||null,this.updateContext=null},N={beforeExpr:!0},L={startsExpr:!0},M={num:new I("num",L),regexp:new I("regexp",L),string:new I("string",L),name:new I("name",L),eof:new I("eof"),bracketL:new I("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new I("]"),braceL:new I("{",{beforeExpr:!0,startsExpr:!0}),braceBarL:new I("{|",{beforeExpr:!0,startsExpr:!0}),braceR:new I("}"),braceBarR:new I("|}"),parenL:new I("(",{beforeExpr:!0,startsExpr:!0}),parenR:new I(")"),comma:new I(",",N),semi:new I(";",N),colon:new I(":",N),doubleColon:new I("::",N),dot:new I("."),question:new I("?",N),arrow:new I("=>",N),template:new I("template"),ellipsis:new I("...",N),backQuote:new I("`",L),dollarBraceL:new I("${",{beforeExpr:!0,startsExpr:!0}),at:new I("@"),eq:new I("=",{beforeExpr:!0,isAssign:!0}),assign:new I("_=",{beforeExpr:!0,isAssign:!0}),incDec:new I("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new I("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:l("||",1),logicalAND:l("&&",2),bitwiseOR:l("|",3),bitwiseXOR:l("^",4),bitwiseAND:l("&",5),equality:l("==/!=",6),relational:l("</>",7),bitShift:l("<</>>",8),plusMin:new I("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:l("%",10),star:l("*",10),slash:l("/",10),exponent:new I("**",{beforeExpr:!0,binop:11,rightAssociative:!0})},R={};c("break"),c("case",N),c("catch"),c("continue"),c("debugger"),c("default",N),c("do",{isLoop:!0,beforeExpr:!0}),c("else",N),c("finally"),c("for",{isLoop:!0}),c("function",L),c("if"),c("return",N),c("switch"),c("throw",N),c("try"),c("var"),c("let"),c("const"),c("while",{isLoop:!0}),c("with"),c("new",{beforeExpr:!0,startsExpr:!0}),c("this",L),c("super",L),c("class"),c("extends",N),c("export"),c("import"),c("yield",{beforeExpr:!0,startsExpr:!0}),c("null",L),c("true",L),c("false",L),c("in",{beforeExpr:!0,binop:7}),c("instanceof",{beforeExpr:!0,binop:7}),c("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),c("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),c("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0});var U=/\r\n?|\n|\u2028|\u2029/,V=new RegExp(U.source,"g"),G=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,q=function e(t,n,r,i){f(this,e),this.token=t,this.isExpr=!!n,this.preserveSpace=!!r,this.override=i},K={braceStatement:new q("{",!1),braceExpression:new q("{",!0),templateQuasi:new q("${",!0),parenStatement:new q("(",!1),parenExpression:new q("(",!0),template:new q("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new q("function",!0)};M.parenR.updateContext=M.braceR.updateContext=function(){if(1===this.state.context.length)return void(this.state.exprAllowed=!0);var e=this.state.context.pop();e===K.braceStatement&&this.curContext()===K.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===K.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr},M.name.updateContext=function(e){this.state.exprAllowed=!1,e!==M._let&&e!==M._const&&e!==M._var||U.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},M.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?K.braceStatement:K.braceExpression),this.state.exprAllowed=!0},M.dollarBraceL.updateContext=function(){this.state.context.push(K.templateQuasi),this.state.exprAllowed=!0},M.parenL.updateContext=function(e){var t=e===M._if||e===M._for||e===M._with||e===M._while;this.state.context.push(t?K.parenStatement:K.parenExpression),this.state.exprAllowed=!0},M.incDec.updateContext=function(){},M._function.updateContext=function(){this.curContext()!==K.braceStatement&&this.state.context.push(K.functionExpression),this.state.exprAllowed=!1},M.backQuote.updateContext=function(){this.curContext()===K.template?this.state.context.pop():this.state.context.push(K.template),this.state.exprAllowed=!1};var X=function e(t,n){h(this,e),this.line=t,this.column=n},J=function e(t,n){h(this,e),this.start=t,this.end=n},W=function(){function e(){y(this,e)}return e.prototype.init=function(e,t){return this.strict=e.strictMode!==!1&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inType=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=1,this.type=M.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[K.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new X(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var n=new e;for(var r in this){var i=this[r];t&&"context"!==r||!Array.isArray(i)||(i=i.slice()),n[r]=i}return n},e}(),z=function e(t){m(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new J(t.startLoc,t.endLoc)},Y=function(){function e(t,n){m(this,e),this.state=new W,this.state.init(t,n)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new z(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return w(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(M.num)||this.match(M.string)){for(this.state.pos=this.state.start;this.state.pos<this.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),this.state.pos>=this.input.length?this.finishToken(M.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return a(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);if(e<=55295||e>=57344)return e;var t=this.input.charCodeAt(this.state.pos+1);return(e<<10)+t-56613888},e.prototype.pushComment=function(e,t,n,r,i,a){var s={type:e?"CommentBlock":"CommentLine",value:t,start:n,end:r,loc:new J(i,a)};this.isLookahead||(this.state.tokens.push(s),this.state.comments.push(s),this.addComment(s))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,n=this.input.indexOf("*/",this.state.pos+=2);n===-1&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=n+2,V.lastIndex=t;for(var r=void 0;(r=V.exec(this.input))&&r.index<this.state.pos;)++this.state.curLine,this.state.lineStart=r.index+r[0].length;this.pushComment(!0,this.input.slice(t+2,n),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,n=this.state.curPosition(),r=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==r&&13!==r&&8232!==r&&8233!==r;)++this.state.pos,r=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,n,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&G.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var n=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(n)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(M.ellipsis)):(++this.state.pos,this.finishToken(M.dot))},e.prototype.readToken_slash=function(){if(this.state.exprAllowed)return++this.state.pos,this.readRegexp();var e=this.input.charCodeAt(this.state.pos+1);return 61===e?this.finishOp(M.assign,2):this.finishOp(M.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?M.star:M.modulo,n=1,r=this.input.charCodeAt(this.state.pos+1);return 42===r&&(n++,r=this.input.charCodeAt(this.state.pos+2),t=M.exponent),61===r&&(n++,t=M.assign),this.finishOp(t,n)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?M.logicalOR:M.logicalAND,2):61===t?this.finishOp(M.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(M.braceBarR,2):this.finishOp(124===e?M.bitwiseOR:M.bitwiseAND,1)},e.prototype.readToken_caret=function(){var e=this.input.charCodeAt(this.state.pos+1);return 61===e?this.finishOp(M.assign,2):this.finishOp(M.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&U.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(M.incDec,2):61===t?this.finishOp(M.assign,2):this.finishOp(M.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+n)?this.finishOp(M.assign,n+1):this.finishOp(M.bitShift,n)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(n=2),this.finishOp(M.relational,n))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(M.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(M.arrow)):this.finishOp(61===e?M.eq:M.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(M.parenL);case 41:return++this.state.pos,this.finishToken(M.parenR);case 59:return++this.state.pos,this.finishToken(M.semi);case 44:return++this.state.pos,this.finishToken(M.comma);case 91:return++this.state.pos,this.finishToken(M.bracketL);case 93:return++this.state.pos,this.finishToken(M.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(M.braceBarL,2):(++this.state.pos,this.finishToken(M.braceL));case 125:return++this.state.pos,this.finishToken(M.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(M.doubleColon,2):(++this.state.pos,this.finishToken(M.colon));case 63:return++this.state.pos,this.finishToken(M.question);case 64:return++this.state.pos,this.finishToken(M.at);case 96:return++this.state.pos,this.finishToken(M.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(M.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+b(e)+"'")},e.prototype.finishOp=function(e,t){var n=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,n)},e.prototype.readRegexp=function(){for(var e=void 0,t=void 0,n=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var r=this.input.charAt(this.state.pos);if(U.test(r)&&this.raise(n,"Unterminated regular expression"),e)e=!1;else{if("["===r)t=!0;else if("]"===r&&t)t=!1;else if("/"===r&&!t)break;e="\\"===r}++this.state.pos}var i=this.input.slice(n,this.state.pos);++this.state.pos;var a=this.readWord1();if(a){var s=/^[gmsiyu]*$/;s.test(a)||this.raise(n,"Invalid regular expression flag")}return this.finishToken(M.regexp,{pattern:i,flags:a})},e.prototype.readInt=function(e,t){for(var n=this.state.pos,r=0,i=0,a=null==t?1/0:t;i<a;++i){var s=this.input.charCodeAt(this.state.pos),o=void 0;if(o=s>=97?s-97+10:s>=65?s-65+10:s>=48&&s<=57?s-48:1/0,o>=e)break;++this.state.pos,r=r*e+o}return this.state.pos===n||null!=t&&this.state.pos-n!==t?null:r},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),a(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(M.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,n=!1,r=48===this.input.charCodeAt(this.state.pos);e||null!==this.readInt(10)||this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.state.pos);46===i&&(++this.state.pos,this.readInt(10),n=!0,i=this.input.charCodeAt(this.state.pos)),69!==i&&101!==i||(i=this.input.charCodeAt(++this.state.pos),43!==i&&45!==i||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),a(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var s=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(s):r&&1!==s.length?/[89]/.test(s)||this.state.strict?this.raise(t,"Invalid number"):o=parseInt(s,8):o=parseInt(s,10),this.finishToken(M.num,o)},e.prototype.readCodePoint=function(){var e=this.input.charCodeAt(this.state.pos),t=void 0;if(123===e){var n=++this.state.pos;t=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos),++this.state.pos,t>1114111&&this.raise(n,"Code point out of bounds")}else t=this.readHexChar(4);return t},e.prototype.readString=function(e){for(var t="",n=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var r=this.input.charCodeAt(this.state.pos);if(r===e)break;92===r?(t+=this.input.slice(n,this.state.pos),t+=this.readEscapedChar(!1),n=this.state.pos):(p(r)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(n,this.state.pos++),this.finishToken(M.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(M.template)?36===n?(this.state.pos+=2,this.finishToken(M.dollarBraceL)):(++this.state.pos,this.finishToken(M.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(M.template,e));if(92===n)e+=this.input.slice(t,this.state.pos),e+=this.readEscapedChar(!0),t=this.state.pos;else if(p(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return b(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(t>=48&&t<=55){var n=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),r>0&&(this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=this.state.pos-2),(this.state.strict||e)&&this.raise(this.state.pos-2,"Octal literal in strict mode")),this.state.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},e.prototype.readHexChar=function(e){var t=this.state.pos,n=this.readInt(16,e);return null===n&&this.raise(t,"Bad character escape sequence"),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,n=this.state.pos;this.state.pos<this.input.length;){var r=this.fullCharCodeAtPos();if(s(r))this.state.pos+=r<=65535?1:2;else{if(92!==r)break;this.state.containsEsc=!0,e+=this.input.slice(n,this.state.pos);var i=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint();(t?a:s)(o,!0)||this.raise(i,"Invalid Unicode escape"),e+=b(o),n=this.state.pos}t=!1}return e+this.input.slice(n,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=M.name;
+return!this.state.containsEsc&&this.isKeyword(e)&&(t=R[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===M.colon){var t=this.curContext();if(t===K.braceStatement||t===K.braceExpression)return!t.isExpr}return e===M._return?U.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===M._else||e===M.semi||e===M.eof||e===M.parenR||(e===M.braceL?this.curContext()===K.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=void 0,n=this.state.type;n.keyword&&e===M.dot?this.state.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.state.exprAllowed=n.beforeExpr},e}(),H={},$=function(e){function t(n,r){g(this,t),n=o(n);var i=v(this,e.call(this,n,r));return i.options=n,i.inModule="module"===i.options.sourceType,i.input=r,i.plugins=i.loadPlugins(i.options.plugins),i.filename=n.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return x(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:S[6](e)},t.prototype.hasPlugin=function(e){return!(!this.plugins["*"]&&!this.plugins[e])},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(H).filter(function(e){return"flow"!==e});t.push("flow"),t.forEach(function(t){var n=H[t];n&&n(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e}),e.push("flow"));for(var n=e,r=Array.isArray(n),i=0,n=r?n:n[Symbol.iterator]();;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var s=a;if(!t[s]){t[s]=!0;var o=H[s];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(Y),Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Z=$.prototype;Z.addExtra=function(e,t,n){if(e){var r=e.extra=e.extra||{};r[t]=n}},Z.isRelational=function(e){return this.match(M.relational)&&this.state.value===e},Z.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,M.relational)},Z.isContextual=function(e){return this.match(M.name)&&this.state.value===e},Z.eatContextual=function(e){return this.state.value===e&&this.eat(M.name)},Z.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},Z.canInsertSemicolon=function(){return this.match(M.eof)||this.match(M.braceR)||U.test(this.input.slice(this.state.lastTokEnd,this.state.start))},Z.isLineTerminator=function(){return this.eat(M.semi)||this.canInsertSemicolon()},Z.semicolon=function(){this.isLineTerminator()||this.unexpected(null,M.semi)},Z.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},Z.unexpected=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===("undefined"==typeof t?"undefined":Q(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var ee=$.prototype;ee.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,M.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var te={kind:"loop"},ne={kind:"switch"};ee.stmtToDirective=function(e){var t=e.expression,n=this.startNodeAt(t.start,t.loc.start),r=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),a=n.value=i.slice(1,-1);return this.addExtra(n,"raw",i),this.addExtra(n,"rawValue",a),r.value=this.finishNodeAt(n,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(r,"Directive",e.end,e.loc.end)},ee.parseStatement=function(e,t){this.match(M.at)&&this.parseDecorators(!0);var n=this.state.type,r=this.startNode();switch(n){case M._break:case M._continue:return this.parseBreakContinueStatement(r,n.keyword);case M._debugger:return this.parseDebuggerStatement(r);case M._do:return this.parseDoStatement(r);case M._for:return this.parseForStatement(r);case M._function:return e||this.unexpected(),this.parseFunctionStatement(r);case M._class:return e||this.unexpected(),this.takeDecorators(r),this.parseClass(r,!0);case M._if:return this.parseIfStatement(r);case M._return:return this.parseReturnStatement(r);case M._switch:return this.parseSwitchStatement(r);case M._throw:return this.parseThrowStatement(r);case M._try:return this.parseTryStatement(r);case M._let:case M._const:e||this.unexpected();case M._var:return this.parseVarStatement(r,n);case M._while:return this.parseWhileStatement(r);case M._with:return this.parseWithStatement(r);case M.braceL:return this.parseBlock();case M.semi:return this.parseEmptyStatement(r);case M._export:case M._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===M.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: module'")),n===M._import?this.parseImport(r):this.parseExport(r);case M.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(M._function)&&!this.canInsertSemicolon())return this.expect(M._function),this.parseFunction(r,!0,!1,!0);this.state=i}}var a=this.state.value,s=this.parseExpression();return n===M.name&&"Identifier"===s.type&&this.eat(M.colon)?this.parseLabeledStatement(r,a,s):this.parseExpressionStatement(r,s)},ee.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},ee.parseDecorators=function(e){for(;this.match(M.at);)this.state.decorators.push(this.parseDecorator());e&&this.match(M._export)||this.match(M._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},ee.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},ee.parseBreakContinueStatement=function(e,t){var n="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(M.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var r=void 0;for(r=0;r<this.state.labels.length;++r){var i=this.state.labels[r];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(n||"loop"===i.kind))break;if(e.label&&n)break}}return r===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,n?"BreakStatement":"ContinueStatement")},ee.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},ee.parseDoStatement=function(e){return this.next(),this.state.labels.push(te),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(M._while),e.test=this.parseParenExpression(),this.eat(M.semi),this.finishNode(e,"DoWhileStatement")},ee.parseForStatement=function(e){this.next(),this.state.labels.push(te);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(M.parenL),this.match(M.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(M._var)||this.match(M._let)||this.match(M._const)){var n=this.startNode(),r=this.state.type;return this.next(),this.parseVar(n,!0,r),this.finishNode(n,"VariableDeclaration"),!this.match(M._in)&&!this.isContextual("of")||1!==n.declarations.length||n.declarations[0].init?(t&&this.unexpected(),this.parseFor(e,n)):this.parseForIn(e,n,t)}var i={start:0},a=this.parseExpression(!0,i);if(this.match(M._in)||this.isContextual("of")){var s=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(a,void 0,s),this.checkLVal(a,void 0,void 0,s),this.parseForIn(e,a,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,a)},ee.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},ee.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(M._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},ee.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},ee.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(M.braceL),this.state.labels.push(ne);for(var t,n=void 0;!this.match(M.braceR);)if(this.match(M._case)||this.match(M._default)){var r=this.match(M._case);n&&this.finishNode(n,"SwitchCase"),e.cases.push(n=this.startNode()),n.consequent=[],this.next(),r?n.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,n.test=null),this.expect(M.colon)}else n?n.consequent.push(this.parseStatement(!0)):this.unexpected();return n&&this.finishNode(n,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},ee.parseThrowStatement=function(e){return this.next(),U.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var re=[];ee.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(M._catch)){var t=this.startNode();this.next(),this.expect(M.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(M.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=re,e.finalizer=this.eat(M._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},ee.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},ee.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push(te),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},ee.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},ee.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},ee.parseLabeledStatement=function(e,t,n){for(var r=this.state.labels,i=Array.isArray(r),a=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;o.name===t&&this.raise(n.start,"Label '"+t+"' is already declared")}for(var u=this.state.type.isLoop?"loop":this.match(M._switch)?"switch":null,l=this.state.labels.length-1;l>=0;l--){var c=this.state.labels[l];if(c.statementStart!==e.start)break;c.statementStart=this.state.start,c.kind=u}return this.state.labels.push({name:t,kind:u,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},ee.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},ee.parseBlock=function(e){var t=this.startNode();return this.expect(M.braceL),this.parseBlockBody(t,e,!1,M.braceR),this.finishNode(t,"BlockStatement")},ee.parseBlockBody=function(e,t,n,r){e.body=[],e.directives=[];for(var i=!1,a=void 0,s=void 0;!this.eat(r);){i||!this.state.containsOctal||s||(s=this.state.octalPosition);var o=this.parseStatement(!0,n);if(!t||i||"ExpressionStatement"!==o.type||"StringLiteral"!==o.expression.type||o.expression.extra.parenthesized)i=!0,e.body.push(o);else{var u=this.stmtToDirective(o);e.directives.push(u),void 0===a&&"use strict"===u.value.value&&(a=this.state.strict,this.setStrict(!0),s&&this.raise(s,"Octal literal in strict mode"))}}a===!1&&this.setStrict(!1)},ee.parseFor=function(e,t){return e.init=t,this.expect(M.semi),e.test=this.match(M.semi)?null:this.parseExpression(),this.expect(M.semi),e.update=this.match(M.parenR)?null:this.parseExpression(),this.expect(M.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},ee.parseForIn=function(e,t,n){var r=void 0;return n?(this.eatContextual("of"),r="ForAwaitStatement"):(r=this.match(M._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(M.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,r)},ee.parseVar=function(e,t,n){for(e.declarations=[],e.kind=n.keyword;;){var r=this.startNode();if(this.parseVarHead(r),this.eat(M.eq)?r.init=this.parseMaybeAssign(t):n!==M._const||this.match(M._in)||this.isContextual("of")?"Identifier"===r.id.type||t&&(this.match(M._in)||this.isContextual("of"))?r.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(r,"VariableDeclarator")),!this.eat(M.comma))break}return e},ee.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},ee.parseFunction=function(e,t,n,r,i){var a=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,r),this.match(M.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(M.name)||this.match(M._yield)||this.unexpected(),(this.match(M.name)||this.match(M._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.state.inMethod=a,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},ee.parseFunctionParams=function(e){this.expect(M.parenL),e.params=this.parseBindingList(M.parenR)},ee.parseClass=function(e,t,n){return this.next(),this.parseClassId(e,t,n),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},ee.isClassProperty=function(){return this.match(M.eq)||this.isLineTerminator()},ee.isClassMutatorStarter=function(){return!1},ee.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var n=!1,r=!1,i=[],a=this.startNode();for(a.body=[],this.expect(M.braceL);!this.eat(M.braceR);)if(!this.eat(M.semi))if(this.match(M.at))i.push(this.parseDecorator());else{var s=this.startNode();i.length&&(s.decorators=i,i=[]);var o=!1,u=this.match(M.name)&&"static"===this.state.value,l=this.eat(M.star),c=!1,p=!1;if(this.parsePropertyName(s),s.static=u&&!this.match(M.parenL),s.static&&(l=this.eat(M.star),this.parsePropertyName(s)),!l){if(this.isClassProperty()){a.body.push(this.parseClassProperty(s));continue}"Identifier"===s.key.type&&!s.computed&&this.hasPlugin("classConstructorCall")&&"call"===s.key.name&&this.match(M.name)&&"constructor"===this.state.value&&(o=!0,this.parsePropertyName(s))}var f=!this.match(M.parenL)&&!s.computed&&"Identifier"===s.key.type&&"async"===s.key.name;if(f&&(this.hasPlugin("asyncGenerators")&&this.eat(M.star)&&(l=!0),p=!0,this.parsePropertyName(s)),s.kind="method",!s.computed){var h=s.key;p||l||this.isClassMutatorStarter()||"Identifier"!==h.type||this.match(M.parenL)||"get"!==h.name&&"set"!==h.name||(c=!0,s.kind=h.name,h=this.parsePropertyName(s));var d=!o&&!s.static&&("Identifier"===h.type&&"constructor"===h.name||"StringLiteral"===h.type&&"constructor"===h.value);d&&(r&&this.raise(h.start,"Duplicate constructor in the same class"),c&&this.raise(h.start,"Constructor can't have get/set modifier"),l&&this.raise(h.start,"Constructor can't be a generator"),p&&this.raise(h.start,"Constructor can't be an async function"),s.kind="constructor",r=!0);var y=s.static&&("Identifier"===h.type&&"prototype"===h.name||"StringLiteral"===h.type&&"prototype"===h.value);y&&this.raise(h.start,"Classes may not have static property named prototype")}if(o&&(n&&this.raise(s.start,"Duplicate constructor call in the same class"),s.kind="constructorCall",n=!0),"constructor"!==s.kind&&"constructorCall"!==s.kind||!s.decorators||this.raise(s.start,"You can't attach decorators to a class constructor"),this.parseClassMethod(a,s,l,p),c){var m="get"===s.kind?0:1;if(s.params.length!==m){var b=s.start;"get"===s.kind?this.raise(b,"getter should have no params"):this.raise(b,"setter should have exactly one param")}}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(a,"ClassBody"),this.state.strict=t},ee.parseClassProperty=function(e){return this.match(M.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.finishNode(e,"ClassProperty")},ee.parseClassMethod=function(e,t,n,r){this.parseMethod(t,n,r),e.body.push(this.finishNode(t,"ClassMethod"))},ee.parseClassId=function(e,t,n){this.match(M.name)?e.id=this.parseIdentifier():n||!t?e.id=null:this.unexpected()},ee.parseClassSuper=function(e){e.superClass=this.eat(M._extends)?this.parseExprSubscripts():null},ee.parseExport=function(e){if(this.next(),this.match(M.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var n=this.startNode();if(n.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(n,"ExportDefaultSpecifier")],this.match(M.comma)&&this.lookahead().type===M.star){this.expect(M.comma);var r=this.startNode();this.expect(M.star),this.expectContextual("as"),r.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(r,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(M._default)){var i=this.startNode(),a=!1;return this.eat(M._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(M._class)?i=this.parseClass(i,!0,!0):(a=!0,i=this.parseMaybeAssign()),e.declaration=i,a&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.state.type.keyword||this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},ee.parseExportDeclaration=function(){return this.parseStatement(!0)},ee.isExportDefaultSpecifier=function(){if(this.match(M.name))return"type"!==this.state.value&&"async"!==this.state.value&&"interface"!==this.state.value;if(!this.match(M._default))return!1;var e=this.lookahead();return e.type===M.comma||e.type===M.name&&"from"===e.value},ee.parseExportSpecifiersMaybe=function(e){this.eat(M.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},ee.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(M.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},ee.shouldParseExportDeclaration=function(){return this.isContextual("async")},ee.checkExport=function(e,t,n){if(t)if(n)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length)for(var r=e.specifiers,i=Array.isArray(r),a=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;this.checkDuplicateExports(o,o.exported.name)}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type)for(var u=e.declaration.declarations,l=Array.isArray(u),c=0,u=l?u:u[Symbol.iterator]();;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if(c=u.next(),c.done)break;p=c.value}var f=p;this.checkDeclaration(f.id)}if(this.state.decorators.length){var h=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&h||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},ee.checkDeclaration=function(e){if("ObjectPattern"===e.type)for(var t=e.properties,n=Array.isArray(t),r=0,t=n?t:t[Symbol.iterator]();;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;this.checkDeclaration(a)}else if("ArrayPattern"===e.type)for(var s=e.elements,o=Array.isArray(s),u=0,s=o?s:s[Symbol.iterator]();;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},ee.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},ee.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},ee.parseExportSpecifiers=function(){var e=[],t=!0,n=void 0;for(this.expect(M.braceL);!this.eat(M.braceR);){if(t)t=!1;else if(this.expect(M.comma),this.eat(M.braceR))break;var r=this.match(M._default);r&&!n&&(n=!0);var i=this.startNode();i.local=this.parseIdentifier(r),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return n&&!this.isContextual("from")&&this.unexpected(),e},ee.parseImport=function(e){return this.next(),this.match(M.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(M.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},ee.parseImportSpecifiers=function(e){var t=!0;if(this.match(M.name)){var n=this.state.start,r=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),n,r)),!this.eat(M.comma))return}if(this.match(M.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(M.braceL);!this.eat(M.braceR);){if(t)t=!1;else if(this.expect(M.comma),this.eat(M.braceR))break;var a=this.startNode();a.imported=this.parseIdentifier(!0),a.local=this.eatContextual("as")?this.parseIdentifier():a.imported.__clone(),this.checkLVal(a.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(a,"ImportSpecifier"))}},ee.parseImportSpecifierDefault=function(e,t,n){var r=this.startNodeAt(t,n);return r.local=e,this.checkLVal(r.local,!0,void 0,"default import specifier"),this.finishNode(r,"ImportDefaultSpecifier")};var ie=$.prototype;ie.toAssignable=function(e,t,n){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var r=e.properties,i=Array.isArray(r),a=0,r=i?r:r[Symbol.iterator]();;){var s;if(i){if(a>=r.length)break;s=r[a++]}else{if(a=r.next(),a.done)break;s=a.value}var o=s;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,n);break;case"SpreadProperty":e.type="RestProperty";break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,n);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var u="Invalid left-hand side"+(n?" in "+n:"expression");this.raise(e.start,u)}return e},ie.toAssignableList=function(e,t,n){var r=e.length;if(r){var i=e[r-1];if(i&&"RestElement"===i.type)--r;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var a=i.argument;this.toAssignable(a,t,n),"Identifier"!==a.type&&"MemberExpression"!==a.type&&"ArrayPattern"!==a.type&&this.unexpected(a.start),--r}}for(var s=0;s<r;s++){var o=e[s];o&&this.toAssignable(o,t,n)}return e},ie.toReferencedList=function(e){return e},ie.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ie.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},ie.shouldAllowYieldIdentifier=function(){return this.match(M._yield)&&!this.state.strict&&!this.state.inGenerator},ie.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},ie.parseBindingAtom=function(){switch(this.state.type){case M._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case M.name:return this.parseIdentifier(!0);case M.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(M.bracketR,!0),this.finishNode(e,"ArrayPattern");case M.braceL:return this.parseObj(!0);default:this.unexpected()}},ie.parseBindingList=function(e,t){for(var n=[],r=!0;!this.eat(e);)if(r?r=!1:this.expect(M.comma),t&&this.match(M.comma))n.push(null);else{if(this.eat(e))break;if(this.match(M.ellipsis)){n.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(M.at);)i.push(this.parseDecorator());var a=this.parseMaybeDefault();i.length&&(a.decorators=i),this.parseAssignableListItemTypes(a),n.push(this.parseMaybeDefault(a.start,a.loc.start,a))}return n},ie.parseAssignableListItemTypes=function(e){return e},ie.parseMaybeDefault=function(e,t,n){if(t=t||this.state.startLoc,e=e||this.state.start,n=n||this.parseBindingAtom(),!this.eat(M.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")},ie.checkLVal=function(e,t,n,r){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),n){var i="_"+e.name;n[i]?this.raise(e.start,"Argument name clash in strict mode"):n[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var a=e.properties,s=Array.isArray(a),o=0,a=s?a:a[Symbol.iterator]();;){var u;if(s){if(o>=a.length)break;u=a[o++]}else{if(o=a.next(),o.done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,n,"object destructuring pattern")}break;case"ArrayPattern":for(var c=e.elements,p=Array.isArray(c),f=0,c=p?c:c[Symbol.iterator]();;){var h;if(p){if(f>=c.length)break;h=c[f++]}else{if(f=c.next(),f.done)break;h=f.value}var d=h;d&&this.checkLVal(d,t,n,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,n,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,n,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,n,"rest element");break;default:var y=(t?"Binding invalid":"Invalid")+" left-hand side"+(r?" in "+r:"expression");this.raise(e.start,y)}};var ae=$.prototype;ae.checkPropClash=function(e,t){if(!e.computed){var n=e.key,r=void 0;switch(n.type){case"Identifier":r=n.name;break;case"StringLiteral":case"NumericLiteral":r=String(n.value);break;default:return}"__proto__"!==r||e.kind||(t.proto&&this.raise(n.start,"Redefinition of __proto__ property"),t.proto=!0)}},ae.parseExpression=function(e,t){var n=this.state.start,r=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(M.comma)){var a=this.startNodeAt(n,r);for(a.expressions=[i];this.eat(M.comma);)a.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(a.expressions),this.finishNode(a,"SequenceExpression")}return i},ae.parseMaybeAssign=function(e,t,n,r){var i=this.state.start,a=this.state.startLoc;if(this.match(M._yield)&&this.state.inGenerator){var s=this.parseYield();return n&&(s=n.call(this,s,i,a)),s}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(M.parenL)||this.match(M.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,r);if(n&&(u=n.call(this,u,i,a)),this.state.type.isAssign){var l=this.startNodeAt(i,a);if(l.operator=this.state.value,l.left=this.match(M.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},ae.parseMaybeConditional=function(e,t,n){var r=this.state.start,i=this.state.startLoc,a=this.parseExprOps(e,t);return t&&t.start?a:this.parseConditional(a,e,r,i,n)},ae.parseConditional=function(e,t,n,r){if(this.eat(M.question)){var i=this.startNodeAt(n,r);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(M.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},ae.parseExprOps=function(e,t){var n=this.state.start,r=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,n,r,-1,e)},ae.parseExprOp=function(e,t,n,r,i){var a=this.state.type.binop;if(!(null==a||i&&this.match(M._in))&&a>r){var s=this.startNodeAt(t,n);s.left=e,s.operator=this.state.value,"**"!==s.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return s.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?a-1:a,i),this.finishNode(s,o===M.logicalOR||o===M.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(s,t,n,r,i)}return e},ae.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),n=this.match(M.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var r=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(r!==M.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),n?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,n?"UpdateExpression":"UnaryExpression")}var i=this.state.start,a=this.state.startLoc,s=this.parseExprSubscripts(e);if(e&&e.start)return s;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,a);o.operator=this.state.value,o.prefix=!1,o.argument=s,this.checkLVal(s,void 0,void 0,"postfix operation"),this.next(),s=this.finishNode(o,"UpdateExpression")}return s},ae.parseExprSubscripts=function(e){var t=this.state.start,n=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(e);
+return"ArrowFunctionExpression"===i.type&&i.start===r?i:e&&e.start?i:this.parseSubscripts(i,t,n)},ae.parseSubscripts=function(e,t,n,r){for(;;){if(!r&&this.eat(M.doubleColon)){var i=this.startNodeAt(t,n);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,n,r)}if(this.eat(M.dot)){var a=this.startNodeAt(t,n);a.object=e,a.property=this.parseIdentifier(!0),a.computed=!1,e=this.finishNode(a,"MemberExpression")}else if(this.eat(M.bracketL)){var s=this.startNodeAt(t,n);s.object=e,s.property=this.parseExpression(),s.computed=!0,this.expect(M.bracketR),e=this.finishNode(s,"MemberExpression")}else if(!r&&this.match(M.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,n);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(M.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,n),u);this.toReferencedList(u.arguments)}else{if(!this.match(M.backQuote))return e;var l=this.startNodeAt(t,n);l.tag=e,l.quasi=this.parseTemplate(),e=this.finishNode(l,"TaggedTemplateExpression")}}},ae.parseCallExpressionArguments=function(e,t){for(var n=void 0,r=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(M.comma),this.eat(e))break;this.match(M.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},ae.shouldParseAsyncArrow=function(){return this.match(M.arrow)},ae.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(M.arrow),this.parseArrowExpression(e,t.arguments,!0)},ae.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},ae.parseExprAtom=function(e){var t=void 0,n=this.state.potentialArrowAt===this.state.start;switch(this.state.type){case M._super:return this.state.inMethod||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),t=this.startNode(),this.next(),this.match(M.parenL)||this.match(M.bracketL)||this.match(M.dot)||this.unexpected(),this.match(M.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(t.start,"super() outside of class constructor"),this.finishNode(t,"Super");case M._import:return this.hasPlugin("dynamicImport")||this.unexpected(),t=this.startNode(),this.next(),this.match(M.parenL)||this.unexpected(null,M.parenL),this.finishNode(t,"Import");case M._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case M._yield:this.state.inGenerator&&this.unexpected();case M.name:t=this.startNode();var r="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),a=this.parseIdentifier(r||i);if("await"===a.name){if(this.state.inAsync||this.inModule)return this.parseAwait(t)}else{if("async"===a.name&&this.match(M._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(t,!1,!1,!0);if(n&&"async"===a.name&&this.match(M.name)){var s=[this.parseIdentifier()];return this.expect(M.arrow),this.parseArrowExpression(t,s,!0)}}return n&&!this.canInsertSemicolon()&&this.eat(M.arrow)?this.parseArrowExpression(t,[a]):a;case M._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case M.regexp:var c=this.state.value;return t=this.parseLiteral(c.value,"RegExpLiteral"),t.pattern=c.pattern,t.flags=c.flags,t;case M.num:return this.parseLiteral(this.state.value,"NumericLiteral");case M.string:return this.parseLiteral(this.state.value,"StringLiteral");case M._null:return t=this.startNode(),this.next(),this.finishNode(t,"NullLiteral");case M._true:case M._false:return t=this.startNode(),t.value=this.match(M._true),this.next(),this.finishNode(t,"BooleanLiteral");case M.parenL:return this.parseParenAndDistinguishExpression(null,null,n);case M.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(M.bracketR,!0,e),this.toReferencedList(t.elements),this.finishNode(t,"ArrayExpression");case M.braceL:return this.parseObj(!1,e);case M._function:return this.parseFunctionExpression();case M.at:this.parseDecorators();case M._class:return t=this.startNode(),this.takeDecorators(t),this.parseClass(t,!1);case M._new:return this.parseNew();case M.backQuote:return this.parseTemplate();case M.doubleColon:t=this.startNode(),this.next(),t.object=null;var p=t.callee=this.parseNoCallExpr();if("MemberExpression"===p.type)return this.finishNode(t,"BindExpression");this.raise(p.start,"Binding should be performed on object property.");default:this.unexpected()}},ae.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(M.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},ae.parseMetaProperty=function(e,t,n){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==n&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+n),this.finishNode(e,"MetaProperty")},ae.parseLiteral=function(e,t){var n=this.startNode();return this.addExtra(n,"rawValue",e),this.addExtra(n,"raw",this.input.slice(this.state.start,this.state.end)),n.value=e,this.next(),this.finishNode(n,t)},ae.parseParenExpression=function(){this.expect(M.parenL);var e=this.parseExpression();return this.expect(M.parenR),e},ae.parseParenAndDistinguishExpression=function(e,t,n){e=e||this.state.start,t=t||this.state.startLoc;var r=void 0;this.expect(M.parenL);for(var i=this.state.start,a=this.state.startLoc,s=[],o=!0,u={start:0},l=void 0,c=void 0,p={start:0};!this.match(M.parenR);){if(o)o=!1;else if(this.expect(M.comma,p.start||null),this.match(M.parenR)){c=this.state.start;break}if(this.match(M.ellipsis)){var f=this.state.start,h=this.state.startLoc;l=this.state.start,s.push(this.parseParenItem(this.parseRest(),h,f));break}s.push(this.parseMaybeAssign(!1,u,this.parseParenItem,p))}var d=this.state.start,y=this.state.startLoc;this.expect(M.parenR);var m=this.startNodeAt(e,t);if(n&&this.shouldParseArrow()&&(m=this.parseArrow(m))){for(var b=s,g=Array.isArray(b),v=0,b=g?b:b[Symbol.iterator]();;){var x;if(g){if(v>=b.length)break;x=b[v++]}else{if(v=b.next(),v.done)break;x=v.value}var _=x;_.extra&&_.extra.parenthesized&&this.unexpected(_.extra.parenStart)}return this.parseArrowExpression(m,s)}return s.length||this.unexpected(this.state.lastTokStart),c&&this.unexpected(c),l&&this.unexpected(l),u.start&&this.unexpected(u.start),p.start&&this.unexpected(p.start),s.length>1?(r=this.startNodeAt(i,a),r.expressions=s,this.toReferencedList(r.expressions),this.finishNodeAt(r,"SequenceExpression",d,y)):r=s[0],this.addExtra(r,"parenthesized",!0),this.addExtra(r,"parenStart",e),r},ae.shouldParseArrow=function(){return!this.canInsertSemicolon()},ae.parseArrow=function(e){if(this.eat(M.arrow))return e},ae.parseParenItem=function(e){return e},ae.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.eat(M.dot)?this.parseMetaProperty(e,t,"target"):(e.callee=this.parseNoCallExpr(),this.eat(M.parenL)?(e.arguments=this.parseExprList(M.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression"))},ae.parseTemplateElement=function(){var e=this.startNode();return e.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),e.tail=this.match(M.backQuote),this.finishNode(e,"TemplateElement")},ae.parseTemplate=function(){var e=this.startNode();this.next(),e.expressions=[];var t=this.parseTemplateElement();for(e.quasis=[t];!t.tail;)this.expect(M.dollarBraceL),e.expressions.push(this.parseExpression()),this.expect(M.braceR),e.quasis.push(t=this.parseTemplateElement());return this.next(),this.finishNode(e,"TemplateLiteral")},ae.parseObj=function(e,t){var n=[],r=Object.create(null),i=!0,a=this.startNode();a.properties=[],this.next();for(var s=null;!this.eat(M.braceR);){if(i)i=!1;else if(this.expect(M.comma),this.eat(M.braceR))break;for(;this.match(M.at);)n.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,p=void 0;if(n.length&&(o.decorators=n,n=[]),this.hasPlugin("objectRestSpread")&&this.match(M.ellipsis)){if(o=this.parseSpread(),o.type=e?"RestProperty":"SpreadProperty",a.properties.push(o),!e)continue;var f=this.state.start;if(null===s){if(this.eat(M.braceR))break;if(this.match(M.comma)&&this.lookahead().type===M.braceR)continue;s=f;continue}this.unexpected(s,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,p=this.state.startLoc),e||(u=this.eat(M.star)),!e&&this.isContextual("async")){u&&this.unexpected();var h=this.parseIdentifier();this.match(M.colon)||this.match(M.parenL)||this.match(M.braceR)||this.match(M.eq)||this.match(M.comma)?o.key=h:(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(M.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,p,u,l,e,t),this.checkPropClash(o,r),o.shorthand&&this.addExtra(o,"shorthand",!0),a.properties.push(o)}return null!==s&&this.unexpected(s,"The rest element has to be the last element when destructuring"),n.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(a,e?"ObjectPattern":"ObjectExpression")},ae.parseObjPropValue=function(e,t,n,r,i,a,s){if(i||r||this.match(M.parenL))return a&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,r,i),this.finishNode(e,"ObjectMethod");if(this.eat(M.colon))return e.value=a?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,s),this.finishNode(e,"ObjectProperty");if(!(a||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.match(M.comma)||this.match(M.braceR))){(r||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e,!1);var o="get"===e.kind?0:1;if(e.params.length!==o){var u=e.start;"get"===e.kind?this.raise(u,"getter should have no params"):this.raise(u,"setter should have exactly one param")}return this.finishNode(e,"ObjectMethod")}return e.computed||"Identifier"!==e.key.type?void this.unexpected():(a?(this.checkReservedWord(e.key.name,e.key.start,!0,!0),e.value=this.parseMaybeDefault(t,n,e.key.__clone())):this.match(M.eq)&&s?(s.start||(s.start=this.state.start),e.value=this.parseMaybeDefault(t,n,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},ae.parsePropertyName=function(e){return this.eat(M.bracketL)?(e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(M.bracketR),e.key):(e.computed=!1,e.key=this.match(M.num)||this.match(M.string)?this.parseExprAtom():this.parseIdentifier(!0))},ae.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},ae.parseMethod=function(e,t,n){var r=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,n),this.expect(M.parenL),e.params=this.parseBindingList(M.parenR),e.generator=t,this.parseFunctionBody(e),this.state.inMethod=r,e},ae.parseArrowExpression=function(e,t,n){return this.initFunction(e,n),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},ae.parseFunctionBody=function(e,t){var n=t&&!this.match(M.braceL),r=this.state.inAsync;if(this.state.inAsync=e.async,n)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,a=this.state.inGenerator,s=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=a,this.state.labels=s}this.state.inAsync=r;var o=this.state.strict,u=!1;if(t&&(o=!0),!n&&e.body.directives.length)for(var l=e.body.directives,c=Array.isArray(l),p=0,l=c?l:l[Symbol.iterator]();;){var f;if(c){if(p>=l.length)break;f=l[p++]}else{if(p=l.next(),p.done)break;f=p.value}var h=f;if("use strict"===h.value.value){u=!0,o=!0;break}}if(u&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),o){var d=Object.create(null),y=this.state.strict;u&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");for(var m=e.params,b=Array.isArray(m),g=0,m=b?m:m[Symbol.iterator]();;){var v;if(b){if(g>=m.length)break;v=m[g++]}else{if(g=m.next(),g.done)break;v=g.value}var x=v;u&&"Identifier"!==x.type&&this.raise(x.start,"Non-simple parameter in strict mode"),this.checkLVal(x,!0,d,"function parameter list")}this.state.strict=y}},ae.parseExprList=function(e,t,n){for(var r=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(M.comma),this.eat(e))break;r.push(this.parseExprListItem(t,n))}return r},ae.parseExprListItem=function(e,t){var n=void 0;return n=e&&this.match(M.comma)?null:this.match(M.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem)},ae.parseIdentifier=function(e){var t=this.startNode();return this.match(M.name)?(e||this.checkReservedWord(this.state.value,this.state.start,!1,!1),t.name=this.state.value):e&&this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},ae.checkReservedWord=function(e,t,n,r){(this.isReservedWord(e)||n&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(S.strict(e)||r&&S.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},ae.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(M.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},ae.parseYield=function(){var e=this.startNode();return this.next(),this.match(M.semi)||this.canInsertSemicolon()||!this.match(M.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(M.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var se=$.prototype,oe=["leadingComments","trailingComments","innerComments"],ue=function(){function e(t,n,r){_(this,e),this.type="",this.start=t,this.end=0,this.loc=new J(n),r&&(this.loc.filename=r)}return e.prototype.__clone=function(){var t=new e;for(var n in this)oe.indexOf(n)<0&&(t[n]=this[n]);return t},e}();se.startNode=function(){return new ue(this.state.start,this.state.startLoc,this.filename)},se.startNodeAt=function(e,t){return new ue(e,t,this.filename)},se.finishNode=function(e,t){return E.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},se.finishNodeAt=function(e,t,n,r){return E.call(this,e,t,n,r)};var le=$.prototype;le.raise=function(e,t){var n=d(this.input,e);t+=" ("+n.line+":"+n.column+")";var r=new SyntaxError(t);throw r.pos=e,r.loc=n,r};var ce=$.prototype;ce.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},ce.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){var t=this.state.commentStack,n=void 0,r=void 0,i=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(r=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var s=A(t);t.length>0&&s.trailingComments&&s.trailingComments[0].start>=e.end&&(r=s.trailingComments,s.trailingComments=null)}for(;t.length>0&&A(t).start>=e.start;)n=t.pop();if(n){if(n.leadingComments)if(n!==e&&A(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(i=n.leadingComments.length-2;i>=0;--i)if(n.leadingComments[i].end<=e.start){e.leadingComments=n.leadingComments.splice(0,i+1);break}}else if(this.state.leadingComments.length>0)if(A(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(i=0;i<this.state.leadingComments.length&&!(this.state.leadingComments[i].end>e.start);i++);e.leadingComments=this.state.leadingComments.slice(0,i),0===e.leadingComments.length&&(e.leadingComments=null),r=this.state.leadingComments.slice(i),0===r.length&&(r=null)}this.state.commentPreviousNode=e,r&&(r.length&&r[0].start>=e.start&&A(r).end<=e.end?e.innerComments=r:e.trailingComments=r),t.push(e)}};var pe=$.prototype;pe.flowParseTypeInitialiser=function(e,t){var n=this.state.inType;this.state.inType=!0,this.expect(e||M.colon),t&&(this.match(M.bitwiseAND)||this.match(M.bitwiseOR))&&this.next();var r=this.flowParseType();return this.state.inType=n,r},pe.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},pe.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),n=this.startNode(),r=this.startNode();this.isRelational("<")?n.typeParameters=this.flowParseTypeParameterDeclaration():n.typeParameters=null,this.expect(M.parenL);var i=this.flowParseFunctionTypeParams();return n.params=i.params,n.rest=i.rest,this.expect(M.parenR),n.returnType=this.flowParseTypeInitialiser(),r.typeAnnotation=this.finishNode(n,"FunctionTypeAnnotation"),t.typeAnnotation=this.finishNode(r,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},pe.flowParseDeclare=function(e){return this.match(M._class)?this.flowParseDeclareClass(e):this.match(M._function)?this.flowParseDeclareFunction(e):this.match(M._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===M.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):void this.unexpected()},pe.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},pe.flowParseDeclareModule=function(e){this.next(),this.match(M.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),n=t.body=[];for(this.expect(M.braceL);!this.match(M.braceR);){var r=this.startNode();this.expectContextual("declare","Unexpected token. Only declares are allowed inside declare module"),n.push(this.flowParseDeclare(r))}return this.expect(M.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},pe.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(M.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},pe.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},pe.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},pe.flowParseInterfaceish=function(e,t){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(M._extends))do e.extends.push(this.flowParseInterfaceExtends());while(this.eat(M.comma));if(this.isContextual("mixins")){this.next();do e.mixins.push(this.flowParseInterfaceExtends());while(this.eat(M.comma))}e.body=this.flowParseObjectType(t)},pe.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},pe.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},pe.flowParseTypeAlias=function(e){return e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(M.eq,!0),this.semicolon(),this.finishNode(e,"TypeAlias")},pe.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),n=this.flowParseTypeAnnotatableIdentifier();return e.name=n.name,e.variance=t,e.bound=n.typeAnnotation,this.match(M.eq)&&(this.eat(M.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},pe.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(M.jsxTagStart)?this.next():this.unexpected();do t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(M.comma);while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},pe.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(M.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},pe.flowParseObjectPropertyKey=function(){return this.match(M.num)||this.match(M.string)?this.parseExprAtom():this.parseIdentifier(!0)},pe.flowParseObjectTypeIndexer=function(e,t,n){return e.static=t,this.expect(M.bracketL),this.lookahead().type===M.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(M.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=n,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},pe.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(M.parenL);this.match(M.name);)e.params.push(this.flowParseFunctionTypeParam()),this.match(M.parenR)||this.expect(M.comma);return this.eat(M.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(M.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},pe.flowParseObjectTypeMethod=function(e,t,n,r){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=n,i.key=r,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},pe.flowParseObjectTypeCallProperty=function(e,t){var n=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(n),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},pe.flowParseObjectType=function(e,t){var n=this.state.inType;this.state.inType=!0;var r=this.startNode(),i=void 0,a=void 0,s=!1;r.callProperties=[],r.properties=[],r.indexers=[];var o=void 0,u=void 0;for(t&&this.match(M.braceBarL)?(this.expect(M.braceBarL),o=M.braceBarR,u=!0):(this.expect(M.braceL),o=M.braceR,u=!1),r.exact=u;!this.match(o);){var l=!1,c=this.state.start,p=this.state.startLoc;i=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==M.colon&&(this.next(),s=!0);var f=this.state.start,h=this.flowParseVariance();this.match(M.bracketL)?r.indexers.push(this.flowParseObjectTypeIndexer(i,s,h)):this.match(M.parenL)||this.isRelational("<")?(h&&this.unexpected(f),r.callProperties.push(this.flowParseObjectTypeCallProperty(i,e))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(M.parenL)?(h&&this.unexpected(f),r.properties.push(this.flowParseObjectTypeMethod(c,p,s,a))):(this.eat(M.question)&&(l=!0),i.key=a,i.value=this.flowParseTypeInitialiser(),i.optional=l,i.static=s,i.variance=h,this.flowObjectTypeSemicolon(),r.properties.push(this.finishNode(i,"ObjectTypeProperty")))),s=!1}this.expect(o);var d=this.finishNode(r,"ObjectTypeAnnotation");return this.state.inType=n,d},pe.flowObjectTypeSemicolon=function(){this.eat(M.semi)||this.eat(M.comma)||this.match(M.braceR)||this.match(M.braceBarR)||this.unexpected()},pe.flowParseQualifiedTypeIdentifier=function(e,t,n){e=e||this.state.start,t=t||this.state.startLoc;for(var r=n||this.parseIdentifier();this.eat(M.dot);){var i=this.startNodeAt(e,t);i.qualification=r,i.id=this.parseIdentifier(),r=this.finishNode(i,"QualifiedTypeIdentifier")}return r},pe.flowParseGenericType=function(e,t,n){var r=this.startNodeAt(e,t);return r.typeParameters=null,r.id=this.flowParseQualifiedTypeIdentifier(e,t,n),this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(r,"GenericTypeAnnotation")},pe.flowParseTypeofType=function(){var e=this.startNode();return this.expect(M._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},pe.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(M.bracketL);this.state.pos<this.input.length&&!this.match(M.bracketR)&&(e.types.push(this.flowParseType()),!this.match(M.bracketR));)this.expect(M.comma);return this.expect(M.bracketR),this.finishNode(e,"TupleTypeAnnotation")},pe.flowParseFunctionTypeParam=function(){var e=null,t=!1,n=null,r=this.startNode(),i=this.lookahead();return i.type===M.colon||i.type===M.question?(e=this.parseIdentifier(),this.eat(M.question)&&(t=!0),n=this.flowParseTypeInitialiser()):n=this.flowParseType(),r.name=e,r.optional=t,r.typeAnnotation=n,this.finishNode(r,"FunctionTypeParam")},pe.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},pe.flowParseFunctionTypeParams=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={params:e,rest:null};this.match(M.name);)t.params.push(this.flowParseFunctionTypeParam()),this.match(M.parenR)||this.expect(M.comma);return this.eat(M.ellipsis)&&(t.rest=this.flowParseFunctionTypeParam()),t},pe.flowIdentToTypeAnnotation=function(e,t,n,r){switch(r.name){case"any":return this.finishNode(n,"AnyTypeAnnotation");case"void":return this.finishNode(n,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(n,"BooleanTypeAnnotation");case"mixed":return this.finishNode(n,"MixedTypeAnnotation");case"empty":return this.finishNode(n,"EmptyTypeAnnotation");case"number":return this.finishNode(n,"NumberTypeAnnotation");case"string":return this.finishNode(n,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,r)}},pe.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,n=this.startNode(),r=void 0,i=void 0,a=!1,s=this.state.noAnonFunctionType;switch(this.state.type){case M.name:return this.flowIdentToTypeAnnotation(e,t,n,this.parseIdentifier());case M.braceL:return this.flowParseObjectType(!1,!1);case M.braceBarL:return this.flowParseObjectType(!1,!0);case M.bracketL:return this.flowParseTupleType();case M.relational:if("<"===this.state.value)return n.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(M.parenL),r=this.flowParseFunctionTypeParams(),n.params=r.params,n.rest=r.rest,this.expect(M.parenR),this.expect(M.arrow),n.returnType=this.flowParseType(),this.finishNode(n,"FunctionTypeAnnotation");break;case M.parenL:if(this.next(),!this.match(M.parenR)&&!this.match(M.ellipsis))if(this.match(M.name)){var o=this.lookahead().type;a=o!==M.question&&o!==M.colon}else a=!0;if(a){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=s,this.state.noAnonFunctionType||!(this.match(M.comma)||this.match(M.parenR)&&this.lookahead().type===M.arrow))return this.expect(M.parenR),i;this.eat(M.comma)}return r=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),n.params=r.params,n.rest=r.rest,this.expect(M.parenR),this.expect(M.arrow),n.returnType=this.flowParseType(),n.typeParameters=null,this.finishNode(n,"FunctionTypeAnnotation");case M.string:return n.value=this.state.value,this.addExtra(n,"rawValue",n.value),this.addExtra(n,"raw",this.input.slice(this.state.start,this.state.end)),this.next(),this.finishNode(n,"StringLiteralTypeAnnotation");case M._true:case M._false:return n.value=this.match(M._true),this.next(),this.finishNode(n,"BooleanLiteralTypeAnnotation");case M.plusMin:if("-"===this.state.value)return this.next(),this.match(M.num)||this.unexpected(),n.value=-this.state.value,this.addExtra(n,"rawValue",n.value),this.addExtra(n,"raw",this.input.slice(this.state.start,this.state.end)),this.next(),this.finishNode(n,"NumericLiteralTypeAnnotation");case M.num:return n.value=this.state.value,this.addExtra(n,"rawValue",n.value),this.addExtra(n,"raw",this.input.slice(this.state.start,this.state.end)),this.next(),this.finishNode(n,"NumericLiteralTypeAnnotation");case M._null:return n.value=this.match(M._null),this.next(),this.finishNode(n,"NullLiteralTypeAnnotation");case M._this:return n.value=this.match(M._this),this.next(),this.finishNode(n,"ThisTypeAnnotation");case M.star:return this.next(),this.finishNode(n,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},pe.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,n=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(M.bracketL);){var r=this.startNodeAt(e,t);r.elementType=n,this.expect(M.bracketL),this.expect(M.bracketR),n=this.finishNode(r,"ArrayTypeAnnotation")}return n},pe.flowParsePrefixType=function(){var e=this.startNode();return this.eat(M.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},pe.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(M.arrow)){var t=this.startNodeAt(e.start,e.loc);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},pe.flowParseIntersectionType=function(){var e=this.startNode(),t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(M.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},pe.flowParseUnionType=function(){var e=this.startNode(),t=this.flowParseIntersectionType();for(e.types=[t];this.eat(M.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},pe.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},pe.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},pe.flowParseTypeAnnotatableIdentifier=function(){var e=this.parseIdentifier();return this.match(M.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},pe.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},pe.flowParseVariance=function(){var e=null;return this.match(M.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),
+this.next()),e};var fe=function(e){e.extend("parseFunctionBody",function(e){return function(t,n){return this.match(M.colon)&&!n&&(t.returnType=this.flowParseTypeAnnotation()),e.call(this,t,n)}}),e.extend("parseStatement",function(e){return function(t,n){if(this.state.strict&&this.match(M.name)&&"interface"===this.state.value){var r=this.startNode();return this.next(),this.flowParseInterface(r)}return e.call(this,t,n)}}),e.extend("parseExpressionStatement",function(e){return function(t,n){if("Identifier"===n.type)if("declare"===n.name){if(this.match(M._class)||this.match(M.name)||this.match(M._function)||this.match(M._var))return this.flowParseDeclare(t)}else if(this.match(M.name)){if("interface"===n.name)return this.flowParseInterface(t);if("type"===n.name)return this.flowParseTypeAlias(t)}return e.call(this,t,n)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||e.call(this)}}),e.extend("parseConditional",function(e){return function(t,n,r,i,a){if(a&&this.match(M.question)){var s=this.state.clone();try{return e.call(this,t,n,r,i)}catch(e){if(e instanceof SyntaxError)return this.state=s,a.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,n,r,i)}}),e.extend("parseParenItem",function(e){return function(t,n,r){if(t=e.call(this,t,n,r),this.eat(M.question)&&(t.optional=!0),this.match(M.colon)){var i=this.startNodeAt(n,r);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return t=e.call(this,t),"ExportNamedDeclaration"===t.type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var n=this.startNode();return this.next(),this.match(M.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(n)}if(this.isContextual("interface")){t.exportKind="type";var r=this.startNode();return this.next(),this.flowParseInterface(r)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("parsePropertyName",function(e){return function(t){var n=this.state.inType;this.state.inType=!0;var r=e.call(this,t);return this.state.inType=n,r}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(M.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,n,r){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),n,r):e.call(this,t,n,r)}}),e.extend("toAssignableList",function(e){return function(t,n,r){for(var i=0;i<t.length;i++){var a=t[i];a&&"TypeCastExpression"===a.type&&(t[i]=this.typeCastToParameter(a))}return e.call(this,t,n,r)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var n=e[t];n&&n._exprListItem&&"TypeCastExpression"===n.type&&this.raise(n.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(t,n){var r=this.startNode(),i=e.call(this,t,n);return this.match(M.colon)?(r._exprListItem=!0,r.expression=i,r.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(r,"TypeCastExpression")):i}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(M.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassProperty",function(e){return function(){return this.match(M.colon)||e.call(this)}}),e.extend("parseClassMethod",function(){return function(e,t,n,r){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos,this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),this.parseMethod(t,n,r),e.body.push(this.finishNode(t,"ClassMethod"))}}),e.extend("parseClassSuper",function(e){return function(t,n){if(e.call(this,t,n),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var r=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,r.push(this.finishNode(i,"ClassImplements"))}while(this.eat(M.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var n=this.state.start,r=this.flowParseVariance(),i=e.call(this,t);return t.variance=r,t.variancePos=n,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var n=void 0;this.isRelational("<")&&(n=this.flowParseTypeParameterDeclaration(),this.match(M.parenL)||this.unexpected()),e.apply(this,arguments),n&&((t.value||t).typeParameters=n)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(M.question)&&(e.optional=!0),this.match(M.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=e.apply(this,n);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var n=null;if(this.match(M._typeof)?n="typeof":this.isContextual("type")&&(n="type"),n){var r=this.lookahead();(r.type===M.name&&"from"!==r.value||r.type===M.braceL||r.type===M.star)&&(this.next(),t.importKind=n)}e.call(this,t)}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(M.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,n){if(this.match(M.colon)){var r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=r}return e.call(this,t,n)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(M.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];if(M.jsxTagStart&&this.match(M.jsxTagStart)){var a=this.state.clone();try{return e.apply(this,r)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=a,t=e}}if(this.state.context.push(K.parenExpression),null!=t||this.isRelational("<")){var s=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),s=e.apply(this,r),s.typeParameters=o,s.start=o.start,s.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===s.type)return s;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return this.state.context.pop(),e.apply(this,r)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(M.colon)){var n=this.state.clone();try{var r=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAnnotation();this.state.noAnonFunctionType=r,this.canInsertSemicolon()&&this.unexpected(),this.match(M.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=n}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(M.colon)||e.call(this)}}),e.extend("isClassMutatorStarter",function(e){return function(){return!!this.isRelational("<")||e.call(this)}})},he={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},de=/^[\da-fA-F]+$/,ye=/^\d+$/;K.j_oTag=new q("<tag",!1),K.j_cTag=new q("</tag",!1),K.j_expr=new q("<tag>...</tag>",!0,!0),M.jsxName=new I("jsxName"),M.jsxText=new I("jsxText",{beforeExpr:!0}),M.jsxTagStart=new I("jsxTagStart",{startsExpr:!0}),M.jsxTagEnd=new I("jsxTagEnd"),M.jsxTagStart.updateContext=function(){this.state.context.push(K.j_expr),this.state.context.push(K.j_oTag),this.state.exprAllowed=!1},M.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===K.j_oTag&&e===M.slash||t===K.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===K.j_expr):this.state.exprAllowed=!0};var me=$.prototype;me.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var n=this.input.charCodeAt(this.state.pos);switch(n){case 60:case 123:return this.state.pos===this.state.start?60===n&&this.state.exprAllowed?(++this.state.pos,this.finishToken(M.jsxTagStart)):this.getTokenFromCode(n):(e+=this.input.slice(t,this.state.pos),this.finishToken(M.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:p(n)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},me.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),n=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,n=e?"\n":"\r\n"):n=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,n},me.jsxReadString=function(e){for(var t="",n=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var r=this.input.charCodeAt(this.state.pos);if(r===e)break;38===r?(t+=this.input.slice(n,this.state.pos),t+=this.jsxReadEntity(),n=this.state.pos):p(r)?(t+=this.input.slice(n,this.state.pos),t+=this.jsxReadNewLine(!1),n=this.state.pos):++this.state.pos}return t+=this.input.slice(n,this.state.pos++),this.finishToken(M.string,t)},me.jsxReadEntity=function(){for(var e="",t=0,n=void 0,r=this.input[this.state.pos],i=++this.state.pos;this.state.pos<this.input.length&&t++<10;){if(r=this.input[this.state.pos++],";"===r){"#"===e[0]?"x"===e[1]?(e=e.substr(2),de.test(e)&&(n=String.fromCharCode(parseInt(e,16)))):(e=e.substr(1),ye.test(e)&&(n=String.fromCharCode(parseInt(e,10)))):n=he[e];break}e+=r}return n?n:(this.state.pos=i,"&")},me.jsxReadWord=function(){var e=void 0,t=this.state.pos;do e=this.input.charCodeAt(++this.state.pos);while(s(e)||45===e);return this.finishToken(M.jsxName,this.input.slice(t,this.state.pos))},me.jsxParseIdentifier=function(){var e=this.startNode();return this.match(M.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},me.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,n=this.jsxParseIdentifier();if(!this.eat(M.colon))return n;var r=this.startNodeAt(e,t);return r.namespace=n,r.name=this.jsxParseIdentifier(),this.finishNode(r,"JSXNamespacedName")},me.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,n=this.jsxParseNamespacedName();this.eat(M.dot);){var r=this.startNodeAt(e,t);r.object=n,r.property=this.jsxParseIdentifier(),n=this.finishNode(r,"JSXMemberExpression")}return n},me.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case M.braceL:if(e=this.jsxParseExpressionContainer(),"JSXEmptyExpression"!==e.expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case M.jsxTagStart:case M.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},me.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.start,this.startLoc)},me.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(M.braceL),this.expect(M.ellipsis),e.expression=this.parseExpression(),this.expect(M.braceR),this.finishNode(e,"JSXSpreadChild")},me.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(M.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(M.braceR),this.finishNode(e,"JSXExpressionContainer")},me.jsxParseAttribute=function(){var e=this.startNode();return this.eat(M.braceL)?(this.expect(M.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(M.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(M.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},me.jsxParseOpeningElementAt=function(e,t){var n=this.startNodeAt(e,t);for(n.attributes=[],n.name=this.jsxParseElementName();!this.match(M.slash)&&!this.match(M.jsxTagEnd);)n.attributes.push(this.jsxParseAttribute());return n.selfClosing=this.eat(M.slash),this.expect(M.jsxTagEnd),this.finishNode(n,"JSXOpeningElement")},me.jsxParseClosingElementAt=function(e,t){var n=this.startNodeAt(e,t);return n.name=this.jsxParseElementName(),this.expect(M.jsxTagEnd),this.finishNode(n,"JSXClosingElement")},me.jsxParseElementAt=function(e,t){var n=this.startNodeAt(e,t),r=[],i=this.jsxParseOpeningElementAt(e,t),a=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case M.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(M.slash)){a=this.jsxParseClosingElementAt(e,t);break e}r.push(this.jsxParseElementAt(e,t));break;case M.jsxText:r.push(this.parseExprAtom());break;case M.braceL:this.lookahead().type===M.ellipsis?r.push(this.jsxParseSpreadChild()):r.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}D(a.name)!==D(i.name)&&this.raise(a.start,"Expected corresponding JSX closing tag for <"+D(i.name)+">")}return n.openingElement=i,n.closingElement=a,n.children=r,this.match(M.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(n,"JSXElement")},me.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};var be=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(M.jsxText)){var n=this.parseLiteral(this.state.value,"JSXText");return n.extra=null,n}return this.match(M.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){var n=this.curContext();if(n===K.j_expr)return this.jsxReadToken();if(n===K.j_oTag||n===K.j_cTag){if(a(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(M.jsxTagEnd);if((34===t||39===t)&&n===K.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(M.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(M.braceL)){var n=this.curContext();n===K.j_oTag?this.state.context.push(K.braceExpression):n===K.j_expr?this.state.context.push(K.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(M.slash)||t!==M.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(K.j_cTag),this.state.exprAllowed=!1}}})};H.flow=fe,H.jsx=be,n.parse=C,n.tokTypes=M},{}],275:[function(e,t,n){(function(t){"use strict";function r(e){return new t(e,"base64").toString()}function i(e){return e.split(",").pop()}function a(e,t){var n=p.exec(e);p.lastIndex=0;var r=n[1]||n[2],i=l.resolve(t,r);try{return u.readFileSync(i,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+i+"\n"+e)}}function s(e,t){t=t||{},t.isFileComment&&(e=a(e,t.commentFileDir)),t.hasComment&&(e=i(e)),t.isEncoded&&(e=r(e)),(t.isJSON||t.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}function o(e){for(var t,r=e.split("\n"),i=r.length-1;i>0;i--)if(t=r[i],~t.indexOf("sourceMappingURL=data:"))return n.fromComment(t)}var u=e("fs"),l=e("path"),c=/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+;)?base64,(.*)$/gm,p=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm;s.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},s.prototype.toBase64=function(){var e=this.toJSON();return new t(e).toString("base64")},s.prototype.toComment=function(e){var t=this.toBase64(),n="sourceMappingURL=data:application/json;base64,"+t;return e&&e.multiline?"/*# "+n+" */":"//# "+n},s.prototype.toObject=function(){return JSON.parse(this.toJSON())},s.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error("property %s already exists on the sourcemap, use set property instead");return this.setProperty(e,t)},s.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},s.prototype.getProperty=function(e){return this.sourcemap[e]},n.fromObject=function(e){return new s(e)},n.fromJSON=function(e){return new s(e,{isJSON:!0})},n.fromBase64=function(e){return new s(e,{isEncoded:!0})},n.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new s(e,{isEncoded:!0,hasComment:!0})},n.fromMapFileComment=function(e,t){return new s(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},n.fromSource=function(e,t){if(t){var r=o(e);return r?r:null}var i=e.match(c);return c.lastIndex=0,i?n.fromComment(i.pop()):null},n.fromMapFileSource=function(e,t){var r=e.match(p);return p.lastIndex=0,r?n.fromMapFileComment(r.pop(),t):null},n.removeComments=function(e){return c.lastIndex=0,e.replace(c,"")},n.removeMapFileComments=function(e){return p.lastIndex=0,e.replace(p,"")},n.generateMapFileComment=function(e,t){var n="sourceMappingURL="+e;return t&&t.multiline?"/*# "+n+" */":"//# "+n},Object.defineProperty(n,"commentRegex",{get:function(){return c.lastIndex=0,c}}),Object.defineProperty(n,"mapFileCommentRegex",{get:function(){return p.lastIndex=0,p}})}).call(this,e("buffer").Buffer)},{buffer:4,fs:1,path:12}],276:[function(e,t,n){t.exports=e("./src/node")},{"./src/node":280}],277:[function(e,t,n){function r(e){if(e=String(e),!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*p;case"days":case"day":case"d":return n*c;case"hours":case"hour":case"hrs":case"hr":case"h":return n*l;case"minutes":case"minute":case"mins":case"min":case"m":return n*u;case"seconds":case"second":case"secs":case"sec":case"s":return n*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function i(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function a(e){return s(e,c,"day")||s(e,l,"hour")||s(e,u,"minute")||s(e,o,"second")||e+" ms"}function s(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var o=1e3,u=60*o,l=60*u,c=24*l,p=365.25*c;t.exports=function(e,t){t=t||{};var n=typeof e;if("string"===n&&e.length>0)return r(e);if("number"===n&&isNaN(e)===!1)return t.long?a(e):i(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],278:[function(e,t,n){(function(r){function i(){return"undefined"!=typeof window&&"undefined"!=typeof window.process&&"renderer"===window.process.type||("undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||"undefined"!=typeof window&&window.console&&(console.firebug||console.exception&&console.table)||navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function a(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+n.humanize(this.diff),t){var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var i=0,a=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(a=i))}),e.splice(a,0,r)}}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?n.storage.removeItem("debug"):n.storage.debug=e}catch(e){}}function u(){try{return n.storage.debug}catch(e){}if("undefined"!=typeof r&&"env"in r)return r.env.DEBUG}function l(){try{return window.localStorage}catch(e){}}n=t.exports=e("./debug"),n.log=s,n.formatArgs=a,n.save=o,n.load=u,n.useColors=i,n.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:l(),n.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],n.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},n.enable(u()),"undefined"!=typeof window&&(window.debug=n)}).call(this,e("_process"))},{"./debug":279,_process:13}],279:[function(e,t,n){function r(e){var t,r=0;for(t in e)r=(r<<5)-r+e.charCodeAt(t),r|=0;return n.colors[Math.abs(r)%n.colors.length]}function i(e){function t(){if(t.enabled){var e=t,r=+new Date,i=r-(l||r);e.diff=i,e.prev=l,e.curr=r,l=r;for(var a=new Array(arguments.length),s=0;s<a.length;s++)a[s]=arguments[s];a[0]=n.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");var o=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,function(t,r){if("%%"===t)return t;o++;var i=n.formatters[r];if("function"==typeof i){var s=a[o];t=i.call(e,s),a.splice(o,1),o--}return t}),n.formatArgs.call(e,a);var u=t.log||n.log||console.log.bind(console);u.apply(e,a)}}return t.namespace=e,t.enabled=n.enabled(e),t.useColors=n.useColors(),t.color=r(e),"function"==typeof n.init&&n.init(t),t}function a(e){n.save(e);for(var t=(e||"").split(/[\s,]+/),r=t.length,i=0;i<r;i++)t[i]&&(e=t[i].replace(/\*/g,".*?"),"-"===e[0]?n.skips.push(new RegExp("^"+e.substr(1)+"$")):n.names.push(new RegExp("^"+e+"$")))}function s(){n.enable("")}function o(e){var t,r;for(t=0,r=n.skips.length;t<r;t++)if(n.skips[t].test(e))return!1;for(t=0,r=n.names.length;t<r;t++)if(n.names[t].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}n=t.exports=i.debug=i.default=i,n.coerce=u,n.disable=s,n.enable=a,n.enabled=o,n.humanize=e("ms"),n.names=[],n.skips=[],n.formatters={};var l},{ms:277}],280:[function(e,t,n){(function(r){function i(){return"colors"in n.inspectOpts?Boolean(n.inspectOpts.colors):p.isatty(h)}function a(e){var t=this.namespace,r=this.useColors;if(r){var i=this.color,a=" [3"+i+";1m"+t+" ";e[0]=a+e[0].split("\n").join("\n"+a),e.push("[3"+i+"m+"+n.humanize(this.diff)+"")}else e[0]=(new Date).toUTCString()+" "+t+" "+e[0]}function s(){return d.write(f.format.apply(f,arguments)+"\n")}function o(e){null==e?delete r.env.DEBUG:r.env.DEBUG=e}function u(){return r.env.DEBUG}function l(t){var n,i=r.binding("tty_wrap");switch(i.guessHandleType(t)){case"TTY":n=new p.WriteStream(t),n._type="tty",n._handle&&n._handle.unref&&n._handle.unref();break;case"FILE":var a=e("fs");n=new a.SyncWriteStream(t,{autoClose:!1}),n._type="fs";break;case"PIPE":case"TCP":var s=e("net");n=new s.Socket({fd:t,readable:!1,writable:!0}),n.readable=!1,n.read=null,n._type="pipe",n._handle&&n._handle.unref&&n._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return n.fd=t,n._isStdio=!0,n}function c(e){e.inspectOpts=f._extend({},n.inspectOpts)}var p=e("tty"),f=e("util");n=t.exports=e("./debug"),n.init=c,n.log=s,n.formatArgs=a,n.save=o,n.load=u,n.useColors=i,n.colors=[6,2,3,4,5,1],n.inspectOpts=Object.keys(r.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var n=t.substring(6).toLowerCase().replace(/_([a-z])/,function(e,t){return t.toUpperCase()}),i=r.env[t];return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[n]=i,e},{});var h=parseInt(r.env.DEBUG_FD,10)||2,d=1===h?r.stdout:2===h?r.stderr:l(h);n.formatters.o=function(e){return this.inspectOpts.colors=this.useColors,f.inspect(e,this.inspectOpts).replace(/\s*\n\s*/g," ")},n.formatters.O=function(e){return this.inspectOpts.colors=this.useColors,f.inspect(e,this.inspectOpts)},n.enable(u())}).call(this,e("_process"))},{"./debug":279,_process:13,fs:1,net:1,tty:32,util:35}],281:[function(e,t,n){var r="object"==typeof n?n:{};r.parse=function(){"use strict";var e,t,n,r,i,a,s={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},o=[" ","\t","\r","\n","\v","\f"," ","\ufeff"],u=function(e){return""===e?"EOF":"'"+e+"'"},l=function(r){var a=new SyntaxError;throw a.message=r+" at line "+t+" column "+n+" of the JSON5 data. Still to read: "+JSON.stringify(i.substring(e-1,e+19)),a.at=e,a.lineNumber=t,a.columnNumber=n,a},c=function(a){return a&&a!==r&&l("Expected "+u(a)+" instead of "+u(r)),r=i.charAt(e),e++,n++,("\n"===r||"\r"===r&&"\n"!==p())&&(t++,n=0),r},p=function(){return i.charAt(e)},f=function(){var e=r;for("_"!==r&&"$"!==r&&(r<"a"||r>"z")&&(r<"A"||r>"Z")&&l("Bad identifier as unquoted key");c()&&("_"===r||"$"===r||r>="a"&&r<="z"||r>="A"&&r<="Z"||r>="0"&&r<="9");)e+=r;return e},h=function(){var e,t="",n="",i=10;if("-"!==r&&"+"!==r||(t=r,c(r)),"I"===r)return e=v(),("number"!=typeof e||isNaN(e))&&l("Unexpected word for number"),"-"===t?-e:e;if("N"===r)return e=v(),isNaN(e)||l("expected word to be NaN"),e;switch("0"===r&&(n+=r,c(),"x"===r||"X"===r?(n+=r,c(),i=16):r>="0"&&r<="9"&&l("Octal literal")),i){case 10:for(;r>="0"&&r<="9";)n+=r,c();if("."===r)for(n+=".";c()&&r>="0"&&r<="9";)n+=r;if("e"===r||"E"===r)for(n+=r,c(),"-"!==r&&"+"!==r||(n+=r,c());r>="0"&&r<="9";)n+=r,c();break;case 16:for(;r>="0"&&r<="9"||r>="A"&&r<="F"||r>="a"&&r<="f";)n+=r,c()}return e="-"===t?-n:+n,isFinite(e)?e:void l("Bad number")},d=function(){var e,t,n,i,a="";if('"'===r||"'"===r)for(n=r;c();){if(r===n)return c(),a;if("\\"===r)if(c(),"u"===r){for(i=0,t=0;t<4&&(e=parseInt(c(),16),isFinite(e));t+=1)i=16*i+e;a+=String.fromCharCode(i)}else if("\r"===r)"\n"===p()&&c();else{if("string"!=typeof s[r])break;a+=s[r]}else{if("\n"===r)break;a+=r}}l("Bad string")},y=function(){"/"!==r&&l("Not an inline comment");do if(c(),"\n"===r||"\r"===r)return void c();while(r)},m=function(){"*"!==r&&l("Not a block comment");do for(c();"*"===r;)if(c("*"),"/"===r)return void c("/");while(r);l("Unterminated block comment")},b=function(){"/"!==r&&l("Not a comment"),c("/"),"/"===r?y():"*"===r?m():l("Unrecognized comment")},g=function(){for(;r;)if("/"===r)b();else{if(!(o.indexOf(r)>=0))return;c()}},v=function(){switch(r){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null;case"I":return c("I"),c("n"),c("f"),c("i"),c("n"),c("i"),c("t"),c("y"),1/0;case"N":return c("N"),c("a"),c("N"),NaN}l("Unexpected "+u(r))},x=function(){var e=[];if("["===r)for(c("["),g();r;){if("]"===r)return c("]"),e;if(","===r?l("Missing array element"):e.push(a()),g(),","!==r)return c("]"),e;c(","),g()}l("Bad array")},_=function(){var e,t={};if("{"===r)for(c("{"),g();r;){if("}"===r)return c("}"),t;if(e='"'===r||"'"===r?d():f(),g(),c(":"),t[e]=a(),g(),","!==r)return c("}"),t;c(","),g()}l("Bad object")};return a=function(){switch(g(),r){case"{":return _();case"[":return x();case'"':case"'":return d();case"-":case"+":case".":return h();default:return r>="0"&&r<="9"?h():v()}},function(s,o){var u;return i=String(s),e=0,t=1,n=1,r=" ",u=a(),g(),r&&l("Syntax error"),"function"==typeof o?function e(t,n){var r,i,a=t[n];if(a&&"object"==typeof a)for(r in a)Object.prototype.hasOwnProperty.call(a,r)&&(i=e(a,r),void 0!==i?a[r]=i:delete a[r]);return o.call(t,n,a)}({"":u},""):u}}(),r.stringify=function(e,t,n){function i(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}function s(e){if("string"!=typeof e)return!1;if(!a(e[0]))return!1;for(var t=1,n=e.length;t<n;){if(!i(e[t]))return!1;t++}return!0}function o(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function u(e){return"[object Date]"===Object.prototype.toString.call(e)}function l(e){for(var t=0;t<y.length;t++)if(y[t]===e)throw new TypeError("Converting circular structure to JSON")}function c(e,t,n){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var r=n?"":"\n",i=0;i<t;i++)r+=e;return r}function p(e){return m.lastIndex=0,m.test(e)?'"'+e.replace(m,function(e){var t=b[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function f(e,t,n){var r,i,a=h(e,t,n);switch(a&&!u(a)&&(a=a.valueOf()),typeof a){case"boolean":return a.toString();case"number":return isNaN(a)||!isFinite(a)?"null":a.toString();case"string":return p(a.toString());case"object":if(null===a)return"null";if(o(a)){l(a),r="[",y.push(a);for(var m=0;m<a.length;m++)i=f(a,m,!1),r+=c(d,y.length),r+=null===i||"undefined"==typeof i?"null":i,m<a.length-1?r+=",":d&&(r+="\n");
+y.pop(),a.length&&(r+=c(d,y.length,!0)),r+="]"}else{l(a),r="{";var b=!1;y.push(a);for(var g in a)if(a.hasOwnProperty(g)){var v=f(a,g,!1);n=!1,"undefined"!=typeof v&&null!==v&&(r+=c(d,y.length),b=!0,t=s(g)?g:p(g),r+=t+":"+(d?" ":"")+v+",")}y.pop(),r=b?r.substring(0,r.length-1)+c(d,y.length)+"}":"{}"}return r;default:return}}if(t&&"function"!=typeof t&&!o(t))throw new Error("Replacer must be a function or an array");var h=function(e,n,r){var i=e[n];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,n,i):t?r||o(e)||t.indexOf(n)>=0?i:void 0:i};r.isWord=s;var d,y=[];n&&("string"==typeof n?d=n:"number"==typeof n&&n>=0&&(d=c(" ",n,!0)));var m=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},g={"":e};return void 0===e?h(g,"",!0):f(g,"",!0)}},{}],282:[function(e,t,n){var r=e("./_getNative"),i=e("./_root"),a=r(i,"DataView");t.exports=a},{"./_getNative":391,"./_root":436}],283:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=e("./_hashClear"),a=e("./_hashDelete"),s=e("./_hashGet"),o=e("./_hashHas"),u=e("./_hashSet");r.prototype.clear=i,r.prototype.delete=a,r.prototype.get=s,r.prototype.has=o,r.prototype.set=u,t.exports=r},{"./_hashClear":400,"./_hashDelete":401,"./_hashGet":402,"./_hashHas":403,"./_hashSet":404}],284:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=e("./_listCacheClear"),a=e("./_listCacheDelete"),s=e("./_listCacheGet"),o=e("./_listCacheHas"),u=e("./_listCacheSet");r.prototype.clear=i,r.prototype.delete=a,r.prototype.get=s,r.prototype.has=o,r.prototype.set=u,t.exports=r},{"./_listCacheClear":416,"./_listCacheDelete":417,"./_listCacheGet":418,"./_listCacheHas":419,"./_listCacheSet":420}],285:[function(e,t,n){var r=e("./_getNative"),i=e("./_root"),a=r(i,"Map");t.exports=a},{"./_getNative":391,"./_root":436}],286:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=e("./_mapCacheClear"),a=e("./_mapCacheDelete"),s=e("./_mapCacheGet"),o=e("./_mapCacheHas"),u=e("./_mapCacheSet");r.prototype.clear=i,r.prototype.delete=a,r.prototype.get=s,r.prototype.has=o,r.prototype.set=u,t.exports=r},{"./_mapCacheClear":421,"./_mapCacheDelete":422,"./_mapCacheGet":423,"./_mapCacheHas":424,"./_mapCacheSet":425}],287:[function(e,t,n){var r=e("./_getNative"),i=e("./_root"),a=r(i,"Promise");t.exports=a},{"./_getNative":391,"./_root":436}],288:[function(e,t,n){var r=e("./_getNative"),i=e("./_root"),a=r(i,"Set");t.exports=a},{"./_getNative":391,"./_root":436}],289:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}var i=e("./_MapCache"),a=e("./_setCacheAdd"),s=e("./_setCacheHas");r.prototype.add=r.prototype.push=a,r.prototype.has=s,t.exports=r},{"./_MapCache":286,"./_setCacheAdd":437,"./_setCacheHas":438}],290:[function(e,t,n){function r(e){var t=this.__data__=new i(e);this.size=t.size}var i=e("./_ListCache"),a=e("./_stackClear"),s=e("./_stackDelete"),o=e("./_stackGet"),u=e("./_stackHas"),l=e("./_stackSet");r.prototype.clear=a,r.prototype.delete=s,r.prototype.get=o,r.prototype.has=u,r.prototype.set=l,t.exports=r},{"./_ListCache":284,"./_stackClear":442,"./_stackDelete":443,"./_stackGet":444,"./_stackHas":445,"./_stackSet":446}],291:[function(e,t,n){var r=e("./_root"),i=r.Symbol;t.exports=i},{"./_root":436}],292:[function(e,t,n){var r=e("./_root"),i=r.Uint8Array;t.exports=i},{"./_root":436}],293:[function(e,t,n){var r=e("./_getNative"),i=e("./_root"),a=r(i,"WeakMap");t.exports=a},{"./_getNative":391,"./_root":436}],294:[function(e,t,n){function r(e,t){return e.set(t[0],t[1]),e}t.exports=r},{}],295:[function(e,t,n){function r(e,t){return e.add(t),e}t.exports=r},{}],296:[function(e,t,n){function r(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}t.exports=r},{}],297:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=r},{}],298:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length,i=0,a=[];++n<r;){var s=e[n];t(s,n,e)&&(a[i++]=s)}return a}t.exports=r},{}],299:[function(e,t,n){function r(e,t){var n=null==e?0:e.length;return!!n&&i(e,t,0)>-1}var i=e("./_baseIndexOf");t.exports=r},{"./_baseIndexOf":326}],300:[function(e,t,n){function r(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}t.exports=r},{}],301:[function(e,t,n){function r(e,t){var n=s(e),r=!n&&a(e),c=!n&&!r&&o(e),f=!n&&!r&&!c&&l(e),h=n||r||c||f,d=h?i(e.length,String):[],y=d.length;for(var m in e)!t&&!p.call(e,m)||h&&("length"==m||c&&("offset"==m||"parent"==m)||f&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||u(m,y))||d.push(m);return d}var i=e("./_baseTimes"),a=e("./isArguments"),s=e("./isArray"),o=e("./isBuffer"),u=e("./_isIndex"),l=e("./isTypedArray"),c=Object.prototype,p=c.hasOwnProperty;t.exports=r},{"./_baseTimes":351,"./_isIndex":409,"./isArguments":474,"./isArray":475,"./isBuffer":479,"./isTypedArray":490}],302:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=r},{}],303:[function(e,t,n){function r(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}t.exports=r},{}],304:[function(e,t,n){function r(e,t,n,r){var i=-1,a=null==e?0:e.length;for(r&&a&&(n=e[++i]);++i<a;)n=t(n,e[i],i,e);return n}t.exports=r},{}],305:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}t.exports=r},{}],306:[function(e,t,n){function r(e){return e.split("")}t.exports=r},{}],307:[function(e,t,n){function r(e,t,n){(void 0===n||a(e[t],n))&&(void 0!==n||t in e)||i(e,t,n)}var i=e("./_baseAssignValue"),a=e("./eq");t.exports=r},{"./_baseAssignValue":312,"./eq":462}],308:[function(e,t,n){function r(e,t,n){var r=e[t];o.call(e,t)&&a(r,n)&&(void 0!==n||t in e)||i(e,t,n)}var i=e("./_baseAssignValue"),a=e("./eq"),s=Object.prototype,o=s.hasOwnProperty;t.exports=r},{"./_baseAssignValue":312,"./eq":462}],309:[function(e,t,n){function r(e,t){for(var n=e.length;n--;)if(i(e[n][0],t))return n;return-1}var i=e("./eq");t.exports=r},{"./eq":462}],310:[function(e,t,n){function r(e,t){return e&&i(t,a(t),e)}var i=e("./_copyObject"),a=e("./keys");t.exports=r},{"./_copyObject":372,"./keys":491}],311:[function(e,t,n){function r(e,t){return e&&i(t,a(t),e)}var i=e("./_copyObject"),a=e("./keysIn");t.exports=r},{"./_copyObject":372,"./keysIn":492}],312:[function(e,t,n){function r(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var i=e("./_defineProperty");t.exports=r},{"./_defineProperty":382}],313:[function(e,t,n){function r(e,t,n){return e===e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}t.exports=r},{}],314:[function(e,t,n){function r(e,t,n,w,k,F){var T,B=t&A,O=t&D,N=t&C;if(n&&(T=k?n(e,w,k,F):n(e)),void 0!==T)return T;if(!_(e))return e;var L=v(e);if(L){if(T=m(e),!B)return c(e,T)}else{var M=y(e),R=M==P||M==j;if(x(e))return l(e,B);if(M==I||M==S||R&&!k){if(T=O||R?{}:g(e),!B)return O?f(e,u(T,e)):p(e,o(T,e))}else{if(!Q[M])return k?e:{};T=b(e,M,r,B)}}F||(F=new i);var U=F.get(e);if(U)return U;F.set(e,T);var V=N?O?d:h:O?keysIn:E,G=L?void 0:V(e);return a(G||e,function(i,a){G&&(a=i,i=e[a]),s(T,a,r(i,t,n,a,e,F))}),T}var i=e("./_Stack"),a=e("./_arrayEach"),s=e("./_assignValue"),o=e("./_baseAssign"),u=e("./_baseAssignIn"),l=e("./_cloneBuffer"),c=e("./_copyArray"),p=e("./_copySymbols"),f=e("./_copySymbolsIn"),h=e("./_getAllKeys"),d=e("./_getAllKeysIn"),y=e("./_getTag"),m=e("./_initCloneArray"),b=e("./_initCloneByTag"),g=e("./_initCloneObject"),v=e("./isArray"),x=e("./isBuffer"),_=e("./isObject"),E=e("./keys"),A=1,D=2,C=4,S="[object Arguments]",w="[object Array]",k="[object Boolean]",F="[object Date]",T="[object Error]",P="[object Function]",j="[object GeneratorFunction]",B="[object Map]",O="[object Number]",I="[object Object]",N="[object RegExp]",L="[object Set]",M="[object String]",R="[object Symbol]",U="[object WeakMap]",V="[object ArrayBuffer]",G="[object DataView]",q="[object Float32Array]",K="[object Float64Array]",X="[object Int8Array]",J="[object Int16Array]",W="[object Int32Array]",z="[object Uint8Array]",Y="[object Uint8ClampedArray]",H="[object Uint16Array]",$="[object Uint32Array]",Q={};Q[S]=Q[w]=Q[V]=Q[G]=Q[k]=Q[F]=Q[q]=Q[K]=Q[X]=Q[J]=Q[W]=Q[B]=Q[O]=Q[I]=Q[N]=Q[L]=Q[M]=Q[R]=Q[z]=Q[Y]=Q[H]=Q[$]=!0,Q[T]=Q[P]=Q[U]=!1,t.exports=r},{"./_Stack":290,"./_arrayEach":297,"./_assignValue":308,"./_baseAssign":310,"./_baseAssignIn":311,"./_cloneBuffer":362,"./_copyArray":371,"./_copySymbols":373,"./_copySymbolsIn":374,"./_getAllKeys":387,"./_getAllKeysIn":388,"./_getTag":396,"./_initCloneArray":405,"./_initCloneByTag":406,"./_initCloneObject":407,"./isArray":475,"./isBuffer":479,"./isObject":484,"./keys":491}],315:[function(e,t,n){var r=e("./isObject"),i=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();t.exports=a},{"./isObject":484}],316:[function(e,t,n){var r=e("./_baseForOwn"),i=e("./_createBaseEach"),a=i(r);t.exports=a},{"./_baseForOwn":320,"./_createBaseEach":377}],317:[function(e,t,n){function r(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}t.exports=r},{}],318:[function(e,t,n){function r(e,t,n,s,o){var u=-1,l=e.length;for(n||(n=a),o||(o=[]);++u<l;){var c=e[u];t>0&&n(c)?t>1?r(c,t-1,n,s,o):i(o,c):s||(o[o.length]=c)}return o}var i=e("./_arrayPush"),a=e("./_isFlattenable");t.exports=r},{"./_arrayPush":303,"./_isFlattenable":408}],319:[function(e,t,n){var r=e("./_createBaseFor"),i=r();t.exports=i},{"./_createBaseFor":378}],320:[function(e,t,n){function r(e,t){return e&&i(e,t,a)}var i=e("./_baseFor"),a=e("./keys");t.exports=r},{"./_baseFor":319,"./keys":491}],321:[function(e,t,n){function r(e,t){t=i(t,e);for(var n=0,r=t.length;null!=e&&n<r;)e=e[a(t[n++])];return n&&n==r?e:void 0}var i=e("./_castPath"),a=e("./_toKey");t.exports=r},{"./_castPath":358,"./_toKey":450}],322:[function(e,t,n){function r(e,t,n){var r=t(e);return a(e)?r:i(r,n(e))}var i=e("./_arrayPush"),a=e("./isArray");t.exports=r},{"./_arrayPush":303,"./isArray":475}],323:[function(e,t,n){function r(e){return null==e?void 0===e?u:o:l&&l in Object(e)?a(e):s(e)}var i=e("./_Symbol"),a=e("./_getRawTag"),s=e("./_objectToString"),o="[object Null]",u="[object Undefined]",l=i?i.toStringTag:void 0;t.exports=r},{"./_Symbol":291,"./_getRawTag":393,"./_objectToString":433}],324:[function(e,t,n){function r(e,t){return null!=e&&a.call(e,t)}var i=Object.prototype,a=i.hasOwnProperty;t.exports=r},{}],325:[function(e,t,n){function r(e,t){return null!=e&&t in Object(e)}t.exports=r},{}],326:[function(e,t,n){function r(e,t,n){return t===t?s(e,t,n):i(e,a,n)}var i=e("./_baseFindIndex"),a=e("./_baseIsNaN"),s=e("./_strictIndexOf");t.exports=r},{"./_baseFindIndex":317,"./_baseIsNaN":331,"./_strictIndexOf":447}],327:[function(e,t,n){function r(e){return a(e)&&i(e)==s}var i=e("./_baseGetTag"),a=e("./isObjectLike"),s="[object Arguments]";t.exports=r},{"./_baseGetTag":323,"./isObjectLike":485}],328:[function(e,t,n){function r(e,t,n,s,o){return e===t||(null==e||null==t||!a(e)&&!a(t)?e!==e&&t!==t:i(e,t,n,s,r,o))}var i=e("./_baseIsEqualDeep"),a=e("./isObjectLike");t.exports=r},{"./_baseIsEqualDeep":329,"./isObjectLike":485}],329:[function(e,t,n){function r(e,t,n,r,m,g){var v=l(e),x=l(t),_=v?d:u(e),E=x?d:u(t);_=_==h?y:_,E=E==h?y:E;var A=_==y,D=E==y,C=_==E;if(C&&c(e)){if(!c(t))return!1;v=!0,A=!1}if(C&&!A)return g||(g=new i),v||p(e)?a(e,t,n,r,m,g):s(e,t,_,n,r,m,g);if(!(n&f)){var S=A&&b.call(e,"__wrapped__"),w=D&&b.call(t,"__wrapped__");if(S||w){var k=S?e.value():e,F=w?t.value():t;return g||(g=new i),m(k,F,n,r,g)}}return!!C&&(g||(g=new i),o(e,t,n,r,m,g))}var i=e("./_Stack"),a=e("./_equalArrays"),s=e("./_equalByTag"),o=e("./_equalObjects"),u=e("./_getTag"),l=e("./isArray"),c=e("./isBuffer"),p=e("./isTypedArray"),f=1,h="[object Arguments]",d="[object Array]",y="[object Object]",m=Object.prototype,b=m.hasOwnProperty;t.exports=r},{"./_Stack":290,"./_equalArrays":383,"./_equalByTag":384,"./_equalObjects":385,"./_getTag":396,"./isArray":475,"./isBuffer":479,"./isTypedArray":490}],330:[function(e,t,n){function r(e,t,n,r){var u=n.length,l=u,c=!r;if(null==e)return!l;for(e=Object(e);u--;){var p=n[u];if(c&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<l;){p=n[u];var f=p[0],h=e[f],d=p[1];if(c&&p[2]){if(void 0===h&&!(f in e))return!1}else{var y=new i;if(r)var m=r(h,d,f,e,t,y);if(!(void 0===m?a(d,h,s|o,r,y):m))return!1}}return!0}var i=e("./_Stack"),a=e("./_baseIsEqual"),s=1,o=2;t.exports=r},{"./_Stack":290,"./_baseIsEqual":328}],331:[function(e,t,n){function r(e){return e!==e}t.exports=r},{}],332:[function(e,t,n){function r(e){if(!s(e)||a(e))return!1;var t=i(e)?d:l;return t.test(o(e))}var i=e("./isFunction"),a=e("./_isMasked"),s=e("./isObject"),o=e("./_toSource"),u=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,p=Object.prototype,f=c.toString,h=p.hasOwnProperty,d=RegExp("^"+f.call(h).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},{"./_isMasked":413,"./_toSource":451,"./isFunction":480,"./isObject":484}],333:[function(e,t,n){function r(e){return a(e)&&i(e)==s}var i=e("./_baseGetTag"),a=e("./isObjectLike"),s="[object RegExp]";t.exports=r},{"./_baseGetTag":323,"./isObjectLike":485}],334:[function(e,t,n){function r(e){return s(e)&&a(e.length)&&!!P[i(e)]}var i=e("./_baseGetTag"),a=e("./isLength"),s=e("./isObjectLike"),o="[object Arguments]",u="[object Array]",l="[object Boolean]",c="[object Date]",p="[object Error]",f="[object Function]",h="[object Map]",d="[object Number]",y="[object Object]",m="[object RegExp]",b="[object Set]",g="[object String]",v="[object WeakMap]",x="[object ArrayBuffer]",_="[object DataView]",E="[object Float32Array]",A="[object Float64Array]",D="[object Int8Array]",C="[object Int16Array]",S="[object Int32Array]",w="[object Uint8Array]",k="[object Uint8ClampedArray]",F="[object Uint16Array]",T="[object Uint32Array]",P={};P[E]=P[A]=P[D]=P[C]=P[S]=P[w]=P[k]=P[F]=P[T]=!0,P[o]=P[u]=P[x]=P[l]=P[_]=P[c]=P[p]=P[f]=P[h]=P[d]=P[y]=P[m]=P[b]=P[g]=P[v]=!1,t.exports=r},{"./_baseGetTag":323,"./isLength":482,"./isObjectLike":485}],335:[function(e,t,n){function r(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?o(e)?a(e[0],e[1]):i(e):u(e)}var i=e("./_baseMatches"),a=e("./_baseMatchesProperty"),s=e("./identity"),o=e("./isArray"),u=e("./property");t.exports=r},{"./_baseMatches":339,"./_baseMatchesProperty":340,"./identity":472,"./isArray":475,"./property":497}],336:[function(e,t,n){function r(e){if(!i(e))return a(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}var i=e("./_isPrototype"),a=e("./_nativeKeys"),s=Object.prototype,o=s.hasOwnProperty;t.exports=r},{"./_isPrototype":414,"./_nativeKeys":430}],337:[function(e,t,n){function r(e){if(!i(e))return s(e);var t=a(e),n=[];for(var r in e)("constructor"!=r||!t&&u.call(e,r))&&n.push(r);return n}var i=e("./isObject"),a=e("./_isPrototype"),s=e("./_nativeKeysIn"),o=Object.prototype,u=o.hasOwnProperty;t.exports=r},{"./_isPrototype":414,"./_nativeKeysIn":431,"./isObject":484}],338:[function(e,t,n){function r(e,t){var n=-1,r=a(e)?Array(e.length):[];return i(e,function(e,i,a){r[++n]=t(e,i,a)}),r}var i=e("./_baseEach"),a=e("./isArrayLike");t.exports=r},{"./_baseEach":316,"./isArrayLike":476}],339:[function(e,t,n){function r(e){var t=a(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(n){return n===e||i(n,e,t)}}var i=e("./_baseIsMatch"),a=e("./_getMatchData"),s=e("./_matchesStrictComparable");t.exports=r},{"./_baseIsMatch":330,"./_getMatchData":390,"./_matchesStrictComparable":427}],340:[function(e,t,n){function r(e,t){return o(e)&&u(t)?l(c(e),t):function(n){var r=a(n,e);return void 0===r&&r===t?s(n,e):i(t,r,p|f)}}var i=e("./_baseIsEqual"),a=e("./get"),s=e("./hasIn"),o=e("./_isKey"),u=e("./_isStrictComparable"),l=e("./_matchesStrictComparable"),c=e("./_toKey"),p=1,f=2;t.exports=r},{"./_baseIsEqual":328,"./_isKey":411,"./_isStrictComparable":415,"./_matchesStrictComparable":427,"./_toKey":450,"./get":469,"./hasIn":471}],341:[function(e,t,n){function r(e,t,n,c,p){e!==t&&s(t,function(s,l){if(u(s))p||(p=new i),o(e,t,l,n,r,c,p);else{var f=c?c(e[l],s,l+"",e,t,p):void 0;void 0===f&&(f=s),a(e,l,f)}},l)}var i=e("./_Stack"),a=e("./_assignMergeValue"),s=e("./_baseFor"),o=e("./_baseMergeDeep"),u=e("./isObject"),l=e("./keysIn");t.exports=r},{"./_Stack":290,"./_assignMergeValue":307,"./_baseFor":319,"./_baseMergeDeep":342,"./isObject":484,"./keysIn":492}],342:[function(e,t,n){function r(e,t,n,r,g,v,x){var _=e[n],E=t[n],A=x.get(E);if(A)return void i(e,n,A);var D=v?v(_,E,n+"",e,t,x):void 0,C=void 0===D;if(C){var S=c(E),w=!S&&f(E),k=!S&&!w&&m(E);D=E,S||w||k?c(_)?D=_:p(_)?D=o(_):w?(C=!1,D=a(E,!0)):k?(C=!1,D=s(E,!0)):D=[]:y(E)||l(E)?(D=_,l(_)?D=b(_):(!d(_)||r&&h(_))&&(D=u(E))):C=!1}C&&(x.set(E,D),g(D,E,r,v,x),x.delete(E)),i(e,n,D)}var i=e("./_assignMergeValue"),a=e("./_cloneBuffer"),s=e("./_cloneTypedArray"),o=e("./_copyArray"),u=e("./_initCloneObject"),l=e("./isArguments"),c=e("./isArray"),p=e("./isArrayLikeObject"),f=e("./isBuffer"),h=e("./isFunction"),d=e("./isObject"),y=e("./isPlainObject"),m=e("./isTypedArray"),b=e("./toPlainObject");t.exports=r},{"./_assignMergeValue":307,"./_cloneBuffer":362,"./_cloneTypedArray":368,"./_copyArray":371,"./_initCloneObject":407,"./isArguments":474,"./isArray":475,"./isArrayLikeObject":477,"./isBuffer":479,"./isFunction":480,"./isObject":484,"./isPlainObject":486,"./isTypedArray":490,"./toPlainObject":506}],343:[function(e,t,n){function r(e,t,n){var r=-1;t=i(t.length?t:[c],u(a));var p=s(e,function(e,n,a){var s=i(t,function(t){return t(e)});return{criteria:s,index:++r,value:e}});return o(p,function(e,t){return l(e,t,n)})}var i=e("./_arrayMap"),a=e("./_baseIteratee"),s=e("./_baseMap"),o=e("./_baseSortBy"),u=e("./_baseUnary"),l=e("./_compareMultiple"),c=e("./identity");t.exports=r},{"./_arrayMap":302,"./_baseIteratee":335,"./_baseMap":338,"./_baseSortBy":350,"./_baseUnary":353,"./_compareMultiple":370,"./identity":472}],344:[function(e,t,n){function r(e){return function(t){return null==t?void 0:t[e]}}t.exports=r},{}],345:[function(e,t,n){function r(e){return function(t){return i(t,e)}}var i=e("./_baseGet");t.exports=r},{"./_baseGet":321}],346:[function(e,t,n){function r(e,t){var n="";if(!e||t<1||t>i)return n;do t%2&&(n+=e),t=a(t/2),t&&(e+=e);while(t);return n}var i=9007199254740991,a=Math.floor;t.exports=r},{}],347:[function(e,t,n){function r(e,t){return s(a(e,t,i),e+"")}var i=e("./identity"),a=e("./_overRest"),s=e("./_setToString");t.exports=r},{"./_overRest":435,"./_setToString":440,"./identity":472}],348:[function(e,t,n){var r=e("./constant"),i=e("./_defineProperty"),a=e("./identity"),s=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;t.exports=s},{"./_defineProperty":382,"./constant":459,"./identity":472}],349:[function(e,t,n){function r(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}t.exports=r},{}],350:[function(e,t,n){function r(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}t.exports=r},{}],351:[function(e,t,n){function r(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}t.exports=r},{}],352:[function(e,t,n){function r(e){if("string"==typeof e)return e;if(s(e))return a(e,r)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=e("./_Symbol"),a=e("./_arrayMap"),s=e("./isArray"),o=e("./isSymbol"),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;t.exports=r},{"./_Symbol":291,"./_arrayMap":302,"./isArray":475,"./isSymbol":489}],353:[function(e,t,n){function r(e){return function(t){return e(t)}}t.exports=r},{}],354:[function(e,t,n){function r(e,t,n){var r=-1,p=a,f=e.length,h=!0,d=[],y=d;if(n)h=!1,p=s;else if(f>=c){var m=t?null:u(e);if(m)return l(m);h=!1,p=o,y=new i}else y=t?[]:d;e:for(;++r<f;){var b=e[r],g=t?t(b):b;if(b=n||0!==b?b:0,h&&g===g){for(var v=y.length;v--;)if(y[v]===g)continue e;t&&y.push(g),d.push(b)}else p(y,g,n)||(y!==d&&y.push(g),d.push(b))}return d}var i=e("./_SetCache"),a=e("./_arrayIncludes"),s=e("./_arrayIncludesWith"),o=e("./_cacheHas"),u=e("./_createSet"),l=e("./_setToArray"),c=200;t.exports=r},{"./_SetCache":289,"./_arrayIncludes":299,"./_arrayIncludesWith":300,"./_cacheHas":356,"./_createSet":380,"./_setToArray":439}],355:[function(e,t,n){function r(e,t){return i(t,function(t){return e[t]})}var i=e("./_arrayMap");t.exports=r},{"./_arrayMap":302}],356:[function(e,t,n){function r(e,t){return e.has(t)}t.exports=r},{}],357:[function(e,t,n){function r(e){return"function"==typeof e?e:i}var i=e("./identity");t.exports=r},{"./identity":472}],358:[function(e,t,n){function r(e,t){return i(e)?e:a(e,t)?[e]:s(o(e))}var i=e("./isArray"),a=e("./_isKey"),s=e("./_stringToPath"),o=e("./toString");t.exports=r},{"./_isKey":411,"./_stringToPath":449,"./isArray":475,"./toString":507}],359:[function(e,t,n){function r(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:i(e,t,n)}var i=e("./_baseSlice");t.exports=r},{"./_baseSlice":349}],360:[function(e,t,n){function r(e,t){for(var n=e.length;n--&&i(t,e[n],0)>-1;);return n}var i=e("./_baseIndexOf");t.exports=r},{"./_baseIndexOf":326}],361:[function(e,t,n){function r(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=e("./_Uint8Array");t.exports=r},{"./_Uint8Array":292}],362:[function(e,t,n){function r(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}var i=e("./_root"),a="object"==typeof n&&n&&!n.nodeType&&n,s=a&&"object"==typeof t&&t&&!t.nodeType&&t,o=s&&s.exports===a,u=o?i.Buffer:void 0,l=u?u.allocUnsafe:void 0;t.exports=r},{"./_root":436}],363:[function(e,t,n){function r(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var i=e("./_cloneArrayBuffer");t.exports=r},{"./_cloneArrayBuffer":361}],364:[function(e,t,n){function r(e,t,n){var r=t?n(s(e),o):s(e);return a(r,i,new e.constructor)}var i=e("./_addMapEntry"),a=e("./_arrayReduce"),s=e("./_mapToArray"),o=1;t.exports=r},{"./_addMapEntry":294,"./_arrayReduce":304,"./_mapToArray":426}],365:[function(e,t,n){function r(e){var t=new e.constructor(e.source,i.exec(e));return t.lastIndex=e.lastIndex,t}var i=/\w*$/;t.exports=r},{}],366:[function(e,t,n){function r(e,t,n){var r=t?n(s(e),o):s(e);return a(r,i,new e.constructor)}var i=e("./_addSetEntry"),a=e("./_arrayReduce"),s=e("./_setToArray"),o=1;t.exports=r},{"./_addSetEntry":295,"./_arrayReduce":304,"./_setToArray":439}],367:[function(e,t,n){function r(e){return s?Object(s.call(e)):{}}var i=e("./_Symbol"),a=i?i.prototype:void 0,s=a?a.valueOf:void 0;t.exports=r},{"./_Symbol":291}],368:[function(e,t,n){function r(e,t){var n=t?i(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var i=e("./_cloneArrayBuffer");t.exports=r},{"./_cloneArrayBuffer":361}],369:[function(e,t,n){function r(e,t){if(e!==t){var n=void 0!==e,r=null===e,a=e===e,s=i(e),o=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!s&&e>t||s&&o&&l&&!u&&!c||r&&o&&l||!n&&l||!a)return 1;if(!r&&!s&&!c&&e<t||c&&n&&a&&!r&&!s||u&&n&&a||!o&&a||!l)return-1}return 0}var i=e("./isSymbol");t.exports=r},{"./isSymbol":489}],370:[function(e,t,n){function r(e,t,n){for(var r=-1,a=e.criteria,s=t.criteria,o=a.length,u=n.length;++r<o;){var l=i(a[r],s[r]);if(l){if(r>=u)return l;var c=n[r];return l*("desc"==c?-1:1)}}return e.index-t.index}var i=e("./_compareAscending");t.exports=r},{"./_compareAscending":369}],371:[function(e,t,n){function r(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}t.exports=r},{}],372:[function(e,t,n){function r(e,t,n,r){var s=!n;n||(n={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=r?r(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),s?a(n,l,c):i(n,l,c)}return n}var i=e("./_assignValue"),a=e("./_baseAssignValue");t.exports=r},{"./_assignValue":308,"./_baseAssignValue":312}],373:[function(e,t,n){function r(e,t){return i(e,a(e),t)}var i=e("./_copyObject"),a=e("./_getSymbols");t.exports=r},{"./_copyObject":372,"./_getSymbols":394}],374:[function(e,t,n){function r(e,t){return i(e,a(e),t)}var i=e("./_copyObject"),a=e("./_getSymbolsIn");t.exports=r},{"./_copyObject":372,"./_getSymbolsIn":395}],375:[function(e,t,n){var r=e("./_root"),i=r["__core-js_shared__"];t.exports=i},{"./_root":436}],376:[function(e,t,n){function r(e){return i(function(t,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(i--,s):void 0,o&&a(n[0],n[1],o)&&(s=i<3?void 0:s,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,s)}return t})}var i=e("./_baseRest"),a=e("./_isIterateeCall");t.exports=r},{"./_baseRest":347,"./_isIterateeCall":410}],377:[function(e,t,n){function r(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var a=n.length,s=t?a:-1,o=Object(n);(t?s--:++s<a)&&r(o[s],s,o)!==!1;);return n}}var i=e("./isArrayLike");t.exports=r},{"./isArrayLike":476}],378:[function(e,t,n){function r(e){return function(t,n,r){for(var i=-1,a=Object(t),s=r(t),o=s.length;o--;){var u=s[e?o:++i];if(n(a[u],u,a)===!1)break}return t}}t.exports=r},{}],379:[function(e,t,n){function r(e){return function(t,n,r){var o=Object(t);if(!a(t)){var u=i(n,3);t=s(t),n=function(e){return u(o[e],e,o)}}var l=e(t,n,r);return l>-1?o[u?t[l]:l]:void 0}}var i=e("./_baseIteratee"),a=e("./isArrayLike"),s=e("./keys");t.exports=r},{"./_baseIteratee":335,"./isArrayLike":476,"./keys":491}],380:[function(e,t,n){var r=e("./_Set"),i=e("./noop"),a=e("./_setToArray"),s=1/0,o=r&&1/a(new r([,-0]))[1]==s?function(e){return new r(e)}:i;t.exports=o},{"./_Set":288,"./_setToArray":439,"./noop":496}],381:[function(e,t,n){function r(e,t,n,r){return void 0===e||i(e,a[n])&&!s.call(r,n)?t:e}var i=e("./eq"),a=Object.prototype,s=a.hasOwnProperty;t.exports=r},{"./eq":462}],382:[function(e,t,n){var r=e("./_getNative"),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();t.exports=i},{"./_getNative":391}],383:[function(e,t,n){function r(e,t,n,r,l,c){var p=n&o,f=e.length,h=t.length;if(f!=h&&!(p&&h>f))return!1;var d=c.get(e);if(d&&c.get(t))return d==t;var y=-1,m=!0,b=n&u?new i:void 0;for(c.set(e,t),c.set(t,e);++y<f;){var g=e[y],v=t[y];if(r)var x=p?r(v,g,y,t,e,c):r(g,v,y,e,t,c);if(void 0!==x){if(x)continue;m=!1;break}if(b){if(!a(t,function(e,t){if(!s(b,t)&&(g===e||l(g,e,n,r,c)))return b.push(t)})){m=!1;break}}else if(g!==v&&!l(g,v,n,r,c)){m=!1;break}}return c.delete(e),c.delete(t),m}var i=e("./_SetCache"),a=e("./_arraySome"),s=e("./_cacheHas"),o=1,u=2;t.exports=r},{"./_SetCache":289,"./_arraySome":305,"./_cacheHas":356}],384:[function(e,t,n){function r(e,t,n,r,i,A,C){switch(n){case E:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!A(new a(e),new a(t)));case f:case h:case m:return s(+e,+t);case d:return e.name==t.name&&e.message==t.message;case b:case v:return e==t+"";case y:var S=u;case g:var w=r&c;if(S||(S=l),e.size!=t.size&&!w)return!1;var k=C.get(e);if(k)return k==t;r|=p,C.set(e,t);var F=o(S(e),S(t),r,i,A,C);return C.delete(e),F;case x:if(D)return D.call(e)==D.call(t)}return!1}var i=e("./_Symbol"),a=e("./_Uint8Array"),s=e("./eq"),o=e("./_equalArrays"),u=e("./_mapToArray"),l=e("./_setToArray"),c=1,p=2,f="[object Boolean]",h="[object Date]",d="[object Error]",y="[object Map]",m="[object Number]",b="[object RegExp]",g="[object Set]",v="[object String]",x="[object Symbol]",_="[object ArrayBuffer]",E="[object DataView]",A=i?i.prototype:void 0,D=A?A.valueOf:void 0;t.exports=r},{"./_Symbol":291,"./_Uint8Array":292,"./_equalArrays":383,"./_mapToArray":426,"./_setToArray":439,"./eq":462}],385:[function(e,t,n){function r(e,t,n,r,s,u){var l=n&a,c=i(e),p=c.length,f=i(t),h=f.length;if(p!=h&&!l)return!1;for(var d=p;d--;){var y=c[d];if(!(l?y in t:o.call(t,y)))return!1}var m=u.get(e);if(m&&u.get(t))return m==t;var b=!0;u.set(e,t),u.set(t,e);for(var g=l;++d<p;){y=c[d];var v=e[y],x=t[y];if(r)var _=l?r(x,v,y,t,e,u):r(v,x,y,e,t,u);if(!(void 0===_?v===x||s(v,x,n,r,u):_)){b=!1;break}g||(g="constructor"==y)}if(b&&!g){var E=e.constructor,A=t.constructor;E!=A&&"constructor"in e&&"constructor"in t&&!("function"==typeof E&&E instanceof E&&"function"==typeof A&&A instanceof A)&&(b=!1)}return u.delete(e),u.delete(t),b}var i=e("./_getAllKeys"),a=1,s=Object.prototype,o=s.hasOwnProperty;t.exports=r},{"./_getAllKeys":387}],386:[function(e,t,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],387:[function(e,t,n){function r(e){return i(e,s,a)}var i=e("./_baseGetAllKeys"),a=e("./_getSymbols"),s=e("./keys");t.exports=r},{"./_baseGetAllKeys":322,"./_getSymbols":394,"./keys":491}],388:[function(e,t,n){function r(e){return i(e,s,a)}var i=e("./_baseGetAllKeys"),a=e("./_getSymbolsIn"),s=e("./keysIn");t.exports=r},{"./_baseGetAllKeys":322,"./_getSymbolsIn":395,"./keysIn":492}],389:[function(e,t,n){function r(e,t){var n=e.__data__;return i(t)?n["string"==typeof t?"string":"hash"]:n.map}var i=e("./_isKeyable");t.exports=r},{"./_isKeyable":412}],390:[function(e,t,n){function r(e){for(var t=a(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,i(s)]}return t}var i=e("./_isStrictComparable"),a=e("./keys");t.exports=r},{"./_isStrictComparable":415,"./keys":491}],391:[function(e,t,n){function r(e,t){var n=a(e,t);return i(n)?n:void 0}var i=e("./_baseIsNative"),a=e("./_getValue");t.exports=r},{"./_baseIsNative":332,"./_getValue":397}],392:[function(e,t,n){var r=e("./_overArg"),i=r(Object.getPrototypeOf,Object);t.exports=i},{"./_overArg":434}],393:[function(e,t,n){function r(e){var t=s.call(e,u),n=e[u];try{e[u]=void 0;var r=!0}catch(e){}var i=o.call(e);return r&&(t?e[u]=n:delete e[u]),i}var i=e("./_Symbol"),a=Object.prototype,s=a.hasOwnProperty,o=a.toString,u=i?i.toStringTag:void 0;t.exports=r},{"./_Symbol":291}],394:[function(e,t,n){var r=e("./_arrayFilter"),i=e("./stubArray"),a=Object.prototype,s=a.propertyIsEnumerable,o=Object.getOwnPropertySymbols,u=o?function(e){return null==e?[]:(e=Object(e),r(o(e),function(t){return s.call(e,t)}))}:i;t.exports=u},{"./_arrayFilter":298,"./stubArray":501}],395:[function(e,t,n){var r=e("./_arrayPush"),i=e("./_getPrototype"),a=e("./_getSymbols"),s=e("./stubArray"),o=Object.getOwnPropertySymbols,u=o?function(e){for(var t=[];e;)r(t,a(e)),e=i(e);return t}:s;t.exports=u},{"./_arrayPush":303,"./_getPrototype":392,"./_getSymbols":394,"./stubArray":501}],396:[function(e,t,n){var r=e("./_DataView"),i=e("./_Map"),a=e("./_Promise"),s=e("./_Set"),o=e("./_WeakMap"),u=e("./_baseGetTag"),l=e("./_toSource"),c="[object Map]",p="[object Object]",f="[object Promise]",h="[object Set]",d="[object WeakMap]",y="[object DataView]",m=l(r),b=l(i),g=l(a),v=l(s),x=l(o),_=u;(r&&_(new r(new ArrayBuffer(1)))!=y||i&&_(new i)!=c||a&&_(a.resolve())!=f||s&&_(new s)!=h||o&&_(new o)!=d)&&(_=function(e){var t=u(e),n=t==p?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case m:return y;case b:return c;case g:return f;case v:return h;case x:return d}return t}),t.exports=_},{"./_DataView":282,"./_Map":285,"./_Promise":287,"./_Set":288,"./_WeakMap":293,"./_baseGetTag":323,"./_toSource":451}],397:[function(e,t,n){function r(e,t){return null==e?void 0:e[t]}t.exports=r},{}],398:[function(e,t,n){function r(e,t,n){t=i(t,e);for(var r=-1,c=t.length,p=!1;++r<c;){var f=l(t[r]);if(!(p=null!=e&&n(e,f)))break;e=e[f]}return p||++r!=c?p:(c=null==e?0:e.length,!!c&&u(c)&&o(f,c)&&(s(e)||a(e)))}var i=e("./_castPath"),a=e("./isArguments"),s=e("./isArray"),o=e("./_isIndex"),u=e("./isLength"),l=e("./_toKey");
+t.exports=r},{"./_castPath":358,"./_isIndex":409,"./_toKey":450,"./isArguments":474,"./isArray":475,"./isLength":482}],399:[function(e,t,n){function r(e){return p.test(e)}var i="\\ud800-\\udfff",a="\\u0300-\\u036f",s="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",u=a+s+o,l="\\ufe0e\\ufe0f",c="\\u200d",p=RegExp("["+c+i+u+l+"]");t.exports=r},{}],400:[function(e,t,n){function r(){this.__data__=i?i(null):{},this.size=0}var i=e("./_nativeCreate");t.exports=r},{"./_nativeCreate":429}],401:[function(e,t,n){function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=r},{}],402:[function(e,t,n){function r(e){var t=this.__data__;if(i){var n=t[e];return n===a?void 0:n}return o.call(t,e)?t[e]:void 0}var i=e("./_nativeCreate"),a="__lodash_hash_undefined__",s=Object.prototype,o=s.hasOwnProperty;t.exports=r},{"./_nativeCreate":429}],403:[function(e,t,n){function r(e){var t=this.__data__;return i?void 0!==t[e]:s.call(t,e)}var i=e("./_nativeCreate"),a=Object.prototype,s=a.hasOwnProperty;t.exports=r},{"./_nativeCreate":429}],404:[function(e,t,n){function r(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=i&&void 0===t?a:t,this}var i=e("./_nativeCreate"),a="__lodash_hash_undefined__";t.exports=r},{"./_nativeCreate":429}],405:[function(e,t,n){function r(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&a.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var i=Object.prototype,a=i.hasOwnProperty;t.exports=r},{}],406:[function(e,t,n){function r(e,t,n,r){var T=e.constructor;switch(t){case v:return i(e);case p:case f:return new T(+e);case x:return a(e,r);case _:case E:case A:case D:case C:case S:case w:case k:case F:return c(e,r);case h:return s(e,r,n);case d:case b:return new T(e);case y:return o(e);case m:return u(e,r,n);case g:return l(e)}}var i=e("./_cloneArrayBuffer"),a=e("./_cloneDataView"),s=e("./_cloneMap"),o=e("./_cloneRegExp"),u=e("./_cloneSet"),l=e("./_cloneSymbol"),c=e("./_cloneTypedArray"),p="[object Boolean]",f="[object Date]",h="[object Map]",d="[object Number]",y="[object RegExp]",m="[object Set]",b="[object String]",g="[object Symbol]",v="[object ArrayBuffer]",x="[object DataView]",_="[object Float32Array]",E="[object Float64Array]",A="[object Int8Array]",D="[object Int16Array]",C="[object Int32Array]",S="[object Uint8Array]",w="[object Uint8ClampedArray]",k="[object Uint16Array]",F="[object Uint32Array]";t.exports=r},{"./_cloneArrayBuffer":361,"./_cloneDataView":363,"./_cloneMap":364,"./_cloneRegExp":365,"./_cloneSet":366,"./_cloneSymbol":367,"./_cloneTypedArray":368}],407:[function(e,t,n){function r(e){return"function"!=typeof e.constructor||s(e)?{}:i(a(e))}var i=e("./_baseCreate"),a=e("./_getPrototype"),s=e("./_isPrototype");t.exports=r},{"./_baseCreate":315,"./_getPrototype":392,"./_isPrototype":414}],408:[function(e,t,n){function r(e){return s(e)||a(e)||!!(o&&e&&e[o])}var i=e("./_Symbol"),a=e("./isArguments"),s=e("./isArray"),o=i?i.isConcatSpreadable:void 0;t.exports=r},{"./_Symbol":291,"./isArguments":474,"./isArray":475}],409:[function(e,t,n){function r(e,t){return t=null==t?i:t,!!t&&("number"==typeof e||a.test(e))&&e>-1&&e%1==0&&e<t}var i=9007199254740991,a=/^(?:0|[1-9]\d*)$/;t.exports=r},{}],410:[function(e,t,n){function r(e,t,n){if(!o(n))return!1;var r=typeof t;return!!("number"==r?a(n)&&s(t,n.length):"string"==r&&t in n)&&i(n[t],e)}var i=e("./eq"),a=e("./isArrayLike"),s=e("./_isIndex"),o=e("./isObject");t.exports=r},{"./_isIndex":409,"./eq":462,"./isArrayLike":476,"./isObject":484}],411:[function(e,t,n){function r(e,t){if(i(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!a(e))||(o.test(e)||!s.test(e)||null!=t&&e in Object(t))}var i=e("./isArray"),a=e("./isSymbol"),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=r},{"./isArray":475,"./isSymbol":489}],412:[function(e,t,n){function r(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}t.exports=r},{}],413:[function(e,t,n){function r(e){return!!a&&a in e}var i=e("./_coreJsData"),a=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();t.exports=r},{"./_coreJsData":375}],414:[function(e,t,n){function r(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||i;return e===n}var i=Object.prototype;t.exports=r},{}],415:[function(e,t,n){function r(e){return e===e&&!i(e)}var i=e("./isObject");t.exports=r},{"./isObject":484}],416:[function(e,t,n){function r(){this.__data__=[],this.size=0}t.exports=r},{}],417:[function(e,t,n){function r(e){var t=this.__data__,n=i(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():s.call(t,n,1),--this.size,!0}var i=e("./_assocIndexOf"),a=Array.prototype,s=a.splice;t.exports=r},{"./_assocIndexOf":309}],418:[function(e,t,n){function r(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}var i=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":309}],419:[function(e,t,n){function r(e){return i(this.__data__,e)>-1}var i=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":309}],420:[function(e,t,n){function r(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var i=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":309}],421:[function(e,t,n){function r(){this.size=0,this.__data__={hash:new i,map:new(s||a),string:new i}}var i=e("./_Hash"),a=e("./_ListCache"),s=e("./_Map");t.exports=r},{"./_Hash":283,"./_ListCache":284,"./_Map":285}],422:[function(e,t,n){function r(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=e("./_getMapData");t.exports=r},{"./_getMapData":389}],423:[function(e,t,n){function r(e){return i(this,e).get(e)}var i=e("./_getMapData");t.exports=r},{"./_getMapData":389}],424:[function(e,t,n){function r(e){return i(this,e).has(e)}var i=e("./_getMapData");t.exports=r},{"./_getMapData":389}],425:[function(e,t,n){function r(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var i=e("./_getMapData");t.exports=r},{"./_getMapData":389}],426:[function(e,t,n){function r(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}t.exports=r},{}],427:[function(e,t,n){function r(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}t.exports=r},{}],428:[function(e,t,n){function r(e){var t=i(e,function(e){return n.size===a&&n.clear(),e}),n=t.cache;return t}var i=e("./memoize"),a=500;t.exports=r},{"./memoize":494}],429:[function(e,t,n){var r=e("./_getNative"),i=r(Object,"create");t.exports=i},{"./_getNative":391}],430:[function(e,t,n){var r=e("./_overArg"),i=r(Object.keys,Object);t.exports=i},{"./_overArg":434}],431:[function(e,t,n){function r(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}t.exports=r},{}],432:[function(e,t,n){var r=e("./_freeGlobal"),i="object"==typeof n&&n&&!n.nodeType&&n,a=i&&"object"==typeof t&&t&&!t.nodeType&&t,s=a&&a.exports===i,o=s&&r.process,u=function(){try{return o&&o.binding&&o.binding("util")}catch(e){}}();t.exports=u},{"./_freeGlobal":386}],433:[function(e,t,n){function r(e){return a.call(e)}var i=Object.prototype,a=i.toString;t.exports=r},{}],434:[function(e,t,n){function r(e,t){return function(n){return e(t(n))}}t.exports=r},{}],435:[function(e,t,n){function r(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var r=arguments,s=-1,o=a(r.length-t,0),u=Array(o);++s<o;)u[s]=r[t+s];s=-1;for(var l=Array(t+1);++s<t;)l[s]=r[s];return l[t]=n(u),i(e,this,l)}}var i=e("./_apply"),a=Math.max;t.exports=r},{"./_apply":296}],436:[function(e,t,n){var r=e("./_freeGlobal"),i="object"==typeof self&&self&&self.Object===Object&&self,a=r||i||Function("return this")();t.exports=a},{"./_freeGlobal":386}],437:[function(e,t,n){function r(e){return this.__data__.set(e,i),this}var i="__lodash_hash_undefined__";t.exports=r},{}],438:[function(e,t,n){function r(e){return this.__data__.has(e)}t.exports=r},{}],439:[function(e,t,n){function r(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}t.exports=r},{}],440:[function(e,t,n){var r=e("./_baseSetToString"),i=e("./_shortOut"),a=i(r);t.exports=a},{"./_baseSetToString":348,"./_shortOut":441}],441:[function(e,t,n){function r(e){var t=0,n=0;return function(){var r=s(),o=a-(r-n);if(n=r,o>0){if(++t>=i)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var i=800,a=16,s=Date.now;t.exports=r},{}],442:[function(e,t,n){function r(){this.__data__=new i,this.size=0}var i=e("./_ListCache");t.exports=r},{"./_ListCache":284}],443:[function(e,t,n){function r(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}t.exports=r},{}],444:[function(e,t,n){function r(e){return this.__data__.get(e)}t.exports=r},{}],445:[function(e,t,n){function r(e){return this.__data__.has(e)}t.exports=r},{}],446:[function(e,t,n){function r(e,t){var n=this.__data__;if(n instanceof i){var r=n.__data__;if(!a||r.length<o-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new s(r)}return n.set(e,t),this.size=n.size,this}var i=e("./_ListCache"),a=e("./_Map"),s=e("./_MapCache"),o=200;t.exports=r},{"./_ListCache":284,"./_Map":285,"./_MapCache":286}],447:[function(e,t,n){function r(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}t.exports=r},{}],448:[function(e,t,n){function r(e){return a(e)?s(e):i(e)}var i=e("./_asciiToArray"),a=e("./_hasUnicode"),s=e("./_unicodeToArray");t.exports=r},{"./_asciiToArray":306,"./_hasUnicode":399,"./_unicodeToArray":452}],449:[function(e,t,n){var r=e("./_memoizeCapped"),i=/^\./,a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,o=r(function(e){var t=[];return i.test(e)&&t.push(""),e.replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t});t.exports=o},{"./_memoizeCapped":428}],450:[function(e,t,n){function r(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-a?"-0":t}var i=e("./isSymbol"),a=1/0;t.exports=r},{"./isSymbol":489}],451:[function(e,t,n){function r(e){if(null!=e){try{return a.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var i=Function.prototype,a=i.toString;t.exports=r},{}],452:[function(e,t,n){function r(e){return e.match(A)||[]}var i="\\ud800-\\udfff",a="\\u0300-\\u036f",s="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",u=a+s+o,l="\\ufe0e\\ufe0f",c="["+i+"]",p="["+u+"]",f="\\ud83c[\\udffb-\\udfff]",h="(?:"+p+"|"+f+")",d="[^"+i+"]",y="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",b="\\u200d",g=h+"?",v="["+l+"]?",x="(?:"+b+"(?:"+[d,y,m].join("|")+")"+v+g+")*",_=v+g+x,E="(?:"+[d+p+"?",p,y,m,c].join("|")+")",A=RegExp(f+"(?="+f+")|"+E+_,"g");t.exports=r},{}],453:[function(e,t,n){var r=e("./_assignValue"),i=e("./_copyObject"),a=e("./_createAssigner"),s=e("./isArrayLike"),o=e("./_isPrototype"),u=e("./keys"),l=Object.prototype,c=l.hasOwnProperty,p=a(function(e,t){if(o(t)||s(t))return void i(t,u(t),e);for(var n in t)c.call(t,n)&&r(e,n,t[n])});t.exports=p},{"./_assignValue":308,"./_copyObject":372,"./_createAssigner":376,"./_isPrototype":414,"./isArrayLike":476,"./keys":491}],454:[function(e,t,n){var r=e("./_copyObject"),i=e("./_createAssigner"),a=e("./keysIn"),s=i(function(e,t,n,i){r(t,a(t),e,i)});t.exports=s},{"./_copyObject":372,"./_createAssigner":376,"./keysIn":492}],455:[function(e,t,n){function r(e){return i(e,a)}var i=e("./_baseClone"),a=4;t.exports=r},{"./_baseClone":314}],456:[function(e,t,n){function r(e){return i(e,a|s)}var i=e("./_baseClone"),a=1,s=4;t.exports=r},{"./_baseClone":314}],457:[function(e,t,n){function r(e,t){return t="function"==typeof t?t:void 0,i(e,a|s,t)}var i=e("./_baseClone"),a=1,s=4;t.exports=r},{"./_baseClone":314}],458:[function(e,t,n){function r(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var a=e[t];a&&(i[r++]=a)}return i}t.exports=r},{}],459:[function(e,t,n){function r(e){return function(){return e}}t.exports=r},{}],460:[function(e,t,n){var r=e("./_apply"),i=e("./assignInWith"),a=e("./_baseRest"),s=e("./_customDefaultsAssignIn"),o=a(function(e){return e.push(void 0,s),r(i,void 0,e)});t.exports=o},{"./_apply":296,"./_baseRest":347,"./_customDefaultsAssignIn":381,"./assignInWith":454}],461:[function(e,t,n){t.exports=e("./forEach")},{"./forEach":468}],462:[function(e,t,n){function r(e,t){return e===t||e!==e&&t!==t}t.exports=r},{}],463:[function(e,t,n){function r(e){return e=i(e),e&&s.test(e)?e.replace(a,"\\$&"):e}var i=e("./toString"),a=/[\\^$.*+?()[\]{}|]/g,s=RegExp(a.source);t.exports=r},{"./toString":507}],464:[function(e,t,n){var r=e("./_createFind"),i=e("./findIndex"),a=r(i);t.exports=a},{"./_createFind":379,"./findIndex":465}],465:[function(e,t,n){function r(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var u=null==n?0:s(n);return u<0&&(u=o(r+u,0)),i(e,a(t,3),u)}var i=e("./_baseFindIndex"),a=e("./_baseIteratee"),s=e("./toInteger"),o=Math.max;t.exports=r},{"./_baseFindIndex":317,"./_baseIteratee":335,"./toInteger":504}],466:[function(e,t,n){var r=e("./_createFind"),i=e("./findLastIndex"),a=r(i);t.exports=a},{"./_createFind":379,"./findLastIndex":467}],467:[function(e,t,n){function r(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var l=r-1;return void 0!==n&&(l=s(n),l=n<0?o(r+l,0):u(l,r-1)),i(e,a(t,3),l,!0)}var i=e("./_baseFindIndex"),a=e("./_baseIteratee"),s=e("./toInteger"),o=Math.max,u=Math.min;t.exports=r},{"./_baseFindIndex":317,"./_baseIteratee":335,"./toInteger":504}],468:[function(e,t,n){function r(e,t){var n=o(e)?i:a;return n(e,s(t))}var i=e("./_arrayEach"),a=e("./_baseEach"),s=e("./_castFunction"),o=e("./isArray");t.exports=r},{"./_arrayEach":297,"./_baseEach":316,"./_castFunction":357,"./isArray":475}],469:[function(e,t,n){function r(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}var i=e("./_baseGet");t.exports=r},{"./_baseGet":321}],470:[function(e,t,n){function r(e,t){return null!=e&&a(e,t,i)}var i=e("./_baseHas"),a=e("./_hasPath");t.exports=r},{"./_baseHas":324,"./_hasPath":398}],471:[function(e,t,n){function r(e,t){return null!=e&&a(e,t,i)}var i=e("./_baseHasIn"),a=e("./_hasPath");t.exports=r},{"./_baseHasIn":325,"./_hasPath":398}],472:[function(e,t,n){function r(e){return e}t.exports=r},{}],473:[function(e,t,n){function r(e,t,n,r){e=a(e)?e:u(e),n=n&&!r?o(n):0;var c=e.length;return n<0&&(n=l(c+n,0)),s(e)?n<=c&&e.indexOf(t,n)>-1:!!c&&i(e,t,n)>-1}var i=e("./_baseIndexOf"),a=e("./isArrayLike"),s=e("./isString"),o=e("./toInteger"),u=e("./values"),l=Math.max;t.exports=r},{"./_baseIndexOf":326,"./isArrayLike":476,"./isString":488,"./toInteger":504,"./values":510}],474:[function(e,t,n){var r=e("./_baseIsArguments"),i=e("./isObjectLike"),a=Object.prototype,s=a.hasOwnProperty,o=a.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return i(e)&&s.call(e,"callee")&&!o.call(e,"callee")};t.exports=u},{"./_baseIsArguments":327,"./isObjectLike":485}],475:[function(e,t,n){var r=Array.isArray;t.exports=r},{}],476:[function(e,t,n){function r(e){return null!=e&&a(e.length)&&!i(e)}var i=e("./isFunction"),a=e("./isLength");t.exports=r},{"./isFunction":480,"./isLength":482}],477:[function(e,t,n){function r(e){return a(e)&&i(e)}var i=e("./isArrayLike"),a=e("./isObjectLike");t.exports=r},{"./isArrayLike":476,"./isObjectLike":485}],478:[function(e,t,n){function r(e){return e===!0||e===!1||a(e)&&i(e)==s}var i=e("./_baseGetTag"),a=e("./isObjectLike"),s="[object Boolean]";t.exports=r},{"./_baseGetTag":323,"./isObjectLike":485}],479:[function(e,t,n){var r=e("./_root"),i=e("./stubFalse"),a="object"==typeof n&&n&&!n.nodeType&&n,s=a&&"object"==typeof t&&t&&!t.nodeType&&t,o=s&&s.exports===a,u=o?r.Buffer:void 0,l=u?u.isBuffer:void 0,c=l||i;t.exports=c},{"./_root":436,"./stubFalse":502}],480:[function(e,t,n){function r(e){if(!a(e))return!1;var t=i(e);return t==o||t==u||t==s||t==l}var i=e("./_baseGetTag"),a=e("./isObject"),s="[object AsyncFunction]",o="[object Function]",u="[object GeneratorFunction]",l="[object Proxy]";t.exports=r},{"./_baseGetTag":323,"./isObject":484}],481:[function(e,t,n){function r(e){return"number"==typeof e&&e==i(e)}var i=e("./toInteger");t.exports=r},{"./toInteger":504}],482:[function(e,t,n){function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}var i=9007199254740991;t.exports=r},{}],483:[function(e,t,n){function r(e){return"number"==typeof e||a(e)&&i(e)==s}var i=e("./_baseGetTag"),a=e("./isObjectLike"),s="[object Number]";t.exports=r},{"./_baseGetTag":323,"./isObjectLike":485}],484:[function(e,t,n){function r(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}t.exports=r},{}],485:[function(e,t,n){function r(e){return null!=e&&"object"==typeof e}t.exports=r},{}],486:[function(e,t,n){function r(e){if(!s(e)||i(e)!=o)return!1;var t=a(e);if(null===t)return!0;var n=p.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==f}var i=e("./_baseGetTag"),a=e("./_getPrototype"),s=e("./isObjectLike"),o="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,p=l.hasOwnProperty,f=c.call(Object);t.exports=r},{"./_baseGetTag":323,"./_getPrototype":392,"./isObjectLike":485}],487:[function(e,t,n){var r=e("./_baseIsRegExp"),i=e("./_baseUnary"),a=e("./_nodeUtil"),s=a&&a.isRegExp,o=s?i(s):r;t.exports=o},{"./_baseIsRegExp":333,"./_baseUnary":353,"./_nodeUtil":432}],488:[function(e,t,n){function r(e){return"string"==typeof e||!a(e)&&s(e)&&i(e)==o}var i=e("./_baseGetTag"),a=e("./isArray"),s=e("./isObjectLike"),o="[object String]";t.exports=r},{"./_baseGetTag":323,"./isArray":475,"./isObjectLike":485}],489:[function(e,t,n){function r(e){return"symbol"==typeof e||a(e)&&i(e)==s}var i=e("./_baseGetTag"),a=e("./isObjectLike"),s="[object Symbol]";t.exports=r},{"./_baseGetTag":323,"./isObjectLike":485}],490:[function(e,t,n){var r=e("./_baseIsTypedArray"),i=e("./_baseUnary"),a=e("./_nodeUtil"),s=a&&a.isTypedArray,o=s?i(s):r;t.exports=o},{"./_baseIsTypedArray":334,"./_baseUnary":353,"./_nodeUtil":432}],491:[function(e,t,n){function r(e){return s(e)?i(e):a(e)}var i=e("./_arrayLikeKeys"),a=e("./_baseKeys"),s=e("./isArrayLike");t.exports=r},{"./_arrayLikeKeys":301,"./_baseKeys":336,"./isArrayLike":476}],492:[function(e,t,n){function r(e){return s(e)?i(e,!0):a(e)}var i=e("./_arrayLikeKeys"),a=e("./_baseKeysIn"),s=e("./isArrayLike");t.exports=r},{"./_arrayLikeKeys":301,"./_baseKeysIn":337,"./isArrayLike":476}],493:[function(e,t,n){function r(e,t){var n=o(e)?i:s;return n(e,a(t,3))}var i=e("./_arrayMap"),a=e("./_baseIteratee"),s=e("./_baseMap"),o=e("./isArray");t.exports=r},{"./_arrayMap":302,"./_baseIteratee":335,"./_baseMap":338,"./isArray":475}],494:[function(e,t,n){function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(a);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var s=e.apply(this,r);return n.cache=a.set(i,s)||a,s};return n.cache=new(r.Cache||i),n}var i=e("./_MapCache"),a="Expected a function";r.Cache=i,t.exports=r},{"./_MapCache":286}],495:[function(e,t,n){var r=e("./_baseMerge"),i=e("./_createAssigner"),a=i(function(e,t,n,i){r(e,t,n,i)});t.exports=a},{"./_baseMerge":341,"./_createAssigner":376}],496:[function(e,t,n){function r(){}t.exports=r},{}],497:[function(e,t,n){function r(e){return s(e)?i(o(e)):a(e)}var i=e("./_baseProperty"),a=e("./_basePropertyDeep"),s=e("./_isKey"),o=e("./_toKey");t.exports=r},{"./_baseProperty":344,"./_basePropertyDeep":345,"./_isKey":411,"./_toKey":450}],498:[function(e,t,n){function r(e,t,n){return t=(n?a(e,t,n):void 0===t)?1:s(t),i(o(e),t)}var i=e("./_baseRepeat"),a=e("./_isIterateeCall"),s=e("./toInteger"),o=e("./toString");t.exports=r},{"./_baseRepeat":346,"./_isIterateeCall":410,"./toInteger":504,"./toString":507}],499:[function(e,t,n){var r=e("./_baseFlatten"),i=e("./_baseOrderBy"),a=e("./_baseRest"),s=e("./_isIterateeCall"),o=a(function(e,t){if(null==e)return[];var n=t.length;return n>1&&s(e,t[0],t[1])?t=[]:n>2&&s(t[0],t[1],t[2])&&(t=[t[0]]),i(e,r(t,1),[])});t.exports=o},{"./_baseFlatten":318,"./_baseOrderBy":343,"./_baseRest":347,"./_isIterateeCall":410}],500:[function(e,t,n){function r(e,t,n){return e=o(e),n=null==n?0:i(s(n),0,e.length),t=a(t),e.slice(n,n+t.length)==t}var i=e("./_baseClamp"),a=e("./_baseToString"),s=e("./toInteger"),o=e("./toString");t.exports=r},{"./_baseClamp":313,"./_baseToString":352,"./toInteger":504,"./toString":507}],501:[function(e,t,n){function r(){return[]}t.exports=r},{}],502:[function(e,t,n){function r(){return!1}t.exports=r},{}],503:[function(e,t,n){function r(e){if(!e)return 0===e?e:0;if(e=i(e),e===a||e===-a){var t=e<0?-1:1;return t*s}return e===e?e:0}var i=e("./toNumber"),a=1/0,s=1.7976931348623157e308;t.exports=r},{"./toNumber":505}],504:[function(e,t,n){function r(e){var t=i(e),n=t%1;return t===t?n?t-n:t:0}var i=e("./toFinite");t.exports=r},{"./toFinite":503}],505:[function(e,t,n){function r(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var n=l.test(e);return n||c.test(e)?p(e.slice(2),n?2:8):u.test(e)?s:+e}var i=e("./isObject"),a=e("./isSymbol"),s=NaN,o=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,p=parseInt;t.exports=r},{"./isObject":484,"./isSymbol":489}],506:[function(e,t,n){function r(e){return i(e,a(e))}var i=e("./_copyObject"),a=e("./keysIn");t.exports=r},{"./_copyObject":372,"./keysIn":492}],507:[function(e,t,n){function r(e){return null==e?"":i(e)}var i=e("./_baseToString");t.exports=r},{"./_baseToString":352}],508:[function(e,t,n){function r(e,t,n){if(e=u(e),e&&(n||void 0===t))return e.replace(l,"");if(!e||!(t=i(t)))return e;var r=o(e),c=s(r,o(t))+1;return a(r,0,c).join("")}var i=e("./_baseToString"),a=e("./_castSlice"),s=e("./_charsEndIndex"),o=e("./_stringToArray"),u=e("./toString"),l=/\s+$/;t.exports=r},{"./_baseToString":352,"./_castSlice":359,"./_charsEndIndex":360,"./_stringToArray":448,"./toString":507}],509:[function(e,t,n){function r(e){return e&&e.length?i(e):[]}var i=e("./_baseUniq");t.exports=r},{"./_baseUniq":354}],510:[function(e,t,n){function r(e){return null==e?[]:i(e,a(e))}var i=e("./_baseValues"),a=e("./keys");t.exports=r},{"./_baseValues":355,"./keys":491}],511:[function(e,t,n){function r(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}function i(e,t){return t=t||{},function(n,r,i){return s(n,e,t)}}function a(e,t){e=e||{},t=t||{};var n={};return Object.keys(t).forEach(function(e){n[e]=t[e]}),Object.keys(e).forEach(function(t){n[t]=e[t]}),n}function s(e,t,n){if("string"!=typeof t)throw new TypeError("glob pattern string required");return n||(n={}),!(!n.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new o(t,n).match(e))}function o(e,t){if(!(this instanceof o))return new o(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==m.sep&&(e=e.split(m.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function u(){if(!this._made){var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var n=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,n),n=this.globParts=n.map(function(e){return e.split(C)}),this.debug(this.pattern,n),n=n.map(function(e,t,n){return e.map(this.parse,this)},this),this.debug(this.pattern,n),n=n.filter(function(e){return e.indexOf(!1)===-1}),this.debug(this.pattern,n),this.set=n}}function l(){var e=this.pattern,t=!1,n=this.options,r=0;if(!n.nonegate){for(var i=0,a=e.length;i<a&&"!"===e.charAt(i);i++)t=!t,r++;r&&(this.pattern=e.substr(r)),this.negate=t}}function c(e,t){if(t||(t=this instanceof o?this.options:{}),e="undefined"==typeof e?this.pattern:e,"undefined"==typeof e)throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:g(e)}function p(e,t){function n(){if(i){switch(i){case"*":s+=_,o=!0;break;case"?":s+=x,o=!0;break;default:s+="\\"+i}m.debug("clearStateChar %j %j",i,s),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var r=this.options;if(!r.noglobstar&&"**"===e)return b;if(""===e)return"";for(var i,a,s="",o=!!r.nocase,u=!1,l=[],c=[],p=!1,f=-1,h=-1,y="."===e.charAt(0)?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",m=this,g=0,E=e.length;g<E&&(a=e.charAt(g));g++)if(this.debug("%s\t%s %s %j",e,g,s,a),u&&D[a])s+="\\"+a,u=!1;else switch(a){case"/":return!1;case"\\":n(),u=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,g,s,a),p){this.debug(" in class"),"!"===a&&g===h+1&&(a="^"),s+=a;continue}m.debug("call clearStateChar %j",i),n(),i=a,r.noext&&n();continue;case"(":if(p){s+="(";continue}if(!i){s+="\\(";continue}l.push({type:i,start:g-1,reStart:s.length,open:v[i].open,close:v[i].close}),s+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,s),i=!1;continue;case")":if(p||!l.length){s+="\\)";continue}n(),o=!0;var A=l.pop();s+=A.close,"!"===A.type&&c.push(A),A.reEnd=s.length;continue;case"|":if(p||!l.length||u){s+="\\|",u=!1;continue}n(),s+="|";continue;case"[":if(n(),p){s+="\\"+a;continue}p=!0,h=g,f=s.length,s+=a;continue;case"]":if(g===h+1||!p){s+="\\"+a,u=!1;continue}if(p){var C=e.substring(h+1,g);try{RegExp("["+C+"]")}catch(e){var w=this.parse(C,S);s=s.substr(0,f)+"\\["+w[0]+"\\]",o=o||w[1],p=!1;continue}}o=!0,p=!1,s+=a;continue;default:n(),u?u=!1:!D[a]||"^"===a&&p||(s+="\\"),s+=a}for(p&&(C=e.substr(h+1),w=this.parse(C,S),s=s.substr(0,f)+"\\["+w[0],o=o||w[1]),A=l.pop();A;A=l.pop()){var k=s.slice(A.reStart+A.open.length);this.debug("setting tail",s,A),k=k.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,n){return n||(n="\\"),t+t+n+"|"}),this.debug("tail=%j\n %s",k,k,A,s);var F="*"===A.type?_:"?"===A.type?x:"\\"+A.type;o=!0,s=s.slice(0,A.reStart)+F+"\\("+k}n(),u&&(s+="\\\\");var T=!1;switch(s.charAt(0)){case".":case"[":case"(":T=!0}for(var P=c.length-1;P>-1;P--){var j=c[P],B=s.slice(0,j.reStart),O=s.slice(j.reStart,j.reEnd-8),I=s.slice(j.reEnd-8,j.reEnd),N=s.slice(j.reEnd);I+=N;var L=B.split("(").length-1,M=N;for(g=0;g<L;g++)M=M.replace(/\)[+*?]?/,"");N=M;var R="";""===N&&t!==S&&(R="$");var U=B+O+N+R+I;s=U}if(""!==s&&o&&(s="(?=.)"+s),T&&(s=y+s),t===S)return[s,o];if(!o)return d(e);var V=r.nocase?"i":"";try{var G=new RegExp("^"+s+"$",V)}catch(e){return new RegExp("$.")}return G._glob=e,G._src=s,G}function f(){if(this.regexp||this.regexp===!1)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,n=t.noglobstar?_:t.dot?E:A,r=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===b?n:"string"==typeof e?y(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,r)}catch(e){this.regexp=!1}return this.regexp}function h(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var n=this.options;"/"!==m.sep&&(e=e.split(m.sep).join("/")),e=e.split(C),this.debug(this.pattern,"split",e);var r=this.set;this.debug(this.pattern,"set",r);var i,a;for(a=e.length-1;a>=0&&!(i=e[a]);a--);for(a=0;a<r.length;a++){var s=r[a],o=e;n.matchBase&&1===s.length&&(o=[i]);var u=this.matchOne(o,s,t);if(u)return!!n.flipNegate||!this.negate}return!n.flipNegate&&this.negate}function d(e){return e.replace(/\\(.)/g,"$1")}function y(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}t.exports=s,s.Minimatch=o;var m={sep:"/"};try{m=e("path")}catch(e){}var b=s.GLOBSTAR=o.GLOBSTAR={},g=e("brace-expansion"),v={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},x="[^/]",_=x+"*?",E="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",A="(?:(?!(?:\\/|^)\\.).)*?",D=r("().*{}+?[]^$\\!"),C=/\/+/;s.filter=i,s.defaults=function(e){if(!e||!Object.keys(e).length)return s;var t=s,n=function(n,r,i){return t.minimatch(n,r,a(e,i))};return n.Minimatch=function(n,r){return new t.Minimatch(n,a(e,r))},n},o.defaults=function(e){return e&&Object.keys(e).length?s.defaults(e).Minimatch:o},o.prototype.debug=function(){},o.prototype.make=u,o.prototype.parseNegate=l,s.braceExpand=function(e,t){return c(e,t)},o.prototype.braceExpand=c,o.prototype.parse=p;var S={};s.makeRe=function(e,t){return new o(e,t||{}).makeRe()},o.prototype.makeRe=f,s.match=function(e,t,n){n=n||{};var r=new o(t,n);return e=e.filter(function(e){return r.match(e)}),r.options.nonull&&!e.length&&e.push(t),e},o.prototype.match=h,o.prototype.matchOne=function(e,t,n){var r=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,a=0,s=e.length,o=t.length;i<s&&a<o;i++,a++){this.debug("matchOne loop");var u=t[a],l=e[i];if(this.debug(t,u,l),u===!1)return!1;if(u===b){this.debug("GLOBSTAR",[t,u,l]);var c=i,p=a+1;if(p===o){for(this.debug("** at the end");i<s;i++)if("."===e[i]||".."===e[i]||!r.dot&&"."===e[i].charAt(0))return!1;return!0}for(;c<s;){var f=e[c];if(this.debug("\nglobstar while",e,c,t,p,f),this.matchOne(e.slice(c),t.slice(p),n))return this.debug("globstar found match!",c,s,f),!0;if("."===f||".."===f||!r.dot&&"."===f.charAt(0)){this.debug("dot detected!",e,c,t,p);break}this.debug("globstar swallow a segment, and continue"),c++}return!(!n||(this.debug("\n>>> no match, partial?",e,c,t,p),c!==s))}var h;if("string"==typeof u?(h=r.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,h)):(h=l.match(u),this.debug("pattern match",u,l,h)),!h)return!1}if(i===s&&a===o)return!0;if(i===s)return n;if(a===o){var d=i===s-1&&""===e[i];return d}throw new Error("wtf?")}},{"brace-expansion":512,path:12}],512:[function(e,t,n){function r(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split("\\\\").join(y).split("\\{").join(m).split("\\}").join(b).split("\\,").join(g).split("\\.").join(v)}function a(e){return e.split(y).join("\\").split(m).join("{").split(b).join("}").split(g).join(",").split(v).join(".")}function s(e){if(!e)return[""];var t=[],n=d("{","}",e);if(!n)return e.split(",");var r=n.pre,i=n.body,a=n.post,o=r.split(",");o[o.length-1]+="{"+i+"}";var u=s(a);return a.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function o(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),f(i(e),!0).map(a)):[]}function u(e){return"{"+e+"}"}function l(e){return/^-?0\d/.test(e)}function c(e,t){return e<=t}function p(e,t){return e>=t}function f(e,t){var n=[],i=d("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),y=a||o,m=/^(.*,)+(.+)?$/.test(i.body);if(!y&&!m)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+b+i.post,f(e)):[e];var g;if(y)g=i.body.split(/\.\./);else if(g=s(i.body),1===g.length&&(g=f(g[0],!1).map(u),1===g.length)){var v=i.post.length?f(i.post,!1):[""];return v.map(function(e){return i.pre+g[0]+e})}var x,_=i.pre,v=i.post.length?f(i.post,!1):[""];if(y){var E=r(g[0]),A=r(g[1]),D=Math.max(g[0].length,g[1].length),C=3==g.length?Math.abs(r(g[2])):1,S=c,w=A<E;w&&(C*=-1,S=p);var k=g.some(l);x=[];for(var F=E;S(F,A);F+=C){var T;if(o)T=String.fromCharCode(F),"\\"===T&&(T="");else if(T=String(F),k){var P=D-T.length;if(P>0){var j=new Array(P+1).join("0");T=F<0?"-"+j+T.slice(1):j+T}}x.push(T)}}else x=h(g,function(e){return f(e,!1)});for(var B=0;B<x.length;B++)for(var O=0;O<v.length;O++){var I=_+x[B]+v[O];(!t||y||I)&&n.push(I)}return n}var h=e("concat-map"),d=e("balanced-match");t.exports=o;var y="\0SLASH"+Math.random()+"\0",m="\0OPEN"+Math.random()+"\0",b="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",v="\0PERIOD"+Math.random()+"\0"},{"balanced-match":513,"concat-map":514}],513:[function(e,t,n){function r(e,t,n){e instanceof RegExp&&(e=i(e,n)),t instanceof RegExp&&(t=i(t,n));var r=a(e,t,n);return r&&{start:r[0],end:r[1],pre:n.slice(0,r[0]),body:n.slice(r[0]+e.length,r[1]),post:n.slice(r[1]+t.length)}}function i(e,t){var n=t.match(e);return n?n[0]:null}function a(e,t,n){var r,i,a,s,o,u=n.indexOf(e),l=n.indexOf(t,u+1),c=u;
+if(u>=0&&l>0){for(r=[],a=n.length;c>=0&&!o;)c==u?(r.push(c),u=n.indexOf(e,c+1)):1==r.length?o=[r.pop(),l]:(i=r.pop(),i<a&&(a=i,s=l),l=n.indexOf(t,c+1)),c=u<l&&u>=0?u:l;r.length&&(o=[a,s])}return o}t.exports=r,r.range=a},{}],514:[function(e,t,n){t.exports=function(e,t){for(var n=[],i=0;i<e.length;i++){var a=t(e[i],i);r(a)?n.push.apply(n,a):n.push(a)}return n};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],515:[function(e,t,n){(function(e){"use strict";function n(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,n=t.exec(e),r=n[1]||"",i=Boolean(r&&":"!==r.charAt(1));return Boolean(n[2]||i)}t.exports="win32"===e.platform?r:n,t.exports.posix=n,t.exports.win32=r}).call(this,e("_process"))},{_process:13}],516:[function(e,t,n){"use strict";t.exports=function(e){var t=/^\\\\\?\\/.test(e),n=/[^\x00-\x80]+/.test(e);return t||n?e:e.replace(/\\/g,"/")}},{}],517:[function(e,t,n){function r(){this._array=[],this._set=Object.create(null)}var i=e("./util"),a=Object.prototype.hasOwnProperty;r.fromArray=function(e,t){for(var n=new r,i=0,a=e.length;i<a;i++)n.add(e[i],t);return n},r.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=i.toSetString(e),r=a.call(this._set,n),s=this._array.length;r&&!t||this._array.push(e),r||(this._set[n]=s)},r.prototype.has=function(e){var t=i.toSetString(e);return a.call(this._set,t)},r.prototype.indexOf=function(e){var t=i.toSetString(e);if(a.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":526}],518:[function(e,t,n){function r(e){return e<0?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var a=e("./base64"),s=5,o=1<<s,u=o-1,l=o;n.encode=function(e){var t,n="",i=r(e);do t=i&u,i>>>=s,i>0&&(t|=l),n+=a.encode(t);while(i>0);return n},n.decode=function(e,t,n){var r,o,c=e.length,p=0,f=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(o=a.decode(e.charCodeAt(t++)),o===-1)throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(o&l),o&=u,p+=o<<f,f+=s}while(r);n.value=i(p),n.rest=t}},{"./base64":519}],519:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){var t=65,n=90,r=97,i=122,a=48,s=57,o=43,u=47,l=26,c=52;return t<=e&&e<=n?e-t:r<=e&&e<=i?e-r+l:a<=e&&e<=s?e-a+c:e==o?62:e==u?63:-1}},{}],520:[function(e,t,n){function r(e,t,i,a,s,o){var u=Math.floor((t-e)/2)+e,l=s(i,a[u],!0);return 0===l?u:l>0?t-u>1?r(u,t,i,a,s,o):o==n.LEAST_UPPER_BOUND?t<a.length?t:-1:u:u-e>1?r(e,u,i,a,s,o):o==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,a){if(0===t.length)return-1;var s=r(-1,t.length,e,t,i,a||n.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===i(t[s],t[s-1],!0);)--s;return s}},{}],521:[function(e,t,n){function r(e,t){var n=e.generatedLine,r=t.generatedLine,i=e.generatedColumn,s=t.generatedColumn;return r>n||r==n&&s>=i||a.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var a=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){r(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(a.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=i},{"./util":526}],522:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t){return Math.round(e+Math.random()*(t-e))}function a(e,t,n,s){if(n<s){var o=i(n,s),u=n-1;r(e,o,s);for(var l=e[s],c=n;c<s;c++)t(e[c],l)<=0&&(u+=1,r(e,u,c));r(e,u+1,c);var p=u+1;a(e,t,n,p-1),a(e,t,p+1,s)}}n.quickSort=function(e,t){a(e,t,0,e.length-1)}},{}],523:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new s(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=o.getArg(t,"version"),r=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),a=o.getArg(t,"sourceRoot",null),s=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(o.normalize).map(function(e){return a&&o.isAbsolute(a)&&o.isAbsolute(e)?o.relative(a,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(r,!0),this.sourceRoot=a,this.sourcesContent=s,this._mappings=u,this.file=c}function a(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function s(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=o.getArg(t,"version"),i=o.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new l,this._names=new l;var a={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),n=o.getArg(t,"line"),i=o.getArg(t,"column");if(n<a.line||n===a.line&&i<a.column)throw new Error("Section offsets must be ordered and non-overlapping.");return a=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(o.getArg(e,"map"))}})}var o=e("./util"),u=e("./binary-search"),l=e("./array-set").ArraySet,c=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,a)},r.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),n={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=o.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var a=this._originalMappings[i];if(void 0===e.column)for(var s=a.originalLine;a&&a.originalLine===s;)r.push({line:o.getArg(a,"generatedLine",null),column:o.getArg(a,"generatedColumn",null),lastColumn:o.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i];else for(var l=a.originalColumn;a&&a.originalLine===t&&a.originalColumn==l;)r.push({line:o.getArg(a,"generatedLine",null),column:o.getArg(a,"generatedColumn",null),lastColumn:o.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,i.prototype=Object.create(r.prototype),i.prototype.consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=l.fromArray(e._names.toArray(),!0),r=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var s=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],f=0,h=s.length;f<h;f++){var d=s[f],y=new a;y.generatedLine=d.generatedLine,y.generatedColumn=d.generatedColumn,d.source&&(y.source=r.indexOf(d.source),y.originalLine=d.originalLine,y.originalColumn=d.originalColumn,d.name&&(y.name=n.indexOf(d.name)),c.push(y)),u.push(y)}return p(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,s,u,l=1,f=0,h=0,d=0,y=0,m=0,b=e.length,g=0,v={},x={},_=[],E=[];g<b;)if(";"===e.charAt(g))l++,g++,f=0;else if(","===e.charAt(g))g++;else{for(n=new a,n.generatedLine=l,s=g;s<b&&!this._charIsMappingSeparator(e,s);s++);if(r=e.slice(g,s),i=v[r])g+=r.length;else{for(i=[];g<s;)c.decode(e,g,x),u=x.value,g=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");v[r]=i}n.generatedColumn=f+i[0],f=n.generatedColumn,i.length>1&&(n.source=y+i[1],y+=i[1],n.originalLine=h+i[2],h=n.originalLine,n.originalLine+=1,n.originalColumn=d+i[3],d=n.originalColumn,i.length>4&&(n.name=m+i[4],m+=i[4])),E.push(n),"number"==typeof n.originalLine&&_.push(n)}p(E,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,p(_,o.compareByOriginalPositions),this.__originalMappings=_},i.prototype._findMapping=function(e,t,n,r,i,a){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return u.search(e,t,i,a)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var a=o.getArg(i,"source",null);null!==a&&(a=this._sources.at(a),null!=this.sourceRoot&&(a=o.join(this.sourceRoot,a)));var s=o.getArg(i,"name",null);return null!==s&&(s=this._names.at(s)),{source:a,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=o.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var n={source:t,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var a=this._originalMappings[i];if(a.source===n.source)return{line:o.getArg(a,"generatedLine",null),column:o.getArg(a,"generatedColumn",null),lastColumn:o.getArg(a,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,s.prototype=Object.create(r.prototype),s.prototype.constructor=r,s.prototype._version=3,Object.defineProperty(s.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),s.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},n=u.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n?n:e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},s.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},s.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n],i=r.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},s.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(n.consumer.sources.indexOf(o.getArg(e,"source"))!==-1){var r=n.consumer.generatedPositionFor(e);if(r){var i={line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)};return i}}}return{line:null,column:null}},s.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,a=0;a<i.length;a++){var s=i[a],u=r.consumer._sources.at(s.source);null!==r.consumer.sourceRoot&&(u=o.join(r.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=r.consumer._names.at(s.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:s.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:s.generatedColumn+(r.generatedOffset.generatedLine===s.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:s.originalLine,originalColumn:s.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}p(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),p(this.__originalMappings,o.compareByOriginalPositions)},n.IndexedSourceMapConsumer=s},{"./array-set":517,"./base64-vlq":518,"./binary-search":520,"./quick-sort":522,"./util":526}],524:[function(e,t,n){function r(e){e||(e={}),this._file=a.getArg(e,"file",null),this._sourceRoot=a.getArg(e,"sourceRoot",null),this._skipValidation=a.getArg(e,"skipValidation",!1),this._sources=new s,this._names=new s,this._mappings=new o,this._sourcesContents=null}var i=e("./base64-vlq"),a=e("./util"),s=e("./array-set").ArraySet,o=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=a.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=a.getArg(e,"generated"),n=a.getArg(e,"original",null),r=a.getArg(e,"source",null),i=a.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=a.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[a.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[a.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=a.relative(i,r));var o=new s,u=new s;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var s=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=s.source&&(t.source=s.source,null!=n&&(t.source=a.join(n,t.source)),null!=i&&(t.source=a.relative(i,t.source)),t.originalLine=s.line,t.originalColumn=s.column,null!=s.name&&(t.name=s.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=a.join(n,t)),null!=i&&(t=a.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r,s=0,o=1,u=0,l=0,c=0,p=0,f="",h=this._mappings.toArray(),d=0,y=h.length;d<y;d++){if(t=h[d],e="",t.generatedLine!==o)for(s=0;t.generatedLine!==o;)e+=";",o++;else if(d>0){if(!a.compareByGeneratedPositionsInflated(t,h[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-s),s=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=i.encode(r-p),p=r,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=i.encode(n-c),c=n)),f+=e}return f},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=a.relative(t,e));var n=a.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":517,"./base64-vlq":518,"./mapping-list":521,"./util":526}],525:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[u]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,a=e("./util"),s=/(\r?\n)/,o=10,u="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=n?a.join(n,e.source):e.source;o.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new r,u=e.split(s),l=function(){var e=u.shift(),t=u.shift()||"";return e+t},c=1,p=0,f=null;return t.eachMapping(function(e){if(null!==f){if(!(c<e.generatedLine)){var t=u[0],n=t.substr(0,e.generatedColumn-p);return u[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(f,n),void(f=e)}i(f,l()),c++,p=0}for(;c<e.generatedLine;)o.add(l()),c++;if(p<e.generatedColumn){var t=u[0];o.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),p=e.generatedColumn}f=e},this),u.length>0&&(f&&i(f,l()),o.add(u.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=a.join(n,e)),o.setSourceContent(e,r))}),o},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n<r;n++)t=this.children[n],t[u]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[u]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[a.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][u]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(a.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,a=null,s=null,u=null,l=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(a===i.source&&s===i.line&&u===i.column&&l===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),a=i.source,s=i.line,u=i.column,l=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),a=null,r=!1);for(var c=0,p=e.length;c<p;c++)e.charCodeAt(c)===o?(t.line++,t.column=0,c+1===p?(a=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":524,"./util":526}],526:[function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(b);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function a(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var t=e,r=i(e);if(r){if(!r.path)return e;t=r.path}for(var s,o=n.isAbsolute(t),u=t.split(/\/+/),l=0,c=u.length-1;c>=0;c--)s=u[c],"."===s?u.splice(c,1):".."===s?l++:l>0&&(""===s?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return t=u.join("/"),""===t&&(t=o?"/":"."),r?(r.path=t,a(r)):t}function o(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),a(n);if(n||t.match(g))return t;if(r&&!r.host&&!r.path)return r.host=t,a(r);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=o,a(r)):o}function u(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if(e=e.slice(0,r),e.match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}function l(e){return e}function c(e){return f(e)?"$"+e:e}function p(e){return f(e)?e.slice(1):e}function f(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function h(e,t,n){var r=e.source-t.source;return 0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r||n?r:(r=e.generatedColumn-t.generatedColumn,0!==r?r:(r=e.generatedLine-t.generatedLine,0!==r?r:e.name-t.name))))}function d(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:(r=e.generatedColumn-t.generatedColumn,0!==r||n?r:(r=e.source-t.source,0!==r?r:(r=e.originalLine-t.originalLine,0!==r?r:(r=e.originalColumn-t.originalColumn,0!==r?r:e.name-t.name))))}function y(e,t){return e===t?0:e>t?1:-1}function m(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:(n=e.generatedColumn-t.generatedColumn,0!==n?n:(n=y(e.source,t.source),0!==n?n:(n=e.originalLine-t.originalLine,0!==n?n:(n=e.originalColumn-t.originalColumn,0!==n?n:y(e.name,t.name)))))}n.getArg=r;var b=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,g=/^data:.+\,.+$/;n.urlParse=i,n.urlGenerate=a,n.normalize=s,n.join=o,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(b)},n.relative=u;var v=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=v?l:c,n.fromSetString=v?l:p,n.compareByOriginalPositions=h,n.compareByGeneratedPositionsDeflated=d,n.compareByGeneratedPositionsInflated=m},{}],527:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":523,"./lib/source-map-generator":524,"./lib/source-node":525}],528:[function(e,t,n){t.exports={name:"babel-core",version:"6.21.0",description:"Babel compiler core.",author:{name:"Sebastian McKenzie",email:"sebmck@gmail.com"},homepage:"https://babeljs.io/",license:"MIT",repository:{type:"git",url:"https://github.com/babel/babel/tree/master/packages/babel-core"},keywords:["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core"],scripts:{bench:"make bench",test:"make test"},dependencies:{"babel-code-frame":"^6.20.0","babel-generator":"^6.21.0","babel-helpers":"^6.16.0","babel-messages":"^6.8.0","babel-template":"^6.16.0","babel-runtime":"^6.20.0","babel-register":"^6.18.0","babel-traverse":"^6.21.0","babel-types":"^6.21.0",babylon:"^6.11.0","convert-source-map":"^1.1.0",debug:"^2.1.1",json5:"^0.5.0",lodash:"^4.2.0",minimatch:"^3.0.2","path-is-absolute":"^1.0.0",private:"^0.1.6",slash:"^1.0.0","source-map":"^0.5.0"},devDependencies:{"babel-helper-fixtures":"^6.20.0","babel-helper-transform-fixture-test-runner":"^6.21.0","babel-polyfill":"^6.20.0"},_id:"babel-core@6.21.0",_shasum:"75525480c21c803f826ef3867d22c19f080a3724",_from:"babel-core@>=6.18.2 <7.0.0",_npmVersion:"3.10.8",_nodeVersion:"6.9.0",_npmUser:{name:"hzoo",email:"hi@henryzoo.com"},dist:{shasum:"75525480c21c803f826ef3867d22c19f080a3724",tarball:"https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz"},maintainers:[{name:"amasad",email:"amjad.masad@gmail.com"},{name:"hzoo",email:"hi@henryzoo.com"},{name:"jmm",email:"npm-public@jessemccarthy.net"},{name:"loganfsmyth",email:"loganfsmyth@gmail.com"},{name:"sebmck",email:"sebmck@gmail.com"},{name:"thejameskyle",email:"me@thejameskyle.com"}],_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/babel-core-6.21.0.tgz_1481925355362_0.2487682355567813"},directories:{},_resolved:"https://registry.npmjs.org/babel-core/-/babel-core-6.21.0.tgz",readme:"ERROR: No README data found!"}},{}],529:[function(e,t,n){function r(e,t,n){if(e){if(x.fixFaultyLocations(e,t),n){if(d.Node.check(e)&&d.SourceLocation.check(e.loc)){for(var i=n.length-1;i>=0&&!(_(n[i].loc.end,e.loc.start)<=0);--i);return void n.splice(i+1,0,e)}}else if(e[E])return e[E];var a;if(y.check(e))a=Object.keys(e);else{if(!m.check(e))return;a=h.getFieldNames(e)}n||Object.defineProperty(e,E,{value:n=[],enumerable:!1});for(var i=0,s=a.length;i<s;++i)r(e[a[i]],t,n);return n}}function i(e,t,n){for(var a=r(e,n),s=0,o=a.length;s<o;){var u=s+o>>1,l=a[u];if(_(l.loc.start,t.loc.start)<=0&&_(t.loc.end,l.loc.end)<=0)return void i(t.enclosingNode=l,t,n);if(_(l.loc.end,t.loc.start)<=0){var c=l;s=u+1}else{if(!(_(t.loc.end,l.loc.start)<=0))throw new Error("Comment location overlaps with node location");var p=l;o=u}}c&&(t.precedingNode=c),p&&(t.followingNode=p)}function a(e,t){var n=e.length;if(0!==n){for(var r=e[0].precedingNode,i=e[0].followingNode,a=i.loc.start,s=n;s>0;--s){var u=e[s-1];f.strictEqual(u.precedingNode,r),f.strictEqual(u.followingNode,i);var c=t.sliceString(u.loc.end,a);if(/\S/.test(c))break;a=u.loc.start}for(;s<=n&&(u=e[s])&&("Line"===u.type||"CommentLine"===u.type)&&u.loc.start.column>i.loc.start.column;)++s;e.forEach(function(e,t){t<s?l(r,e):o(i,e)}),e.length=0}}function s(e,t){var n=e.comments||(e.comments=[]);n.push(t)}function o(e,t){t.leading=!0,t.trailing=!1,s(e,t)}function u(e,t){t.leading=!1,t.trailing=!1,s(e,t)}function l(e,t){t.leading=!1,t.trailing=!0,s(e,t)}function c(e,t){var n=e.getValue();d.Comment.assert(n);var r=n.loc,i=r&&r.lines,a=[t(e)];if(n.trailing)a.push("\n");else if(i instanceof g){var s=i.slice(r.end,i.skipSpaces(r.end));1===s.length?a.push(s):a.push(new Array(s.length).join("\n"))}else a.push("\n");return v(a)}function p(e,t){var n=e.getValue(e);d.Comment.assert(n);var r=n.loc,i=r&&r.lines,a=[];if(i instanceof g){var s=i.skipSpaces(r.start,!0)||i.firstPos(),o=i.slice(s,r.start);1===o.length?a.push(o):a.push(new Array(o.length).join("\n"))}return a.push(t(e)),v(a)}var f=e("assert"),h=e("./types"),d=h.namedTypes,y=h.builtInTypes.array,m=h.builtInTypes.object,b=e("./lines"),g=(b.fromString,b.Lines),v=b.concat,x=e("./util"),_=x.comparePos,E=e("private").makeUniqueKey();n.attach=function(e,t,n){if(y.check(e)){var r=[];e.forEach(function(e){e.loc.lines=n,i(t,e,n);var s=e.precedingNode,c=e.enclosingNode,p=e.followingNode;if(s&&p){var h=r.length;if(h>0){var d=r[h-1];f.strictEqual(d.precedingNode===e.precedingNode,d.followingNode===e.followingNode),d.followingNode!==e.followingNode&&a(r,n)}r.push(e)}else if(s)a(r,n),l(s,e);else if(p)a(r,n),o(p,e);else{if(!c)throw new Error("AST contains no nodes at all?");a(r,n),u(c,e)}}),a(r,n),e.forEach(function(e){delete e.precedingNode,delete e.enclosingNode,delete e.followingNode})}},n.printComments=function(e,t){var n=e.getValue(),r=t(e),i=d.Node.check(n)&&h.getFieldValue(n,"comments");if(!i||0===i.length)return r;var a=[],s=[r];return e.each(function(e){var r=e.getValue(),i=h.getFieldValue(r,"leading"),o=h.getFieldValue(r,"trailing");i||o&&!d.Statement.check(n)&&"Block"!==r.type&&"CommentBlock"!==r.type?a.push(c(e,t)):o&&s.push(p(e,t))},"comments"),a.push.apply(a,s),
+v(a)}},{"./lines":531,"./types":537,"./util":538,assert:2,private:560}],530:[function(e,t,n){function r(e){o.ok(this instanceof r),this.stack=[e]}function i(e,t){for(var n=e.stack,r=n.length-1;r>=0;r-=2){var i=n[r];if(l.Node.check(i)&&--t<0)return i}return null}function a(e){return l.BinaryExpression.check(e)||l.LogicalExpression.check(e)}function s(e){return!!l.CallExpression.check(e)||(c.check(e)?e.some(s):!!l.Node.check(e)&&u.someField(e,function(e,t){return s(t)}))}var o=e("assert"),u=e("./types"),l=u.namedTypes,c=(l.Node,u.builtInTypes.array),p=u.builtInTypes.number,f=r.prototype;t.exports=r,r.from=function(e){if(e instanceof r)return e.copy();if(e instanceof u.NodePath){for(var t,n=Object.create(r.prototype),i=[e.value];t=e.parentPath;e=t)i.push(e.name,t.value);return n.stack=i.reverse(),n}return new r(e)},f.copy=function e(){var e=Object.create(r.prototype);return e.stack=this.stack.slice(0),e},f.getName=function(){var e=this.stack,t=e.length;return t>1?e[t-2]:null},f.getValue=function(){var e=this.stack;return e[e.length-1]},f.getNode=function(e){return i(this,~~e)},f.getParentNode=function(e){return i(this,~~e+1)},f.getRootValue=function(){var e=this.stack;return e.length%2===0?e[1]:e[0]},f.call=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var s=arguments[a];r=r[s],t.push(s,r)}var o=e(this);return t.length=n,o},f.each=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var s=arguments[a];r=r[s],t.push(s,r)}for(var a=0;a<r.length;++a)a in r&&(t.push(a,r[a]),e(this),t.length-=2);t.length=n},f.map=function(e){for(var t=this.stack,n=t.length,r=t[n-1],i=arguments.length,a=1;a<i;++a){var s=arguments[a];r=r[s],t.push(s,r)}for(var o=new Array(r.length),a=0;a<r.length;++a)a in r&&(t.push(a,r[a]),o[a]=e(this,a),t.length-=2);return t.length=n,o},f.needsParens=function(e){var t=this.getParentNode();if(!t)return!1;var n=this.getName(),r=this.getNode();if(this.getValue()!==r)return!1;if(l.Statement.check(r))return!1;if("Identifier"===r.type)return!1;if("ParenthesizedExpression"===t.type)return!1;switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===t.type&&"object"===n&&t.object===r;case"BinaryExpression":case"LogicalExpression":switch(t.type){case"CallExpression":return"callee"===n&&t.callee===r;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===n&&t.object===r;case"BinaryExpression":case"LogicalExpression":var i=t.operator,u=h[i],c=r.operator,f=h[c];if(u>f)return!0;if(u===f&&"right"===n)return o.strictEqual(t.right,r),!0;default:return!1}case"SequenceExpression":switch(t.type){case"ReturnStatement":return!1;case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==n;default:return!0}case"YieldExpression":switch(t.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return"NullableTypeAnnotation"===t.type;case"Literal":return"MemberExpression"===t.type&&p.check(r.value)&&"object"===n&&t.object===r;case"AssignmentExpression":case"ConditionalExpression":switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===n&&t.callee===r;case"ConditionalExpression":return"test"===n&&t.test===r;case"MemberExpression":return"object"===n&&t.object===r;default:return!1}case"ArrowFunctionExpression":return"CallExpression"===t.type&&"callee"===n||a(t);case"ObjectExpression":if("ArrowFunctionExpression"===t.type&&"body"===n)return!0;default:if("NewExpression"===t.type&&"callee"===n&&t.callee===r)return s(r)}return!(e===!0||this.canBeFirstInStatement()||!this.firstInStatement())};var h={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%","**"]].forEach(function(e,t){e.forEach(function(e){h[e]=t})}),f.canBeFirstInStatement=function(){var e=this.getNode();return!l.FunctionExpression.check(e)&&!l.ObjectExpression.check(e)},f.firstInStatement=function(){for(var e,t,n,r,i=this.stack,s=i.length-1;s>=0;s-=2)if(l.Node.check(i[s])&&(n=e,r=t,e=i[s-1],t=i[s]),t&&r){if(l.BlockStatement.check(t)&&"body"===e&&0===n)return o.strictEqual(t.body[0],r),!0;if(l.ExpressionStatement.check(t)&&"expression"===n)return o.strictEqual(t.expression,r),!0;if(l.SequenceExpression.check(t)&&"expressions"===e&&0===n)o.strictEqual(t.expressions[0],r);else if(l.CallExpression.check(t)&&"callee"===n)o.strictEqual(t.callee,r);else if(l.MemberExpression.check(t)&&"object"===n)o.strictEqual(t.object,r);else if(l.ConditionalExpression.check(t)&&"test"===n)o.strictEqual(t.test,r);else if(a(t)&&"left"===n)o.strictEqual(t.left,r);else{if(!l.UnaryExpression.check(t)||t.prefix||"argument"!==n)return!1;o.strictEqual(t.argument,r)}}return!0}},{"./types":537,assert:2}],531:[function(e,t,n){function r(e){return e[h]}function i(e,t){c.ok(this instanceof i),c.ok(e.length>0),t?y.assert(t):t=null,Object.defineProperty(this,h,{value:{infos:e,mappings:[],name:t,cachedSourceMap:null}}),t&&r(this).mappings.push(new b(this,{start:this.firstPos(),end:this.lastPos()}))}function a(e){return{line:e.line,indent:e.indent,locked:e.locked,sliceStart:e.sliceStart,sliceEnd:e.sliceEnd}}function s(e,t){for(var n=0,r=e.length,i=0;i<r;++i)switch(e.charCodeAt(i)){case 9:c.strictEqual(typeof t,"number"),c.ok(t>0);var a=Math.ceil(n/t)*t;a===n?n+=t:n=a;break;case 11:case 12:case 13:case 65279:break;case 32:default:n+=1}return n}function o(e,t){if(e instanceof i)return e;e+="";var n=t&&t.tabWidth,r=e.indexOf("\t")<0,a=!(!t||!t.locked),o=!t&&r&&e.length<=_;if(c.ok(n||r,"No tab width specified but encountered tabs in string\n"+e),o&&x.call(v,e))return v[e];var u=new i(e.split(A).map(function(e){var t=E.exec(e)[0];return{line:e,indent:s(t,n),locked:a,sliceStart:t.length,sliceEnd:e.length}}),f(t).sourceFileName);return o&&(v[e]=u),u}function u(e){return!/\S/.test(e)}function l(e,t,n){var r=e.sliceStart,i=e.sliceEnd,a=Math.max(e.indent,0),s=a+i-r;return"undefined"==typeof n&&(n=s),t=Math.max(t,0),n=Math.min(n,s),n=Math.max(n,t),n<a?(a=n,i=r):i-=s-n,s=n,s-=t,t<a?a-=t:(t-=a,a=0,r+=t),c.ok(a>=0),c.ok(r<=i),c.strictEqual(s,a+i-r),e.indent===a&&e.sliceStart===r&&e.sliceEnd===i?e:{line:e.line,indent:a,locked:!1,sliceStart:r,sliceEnd:i}}var c=e("assert"),p=e("source-map"),f=e("./options").normalize,h=e("private").makeUniqueKey(),d=e("./types"),y=d.builtInTypes.string,m=e("./util").comparePos,b=e("./mapping");n.Lines=i;var g=i.prototype;Object.defineProperties(g,{length:{get:function(){return r(this).infos.length}},name:{get:function(){return r(this).name}}});var v={},x=v.hasOwnProperty,_=10;n.countSpaces=s;var E=/^\s*/,A=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;n.fromString=o,g.toString=function(e){return this.sliceString(this.firstPos(),this.lastPos(),e)},g.getSourceMap=function(e,t){function n(n){return n=n||{},y.assert(e),n.file=e,t&&(y.assert(t),n.sourceRoot=t),n}if(!e)return null;var i=this,a=r(i);if(a.cachedSourceMap)return n(a.cachedSourceMap.toJSON());var s=new p.SourceMapGenerator(n()),o={};return a.mappings.forEach(function(e){for(var t=e.sourceLines.skipSpaces(e.sourceLoc.start)||e.sourceLines.lastPos(),n=i.skipSpaces(e.targetLoc.start)||i.lastPos();m(t,e.sourceLoc.end)<0&&m(n,e.targetLoc.end)<0;){var r=e.sourceLines.charAt(t),a=i.charAt(n);c.strictEqual(r,a);var u=e.sourceLines.name;if(s.addMapping({source:u,original:{line:t.line,column:t.column},generated:{line:n.line,column:n.column}}),!x.call(o,u)){var l=e.sourceLines.toString();s.setSourceContent(u,l),o[u]=l}i.nextPos(n,!0),e.sourceLines.nextPos(t,!0)}}),a.cachedSourceMap=s,s.toJSON()},g.bootstrapCharAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,n=e.column,r=this.toString().split(A),i=r[t-1];return"undefined"==typeof i?"":n===i.length&&t<r.length?"\n":n>=i.length?"":i.charAt(n)},g.charAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,n=e.column,i=r(this),a=i.infos,s=a[t-1],o=n;if("undefined"==typeof s||o<0)return"";var u=this.getIndentAt(t);return o<u?" ":(o+=s.sliceStart-u,o===s.sliceEnd&&t<this.length?"\n":o>=s.sliceEnd?"":s.line.charAt(o))},g.stripMargin=function(e,t){if(0===e)return this;if(c.ok(e>0,"negative margin: "+e),t&&1===this.length)return this;var n=r(this),s=new i(n.infos.map(function(n,r){return n.line&&(r>0||!t)&&(n=a(n),n.indent=Math.max(0,n.indent-e)),n}));if(n.mappings.length>0){var o=r(s).mappings;c.strictEqual(o.length,0),n.mappings.forEach(function(n){o.push(n.indent(e,t,!0))})}return s},g.indent=function(e){if(0===e)return this;var t=r(this),n=new i(t.infos.map(function(t){return t.line&&!t.locked&&(t=a(t),t.indent+=e),t}));if(t.mappings.length>0){var s=r(n).mappings;c.strictEqual(s.length,0),t.mappings.forEach(function(t){s.push(t.indent(e))})}return n},g.indentTail=function(e){if(0===e)return this;if(this.length<2)return this;var t=r(this),n=new i(t.infos.map(function(t,n){return n>0&&t.line&&!t.locked&&(t=a(t),t.indent+=e),t}));if(t.mappings.length>0){var s=r(n).mappings;c.strictEqual(s.length,0),t.mappings.forEach(function(t){s.push(t.indent(e,!0))})}return n},g.lockIndentTail=function(){if(this.length<2)return this;var e=r(this).infos;return new i(e.map(function(e,t){return e=a(e),e.locked=t>0,e}))},g.getIndentAt=function(e){c.ok(e>=1,"no line "+e+" (line numbers start from 1)");var t=r(this),n=t.infos[e-1];return Math.max(n.indent,0)},g.guessTabWidth=function(){var e=r(this);if(x.call(e,"cachedTabWidth"))return e.cachedTabWidth;for(var t=[],n=0,i=1,a=this.length;i<=a;++i){var s=e.infos[i-1],o=s.line.slice(s.sliceStart,s.sliceEnd);if(!u(o)){var l=Math.abs(s.indent-n);t[l]=~~t[l]+1,n=s.indent}}for(var c=-1,p=2,f=1;f<t.length;f+=1)x.call(t,f)&&t[f]>c&&(c=t[f],p=f);return e.cachedTabWidth=p},g.isOnlyWhitespace=function(){return u(this.toString())},g.isPrecededOnlyByWhitespace=function(e){var t=r(this),n=t.infos[e.line-1],i=Math.max(n.indent,0),a=e.column-i;if(a<=0)return!0;var s=n.sliceStart,o=Math.min(s+a,n.sliceEnd),l=n.line.slice(s,o);return u(l)},g.getLineLength=function(e){var t=r(this),n=t.infos[e-1];return this.getIndentAt(e)+n.sliceEnd-n.sliceStart},g.nextPos=function(e,t){var n=Math.max(e.line,0),r=Math.max(e.column,0);return r<this.getLineLength(n)?(e.column+=1,!t||!!this.skipSpaces(e,!1,!0)):n<this.length&&(e.line+=1,e.column=0,!t||!!this.skipSpaces(e,!1,!0))},g.prevPos=function(e,t){var n=e.line,r=e.column;if(r<1){if(n-=1,n<1)return!1;r=this.getLineLength(n)}else r=Math.min(r-1,this.getLineLength(n));return e.line=n,e.column=r,!t||!!this.skipSpaces(e,!0,!0)},g.firstPos=function(){return{line:1,column:0}},g.lastPos=function(){return{line:this.length,column:this.getLineLength(this.length)}},g.skipSpaces=function(e,t,n){if(e=e?n?e:{line:e.line,column:e.column}:t?this.lastPos():this.firstPos(),t){for(;this.prevPos(e);)if(!u(this.charAt(e))&&this.nextPos(e))return e;return null}for(;u(this.charAt(e));)if(!this.nextPos(e))return null;return e},g.trimLeft=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);return e?this.slice(e):D},g.trimRight=function(){var e=this.skipSpaces(this.lastPos(),!0,!0);return e?this.slice(this.firstPos(),e):D},g.trim=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);if(null===e)return D;var t=this.skipSpaces(this.lastPos(),!0,!0);return c.notStrictEqual(t,null),this.slice(e,t)},g.eachPos=function(e,t,n){var r=this.firstPos();if(t&&(r.line=t.line,r.column=t.column),!n||this.skipSpaces(r,!1,!0))do e.call(this,r);while(this.nextPos(r,n))},g.bootstrapSlice=function(e,t){var n=this.toString().split(A).slice(e.line-1,t.line);return n.push(n.pop().slice(0,t.column)),n[0]=n[0].slice(e.column),o(n.join("\n"))},g.slice=function(e,t){if(!t){if(!e)return this;t=this.lastPos()}var n=r(this),a=n.infos.slice(e.line-1,t.line);e.line===t.line?a[0]=l(a[0],e.column,t.column):(c.ok(e.line<t.line),a[0]=l(a[0],e.column),a.push(l(a.pop(),0,t.column)));var s=new i(a);if(n.mappings.length>0){var o=r(s).mappings;c.strictEqual(o.length,0),n.mappings.forEach(function(n){var r=n.slice(this,e,t);r&&o.push(r)},this)}return s},g.bootstrapSliceString=function(e,t,n){return this.slice(e,t).toString(n)},g.sliceString=function(e,t,n){if(!t){if(!e)return this;t=this.lastPos()}n=f(n);for(var i=r(this).infos,a=[],o=n.tabWidth,c=e.line;c<=t.line;++c){var p=i[c-1];c===e.line?p=c===t.line?l(p,e.column,t.column):l(p,e.column):c===t.line&&(p=l(p,0,t.column));var h=Math.max(p.indent,0),d=p.line.slice(0,p.sliceStart);if(n.reuseWhitespace&&u(d)&&s(d,n.tabWidth)===h)a.push(p.line.slice(0,p.sliceEnd));else{var y=0,m=h;n.useTabs&&(y=Math.floor(h/o),m-=y*o);var b="";y>0&&(b+=new Array(y+1).join("\t")),m>0&&(b+=new Array(m+1).join(" ")),b+=p.line.slice(p.sliceStart,p.sliceEnd),a.push(b)}}return a.join(n.lineTerminator)},g.isEmpty=function(){return this.length<2&&this.getLineLength(1)<1},g.join=function(e){function t(e){if(null!==e){if(s){var t=e.infos[0],n=new Array(t.indent+1).join(" "),r=c.length,i=Math.max(s.indent,0)+s.sliceEnd-s.sliceStart;s.line=s.line.slice(0,s.sliceEnd)+n+t.line.slice(t.sliceStart,t.sliceEnd),s.locked=s.locked||t.locked,s.sliceEnd=s.line.length,e.mappings.length>0&&e.mappings.forEach(function(e){p.push(e.add(r,i))})}else e.mappings.length>0&&p.push.apply(p,e.mappings);e.infos.forEach(function(e,t){(!s||t>0)&&(s=a(e),c.push(s))})}}function n(e,n){n>0&&t(l),t(e)}var s,u=this,l=r(u),c=[],p=[];if(e.map(function(e){var t=o(e);return t.isEmpty()?null:r(t)}).forEach(u.isEmpty()?t:n),c.length<1)return D;var f=new i(c);return r(f).mappings=p,f},n.concat=function(e){return D.join(e)},g.concat=function(e){var t=arguments,n=[this];return n.push.apply(n,t),c.strictEqual(n.length,t.length+1),D.join(n)};var D=o("")},{"./mapping":532,"./options":533,"./types":537,"./util":538,assert:2,private:560,"source-map":571}],532:[function(e,t,n){function r(e,t,n){o.ok(this instanceof r),o.ok(e instanceof f.Lines),c.assert(t),n?o.ok(l.check(n.start.line)&&l.check(n.start.column)&&l.check(n.end.line)&&l.check(n.end.column)):n=t,Object.defineProperties(this,{sourceLines:{value:e},sourceLoc:{value:t},targetLoc:{value:n}})}function i(e,t,n){return{line:e.line+t-1,column:1===e.line?e.column+n:e.column}}function a(e,t,n){return{line:e.line-t+1,column:e.line===t?e.column-n:e.column}}function s(e,t,n,r,i){o.ok(e instanceof f.Lines),o.ok(n instanceof f.Lines),p.assert(t),p.assert(r),p.assert(i);var a=h(r,i);if(0===a)return t;if(a<0){var s=e.skipSpaces(t),u=n.skipSpaces(r),l=i.line-u.line;for(s.line+=l,u.line+=l,l>0?(s.column=0,u.column=0):o.strictEqual(l,0);h(u,i)<0&&n.nextPos(u,!0);)o.ok(e.nextPos(s,!0)),o.strictEqual(e.charAt(s),n.charAt(u))}else{var s=e.skipSpaces(t,!0),u=n.skipSpaces(r,!0),l=i.line-u.line;for(s.line+=l,u.line+=l,l<0?(s.column=e.getLineLength(s.line),u.column=n.getLineLength(u.line)):o.strictEqual(l,0);h(i,u)<0&&n.prevPos(u,!0);)o.ok(e.prevPos(s,!0)),o.strictEqual(e.charAt(s),n.charAt(u))}return s}var o=e("assert"),u=e("./types"),l=(u.builtInTypes.string,u.builtInTypes.number),c=u.namedTypes.SourceLocation,p=u.namedTypes.Position,f=e("./lines"),h=e("./util").comparePos,d=r.prototype;t.exports=r,d.slice=function(e,t,n){function i(r){var i=l[r],a=c[r],p=t;return"end"===r?p=n:o.strictEqual(r,"start"),s(u,i,e,a,p)}o.ok(e instanceof f.Lines),p.assert(t),n?p.assert(n):n=e.lastPos();var u=this.sourceLines,l=this.sourceLoc,c=this.targetLoc;if(h(t,c.start)<=0)if(h(c.end,n)<=0)c={start:a(c.start,t.line,t.column),end:a(c.end,t.line,t.column)};else{if(h(n,c.start)<=0)return null;l={start:l.start,end:i("end")},c={start:a(c.start,t.line,t.column),end:a(n,t.line,t.column)}}else{if(h(c.end,t)<=0)return null;h(c.end,n)<=0?(l={start:i("start"),end:l.end},c={start:{line:1,column:0},end:a(c.end,t.line,t.column)}):(l={start:i("start"),end:i("end")},c={start:{line:1,column:0},end:a(n,t.line,t.column)})}return new r(this.sourceLines,l,c)},d.add=function(e,t){return new r(this.sourceLines,this.sourceLoc,{start:i(this.targetLoc.start,e,t),end:i(this.targetLoc.end,e,t)})},d.subtract=function(e,t){return new r(this.sourceLines,this.sourceLoc,{start:a(this.targetLoc.start,e,t),end:a(this.targetLoc.end,e,t)})},d.indent=function(e,t,n){if(0===e)return this;var i=this.targetLoc,a=i.start.line,s=i.end.line;if(t&&1===a&&1===s)return this;if(i={start:i.start,end:i.end},!t||a>1){var o=i.start.column+e;i.start={line:a,column:n?Math.max(0,o):o}}if(!t||s>1){var u=i.end.column+e;i.end={line:s,column:n?Math.max(0,u):u}}return new r(this.sourceLines,this.sourceLoc,i)}},{"./lines":531,"./types":537,"./util":538,assert:2}],533:[function(e,t,n){var r={parser:e("esprima"),tabWidth:4,useTabs:!1,reuseWhitespace:!0,lineTerminator:e("os").EOL,wrapColumn:74,sourceFileName:null,sourceMapName:null,sourceRoot:null,inputSourceMap:null,range:!1,tolerant:!0,quote:null,trailingComma:!1,arrayBracketSpacing:!1,objectCurlySpacing:!0,arrowParensAlways:!1,flowObjectCommas:!0},i=r.hasOwnProperty;n.normalize=function(e){function t(t){return i.call(e,t)?e[t]:r[t]}return e=e||r,{tabWidth:+t("tabWidth"),useTabs:!!t("useTabs"),reuseWhitespace:!!t("reuseWhitespace"),lineTerminator:t("lineTerminator"),wrapColumn:Math.max(t("wrapColumn"),0),sourceFileName:t("sourceFileName"),sourceMapName:t("sourceMapName"),sourceRoot:t("sourceRoot"),inputSourceMap:t("inputSourceMap"),parser:t("esprima")||t("parser"),range:t("range"),tolerant:t("tolerant"),quote:t("quote"),trailingComma:t("trailingComma"),arrayBracketSpacing:t("arrayBracketSpacing"),objectCurlySpacing:t("objectCurlySpacing"),arrowParensAlways:t("arrowParensAlways"),flowObjectCommas:t("flowObjectCommas")}}},{esprima:559,os:11}],534:[function(e,t,n){function r(e){i.ok(this instanceof r),this.lines=e,this.indent=0}var i=e("assert"),a=e("./types"),s=(a.namedTypes,a.builders),o=a.builtInTypes.object,u=a.builtInTypes.array,l=(a.builtInTypes.function,e("./patcher").Patcher,e("./options").normalize),c=e("./lines").fromString,p=e("./comments").attach,f=e("./util");n.parse=function(e,t){t=l(t);var n=c(e,t),i=n.toString({tabWidth:t.tabWidth,reuseWhitespace:!1,useTabs:!1}),a=[],o=t.parser.parse(i,{jsx:!0,loc:!0,locations:!0,range:t.range,comment:!0,onComment:a,tolerant:t.tolerant,ecmaVersion:6,sourceType:"module"});f.fixFaultyLocations(o,n),o.loc=o.loc||{start:n.firstPos(),end:n.lastPos()},o.loc.lines=n,o.loc.indent=0;var u=f.getTrueLoc(o,n);o.loc.start=u.start,o.loc.end=u.end,o.comments&&(a=o.comments,delete o.comments);var h=o;if("Program"===h.type){var h=s.file(o);h.loc={lines:n,indent:0,start:n.firstPos(),end:n.lastPos()}}else"File"===h.type&&(o=h.program);return p(a,o.body.length?h.program:h,n),new r(n).copy(h)};var h=r.prototype;h.copy=function(e){if(u.check(e))return e.map(this.copy,this);if(!o.check(e))return e;f.fixFaultyLocations(e,this.lines);var t=Object.create(Object.getPrototypeOf(e),{original:{value:e,configurable:!1,enumerable:!1,writable:!0}}),n=e.loc,r=this.indent,i=r;n&&(("Block"===e.type||"Line"===e.type||"CommentBlock"===e.type||"CommentLine"===e.type||this.lines.isPrecededOnlyByWhitespace(n.start))&&(i=this.indent=n.start.column),n.lines=this.lines,n.indent=i);for(var a=Object.keys(e),s=a.length,l=0;l<s;++l){var c=a[l];"loc"===c?t[c]=e[c]:t[c]=this.copy(e[c])}return this.indent=r,t}},{"./comments":529,"./lines":531,"./options":533,"./patcher":535,"./types":537,"./util":538,assert:2}],535:[function(e,t,n){function r(e){y.ok(this instanceof r),y.ok(e instanceof m.Lines);var t=this,n=[];t.replace=function(e,t){S.check(t)&&(t=m.fromString(t)),n.push({lines:t,start:e.start,end:e.end})},t.get=function(t){function r(t,n){y.ok(E(t,n)<=0),a.push(e.slice(t,n))}t=t||{start:{line:1,column:0},end:{line:e.length,column:e.getLineLength(e.length)}};var i=t.start,a=[];return n.sort(function(e,t){return E(e.start,t.start)}).forEach(function(e){E(i,e.start)>0||(r(i,e.start),a.push(e.lines),i=e.end)}),r(i,t.end),m.concat(a)}}function i(e){var t=[];return e.comments&&e.comments.length>0&&e.comments.forEach(function(e){(e.leading||e.trailing)&&t.push(e)}),t}function a(e,t,n){var r=_.copyPos(t.start),i=e.prevPos(r)&&e.charAt(r),a=n.charAt(n.firstPos());return i&&w.test(i)&&a&&w.test(a)}function s(e,t,n){var r=e.charAt(t.end),i=n.lastPos(),a=n.prevPos(i)&&n.charAt(i);return a&&w.test(a)&&r&&w.test(r)}function o(e,t){var n=e.getValue();g.assert(n);var r=n.original;if(g.assert(r),y.deepEqual(t,[]),n.type!==r.type)return!1;var i=new A(r),a=d(e,i,t);return a||(t.length=0),a}function u(e,t,n){var r=e.getValue(),i=t.getValue();return r===i||(C.check(r)?l(e,t,n):!!D.check(r)&&c(e,t,n))}function l(e,t,n){var r=e.getValue(),i=t.getValue();C.assert(r);var a=r.length;if(!C.check(i)||i.length!==a)return!1;for(var s=0;s<a;++s){e.stack.push(s,r[s]),t.stack.push(s,i[s]);var o=u(e,t,n);if(e.stack.length-=2,t.stack.length-=2,!o)return!1}return!0}function c(e,t,n){var r=e.getValue();if(D.assert(r),null===r.original)return!1;var i=t.getValue();if(!D.check(i))return!1;if(g.check(r)){if(!g.check(i))return!1;if(r.type===i.type){var a=[];if(d(e,t,a))n.push.apply(n,a);else{if(!i.loc)return!1;n.push({oldPath:t.copy(),newPath:e.copy()})}return!0}return!!(v.check(r)&&v.check(i)&&i.loc)&&(n.push({oldPath:t.copy(),newPath:e.copy()}),!0)}return d(e,t,n)}function p(e){var t=e.getValue(),n=t.loc,r=n&&n.lines;if(r){var i=F;for(i.line=n.start.line,i.column=n.start.column;r.prevPos(i);){var a=r.charAt(i);if("("===a)return E(e.getRootValue().loc.start,i)<=0;if(T.test(a))return!1}}return!1}function f(e){var t=e.getValue(),n=t.loc,r=n&&n.lines;if(r){var i=F;i.line=n.end.line,i.column=n.end.column;do{var a=r.charAt(i);if(")"===a)return E(i,e.getRootValue().loc.end)<=0;if(T.test(a))return!1}while(r.nextPos(i))}return!1}function h(e){return p(e)&&f(e)}function d(e,t,n){var r=e.getValue(),i=t.getValue();if(D.assert(r),D.assert(i),null===r.original)return!1;if(!e.canBeFirstInStatement()&&e.firstInStatement()&&!p(t))return!1;if(e.needsParens(!0)&&!h(t))return!1;for(var a in _.getUnionOfKeys(r,i))if("loc"!==a){e.stack.push(a,b.getFieldValue(r,a)),t.stack.push(a,b.getFieldValue(i,a));var s=u(e,t,n);if(e.stack.length-=2,t.stack.length-=2,!s)return!1}return!0}var y=e("assert"),m=e("./lines"),b=e("./types"),g=(b.getFieldValue,b.namedTypes.Printable),v=b.namedTypes.Expression,x=b.namedTypes.SourceLocation,_=e("./util"),E=_.comparePos,A=e("./fast-path"),D=b.builtInTypes.object,C=b.builtInTypes.array,S=b.builtInTypes.string,w=/[0-9a-z_$]/i;n.Patcher=r;var k=r.prototype;k.tryToReprintComments=function(e,t,n){var r=this;if(!e.comments&&!t.comments)return!0;var a=A.from(e),s=A.from(t);a.stack.push("comments",i(e)),s.stack.push("comments",i(t));var o=[],u=l(a,s,o);return u&&o.length>0&&o.forEach(function(e){var t=e.oldPath.getValue();y.ok(t.leading||t.trailing),r.replace(t.loc,n(e.newPath).indentTail(t.loc.indent))}),u},k.deleteComments=function(e){if(e.comments){var t=this;e.comments.forEach(function(n){n.leading?t.replace({start:n.loc.start,end:e.loc.lines.skipSpaces(n.loc.end,!1,!1)},""):n.trailing&&t.replace({start:e.loc.lines.skipSpaces(n.loc.start,!0,!1),end:n.loc.end},"")})}},n.getReprinter=function(e){y.ok(e instanceof A);var t=e.getValue();if(g.check(t)){var n=t.original,i=n&&n.loc,u=i&&i.lines,l=[];if(u&&o(e,l))return function(e){var t=new r(u);return l.forEach(function(n){var r=n.newPath.getValue(),i=n.oldPath.getValue();x.assert(i.loc,!0);var o=!t.tryToReprintComments(r,i,e);o&&t.deleteComments(i);var l=e(n.newPath,o).indentTail(i.loc.indent),c=a(u,i.loc,l),p=s(u,i.loc,l);if(c||p){var f=[];c&&f.push(" "),f.push(l),p&&f.push(" "),l=m.concat(f)}t.replace(i.loc,l)}),t.get(i).indentTail(-n.loc.indent)}}};var F={line:1,column:0},T=/\S/},{"./fast-path":530,"./lines":531,"./types":537,"./util":538,assert:2}],536:[function(e,t,n){function r(e,t){A.ok(this instanceof r),j.assert(e),this.code=e,t&&(B.assert(t),this.map=t)}function i(e){function t(e){return A.ok(e instanceof O),D(e,n)}function n(e,n){if(n)return t(e);if(A.ok(e instanceof O),!c){var r=p.tabWidth,i=e.getNode().loc;if(i&&i.lines&&i.lines.guessTabWidth){p.tabWidth=i.lines.guessTabWidth();var a=o(e);return p.tabWidth=r,a}}return o(e)}function o(e){var t=F(e);return t?a(e,t(n)):u(e)}function u(e,n){return n?D(e,u):s(e,p,t)}function l(e){return s(e,p,l)}A.ok(this instanceof i);var c=e&&e.tabWidth,p=k(e);A.notStrictEqual(p,e),p.sourceFileName=null,this.print=function(e){if(!e)return M;var t=n(O.from(e),!0);return new r(t.toString(p),I.composeSourceMaps(p.inputSourceMap,t.getSourceMap(p.sourceMapName,p.sourceRoot)))},this.printGenerically=function(e){if(!e)return M;var t=O.from(e),n=p.reuseWhitespace;p.reuseWhitespace=!1;var i=new r(l(t).toString(p));return p.reuseWhitespace=n,i}}function a(e,t){return e.needsParens()?w(["(",t,")"]):t}function s(e,t,n){A.ok(e instanceof O);var r=e.getValue(),i=[],a=!1,s=o(e,t,n);return!r||s.isEmpty()?s:(r.decorators&&r.decorators.length>0&&!I.getParentExportDeclaration(e)?e.each(function(e){i.push(n(e),"\n")},"decorators"):I.isExportDeclaration(r)&&r.declaration&&r.declaration.decorators?e.each(function(e){i.push(n(e),"\n")},"declaration","decorators"):a=e.needsParens(),a&&i.unshift("("),i.push(s),a&&i.push(")"),w(i))}function o(e,t,n){var r=e.getValue();if(!r)return S("");if("string"==typeof r)return S(r,t);P.Printable.assert(r);var i=[];switch(r.type){case"File":return e.call(n,"program");case"Program":return r.directives&&e.each(function(e){i.push(n(e),";\n")},"directives"),i.push(e.call(function(e){return u(e,t,n)},"body")),w(i);case"Noop":case"EmptyStatement":return S("");case"ExpressionStatement":return w([e.call(n,"expression"),";"]);case"ParenthesizedExpression":return w(["(",e.call(n,"expression"),")"]);case"BinaryExpression":case"LogicalExpression":case"AssignmentExpression":return S(" ").join([e.call(n,"left"),r.operator,e.call(n,"right")]);case"AssignmentPattern":return w([e.call(n,"left")," = ",e.call(n,"right")]);case"MemberExpression":i.push(e.call(n,"object"));var a=e.call(n,"property");return r.computed?i.push("[",a,"]"):i.push(".",a),w(i);case"MetaProperty":return w([e.call(n,"meta"),".",e.call(n,"property")]);case"BindExpression":return r.object&&i.push(e.call(n,"object")),i.push("::",e.call(n,"callee")),w(i);case"Path":return S(".").join(r.body);case"Identifier":return w([S(r.name,t),e.call(n,"typeAnnotation")]);case"SpreadElement":case"SpreadElementPattern":case"RestProperty":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return w(["...",e.call(n,"argument")]);case"FunctionDeclaration":case"FunctionExpression":return r.async&&i.push("async "),i.push("function"),r.generator&&i.push("*"),r.id&&i.push(" ",e.call(n,"id"),e.call(n,"typeParameters")),i.push("(",h(e,t,n),")",e.call(n,"returnType")," ",e.call(n,"body")),w(i);case"ArrowFunctionExpression":return r.async&&i.push("async "),r.typeParameters&&i.push(e.call(n,"typeParameters")),t.arrowParensAlways||1!==r.params.length||r.rest||"Identifier"!==r.params[0].type||r.params[0].typeAnnotation||r.returnType?i.push("(",h(e,t,n),")",e.call(n,"returnType")):i.push(e.call(n,"params",0)),i.push(" => ",e.call(n,"body")),w(i);case"MethodDefinition":return r.static&&i.push("static "),i.push(c(e,t,n)),w(i);case"YieldExpression":return i.push("yield"),r.delegate&&i.push("*"),r.argument&&i.push(" ",e.call(n,"argument")),w(i);case"AwaitExpression":return i.push("await"),r.all&&i.push("*"),r.argument&&i.push(" ",e.call(n,"argument")),w(i);case"ModuleDeclaration":return i.push("module",e.call(n,"id")),r.source?(A.ok(!r.body),i.push("from",e.call(n,"source"))):i.push(e.call(n,"body")),S(" ").join(i);case"ImportSpecifier":return r.imported?(i.push(e.call(n,"imported")),r.local&&r.local.name!==r.imported.name&&i.push(" as ",e.call(n,"local"))):r.id&&(i.push(e.call(n,"id")),r.name&&i.push(" as ",e.call(n,"name"))),w(i);case"ExportSpecifier":return r.local?(i.push(e.call(n,"local")),r.exported&&r.exported.name!==r.local.name&&i.push(" as ",e.call(n,"exported"))):r.id&&(i.push(e.call(n,"id")),r.name&&i.push(" as ",e.call(n,"name"))),w(i);case"ExportBatchSpecifier":return S("*");case"ImportNamespaceSpecifier":return i.push("* as "),r.local?i.push(e.call(n,"local")):r.id&&i.push(e.call(n,"id")),w(i);case"ImportDefaultSpecifier":return r.local?e.call(n,"local"):e.call(n,"id");case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return y(e,t,n);case"ExportAllDeclaration":return i.push("export *"),r.exported&&i.push(" as ",e.call(n,"exported")),i.push(" from ",e.call(n,"source")),w(i);case"ExportNamespaceSpecifier":return w(["* as ",e.call(n,"exported")]);case"ExportDefaultSpecifier":return e.call(n,"exported");case"ImportDeclaration":if(i.push("import "),r.importKind&&"value"!==r.importKind&&i.push(r.importKind+" "),r.specifiers&&r.specifiers.length>0){var s=!1;e.each(function(e){var r=e.getName();r>0&&i.push(", ");var a=e.getValue();P.ImportDefaultSpecifier.check(a)||P.ImportNamespaceSpecifier.check(a)?A.strictEqual(s,!1):(P.ImportSpecifier.assert(a),s||(s=!0,i.push(t.objectCurlySpacing?"{ ":"{"))),i.push(n(e))},"specifiers"),s&&i.push(t.objectCurlySpacing?" }":"}"),i.push(" from ")}return i.push(e.call(n,"source"),";"),w(i);case"BlockStatement":var o=e.call(function(e){return u(e,t,n)},"body");return!o.isEmpty()||r.directives&&0!==r.directives.length?(i.push("{\n"),r.directives&&e.each(function(e){i.push(n(e).indent(t.tabWidth),";",r.directives.length>1||!o.isEmpty()?"\n":"")},"directives"),i.push(o.indent(t.tabWidth)),i.push("\n}"),w(i)):S("{}");case"ReturnStatement":if(i.push("return"),r.argument){var l=e.call(n,"argument");l.length>1&&P.JSXElement&&P.JSXElement.check(r.argument)?i.push(" (\n",l.indent(t.tabWidth),"\n)"):i.push(" ",l)}return i.push(";"),w(i);case"CallExpression":return w([e.call(n,"callee"),f(e,t,n)]);case"ObjectExpression":case"ObjectPattern":case"ObjectTypeAnnotation":var g=!1,x="ObjectTypeAnnotation"===r.type,E=t.flowObjectCommas?",":x?";":",",D=[];x&&D.push("indexers","callProperties"),D.push("properties");var C=0;D.forEach(function(e){C+=r[e].length});var k=x&&1===C||0===C,F=r.exact?"{|":"{",T=r.exact?"|}":"}";i.push(k?F:F+"\n");var j=i.length-1,B=0;return D.forEach(function(r){e.each(function(e){var r=n(e);k||(r=r.indent(t.tabWidth));var a=!x&&r.length>1;a&&g&&i.push("\n"),i.push(r),B<C-1?(i.push(E+(a?"\n\n":"\n")),g=!a):1!==C&&x?i.push(E):!k&&I.isTrailingCommaEnabled(t,"objects")&&i.push(E),B++},r)}),i.push(k?T:"\n"+T),0!==B&&k&&t.objectCurlySpacing&&(i[j]=F+" ",i[i.length-1]=" "+T),w(i);case"PropertyPattern":return w([e.call(n,"key"),": ",e.call(n,"pattern")]);case"ObjectProperty":case"Property":if(r.method||"get"===r.kind||"set"===r.kind)return c(e,t,n);var O=e.call(n,"key");return r.computed?i.push("[",O,"]"):i.push(O),r.shorthand||i.push(": ",e.call(n,"value")),w(i);case"ClassMethod":return r.static&&i.push("static "),w([i,d(e,t,n)]);case"ObjectMethod":return d(e,t,n);case"Decorator":return w(["@",e.call(n,"expression")]);case"ArrayExpression":case"ArrayPattern":var N=r.elements,C=N.length,L=e.map(n,"elements"),M=S(", ").join(L),k=M.getLineLength(1)<=t.wrapColumn;return k?t.arrayBracketSpacing?i.push("[ "):i.push("["):i.push("[\n"),e.each(function(e){var n=e.getName(),r=e.getValue();if(r){var a=L[n];k?n>0&&i.push(" "):a=a.indent(t.tabWidth),i.push(a),(n<C-1||!k&&I.isTrailingCommaEnabled(t,"arrays"))&&i.push(","),k||i.push("\n")}else i.push(",")},"elements"),k&&t.arrayBracketSpacing?i.push(" ]"):i.push("]"),w(i);case"SequenceExpression":return S(", ").join(e.map(n,"expressions"));case"ThisExpression":return S("this");case"Super":return S("super");case"NullLiteral":return S("null");case"RegExpLiteral":return S(r.extra.raw);case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"Literal":return"string"!=typeof r.value?S(r.value,t):S(_(r.value,t),t);
+case"Directive":return e.call(n,"value");case"DirectiveLiteral":return S(_(r.value,t));case"ModuleSpecifier":if(r.local)throw new Error("The ESTree ModuleSpecifier type should be abstract");return S(_(r.value,t),t);case"UnaryExpression":return i.push(r.operator),/[a-z]$/.test(r.operator)&&i.push(" "),i.push(e.call(n,"argument")),w(i);case"UpdateExpression":return i.push(e.call(n,"argument"),r.operator),r.prefix&&i.reverse(),w(i);case"ConditionalExpression":return w(["(",e.call(n,"test")," ? ",e.call(n,"consequent")," : ",e.call(n,"alternate"),")"]);case"NewExpression":i.push("new ",e.call(n,"callee"));var R=r.arguments;return R&&i.push(f(e,t,n)),w(i);case"VariableDeclaration":i.push(r.kind," ");var U=0,L=e.map(function(e){var t=n(e);return U=Math.max(t.length,U),t},"declarations");1===U?i.push(S(", ").join(L)):L.length>1?i.push(S(",\n").join(L).indentTail(r.kind.length+1)):i.push(L[0]);var V=e.getParentNode();return P.ForStatement.check(V)||P.ForInStatement.check(V)||P.ForOfStatement&&P.ForOfStatement.check(V)||P.ForAwaitStatement&&P.ForAwaitStatement.check(V)||i.push(";"),w(i);case"VariableDeclarator":return r.init?S(" = ").join([e.call(n,"id"),e.call(n,"init")]):e.call(n,"id");case"WithStatement":return w(["with (",e.call(n,"object"),") ",e.call(n,"body")]);case"IfStatement":var G=b(e.call(n,"consequent"),t),i=["if (",e.call(n,"test"),")",G];return r.alternate&&i.push(v(G)?" else":"\nelse",b(e.call(n,"alternate"),t)),w(i);case"ForStatement":var q=e.call(n,"init"),K=q.length>1?";\n":"; ",X="for (",J=S(K).join([q,e.call(n,"test"),e.call(n,"update")]).indentTail(X.length),W=w([X,J,")"]),z=b(e.call(n,"body"),t),i=[W];return W.length>1&&(i.push("\n"),z=z.trimLeft()),i.push(z),w(i);case"WhileStatement":return w(["while (",e.call(n,"test"),")",b(e.call(n,"body"),t)]);case"ForInStatement":return w([r.each?"for each (":"for (",e.call(n,"left")," in ",e.call(n,"right"),")",b(e.call(n,"body"),t)]);case"ForOfStatement":return w(["for (",e.call(n,"left")," of ",e.call(n,"right"),")",b(e.call(n,"body"),t)]);case"ForAwaitStatement":return w(["for await (",e.call(n,"left")," of ",e.call(n,"right"),")",b(e.call(n,"body"),t)]);case"DoWhileStatement":var Y=w(["do",b(e.call(n,"body"),t)]),i=[Y];return v(Y)?i.push(" while"):i.push("\nwhile"),i.push(" (",e.call(n,"test"),");"),w(i);case"DoExpression":var H=e.call(function(e){return u(e,t,n)},"body");return w(["do {\n",H.indent(t.tabWidth),"\n}"]);case"BreakStatement":return i.push("break"),r.label&&i.push(" ",e.call(n,"label")),i.push(";"),w(i);case"ContinueStatement":return i.push("continue"),r.label&&i.push(" ",e.call(n,"label")),i.push(";"),w(i);case"LabeledStatement":return w([e.call(n,"label"),":\n",e.call(n,"body")]);case"TryStatement":return i.push("try ",e.call(n,"block")),r.handler?i.push(" ",e.call(n,"handler")):r.handlers&&e.each(function(e){i.push(" ",n(e))},"handlers"),r.finalizer&&i.push(" finally ",e.call(n,"finalizer")),w(i);case"CatchClause":return i.push("catch (",e.call(n,"param")),r.guard&&i.push(" if ",e.call(n,"guard")),i.push(") ",e.call(n,"body")),w(i);case"ThrowStatement":return w(["throw ",e.call(n,"argument"),";"]);case"SwitchStatement":return w(["switch (",e.call(n,"discriminant"),") {\n",S("\n").join(e.map(n,"cases")),"\n}"]);case"SwitchCase":return r.test?i.push("case ",e.call(n,"test"),":"):i.push("default:"),r.consequent.length>0&&i.push("\n",e.call(function(e){return u(e,t,n)},"consequent").indent(t.tabWidth)),w(i);case"DebuggerStatement":return S("debugger;");case"JSXAttribute":return i.push(e.call(n,"name")),r.value&&i.push("=",e.call(n,"value")),w(i);case"JSXIdentifier":return S(r.name,t);case"JSXNamespacedName":return S(":").join([e.call(n,"namespace"),e.call(n,"name")]);case"JSXMemberExpression":return S(".").join([e.call(n,"object"),e.call(n,"property")]);case"JSXSpreadAttribute":return w(["{...",e.call(n,"argument"),"}"]);case"JSXExpressionContainer":return w(["{",e.call(n,"expression"),"}"]);case"JSXElement":var $=e.call(n,"openingElement");if(r.openingElement.selfClosing)return A.ok(!r.closingElement),$;var Q=w(e.map(function(e){var t=e.getValue();if(P.Literal.check(t)&&"string"==typeof t.value){if(/\S/.test(t.value))return t.value.replace(/^\s+|\s+$/g,"");if(/\n/.test(t.value))return"\n"}return n(e)},"children")).indentTail(t.tabWidth),Z=e.call(n,"closingElement");return w([$,Q,Z]);case"JSXOpeningElement":i.push("<",e.call(n,"name"));var ee=[];e.each(function(e){ee.push(" ",n(e))},"attributes");var te=w(ee),ne=te.length>1||te.getLineLength(1)>t.wrapColumn;return ne&&(ee.forEach(function(e,t){" "===e&&(A.strictEqual(t%2,0),ee[t]="\n")}),te=w(ee).indentTail(t.tabWidth)),i.push(te,r.selfClosing?" />":">"),w(i);case"JSXClosingElement":return w(["</",e.call(n,"name"),">"]);case"JSXText":return S(r.value,t);case"JSXEmptyExpression":return S("");case"TypeAnnotatedIdentifier":return w([e.call(n,"annotation")," ",e.call(n,"identifier")]);case"ClassBody":return 0===r.body.length?S("{}"):w(["{\n",e.call(function(e){return u(e,t,n)},"body").indent(t.tabWidth),"\n}"]);case"ClassPropertyDefinition":return i.push("static ",e.call(n,"definition")),P.MethodDefinition.check(r.definition)||i.push(";"),w(i);case"ClassProperty":r.static&&i.push("static ");var O=e.call(n,"key");return r.computed?O=w(["[",O,"]"]):"plus"===r.variance?O=w(["+",O]):"minus"===r.variance&&(O=w(["-",O])),i.push(O),r.typeAnnotation&&i.push(e.call(n,"typeAnnotation")),r.value&&i.push(" = ",e.call(n,"value")),i.push(";"),w(i);case"ClassDeclaration":case"ClassExpression":return i.push("class"),r.id&&i.push(" ",e.call(n,"id"),e.call(n,"typeParameters")),r.superClass&&i.push(" extends ",e.call(n,"superClass"),e.call(n,"superTypeParameters")),r.implements&&r.implements.length>0&&i.push(" implements ",S(", ").join(e.map(n,"implements"))),i.push(" ",e.call(n,"body")),w(i);case"TemplateElement":return S(r.value.raw,t).lockIndentTail();case"TemplateLiteral":var re=e.map(n,"expressions");return i.push("`"),e.each(function(e){var t=e.getName();i.push(n(e)),t<re.length&&i.push("${",re[t],"}")},"quasis"),i.push("`"),w(i).lockIndentTail();case"TaggedTemplateExpression":return w([e.call(n,"tag"),e.call(n,"quasi")]);case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"TupleTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(r.type));case"CommentBlock":case"Block":return w(["/*",S(r.value,t),"*/"]);case"CommentLine":case"Line":return w(["//",S(r.value,t)]);case"TypeAnnotation":return r.typeAnnotation?("FunctionTypeAnnotation"!==r.typeAnnotation.type&&i.push(": "),i.push(e.call(n,"typeAnnotation")),w(i)):S("");case"ExistentialTypeParam":case"ExistsTypeAnnotation":return S("*",t);case"EmptyTypeAnnotation":return S("empty",t);case"AnyTypeAnnotation":return S("any",t);case"MixedTypeAnnotation":return S("mixed",t);case"ArrayTypeAnnotation":return w([e.call(n,"elementType"),"[]"]);case"BooleanTypeAnnotation":return S("boolean",t);case"BooleanLiteralTypeAnnotation":return A.strictEqual(typeof r.value,"boolean"),S(""+r.value,t);case"DeclareClass":return m(e,["class ",e.call(n,"id")," ",e.call(n,"body")]);case"DeclareFunction":return m(e,["function ",e.call(n,"id"),";"]);case"DeclareModule":return m(e,["module ",e.call(n,"id")," ",e.call(n,"body")]);case"DeclareModuleExports":return m(e,["module.exports",e.call(n,"typeAnnotation")]);case"DeclareVariable":return m(e,["var ",e.call(n,"id"),";"]);case"DeclareExportDeclaration":return w(["declare ",y(e,t,n)]);case"FunctionTypeAnnotation":var ie=e.getParentNode(0),ae=!(P.ObjectTypeCallProperty.check(ie)||P.DeclareFunction.check(e.getParentNode(2))),se=ae&&!P.FunctionTypeParam.check(ie);return se&&i.push(": "),i.push("(",S(", ").join(e.map(n,"params")),")"),r.returnType&&i.push(ae?" => ":": ",e.call(n,"returnType")),w(i);case"FunctionTypeParam":return w([e.call(n,"name"),r.optional?"?":"",": ",e.call(n,"typeAnnotation")]);case"GenericTypeAnnotation":return w([e.call(n,"id"),e.call(n,"typeParameters")]);case"DeclareInterface":i.push("declare ");case"InterfaceDeclaration":return i.push(S("interface ",t),e.call(n,"id"),e.call(n,"typeParameters")," "),r.extends&&i.push("extends ",S(", ").join(e.map(n,"extends"))),i.push(" ",e.call(n,"body")),w(i);case"ClassImplements":case"InterfaceExtends":return w([e.call(n,"id"),e.call(n,"typeParameters")]);case"IntersectionTypeAnnotation":return S(" & ").join(e.map(n,"types"));case"NullableTypeAnnotation":return w(["?",e.call(n,"typeAnnotation")]);case"NullLiteralTypeAnnotation":return S("null",t);case"ThisTypeAnnotation":return S("this",t);case"NumberTypeAnnotation":return S("number",t);case"ObjectTypeCallProperty":return e.call(n,"value");case"ObjectTypeIndexer":var oe="plus"===r.variance?"+":"minus"===r.variance?"-":"";return w([oe,"[",e.call(n,"id"),": ",e.call(n,"key"),"]: ",e.call(n,"value")]);case"ObjectTypeProperty":var oe="plus"===r.variance?"+":"minus"===r.variance?"-":"";return w([oe,e.call(n,"key"),r.optional?"?":"",": ",e.call(n,"value")]);case"QualifiedTypeIdentifier":return w([e.call(n,"qualification"),".",e.call(n,"id")]);case"StringLiteralTypeAnnotation":return S(_(r.value,t),t);case"NumberLiteralTypeAnnotation":return A.strictEqual(typeof r.value,"number"),S(""+r.value,t);case"StringTypeAnnotation":return S("string",t);case"DeclareTypeAlias":i.push("declare ");case"TypeAlias":return w(["type ",e.call(n,"id"),e.call(n,"typeParameters")," = ",e.call(n,"right"),";"]);case"TypeCastExpression":return w(["(",e.call(n,"expression"),e.call(n,"typeAnnotation"),")"]);case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w(["<",S(", ").join(e.map(n,"params")),">"]);case"TypeParameter":switch(r.variance){case"plus":i.push("+");break;case"minus":i.push("-")}return i.push(e.call(n,"name")),r.bound&&i.push(e.call(n,"bound")),r.default&&i.push("=",e.call(n,"default")),w(i);case"TypeofTypeAnnotation":return w([S("typeof ",t),e.call(n,"argument")]);case"UnionTypeAnnotation":return S(" | ").join(e.map(n,"types"));case"VoidTypeAnnotation":return S("void",t);case"NullTypeAnnotation":return S("null",t);case"ClassHeritage":case"ComprehensionBlock":case"ComprehensionExpression":case"Glob":case"GeneratorExpression":case"LetStatement":case"LetExpression":case"GraphExpression":case"GraphIndexExpression":case"XMLDefaultDeclaration":case"XMLAnyName":case"XMLQualifiedIdentifier":case"XMLFunctionQualifiedIdentifier":case"XMLAttributeSelector":case"XMLFilterExpression":case"XML":case"XMLElement":case"XMLList":case"XMLEscape":case"XMLText":case"XMLStartTag":case"XMLEndTag":case"XMLPointTag":case"XMLName":case"XMLAttribute":case"XMLCdata":case"XMLComment":case"XMLProcessingInstruction":default:throw new Error("unknown type: "+JSON.stringify(r.type))}return p}function u(e,t,n){var r=(P.ClassBody&&P.ClassBody.check(e.getParentNode()),[]),i=!1,a=!1;e.each(function(e){var t=(e.getName(),e.getValue());t&&"EmptyStatement"!==t.type&&(P.Comment.check(t)?i=!0:P.Statement.check(t)?a=!0:j.assert(t),r.push({node:t,printed:n(e)}))}),i&&A.strictEqual(a,!1,"Comments may appear as statements in otherwise empty statement lists, but may not coexist with non-Comment nodes.");var s=null,o=r.length,u=[];return r.forEach(function(e,n){var r,i,a=e.printed,c=e.node,p=a.length>1,f=n>0,h=n<o-1,d=c&&c.loc&&c.loc.lines,y=d&&t.reuseWhitespace&&I.getTrueLoc(c,d);if(f)if(y){var m=d.skipSpaces(y.start,!0),b=m?m.line:1,g=y.start.line-b;r=Array(g+1).join("\n")}else r=p?"\n\n":"\n";else r="";if(h)if(y){var v=d.skipSpaces(y.end),x=v?v.line:d.length,_=x-y.end.line;i=Array(_+1).join("\n")}else i=p?"\n\n":"\n";else i="";u.push(l(s,r),a),h?s=i:i&&u.push(i)}),w(u)}function l(e,t){if(!e&&!t)return S("");if(!e)return S(t);if(!t)return S(e);var n=S(e),r=S(t);return r.length>n.length?r:n}function c(e,t,n){var r=e.getNode(),i=r.kind,a=[];"ObjectMethod"===r.type||"ClassMethod"===r.type?r.value=r:P.FunctionExpression.assert(r.value),r.value.async&&a.push("async "),i&&"init"!==i&&"method"!==i&&"constructor"!==i?(A.ok("get"===i||"set"===i),a.push(i," ")):r.value.generator&&a.push("*");var s=e.call(n,"key");return r.computed&&(s=w(["[",s,"]"])),a.push(s,e.call(n,"value","typeParameters"),"(",e.call(function(e){return h(e,t,n)},"value"),")",e.call(n,"value","returnType")," ",e.call(n,"value","body")),w(a)}function f(e,t,n){var r=e.map(n,"arguments"),i=I.isTrailingCommaEnabled(t,"parameters"),a=S(", ").join(r);return a.getLineLength(1)>t.wrapColumn?(a=S(",\n").join(r),w(["(\n",a.indent(t.tabWidth),i?",\n)":"\n)"])):w(["(",a,")"])}function h(e,t,n){var r=e.getValue();P.Function.assert(r);var i=e.map(n,"params");r.defaults&&e.each(function(e){var t=e.getName(),r=i[t];r&&e.getValue()&&(i[t]=w([r," = ",n(e)]))},"defaults"),r.rest&&i.push(w(["...",e.call(n,"rest")]));var a=S(", ").join(i);return a.length>1||a.getLineLength(1)>t.wrapColumn?(a=S(",\n").join(i),a=w(I.isTrailingCommaEnabled(t,"parameters")&&!r.rest&&"RestElement"!==r.params[r.params.length-1].type?[a,",\n"]:[a,"\n"]),w(["\n",a.indent(t.tabWidth)])):a}function d(e,t,n){var r=e.getValue(),i=[];if(r.async&&i.push("async "),r.generator&&i.push("*"),r.method||"get"===r.kind||"set"===r.kind)return c(e,t,n);var a=e.call(n,"key");return r.computed?i.push("[",a,"]"):i.push(a),i.push("(",h(e,t,n),")",e.call(n,"returnType")," ",e.call(n,"body")),w(i)}function y(e,t,n){var r=e.getValue(),i=["export "],a=t.objectCurlySpacing;P.Declaration.assert(r),(r.default||"ExportDefaultDeclaration"===r.type)&&i.push("default "),r.declaration?i.push(e.call(n,"declaration")):r.specifiers&&r.specifiers.length>0&&(1===r.specifiers.length&&"ExportBatchSpecifier"===r.specifiers[0].type?i.push("*"):i.push(a?"{ ":"{",S(", ").join(e.map(n,"specifiers")),a?" }":"}"),r.source&&i.push(" from ",e.call(n,"source")));var s=w(i);return";"===g(s)||r.declaration&&("FunctionDeclaration"===r.declaration.type||"ClassDeclaration"===r.declaration.type)||(s=w([s,";"])),s}function m(e,t){var n=I.getParentExportDeclaration(e);return n?A.strictEqual(n.type,"DeclareExportDeclaration"):t.unshift("declare "),w(t)}function b(e,t){return w(e.length>1?[" ",e]:["\n",E(e).indent(t.tabWidth)])}function g(e){var t=e.lastPos();do{var n=e.charAt(t);if(/\S/.test(n))return n}while(e.prevPos(t))}function v(e){return"}"===g(e)}function x(e){return e.replace(/['"]/g,function(e){return'"'===e?"'":'"'})}function _(e,t){switch(j.assert(e),t.quote){case"auto":var n=JSON.stringify(e),r=x(JSON.stringify(x(e)));return n.length>r.length?r:n;case"single":return x(JSON.stringify(x(e)));case"double":default:return JSON.stringify(e)}}function E(e){var t=g(e);return!t||"\n};".indexOf(t)<0?w([e,";"]):e}var A=e("assert"),D=(e("source-map"),e("./comments").printComments),C=e("./lines"),S=C.fromString,w=C.concat,k=e("./options").normalize,F=e("./patcher").getReprinter,T=e("./types"),P=T.namedTypes,j=T.builtInTypes.string,B=T.builtInTypes.object,O=e("./fast-path"),I=e("./util"),N=r.prototype,L=!1;N.toString=function(){return L||(console.warn("Deprecation warning: recast.print now returns an object with a .code property. You appear to be treating the object as a string, which might still work but is strongly discouraged."),L=!0),this.code};var M=new r("");n.Printer=i},{"./comments":529,"./fast-path":530,"./lines":531,"./options":533,"./patcher":535,"./types":537,"./util":538,assert:2,"source-map":571}],537:[function(e,t,n){t.exports=e("ast-types")},{"ast-types":558}],538:[function(e,t,n){function r(){for(var e={},t=arguments.length,n=0;n<t;++n)for(var r=Object.keys(arguments[n]),i=r.length,a=0;a<i;++a)e[r[a]]=!0;return e}function i(e,t){return e.line-t.line||e.column-t.column}function a(e){return{line:e.line,column:e.column}}function s(e,t){e&&t&&(i(t.start,e.start)<0&&(e.start=t.start),i(e.end,t.end)<0&&(e.end=t.end))}function o(e,t){if(u.strictEqual(e.type,"TemplateLiteral"),0!==e.quasis.length){var n=a(e.loc.start);u.strictEqual(t.charAt(n),"`"),u.ok(t.nextPos(n));var r=e.quasis[0];i(r.loc.start,n)<0&&(r.loc.start=n);var s=a(e.loc.end);u.ok(t.prevPos(s)),u.strictEqual(t.charAt(s),"`");var o=e.quasis[e.quasis.length-1];i(s,o.loc.end)<0&&(o.loc.end=s),e.expressions.forEach(function(n,r){var a=t.skipSpaces(n.loc.start,!0,!1);if(t.prevPos(a)&&"{"===t.charAt(a)&&t.prevPos(a)&&"$"===t.charAt(a)){var s=e.quasis[r];i(a,s.loc.end)<0&&(s.loc.end=a)}var o=t.skipSpaces(n.loc.end,!1,!1);if("}"===t.charAt(o)){u.ok(t.nextPos(o));var l=e.quasis[r+1];i(l.loc.start,o)<0&&(l.loc.start=o)}})}}var u=e("assert"),l=e("./types"),c=(l.getFieldValue,l.namedTypes),p=e("source-map"),f=p.SourceMapConsumer,h=p.SourceMapGenerator,d=Object.prototype.hasOwnProperty,y=n;y.getUnionOfKeys=r,y.comparePos=i,y.copyPos=a,y.composeSourceMaps=function(e,t){if(!e)return t||null;if(!t)return e;var n=new f(e),r=new f(t),i=new h({file:t.file,sourceRoot:t.sourceRoot}),s={};return r.eachMapping(function(e){var t=n.originalPositionFor({line:e.originalLine,column:e.originalColumn}),r=t.source;if(null!==r){i.addMapping({source:r,original:a(t),generated:{line:e.generatedLine,column:e.generatedColumn},name:e.name});var o=n.sourceContentFor(r);o&&!d.call(s,r)&&(s[r]=o,i.setSourceContent(r,o))}}),i.toJSON()},y.getTrueLoc=function(e,t){function n(e){s(r,e.loc)}if(!e.loc)return null;var r={start:e.loc.start,end:e.loc.end};return e.comments&&e.comments.forEach(n),e.declaration&&y.isExportDeclaration(e)&&e.declaration.decorators&&e.declaration.decorators.forEach(n),i(r.start,r.end)<0&&(r.start=a(r.start),t.skipSpaces(r.start,!1,!0),i(r.start,r.end)<0&&(r.end=a(r.end),t.skipSpaces(r.end,!0,!0))),r},y.fixFaultyLocations=function(e,t){var n=e.loc;if(n&&(n.start.line<1&&(n.start.line=1),n.end.line<1&&(n.end.line=1)),"TemplateLiteral"===e.type)o(e,t);else if(n&&e.decorators)e.decorators.forEach(function(e){s(n,e.loc)});else if(e.declaration&&y.isExportDeclaration(e)){e.declaration.loc=null;var r=e.declaration.decorators;r&&r.forEach(function(e){s(n,e.loc)})}else if(c.MethodDefinition&&c.MethodDefinition.check(e)||c.Property.check(e)&&(e.method||e.shorthand))e.value.loc=null,c.FunctionExpression.check(e.value)&&(e.value.id=null);else if("ObjectTypeProperty"===e.type){var n=e.loc,i=n&&n.end;i&&(i=a(i),t.prevPos(i)&&","===t.charAt(i)&&(i=t.skipSpaces(i,!0,!0))&&(n.end=i))}},y.isExportDeclaration=function(e){if(e)switch(e.type){case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportDefaultSpecifier":case"DeclareExportDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return!0}return!1},y.getParentExportDeclaration=function(e){var t=e.getParentNode();return"declaration"===e.getName()&&y.isExportDeclaration(t)?t:null},y.isTrailingCommaEnabled=function(e,t){var n=e.trailingComma;return"object"==typeof n?!!n[t]:!!n}},{"./types":537,assert:2,"source-map":571}],539:[function(e,t,n){(function(t){function r(e,t){return new p(t).print(e)}function i(e,t){return new p(t).printGenerically(e)}function a(e,n){return s(t.argv[2],e,n)}function s(t,n,r){e("fs").readFile(t,"utf-8",function(e,t){return e?void console.error(e):void u(t,n,r)})}function o(e){t.stdout.write(e)}function u(e,t,n){var i=n&&n.writeback||o;t(c(e,n),function(e){i(r(e,n).code)})}var l=e("./lib/types"),c=e("./lib/parser").parse,p=e("./lib/printer").Printer;Object.defineProperties(n,{parse:{enumerable:!0,value:c},visit:{enumerable:!0,value:l.visit},print:{enumerable:!0,value:r},prettyPrint:{enumerable:!1,value:i},types:{enumerable:!1,value:l},run:{enumerable:!1,value:a}})}).call(this,e("_process"))},{"./lib/parser":534,"./lib/printer":536,"./lib/types":537,_process:13,fs:3}],540:[function(e,t,n){t.exports=function(t){t.use(e("./es7"));var n=t.use(e("../lib/types")),r=t.use(e("../lib/shared")).defaults,i=n.Type.def,a=n.Type.or;i("Noop").bases("Node").build(),i("DoExpression").bases("Expression").build("body").field("body",[i("Statement")]),i("Super").bases("Expression").build(),i("BindExpression").bases("Expression").build("object","callee").field("object",a(i("Expression"),null)).field("callee",i("Expression")),i("Decorator").bases("Node").build("expression").field("expression",i("Expression")),i("Property").field("decorators",a([i("Decorator")],null),r.null),i("MethodDefinition").field("decorators",a([i("Decorator")],null),r.null),i("MetaProperty").bases("Expression").build("meta","property").field("meta",i("Identifier")).field("property",i("Identifier")),i("ParenthesizedExpression").bases("Expression").build("expression").field("expression",i("Expression")),i("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",i("Identifier")),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local"),i("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",a(i("Declaration"),i("Expression"))),i("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",a(i("Declaration"),null)).field("specifiers",[i("ExportSpecifier")],r.emptyArray).field("source",a(i("Literal"),null),r.null),i("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",i("Identifier")),i("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",a(i("Identifier"),null)).field("source",i("Literal")),i("CommentBlock").bases("Comment").build("value","leading","trailing"),i("CommentLine").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":556,"../lib/types":557,"./es7":545}],541:[function(e,t,n){t.exports=function(t){t.use(e("./babel")),t.use(e("./flow"));var n=t.use(e("../lib/types")),r=t.use(e("../lib/shared")).defaults,i=n.Type.def,a=n.Type.or;i("Directive").bases("Node").build("value").field("value",i("DirectiveLiteral")),i("DirectiveLiteral").bases("Node","Expression").build("value").field("value",String,r["use strict"]),i("BlockStatement").bases("Statement").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],r.emptyArray),i("Program").bases("Node").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],r.emptyArray),i("StringLiteral").bases("Literal").build("value").field("value",String),i("NumericLiteral").bases("Literal").build("value").field("value",Number),i("NullLiteral").bases("Literal").build(),i("BooleanLiteral").bases("Literal").build("value").field("value",Boolean),i("RegExpLiteral").bases("Literal").build("pattern","flags").field("pattern",String).field("flags",String);var s=a(i("Property"),i("ObjectMethod"),i("ObjectProperty"),i("SpreadProperty"));i("ObjectExpression").bases("Expression").build("properties").field("properties",[s]),i("ObjectMethod").bases("Node","Function").build("kind","key","params","body","computed").field("kind",a("method","get","set")).field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,r.false).field("generator",Boolean,r.false).field("async",Boolean,r.false).field("decorators",a([i("Decorator")],null),r.null),i("ObjectProperty").bases("Node").build("key","value").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("value",a(i("Expression"),i("Pattern"))).field("computed",Boolean,r.false);var o=a(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"),i("ClassMethod"));i("ClassBody").bases("Declaration").build("body").field("body",[o]),i("ClassMethod").bases("Declaration","Function").build("kind","key","params","body","computed","static").field("kind",a("get","set","method","constructor")).field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,r.false).field("static",Boolean,r.false).field("generator",Boolean,r.false).field("async",Boolean,r.false).field("decorators",a([i("Decorator")],null),r.null);var u=a(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"),i("ObjectProperty"),i("RestProperty"));i("ObjectPattern").bases("Pattern").build("properties").field("properties",[u]).field("decorators",a([i("Decorator")],null),r.null),i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression")),i("RestProperty").bases("Node").build("argument").field("argument",i("Expression")),i("ForAwaitStatement").bases("Statement").build("left","right","body").field("left",a(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement"))}},{"../lib/shared":556,"../lib/types":557,"./babel":540,"./flow":547}],542:[function(e,t,n){t.exports=function(t){var n=t.use(e("../lib/types")),r=n.Type,i=r.def,a=r.or,s=t.use(e("../lib/shared")),o=s.defaults,u=s.geq;i("Printable").field("loc",a(i("SourceLocation"),null),o.null,!0),i("Node").bases("Printable").field("type",String).field("comments",a([i("Comment")],null),o.null,!0),i("SourceLocation").build("start","end","source").field("start",i("Position")).field("end",i("Position")).field("source",a(String,null),o.null),i("Position").build("line","column").field("line",u(1)).field("column",u(0)),i("File").bases("Node").build("program").field("program",i("Program")),i("Program").bases("Node").build("body").field("body",[i("Statement")]),i("Function").bases("Node").field("id",a(i("Identifier"),null),o.null).field("params",[i("Pattern")]).field("body",i("BlockStatement")),i("Statement").bases("Node"),i("EmptyStatement").bases("Statement").build(),i("BlockStatement").bases("Statement").build("body").field("body",[i("Statement")]),i("ExpressionStatement").bases("Statement").build("expression").field("expression",i("Expression")),i("IfStatement").bases("Statement").build("test","consequent","alternate").field("test",i("Expression")).field("consequent",i("Statement")).field("alternate",a(i("Statement"),null),o.null),i("LabeledStatement").bases("Statement").build("label","body").field("label",i("Identifier")).field("body",i("Statement")),i("BreakStatement").bases("Statement").build("label").field("label",a(i("Identifier"),null),o.null),i("ContinueStatement").bases("Statement").build("label").field("label",a(i("Identifier"),null),o.null),i("WithStatement").bases("Statement").build("object","body").field("object",i("Expression")).field("body",i("Statement")),i("SwitchStatement").bases("Statement").build("discriminant","cases","lexical").field("discriminant",i("Expression")).field("cases",[i("SwitchCase")]).field("lexical",Boolean,o.false),i("ReturnStatement").bases("Statement").build("argument").field("argument",a(i("Expression"),null)),i("ThrowStatement").bases("Statement").build("argument").field("argument",i("Expression")),i("TryStatement").bases("Statement").build("block","handler","finalizer").field("block",i("BlockStatement")).field("handler",a(i("CatchClause"),null),function(){return this.handlers&&this.handlers[0]||null}).field("handlers",[i("CatchClause")],function(){return this.handler?[this.handler]:[]},!0).field("guardedHandlers",[i("CatchClause")],o.emptyArray).field("finalizer",a(i("BlockStatement"),null),o.null),i("CatchClause").bases("Node").build("param","guard","body").field("param",i("Pattern")).field("guard",a(i("Expression"),null),o.null).field("body",i("BlockStatement")),i("WhileStatement").bases("Statement").build("test","body").field("test",i("Expression")).field("body",i("Statement")),i("DoWhileStatement").bases("Statement").build("body","test").field("body",i("Statement")).field("test",i("Expression")),i("ForStatement").bases("Statement").build("init","test","update","body").field("init",a(i("VariableDeclaration"),i("Expression"),null)).field("test",a(i("Expression"),null)).field("update",a(i("Expression"),null)).field("body",i("Statement")),i("ForInStatement").bases("Statement").build("left","right","body").field("left",a(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement")),i("DebuggerStatement").bases("Statement").build(),i("Declaration").bases("Statement"),i("FunctionDeclaration").bases("Function","Declaration").build("id","params","body").field("id",i("Identifier")),i("FunctionExpression").bases("Function","Expression").build("id","params","body"),i("VariableDeclaration").bases("Declaration").build("kind","declarations").field("kind",a("var","let","const")).field("declarations",[i("VariableDeclarator")]),i("VariableDeclarator").bases("Node").build("id","init").field("id",i("Pattern")).field("init",a(i("Expression"),null)),i("Expression").bases("Node","Pattern"),i("ThisExpression").bases("Expression").build(),i("ArrayExpression").bases("Expression").build("elements").field("elements",[a(i("Expression"),null)]),i("ObjectExpression").bases("Expression").build("properties").field("properties",[i("Property")]),i("Property").bases("Node").build("kind","key","value").field("kind",a("init","get","set")).field("key",a(i("Literal"),i("Identifier"))).field("value",i("Expression")),i("SequenceExpression").bases("Expression").build("expressions").field("expressions",[i("Expression")]);var l=a("-","+","!","~","typeof","void","delete");i("UnaryExpression").bases("Expression").build("operator","argument","prefix").field("operator",l).field("argument",i("Expression")).field("prefix",Boolean,o.true);var c=a("==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","&","|","^","in","instanceof","..");i("BinaryExpression").bases("Expression").build("operator","left","right").field("operator",c).field("left",i("Expression")).field("right",i("Expression"));var p=a("=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","^=","&=");i("AssignmentExpression").bases("Expression").build("operator","left","right").field("operator",p).field("left",i("Pattern")).field("right",i("Expression"));var f=a("++","--");i("UpdateExpression").bases("Expression").build("operator","argument","prefix").field("operator",f).field("argument",i("Expression")).field("prefix",Boolean);var h=a("||","&&");i("LogicalExpression").bases("Expression").build("operator","left","right").field("operator",h).field("left",i("Expression")).field("right",i("Expression")),i("ConditionalExpression").bases("Expression").build("test","consequent","alternate").field("test",i("Expression")).field("consequent",i("Expression")).field("alternate",i("Expression")),i("NewExpression").bases("Expression").build("callee","arguments").field("callee",i("Expression")).field("arguments",[i("Expression")]),i("CallExpression").bases("Expression").build("callee","arguments").field("callee",i("Expression")).field("arguments",[i("Expression")]),i("MemberExpression").bases("Expression").build("object","property","computed").field("object",i("Expression")).field("property",a(i("Identifier"),i("Expression"))).field("computed",Boolean,function(){var e=this.property.type;return"Literal"===e||"MemberExpression"===e||"BinaryExpression"===e}),i("Pattern").bases("Node"),i("SwitchCase").bases("Node").build("test","consequent").field("test",a(i("Expression"),null)).field("consequent",[i("Statement")]),i("Identifier").bases("Node","Expression","Pattern").build("name").field("name",String),i("Literal").bases("Node","Expression").build("value").field("value",a(String,Boolean,null,Number,RegExp)).field("regex",a({pattern:String,flags:String},null),function(){if(this.value instanceof RegExp){var e="";return this.value.ignoreCase&&(e+="i"),this.value.multiline&&(e+="m"),this.value.global&&(e+="g"),{pattern:this.value.source,flags:e}}return null}),i("Comment").bases("Printable").field("value",String).field("leading",Boolean,o.true).field("trailing",Boolean,o.false)}},{"../lib/shared":556,"../lib/types":557}],543:[function(e,t,n){t.exports=function(t){t.use(e("./core"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or;r("XMLDefaultDeclaration").bases("Declaration").field("namespace",r("Expression")),
+r("XMLAnyName").bases("Expression"),r("XMLQualifiedIdentifier").bases("Expression").field("left",i(r("Identifier"),r("XMLAnyName"))).field("right",i(r("Identifier"),r("Expression"))).field("computed",Boolean),r("XMLFunctionQualifiedIdentifier").bases("Expression").field("right",i(r("Identifier"),r("Expression"))).field("computed",Boolean),r("XMLAttributeSelector").bases("Expression").field("attribute",r("Expression")),r("XMLFilterExpression").bases("Expression").field("left",r("Expression")).field("right",r("Expression")),r("XMLElement").bases("XML","Expression").field("contents",[r("XML")]),r("XMLList").bases("XML","Expression").field("contents",[r("XML")]),r("XML").bases("Node"),r("XMLEscape").bases("XML").field("expression",r("Expression")),r("XMLText").bases("XML").field("text",String),r("XMLStartTag").bases("XML").field("contents",[r("XML")]),r("XMLEndTag").bases("XML").field("contents",[r("XML")]),r("XMLPointTag").bases("XML").field("contents",[r("XML")]),r("XMLName").bases("XML").field("contents",i(String,[r("XML")])),r("XMLAttribute").bases("XML").field("value",String),r("XMLCdata").bases("XML").field("contents",String),r("XMLComment").bases("XML").field("contents",String),r("XMLProcessingInstruction").bases("XML").field("target",String).field("contents",i(String,null))}},{"../lib/types":557,"./core":542}],544:[function(e,t,n){t.exports=function(t){t.use(e("./core"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or,a=t.use(e("../lib/shared")).defaults;r("Function").field("generator",Boolean,a.false).field("expression",Boolean,a.false).field("defaults",[i(r("Expression"),null)],a.emptyArray).field("rest",i(r("Identifier"),null),a.null),r("RestElement").bases("Pattern").build("argument").field("argument",r("Pattern")),r("SpreadElementPattern").bases("Pattern").build("argument").field("argument",r("Pattern")),r("FunctionDeclaration").build("id","params","body","generator","expression"),r("FunctionExpression").build("id","params","body","generator","expression"),r("ArrowFunctionExpression").bases("Function","Expression").build("params","body","expression").field("id",null,a.null).field("body",i(r("BlockStatement"),r("Expression"))).field("generator",!1,a.false),r("YieldExpression").bases("Expression").build("argument","delegate").field("argument",i(r("Expression"),null)).field("delegate",Boolean,a.false),r("GeneratorExpression").bases("Expression").build("body","blocks","filter").field("body",r("Expression")).field("blocks",[r("ComprehensionBlock")]).field("filter",i(r("Expression"),null)),r("ComprehensionExpression").bases("Expression").build("body","blocks","filter").field("body",r("Expression")).field("blocks",[r("ComprehensionBlock")]).field("filter",i(r("Expression"),null)),r("ComprehensionBlock").bases("Node").build("left","right","each").field("left",r("Pattern")).field("right",r("Expression")).field("each",Boolean),r("Property").field("key",i(r("Literal"),r("Identifier"),r("Expression"))).field("value",i(r("Expression"),r("Pattern"))).field("method",Boolean,a.false).field("shorthand",Boolean,a.false).field("computed",Boolean,a.false),r("PropertyPattern").bases("Pattern").build("key","pattern").field("key",i(r("Literal"),r("Identifier"),r("Expression"))).field("pattern",r("Pattern")).field("computed",Boolean,a.false),r("ObjectPattern").bases("Pattern").build("properties").field("properties",[i(r("PropertyPattern"),r("Property"))]),r("ArrayPattern").bases("Pattern").build("elements").field("elements",[i(r("Pattern"),null)]),r("MethodDefinition").bases("Declaration").build("kind","key","value","static").field("kind",i("constructor","method","get","set")).field("key",i(r("Literal"),r("Identifier"),r("Expression"))).field("value",r("Function")).field("computed",Boolean,a.false).field("static",Boolean,a.false),r("SpreadElement").bases("Node").build("argument").field("argument",r("Expression")),r("ArrayExpression").field("elements",[i(r("Expression"),r("SpreadElement"),r("RestElement"),null)]),r("NewExpression").field("arguments",[i(r("Expression"),r("SpreadElement"))]),r("CallExpression").field("arguments",[i(r("Expression"),r("SpreadElement"))]),r("AssignmentPattern").bases("Pattern").build("left","right").field("left",r("Pattern")).field("right",r("Expression"));var s=i(r("MethodDefinition"),r("VariableDeclarator"),r("ClassPropertyDefinition"),r("ClassProperty"));r("ClassProperty").bases("Declaration").build("key").field("key",i(r("Literal"),r("Identifier"),r("Expression"))).field("computed",Boolean,a.false),r("ClassPropertyDefinition").bases("Declaration").build("definition").field("definition",s),r("ClassBody").bases("Declaration").build("body").field("body",[s]),r("ClassDeclaration").bases("Declaration").build("id","body","superClass").field("id",i(r("Identifier"),null)).field("body",r("ClassBody")).field("superClass",i(r("Expression"),null),a.null),r("ClassExpression").bases("Expression").build("id","body","superClass").field("id",i(r("Identifier"),null),a.null).field("body",r("ClassBody")).field("superClass",i(r("Expression"),null),a.null).field("implements",[r("ClassImplements")],a.emptyArray),r("ClassImplements").bases("Node").build("id").field("id",r("Identifier")).field("superClass",i(r("Expression"),null),a.null),r("Specifier").bases("Node"),r("ModuleSpecifier").bases("Specifier").field("local",i(r("Identifier"),null),a.null).field("id",i(r("Identifier"),null),a.null).field("name",i(r("Identifier"),null),a.null),r("TaggedTemplateExpression").bases("Expression").build("tag","quasi").field("tag",r("Expression")).field("quasi",r("TemplateLiteral")),r("TemplateLiteral").bases("Expression").build("quasis","expressions").field("quasis",[r("TemplateElement")]).field("expressions",[r("Expression")]),r("TemplateElement").bases("Node").build("value","tail").field("value",{cooked:String,raw:String}).field("tail",Boolean)}},{"../lib/shared":556,"../lib/types":557,"./core":542}],545:[function(e,t,n){t.exports=function(t){t.use(e("./es6"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or,a=(n.builtInTypes,t.use(e("../lib/shared")).defaults);r("Function").field("async",Boolean,a.false),r("SpreadProperty").bases("Node").build("argument").field("argument",r("Expression")),r("ObjectExpression").field("properties",[i(r("Property"),r("SpreadProperty"))]),r("SpreadPropertyPattern").bases("Pattern").build("argument").field("argument",r("Pattern")),r("ObjectPattern").field("properties",[i(r("Property"),r("PropertyPattern"),r("SpreadPropertyPattern"))]),r("AwaitExpression").bases("Expression").build("argument","all").field("argument",i(r("Expression"),null)).field("all",Boolean,a.false)}},{"../lib/shared":556,"../lib/types":557,"./es6":544}],546:[function(e,t,n){t.exports=function(t){t.use(e("./es7"));var n=t.use(e("../lib/types")),r=t.use(e("../lib/shared")).defaults,i=n.Type.def,a=n.Type.or;i("VariableDeclaration").field("declarations",[a(i("VariableDeclarator"),i("Identifier"))]),i("Property").field("value",a(i("Expression"),i("Pattern"))),i("ArrayPattern").field("elements",[a(i("Pattern"),i("SpreadElement"),null)]),i("ObjectPattern").field("properties",[a(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"))]),i("ExportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ExportBatchSpecifier").bases("Specifier").build(),i("ImportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("id"),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("id"),i("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",a(i("Declaration"),i("Expression"),null)).field("specifiers",[a(i("ExportSpecifier"),i("ExportBatchSpecifier"))],r.emptyArray).field("source",a(i("Literal"),null),r.null),i("ImportDeclaration").bases("Declaration").build("specifiers","source").field("specifiers",[a(i("ImportSpecifier"),i("ImportNamespaceSpecifier"),i("ImportDefaultSpecifier"))],r.emptyArray).field("source",i("Literal")),i("Block").bases("Comment").build("value","leading","trailing"),i("Line").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":556,"../lib/types":557,"./es7":545}],547:[function(e,t,n){t.exports=function(t){t.use(e("./es7"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or,a=t.use(e("../lib/shared")).defaults;r("Type").bases("Node"),r("AnyTypeAnnotation").bases("Type").build(),r("EmptyTypeAnnotation").bases("Type").build(),r("MixedTypeAnnotation").bases("Type").build(),r("VoidTypeAnnotation").bases("Type").build(),r("NumberTypeAnnotation").bases("Type").build(),r("NumberLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),r("StringTypeAnnotation").bases("Type").build(),r("StringLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",String).field("raw",String),r("BooleanTypeAnnotation").bases("Type").build(),r("BooleanLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Boolean).field("raw",String),r("TypeAnnotation").bases("Node").build("typeAnnotation").field("typeAnnotation",r("Type")),r("NullableTypeAnnotation").bases("Type").build("typeAnnotation").field("typeAnnotation",r("Type")),r("NullLiteralTypeAnnotation").bases("Type").build(),r("NullTypeAnnotation").bases("Type").build(),r("ThisTypeAnnotation").bases("Type").build(),r("ExistsTypeAnnotation").bases("Type").build(),r("ExistentialTypeParam").bases("Type").build(),r("FunctionTypeAnnotation").bases("Type").build("params","returnType","rest","typeParameters").field("params",[r("FunctionTypeParam")]).field("returnType",r("Type")).field("rest",i(r("FunctionTypeParam"),null)).field("typeParameters",i(r("TypeParameterDeclaration"),null)),r("FunctionTypeParam").bases("Node").build("name","typeAnnotation","optional").field("name",r("Identifier")).field("typeAnnotation",r("Type")).field("optional",Boolean),r("ArrayTypeAnnotation").bases("Type").build("elementType").field("elementType",r("Type")),r("ObjectTypeAnnotation").bases("Type").build("properties","indexers","callProperties").field("properties",[r("ObjectTypeProperty")]).field("indexers",[r("ObjectTypeIndexer")],a.emptyArray).field("callProperties",[r("ObjectTypeCallProperty")],a.emptyArray).field("exact",Boolean,a.false),r("ObjectTypeProperty").bases("Node").build("key","value","optional").field("key",i(r("Literal"),r("Identifier"))).field("value",r("Type")).field("optional",Boolean).field("variance",i("plus","minus",null),a.null),r("ObjectTypeIndexer").bases("Node").build("id","key","value").field("id",r("Identifier")).field("key",r("Type")).field("value",r("Type")).field("variance",i("plus","minus",null),a.null),r("ObjectTypeCallProperty").bases("Node").build("value").field("value",r("FunctionTypeAnnotation")).field("static",Boolean,a.false),r("QualifiedTypeIdentifier").bases("Node").build("qualification","id").field("qualification",i(r("Identifier"),r("QualifiedTypeIdentifier"))).field("id",r("Identifier")),r("GenericTypeAnnotation").bases("Type").build("id","typeParameters").field("id",i(r("Identifier"),r("QualifiedTypeIdentifier"))).field("typeParameters",i(r("TypeParameterInstantiation"),null)),r("MemberTypeAnnotation").bases("Type").build("object","property").field("object",r("Identifier")).field("property",i(r("MemberTypeAnnotation"),r("GenericTypeAnnotation"))),r("UnionTypeAnnotation").bases("Type").build("types").field("types",[r("Type")]),r("IntersectionTypeAnnotation").bases("Type").build("types").field("types",[r("Type")]),r("TypeofTypeAnnotation").bases("Type").build("argument").field("argument",r("Type")),r("Identifier").field("typeAnnotation",i(r("TypeAnnotation"),null),a.null),r("TypeParameterDeclaration").bases("Node").build("params").field("params",[r("TypeParameter")]),r("TypeParameterInstantiation").bases("Node").build("params").field("params",[r("Type")]),r("TypeParameter").bases("Type").build("name","variance","bound").field("name",String).field("variance",i("plus","minus",null),a.null).field("bound",i(r("TypeAnnotation"),null),a.null),r("Function").field("returnType",i(r("TypeAnnotation"),null),a.null).field("typeParameters",i(r("TypeParameterDeclaration"),null),a.null),r("ClassProperty").build("key","value","typeAnnotation","static").field("value",i(r("Expression"),null)).field("typeAnnotation",i(r("TypeAnnotation"),null)).field("static",Boolean,a.false).field("variance",i("plus","minus",null),a.null),r("ClassImplements").field("typeParameters",i(r("TypeParameterInstantiation"),null),a.null),r("InterfaceDeclaration").bases("Declaration").build("id","body","extends").field("id",r("Identifier")).field("typeParameters",i(r("TypeParameterDeclaration"),null),a.null).field("body",r("ObjectTypeAnnotation")).field("extends",[r("InterfaceExtends")]),r("DeclareInterface").bases("InterfaceDeclaration").build("id","body","extends"),r("InterfaceExtends").bases("Node").build("id").field("id",r("Identifier")).field("typeParameters",i(r("TypeParameterInstantiation"),null)),r("TypeAlias").bases("Declaration").build("id","typeParameters","right").field("id",r("Identifier")).field("typeParameters",i(r("TypeParameterDeclaration"),null)).field("right",r("Type")),r("DeclareTypeAlias").bases("TypeAlias").build("id","typeParameters","right"),r("TypeCastExpression").bases("Expression").build("expression","typeAnnotation").field("expression",r("Expression")).field("typeAnnotation",r("TypeAnnotation")),r("TupleTypeAnnotation").bases("Type").build("types").field("types",[r("Type")]),r("DeclareVariable").bases("Statement").build("id").field("id",r("Identifier")),r("DeclareFunction").bases("Statement").build("id").field("id",r("Identifier")),r("DeclareClass").bases("InterfaceDeclaration").build("id"),r("DeclareModule").bases("Statement").build("id","body").field("id",i(r("Identifier"),r("Literal"))).field("body",r("BlockStatement")),r("DeclareModuleExports").bases("Statement").build("typeAnnotation").field("typeAnnotation",r("Type")),r("DeclareExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",i(r("DeclareVariable"),r("DeclareFunction"),r("DeclareClass"),r("Type"),null)).field("specifiers",[i(r("ExportSpecifier"),r("ExportBatchSpecifier"))],a.emptyArray).field("source",i(r("Literal"),null),a.null)}},{"../lib/shared":556,"../lib/types":557,"./es7":545}],548:[function(e,t,n){t.exports=function(t){t.use(e("./es7"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or,a=t.use(e("../lib/shared")).defaults;r("JSXAttribute").bases("Node").build("name","value").field("name",i(r("JSXIdentifier"),r("JSXNamespacedName"))).field("value",i(r("Literal"),r("JSXExpressionContainer"),null),a.null),r("JSXIdentifier").bases("Identifier").build("name").field("name",String),r("JSXNamespacedName").bases("Node").build("namespace","name").field("namespace",r("JSXIdentifier")).field("name",r("JSXIdentifier")),r("JSXMemberExpression").bases("MemberExpression").build("object","property").field("object",i(r("JSXIdentifier"),r("JSXMemberExpression"))).field("property",r("JSXIdentifier")).field("computed",Boolean,a.false);var s=i(r("JSXIdentifier"),r("JSXNamespacedName"),r("JSXMemberExpression"));r("JSXSpreadAttribute").bases("Node").build("argument").field("argument",r("Expression"));var o=[i(r("JSXAttribute"),r("JSXSpreadAttribute"))];r("JSXExpressionContainer").bases("Expression").build("expression").field("expression",r("Expression")),r("JSXElement").bases("Expression").build("openingElement","closingElement","children").field("openingElement",r("JSXOpeningElement")).field("closingElement",i(r("JSXClosingElement"),null),a.null).field("children",[i(r("JSXElement"),r("JSXExpressionContainer"),r("JSXText"),r("Literal"))],a.emptyArray).field("name",s,function(){return this.openingElement.name},!0).field("selfClosing",Boolean,function(){return this.openingElement.selfClosing},!0).field("attributes",o,function(){return this.openingElement.attributes},!0),r("JSXOpeningElement").bases("Node").build("name","attributes","selfClosing").field("name",s).field("attributes",o,a.emptyArray).field("selfClosing",Boolean,a.false),r("JSXClosingElement").bases("Node").build("name").field("name",s),r("JSXText").bases("Literal").build("value").field("value",String),r("JSXEmptyExpression").bases("Expression").build()}},{"../lib/shared":556,"../lib/types":557,"./es7":545}],549:[function(e,t,n){t.exports=function(t){t.use(e("./core"));var n=t.use(e("../lib/types")),r=n.Type.def,i=n.Type.or,a=t.use(e("../lib/shared")),s=a.geq,o=a.defaults;r("Function").field("body",i(r("BlockStatement"),r("Expression"))),r("ForInStatement").build("left","right","body","each").field("each",Boolean,o.false),r("ForOfStatement").bases("Statement").build("left","right","body").field("left",i(r("VariableDeclaration"),r("Expression"))).field("right",r("Expression")).field("body",r("Statement")),r("LetStatement").bases("Statement").build("head","body").field("head",[r("VariableDeclarator")]).field("body",r("Statement")),r("LetExpression").bases("Expression").build("head","body").field("head",[r("VariableDeclarator")]).field("body",r("Expression")),r("GraphExpression").bases("Expression").build("index","expression").field("index",s(0)).field("expression",r("Literal")),r("GraphIndexExpression").bases("Expression").build("index").field("index",s(0))}},{"../lib/shared":556,"../lib/types":557,"./core":542}],550:[function(e,t,n){t.exports=function(t){function n(e){var t=r.indexOf(e);return t===-1&&(t=r.length,r.push(e),i[t]=e(a)),i[t]}var r=[],i=[],a={};a.use=n;var s=n(e("./lib/types"));t.forEach(n),s.finalize();var o={Type:s.Type,builtInTypes:s.builtInTypes,namedTypes:s.namedTypes,builders:s.builders,defineMethod:s.defineMethod,getFieldNames:s.getFieldNames,getFieldValue:s.getFieldValue,eachField:s.eachField,someField:s.someField,getSupertypeNames:s.getSupertypeNames,astNodesAreEquivalent:n(e("./lib/equiv")),finalize:s.finalize,Path:n(e("./lib/path")),NodePath:n(e("./lib/node-path")),PathVisitor:n(e("./lib/path-visitor")),use:n};return o.visit=o.PathVisitor.visit,o}},{"./lib/equiv":551,"./lib/node-path":552,"./lib/path":554,"./lib/path-visitor":553,"./lib/types":557}],551:[function(e,t,n){t.exports=function(t){function n(e,t,n){return c.check(n)?n.length=0:n=null,i(e,t,n)}function r(e){return/[_$a-z][_$a-z0-9]*/i.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function i(e,t,n){return e===t||(c.check(e)?a(e,t,n):p.check(e)?s(e,t,n):f.check(e)?f.check(t)&&+e===+t:h.check(e)?h.check(t)&&e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.ignoreCase===t.ignoreCase:e==t)}function a(e,t,n){c.assert(e);var r=e.length;if(!c.check(t)||t.length!==r)return n&&n.push("length"),!1;for(var a=0;a<r;++a){if(n&&n.push(a),a in e!=a in t)return!1;if(!i(e[a],t[a],n))return!1;if(n){var s=n.pop();if(s!==a)throw new Error(""+s)}}return!0}function s(e,t,n){if(p.assert(e),!p.check(t))return!1;if(e.type!==t.type)return n&&n.push("type"),!1;var r=u(e),a=r.length,s=u(t),o=s.length;if(a===o){for(var c=0;c<a;++c){var f=r[c],h=l(e,f),y=l(t,f);if(n&&n.push(f),!i(h,y,n))return!1;if(n){var m=n.pop();if(m!==f)throw new Error(""+m)}}return!0}if(!n)return!1;var b=Object.create(null);for(c=0;c<a;++c)b[r[c]]=!0;for(c=0;c<o;++c){if(f=s[c],!d.call(b,f))return n.push(f),!1;delete b[f]}for(f in b){n.push(f);break}return!1}var o=t.use(e("../lib/types")),u=o.getFieldNames,l=o.getFieldValue,c=o.builtInTypes.array,p=o.builtInTypes.object,f=o.builtInTypes.Date,h=o.builtInTypes.RegExp,d=Object.prototype.hasOwnProperty;return n.assert=function(e,t){var i=[];if(!n(e,t,i)){if(0!==i.length)throw new Error("Nodes differ in the following path: "+i.map(r).join(""));if(e!==t)throw new Error("Nodes must be equal")}},n}},{"../lib/types":557}],552:[function(e,t,n){t.exports=function(t){function n(e,t,r){if(!(this instanceof n))throw new Error("NodePath constructor cannot be invoked without 'new'");h.call(this,e,t,r)}function r(e){return l.BinaryExpression.check(e)||l.LogicalExpression.check(e)}function i(e){return!!l.CallExpression.check(e)||(f.check(e)?e.some(i):!!l.Node.check(e)&&u.someField(e,function(e,t){return i(t)}))}function a(e){for(var t,n;e.parent;e=e.parent){if(t=e.node,n=e.parent.node,l.BlockStatement.check(n)&&"body"===e.parent.name&&0===e.name){if(n.body[0]!==t)throw new Error("Nodes must be equal");return!0}if(l.ExpressionStatement.check(n)&&"expression"===e.name){if(n.expression!==t)throw new Error("Nodes must be equal");return!0}if(l.SequenceExpression.check(n)&&"expressions"===e.parent.name&&0===e.name){if(n.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(l.CallExpression.check(n)&&"callee"===e.name){if(n.callee!==t)throw new Error("Nodes must be equal")}else if(l.MemberExpression.check(n)&&"object"===e.name){if(n.object!==t)throw new Error("Nodes must be equal")}else if(l.ConditionalExpression.check(n)&&"test"===e.name){if(n.test!==t)throw new Error("Nodes must be equal")}else if(r(n)&&"left"===e.name){if(n.left!==t)throw new Error("Nodes must be equal")}else{if(!l.UnaryExpression.check(n)||n.prefix||"argument"!==e.name)return!1;if(n.argument!==t)throw new Error("Nodes must be equal")}}return!0}function s(e){if(l.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||0===t.length)return e.prune()}else if(l.ExpressionStatement.check(e.node)){if(!e.get("expression").value)return e.prune()}else l.IfStatement.check(e.node)&&o(e);return e}function o(e){var t=e.get("test").value,n=e.get("alternate").value,r=e.get("consequent").value;if(r||n){if(!r&&n){var i=c.unaryExpression("!",t,!0);l.UnaryExpression.check(t)&&"!"===t.operator&&(i=t.argument),e.get("test").replace(i),e.get("consequent").replace(n),e.get("alternate").replace()}}else{var a=c.expressionStatement(t);e.replace(a)}}var u=t.use(e("./types")),l=u.namedTypes,c=u.builders,p=u.builtInTypes.number,f=u.builtInTypes.array,h=t.use(e("./path")),d=t.use(e("./scope")),y=n.prototype=Object.create(h.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}});Object.defineProperties(y,{node:{get:function(){return Object.defineProperty(this,"node",{configurable:!0,value:this._computeNode()}),this.node}},parent:{get:function(){return Object.defineProperty(this,"parent",{configurable:!0,value:this._computeParent()}),this.parent}},scope:{get:function(){return Object.defineProperty(this,"scope",{configurable:!0,value:this._computeScope()}),this.scope}}}),y.replace=function(){return delete this.node,delete this.parent,delete this.scope,h.prototype.replace.apply(this,arguments)},y.prune=function(){var e=this.parent;return this.replace(),s(e)},y._computeNode=function(){var e=this.value;if(l.Node.check(e))return e;var t=this.parentPath;return t&&t.node||null},y._computeParent=function(){var e=this.value,t=this.parentPath;if(!l.Node.check(e)){for(;t&&!l.Node.check(t.value);)t=t.parentPath;t&&(t=t.parentPath)}for(;t&&!l.Node.check(t.value);)t=t.parentPath;return t||null},y._computeScope=function(){var e=this.value,t=this.parentPath,n=t&&t.scope;return l.Node.check(e)&&d.isEstablishedBy(e)&&(n=new d(this,n)),n||null},y.getValueProperty=function(e){return u.getFieldValue(this.value,e)},y.needsParens=function(e){var t=this.parentPath;if(!t)return!1;var n=this.value;if(!l.Expression.check(n))return!1;if("Identifier"===n.type)return!1;for(;!l.Node.check(t.value);)if(t=t.parentPath,!t)return!1;var r=t.value;switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===r.type&&"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":switch(r.type){case"CallExpression":return"callee"===this.name&&r.callee===n;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":var a=r.operator,t=m[a],s=n.operator,o=m[s];if(t>o)return!0;if(t===o&&"right"===this.name){if(r.right!==n)throw new Error("Nodes must be equal");return!0}default:return!1}case"SequenceExpression":switch(r.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==this.name;default:return!0}case"YieldExpression":switch(r.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===r.type&&p.check(n.value)&&"object"===this.name&&r.object===n;case"AssignmentExpression":case"ConditionalExpression":switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===this.name&&r.callee===n;case"ConditionalExpression":return"test"===this.name&&r.test===n;case"MemberExpression":return"object"===this.name&&r.object===n;default:return!1}default:if("NewExpression"===r.type&&"callee"===this.name&&r.callee===n)return i(n)}return!(e===!0||this.canBeFirstInStatement()||!this.firstInStatement())};var m={};return[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){m[e]=t})}),y.canBeFirstInStatement=function(){var e=this.node;return!l.FunctionExpression.check(e)&&!l.ObjectExpression.check(e)},y.firstInStatement=function(){return a(this)},n}},{"./path":554,"./scope":555,"./types":557}],553:[function(e,t,n){var r=Object.prototype.hasOwnProperty;t.exports=function(t){function n(){if(!(this instanceof n))throw new Error("PathVisitor constructor cannot be invoked without 'new'");this._reusableContextStack=[],this._methodNameTable=i(this),this._shouldVisitComments=r.call(this._methodNameTable,"Block")||r.call(this._methodNameTable,"Line"),this.Context=o(this),this._visiting=!1,this._changeReported=!1}function i(e){var t=Object.create(null);for(var n in e)/^visit[A-Z]/.test(n)&&(t[n.slice("visit".length)]=!0);for(var r=l.computeSupertypeLookupTable(t),i=Object.create(null),t=Object.keys(r),a=t.length,s=0;s<a;++s){var o=t[s];n="visit"+r[o],h.check(e[n])&&(i[o]=n)}return i}function a(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);return e}function s(e,t){if(!(e instanceof c))throw new Error("");if(!(t instanceof n))throw new Error("");var i=e.value;if(p.check(i))e.each(t.visitWithoutReset,t);else if(f.check(i)){var a=l.getFieldNames(i);t._shouldVisitComments&&i.comments&&a.indexOf("comments")<0&&a.push("comments");for(var s=a.length,o=[],u=0;u<s;++u){var h=a[u];r.call(i,h)||(i[h]=l.getFieldValue(i,h)),o.push(e.get(h))}for(var u=0;u<s;++u)t.visitWithoutReset(o[u])}else;return e.value}function o(e){function t(r){if(!(this instanceof t))throw new Error("");if(!(this instanceof n))throw new Error("");if(!(r instanceof c))throw new Error("");Object.defineProperty(this,"visitor",{value:e,writable:!1,enumerable:!0,configurable:!1}),this.currentPath=r,this.needToCallTraverse=!0,Object.seal(this)}if(!(e instanceof n))throw new Error("");var r=t.prototype=Object.create(e);return r.constructor=t,a(r,y),t}var u,l=t.use(e("./types")),c=t.use(e("./node-path")),p=(l.namedTypes.Printable,l.builtInTypes.array),f=l.builtInTypes.object,h=l.builtInTypes.function;n.fromMethodsObject=function(e){function t(){if(!(this instanceof t))throw new Error("Visitor constructor cannot be invoked without 'new'");n.call(this)}if(e instanceof n)return e;if(!f.check(e))return new n;var r=t.prototype=Object.create(d);return r.constructor=t,a(r,e),a(t,n),h.assert(t.fromMethodsObject),h.assert(t.visit),new t},n.visit=function(e,t){return n.fromMethodsObject(t).visit(e)};var d=n.prototype;d.visit=function(){if(this._visiting)throw new Error("Recursively calling visitor.visit(path) resets visitor state. Try this.visit(path) or this.traverse(path) instead.");this._visiting=!0,this._changeReported=!1,this._abortRequested=!1;for(var e=arguments.length,t=new Array(e),n=0;n<e;++n)t[n]=arguments[n];t[0]instanceof c||(t[0]=new c({root:t[0]}).get("root")),this.reset.apply(this,t);try{var r=this.visitWithoutReset(t[0]),i=!0}finally{if(this._visiting=!1,!i&&this._abortRequested)return t[0].value}return r},d.AbortRequest=function(){},d.abort=function(){var e=this;e._abortRequested=!0;var t=new e.AbortRequest;throw t.cancel=function(){e._abortRequested=!1},t},d.reset=function(e){},d.visitWithoutReset=function(e){if(this instanceof this.Context)return this.visitor.visitWithoutReset(e);if(!(e instanceof c))throw new Error("");var t=e.value,n=t&&"object"==typeof t&&"string"==typeof t.type&&this._methodNameTable[t.type];if(!n)return s(e,this);var r=this.acquireContext(e);try{return r.invokeVisitorMethod(n)}finally{this.releaseContext(r)}},d.acquireContext=function(e){return 0===this._reusableContextStack.length?new this.Context(e):this._reusableContextStack.pop().reset(e)},d.releaseContext=function(e){if(!(e instanceof this.Context))throw new Error("");this._reusableContextStack.push(e),e.currentPath=null},d.reportChanged=function(){this._changeReported=!0},d.wasChangeReported=function(){return this._changeReported};var y=Object.create(null);return y.reset=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");return this.currentPath=e,this.needToCallTraverse=!0,this},y.invokeVisitorMethod=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");var t=this.visitor[e].call(this,this.currentPath);if(t===!1?this.needToCallTraverse=!1:t!==u&&(this.currentPath=this.currentPath.replace(t)[0],this.needToCallTraverse&&this.traverse(this.currentPath)),this.needToCallTraverse!==!1)throw new Error("Must either call this.traverse or return false in "+e);var n=this.currentPath;return n&&n.value},y.traverse=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,s(e,n.fromMethodsObject(t||this.visitor))},y.visit=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,n.fromMethodsObject(t||this.visitor).visitWithoutReset(e)},y.reportChanged=function(){this.visitor.reportChanged()},y.abort=function(){this.needToCallTraverse=!1,this.visitor.abort()},n}},{"./node-path":552,"./types":557}],554:[function(e,t,n){var r=Array.prototype,i=(r.slice,r.map,Object.prototype),a=i.hasOwnProperty;t.exports=function(t){function n(e,t,r){if(!(this instanceof n))throw new Error("Path constructor cannot be invoked without 'new'");if(t){if(!(t instanceof n))throw new Error("")}else t=null,r=null;this.value=e,this.parentPath=t,this.name=r,this.__childCache=null}function r(e){return e.__childCache||(e.__childCache=Object.create(null))}function i(e,t){var n=r(e),i=e.getValueProperty(t),s=n[t];return a.call(n,t)&&s.value===i||(s=n[t]=new e.constructor(i,e,t)),s}function s(){}function o(e,t,n,i){if(c.assert(e.value),0===t)return s;var o=e.value.length;if(o<1)return s;var u=arguments.length;2===u?(n=0,i=o):3===u?(n=Math.max(n,0),i=o):(n=Math.max(n,0),i=Math.min(i,o)),p.assert(n),p.assert(i);for(var l=Object.create(null),f=r(e),h=n;h<i;++h)if(a.call(e.value,h)){var d=e.get(h);if(d.name!==h)throw new Error("");var y=h+t;d.name=y,l[y]=d,delete f[h]}return delete f.length,function(){for(var t in l){var n=l[t];if(n.name!==+t)throw new Error("");f[t]=n,e.value[t]=n.value}}}function u(e){if(!(e instanceof n))throw new Error("");var t=e.parentPath;if(!t)return e;var i=t.value,a=r(t);if(i[e.name]===e.value)a[e.name]=e;else if(c.check(i)){var s=i.indexOf(e.value);s>=0&&(a[e.name=s]=e)}else i[e.name]=e.value,a[e.name]=e;if(i[e.name]!==e.value)throw new Error("");if(e.parentPath.get(e.name)!==e)throw new Error("");return e}var l=t.use(e("./types")),c=l.builtInTypes.array,p=l.builtInTypes.number,f=n.prototype;
+return f.getValueProperty=function(e){return this.value[e]},f.get=function(e){for(var t=this,n=arguments,r=n.length,a=0;a<r;++a)t=i(t,n[a]);return t},f.each=function(e,t){for(var n=[],r=this.value.length,i=0,i=0;i<r;++i)a.call(this.value,i)&&(n[i]=this.get(i));for(t=t||this,i=0;i<r;++i)a.call(n,i)&&e.call(t,n[i])},f.map=function(e,t){var n=[];return this.each(function(t){n.push(e.call(this,t))},t),n},f.filter=function(e,t){var n=[];return this.each(function(t){e.call(this,t)&&n.push(t)},t),n},f.shift=function(){var e=o(this,-1),t=this.value.shift();return e(),t},f.unshift=function(e){var t=o(this,arguments.length),n=this.value.unshift.apply(this.value,arguments);return t(),n},f.push=function(e){return c.assert(this.value),delete r(this).length,this.value.push.apply(this.value,arguments)},f.pop=function(){c.assert(this.value);var e=r(this);return delete e[this.value.length-1],delete e.length,this.value.pop()},f.insertAt=function(e,t){var n=arguments.length,r=o(this,n-1,e);if(r===s)return this;e=Math.max(e,0);for(var i=1;i<n;++i)this.value[e+i-1]=arguments[i];return r(),this},f.insertBefore=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},f.insertAfter=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name+1],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},f.replace=function(e){var t=[],n=this.parentPath.value,i=r(this.parentPath),a=arguments.length;if(u(this),c.check(n)){for(var s=n.length,l=o(this.parentPath,a-1,this.name+1),p=[this.name,1],f=0;f<a;++f)p.push(arguments[f]);var h=n.splice.apply(n,p);if(h[0]!==this.value)throw new Error("");if(n.length!==s-1+a)throw new Error("");if(l(),0===a)delete this.value,delete i[this.name],this.__childCache=null;else{if(n[this.name]!==e)throw new Error("");for(this.value!==e&&(this.value=e,this.__childCache=null),f=0;f<a;++f)t.push(this.parentPath.get(this.name+f));if(t[0]!==this)throw new Error("")}}else if(1===a)this.value!==e&&(this.__childCache=null),this.value=n[this.name]=e,t.push(this);else{if(0!==a)throw new Error("Could not replace path");delete n[this.name],delete this.value,this.__childCache=null}return t},n}},{"./types":557}],555:[function(e,t,n){var r=Object.prototype.hasOwnProperty;t.exports=function(t){function n(r,i){if(!(this instanceof n))throw new Error("Scope constructor cannot be invoked without 'new'");if(!(r instanceof t.use(e("./node-path"))))throw new Error("");g.assert(r.value);var a;if(i){if(!(i instanceof n))throw new Error("");a=i.depth+1}else i=null,a=0;Object.defineProperties(this,{path:{value:r},node:{value:r.value},isGlobal:{value:!i,enumerable:!0},depth:{value:a},parent:{value:i},bindings:{value:{}},types:{value:{}}})}function i(e,t,n){var r=e.value;g.assert(r),f.CatchClause.check(r)?u(e.get("param"),t):a(e,t,n)}function a(e,t,n){var r=e.value;e.parent&&f.FunctionExpression.check(e.parent.node)&&e.parent.node.id&&u(e.parent.get("id"),t),r&&(y.check(r)?e.each(function(e){o(e,t,n)}):f.Function.check(r)?(e.get("params").each(function(e){u(e,t)}),o(e.get("body"),t,n)):f.TypeAlias&&f.TypeAlias.check(r)?l(e.get("id"),n):f.VariableDeclarator.check(r)?(u(e.get("id"),t),o(e.get("init"),t,n)):"ImportSpecifier"===r.type||"ImportNamespaceSpecifier"===r.type||"ImportDefaultSpecifier"===r.type?u(e.get(r.local?"local":r.name?"name":"id"),t):h.check(r)&&!d.check(r)&&c.eachField(r,function(r,i){var a=e.get(r);if(!s(a,i))throw new Error("");o(a,t,n)}))}function s(e,t){return e.value===t||!(!Array.isArray(e.value)||0!==e.value.length||!Array.isArray(t)||0!==t.length)}function o(e,t,n){var i=e.value;if(!i||d.check(i));else if(f.FunctionDeclaration.check(i)&&null!==i.id)u(e.get("id"),t);else if(f.ClassDeclaration&&f.ClassDeclaration.check(i))u(e.get("id"),t);else if(g.check(i)){if(f.CatchClause.check(i)){var s=i.param.name,o=r.call(t,s);a(e.get("body"),t,n),o||delete t[s]}}else a(e,t,n)}function u(e,t){var n=e.value;f.Pattern.assert(n),f.Identifier.check(n)?r.call(t,n.name)?t[n.name].push(e):t[n.name]=[e]:f.ObjectPattern&&f.ObjectPattern.check(n)?e.get("properties").each(function(e){var n=e.value;f.Pattern.check(n)?u(e,t):f.Property.check(n)?u(e.get("value"),t):f.SpreadProperty&&f.SpreadProperty.check(n)&&u(e.get("argument"),t)}):f.ArrayPattern&&f.ArrayPattern.check(n)?e.get("elements").each(function(e){var n=e.value;f.Pattern.check(n)?u(e,t):f.SpreadElement&&f.SpreadElement.check(n)&&u(e.get("argument"),t)}):f.PropertyPattern&&f.PropertyPattern.check(n)?u(e.get("pattern"),t):(f.SpreadElementPattern&&f.SpreadElementPattern.check(n)||f.SpreadPropertyPattern&&f.SpreadPropertyPattern.check(n))&&u(e.get("argument"),t)}function l(e,t){var n=e.value;f.Pattern.assert(n),f.Identifier.check(n)&&(r.call(t,n.name)?t[n.name].push(e):t[n.name]=[e])}var c=t.use(e("./types")),p=c.Type,f=c.namedTypes,h=f.Node,d=f.Expression,y=c.builtInTypes.array,m=c.builders,b=[f.Program,f.Function,f.CatchClause],g=p.or.apply(p,b);n.isEstablishedBy=function(e){return g.check(e)};var v=n.prototype;return v.didScan=!1,v.declares=function(e){return this.scan(),r.call(this.bindings,e)},v.declaresType=function(e){return this.scan(),r.call(this.types,e)},v.declareTemporary=function(e){if(e){if(!/^[a-z$_]/i.test(e))throw new Error("")}else e="t$";e+=this.depth.toString(36)+"$",this.scan();for(var t=0;this.declares(e+t);)++t;var n=e+t;return this.bindings[n]=c.builders.identifier(n)},v.injectTemporary=function(e,t){e||(e=this.declareTemporary());var n=this.path.get("body");return f.BlockStatement.check(n.value)&&(n=n.get("body")),n.unshift(m.variableDeclaration("var",[m.variableDeclarator(e,t||null)])),e},v.scan=function(e){if(e||!this.didScan){for(var t in this.bindings)delete this.bindings[t];i(this.path,this.bindings,this.types),this.didScan=!0}},v.getBindings=function(){return this.scan(),this.bindings},v.getTypes=function(){return this.scan(),this.types},v.lookup=function(e){for(var t=this;t&&!t.declares(e);t=t.parent);return t},v.lookupType=function(e){for(var t=this;t&&!t.declaresType(e);t=t.parent);return t},v.getGlobalScope=function(){for(var e=this;!e.isGlobal;)e=e.parent;return e},n}},{"./node-path":552,"./types":557}],556:[function(e,t,n){t.exports=function(t){var n={},r=t.use(e("../lib/types")),i=r.Type,a=r.builtInTypes,s=a.number;n.geq=function(e){return new i(function(t){return s.check(t)&&t>=e},s+" >= "+e)},n.defaults={null:function(){return null},emptyArray:function(){return[]},false:function(){return!1},true:function(){return!0},undefined:function(){}};var o=i.or(a.string,a.number,a.boolean,a.null,a.undefined);return n.isPrimitive=new i(function(e){if(null===e)return!0;var t=typeof e;return!("object"===t||"function"===t)},o.toString()),n}},{"../lib/types":557}],557:[function(e,t,n){var r=Array.prototype,i=r.slice,a=(r.map,r.forEach,Object.prototype),s=a.toString,o=s.call(function(){}),u=s.call(""),l=a.hasOwnProperty;t.exports=function(){function e(t,n){var r=this;if(!(r instanceof e))throw new Error("Type constructor cannot be invoked without 'new'");if(s.call(t)!==o)throw new Error(t+" is not a function");var i=s.call(n);if(i!==o&&i!==u)throw new Error(n+" is neither a function nor a string");Object.defineProperties(r,{name:{value:n},check:{value:function(e,n){var i=t.call(r,e,n);return!i&&n&&s.call(n)===o&&n(r,e),i}}})}function t(e){return S.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":C.check(e)?"["+e.map(t).join(", ")+"]":JSON.stringify(e)}function n(t,n){var r=s.call(t),i=new e(function(e){return s.call(e)===r},n);return E[n]=i,t&&"function"==typeof t.constructor&&(x.push(t.constructor),_.push(i)),i}function r(t,n){if(t instanceof e)return t;if(t instanceof c)return t.type;if(C.check(t))return e.fromArray(t);if(S.check(t))return e.fromObject(t);if(D.check(t)){var r=x.indexOf(t);return r>=0?_[r]:new e(t,n)}return new e(function(e){return e===t},k.check(n)?function(){return t+""}:n)}function a(e,t,n,i){var s=this;if(!(s instanceof a))throw new Error("Field constructor cannot be invoked without 'new'");A.assert(e),t=r(t);var o={name:{value:e},type:{value:t},hidden:{value:!!i}};D.check(n)&&(o.defaultFn={value:n}),Object.defineProperties(s,o)}function c(t){var n=this;if(!(n instanceof c))throw new Error("Def constructor cannot be invoked without 'new'");Object.defineProperties(n,{typeName:{value:t},baseNames:{value:[]},ownFields:{value:Object.create(null)},allSupertypes:{value:Object.create(null)},supertypeList:{value:[]},allFields:{value:Object.create(null)},fieldNames:{value:[]},type:{value:new e(function(e,t){return n.check(e,t)},t)}})}function p(e){return e.replace(/^[A-Z]+/,function(e){var t=e.length;switch(t){case 0:return"";case 1:return e.toLowerCase();default:return e.slice(0,t-1).toLowerCase()+e.charAt(t-1)}})}function f(e){return e=p(e),e.replace(/(Expression)?$/,"Statement")}function h(e){var t=c.fromValue(e);if(t)return t.fieldNames.slice(0);if("type"in e)throw new Error("did not recognize object of type "+JSON.stringify(e.type));return Object.keys(e)}function d(e,t){var n=c.fromValue(e);if(n){var r=n.allFields[t];if(r)return r.getValue(e)}return e&&e[t]}function y(e){var t=f(e);if(!j[t]){var n=j[p(e)];n&&(j[t]=function(){return j.expressionStatement(n.apply(j,arguments))})}}function m(e,t){t.length=0,t.push(e);for(var n=Object.create(null),r=0;r<t.length;++r){e=t[r];var i=T[e];if(i.finalized!==!0)throw new Error("");l.call(n,e)&&delete t[n[e]],n[e]=r,t.push.apply(t,i.baseNames)}for(var a=0,s=a,o=t.length;s<o;++s)l.call(t,s)&&(t[a++]=t[s]);t.length=a}function b(e,t){return Object.keys(t).forEach(function(n){e[n]=t[n]}),e}var g={},v=e.prototype;g.Type=e,v.assert=function(e,n){if(!this.check(e,n)){var r=t(e);throw new Error(r+" does not match type "+this)}return!0},v.toString=function(){var e=this.name;return A.check(e)?e:D.check(e)?e.call(this)+"":e+" type"};var x=[],_=[],E={};g.builtInTypes=E;var A=n("truthy","string"),D=n(function(){},"function"),C=n([],"array"),S=n({},"object"),w=(n(/./,"RegExp"),n(new Date,"Date"),n(3,"number")),k=(n(!0,"boolean"),n(null,"null"),n(void 0,"undefined"));e.or=function(){for(var t=[],n=arguments.length,i=0;i<n;++i)t.push(r(arguments[i]));return new e(function(e,r){for(var i=0;i<n;++i)if(t[i].check(e,r))return!0;return!1},function(){return t.join(" | ")})},e.fromArray=function(e){if(!C.check(e))throw new Error("");if(1!==e.length)throw new Error("only one element type is permitted for typed arrays");return r(e[0]).arrayOf()},v.arrayOf=function(){var t=this;return new e(function(e,n){return C.check(e)&&e.every(function(e){return t.check(e,n)})},function(){return"["+t+"]"})},e.fromObject=function(t){var n=Object.keys(t).map(function(e){return new a(e,t[e])});return new e(function(e,t){return S.check(e)&&n.every(function(n){return n.type.check(e[n.name],t)})},function(){return"{ "+n.join(", ")+" }"})};var F=a.prototype;F.toString=function(){return JSON.stringify(this.name)+": "+this.type},F.getValue=function(e){var t=e[this.name];return k.check(t)?(this.defaultFn&&(t=this.defaultFn.call(e)),t):t},e.def=function(e){return A.assert(e),l.call(T,e)?T[e]:T[e]=new c(e)};var T=Object.create(null);c.fromValue=function(e){if(e&&"object"==typeof e){var t=e.type;if("string"==typeof t&&l.call(T,t)){var n=T[t];if(n.finalized)return n}}return null};var P=c.prototype;P.isSupertypeOf=function(e){if(e instanceof c){if(this.finalized!==!0||e.finalized!==!0)throw new Error("");return l.call(e.allSupertypes,this.typeName)}throw new Error(e+" is not a Def")},g.getSupertypeNames=function(e){if(!l.call(T,e))throw new Error("");var t=T[e];if(t.finalized!==!0)throw new Error("");return t.supertypeList.slice(1)},g.computeSupertypeLookupTable=function(e){for(var t={},n=Object.keys(T),r=n.length,i=0;i<r;++i){var a=n[i],s=T[a];if(s.finalized!==!0)throw new Error(""+a);for(var o=0;o<s.supertypeList.length;++o){var u=s.supertypeList[o];if(l.call(e,u)){t[a]=u;break}}}return t},P.checkAllFields=function(e,t){function n(n){var i=r[n],a=i.type,s=i.getValue(e);return a.check(s,t)}var r=this.allFields;if(this.finalized!==!0)throw new Error(""+this.typeName);return S.check(e)&&Object.keys(r).every(n)},P.check=function(e,t){if(this.finalized!==!0)throw new Error("prematurely checking unfinalized type "+this.typeName);if(!S.check(e))return!1;var n=c.fromValue(e);return n?t&&n===this?this.checkAllFields(e,t):!!this.isSupertypeOf(n)&&(!t||n.checkAllFields(e,t)&&this.checkAllFields(e,!1)):("SourceLocation"===this.typeName||"Position"===this.typeName)&&this.checkAllFields(e,t)},P.bases=function(){var e=i.call(arguments),t=this.baseNames;if(this.finalized){if(e.length!==t.length)throw new Error("");for(var n=0;n<e.length;n++)if(e[n]!==t[n])throw new Error("");return this}return e.forEach(function(e){A.assert(e),t.indexOf(e)<0&&t.push(e)}),this},Object.defineProperty(P,"buildable",{value:!1});var j={};g.builders=j;var B={};g.defineMethod=function(e,t){var n=B[e];return k.check(t)?delete B[e]:(D.assert(t),Object.defineProperty(B,e,{enumerable:!0,configurable:!0,value:t})),n};var O=A.arrayOf();P.build=function(){var e=this,n=i.call(arguments);return O.assert(n),Object.defineProperty(e,"buildParams",{value:n,writable:!1,enumerable:!1,configurable:!0}),e.buildable?e:(e.field("type",String,function(){return e.typeName}),Object.defineProperty(e,"buildable",{value:!0}),Object.defineProperty(j,p(e.typeName),{enumerable:!0,value:function(){function n(n,s){if(!l.call(a,n)){var o=e.allFields;if(!l.call(o,n))throw new Error(""+n);var u,c=o[n],p=c.type;if(w.check(s)&&s<i)u=r[s];else{if(!c.defaultFn){var f="no value or default function given for field "+JSON.stringify(n)+" of "+e.typeName+"("+e.buildParams.map(function(e){return o[e]}).join(", ")+")";throw new Error(f)}u=c.defaultFn.call(a)}if(!p.check(u))throw new Error(t(u)+" does not match field "+c+" of type "+e.typeName);a[n]=u}}var r=arguments,i=r.length,a=Object.create(B);if(!e.finalized)throw new Error("attempting to instantiate unfinalized type "+e.typeName);if(e.buildParams.forEach(function(e,t){n(e,t)}),Object.keys(e.allFields).forEach(function(e){n(e)}),a.type!==e.typeName)throw new Error("");return a}}),e)},g.getBuilderName=p,g.getStatementBuilderName=f,P.field=function(e,t,n,r){return this.finalized?(console.error("Ignoring attempt to redefine field "+JSON.stringify(e)+" of finalized type "+JSON.stringify(this.typeName)),this):(this.ownFields[e]=new a(e,t,n,r),this)};var I={};return g.namedTypes=I,g.getFieldNames=h,g.getFieldValue=d,g.eachField=function(e,t,n){h(e).forEach(function(n){t.call(this,n,d(e,n))},n)},g.someField=function(e,t,n){return h(e).some(function(n){return t.call(this,n,d(e,n))},n)},Object.defineProperty(P,"finalized",{value:!1}),P.finalize=function(){var e=this;if(!e.finalized){var t=e.allFields,n=e.allSupertypes;e.baseNames.forEach(function(r){var i=T[r];if(!(i instanceof c)){var a="unknown supertype name "+JSON.stringify(r)+" for subtype "+JSON.stringify(e.typeName);throw new Error(a)}i.finalize(),b(t,i.allFields),b(n,i.allSupertypes)}),b(t,e.ownFields),n[e.typeName]=e,e.fieldNames.length=0;for(var r in t)l.call(t,r)&&!t[r].hidden&&e.fieldNames.push(r);Object.defineProperty(I,e.typeName,{enumerable:!0,value:e.type}),Object.defineProperty(e,"finalized",{value:!0}),m(e.typeName,e.supertypeList),e.buildable&&e.supertypeList.lastIndexOf("Expression")>=0&&y(e.typeName)}},g.finalize=function(){Object.keys(T).forEach(function(e){T[e].finalize()})},g}},{}],558:[function(e,t,n){t.exports=e("./fork")([e("./def/core"),e("./def/es6"),e("./def/es7"),e("./def/mozilla"),e("./def/e4x"),e("./def/jsx"),e("./def/flow"),e("./def/esprima"),e("./def/babel"),e("./def/babel6")])},{"./def/babel":540,"./def/babel6":541,"./def/core":542,"./def/e4x":543,"./def/es6":544,"./def/es7":545,"./def/esprima":546,"./def/flow":547,"./def/jsx":548,"./def/mozilla":549,"./fork":550}],559:[function(e,t,n){!function(e,r){"object"==typeof n&&"object"==typeof t?t.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof n?n.esprima=r():e.esprima=r()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n){var r=null,i=function(e,t){n&&n(e,t),r&&r.visit(e,t)},u="function"==typeof n?i:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var c="boolean"==typeof t.attachComment&&t.attachComment;(l||c)&&(r=new a.CommentHandler,r.attach=c,t.comment=!0,u=i)}var p;p=t&&"boolean"==typeof t.jsx&&t.jsx?new o.JSXParser(e,t,u):new s.Parser(e,t,u);var f=p.parseProgram();return l&&(f.comments=r.comments),p.config.tokens&&(f.tokens=p.tokens),p.config.tolerant&&(f.errors=p.errorHandler.errors),f}function i(e,t,n){var r,i=new u.Tokenizer(e,t);r=[];try{for(;;){var a=i.getNextToken();if(!a)break;n&&(a=n(a)),r.push(a)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(r.errors=i.errors()),r}var a=n(1),s=n(3),o=n(11),u=n(15);t.parse=r,t.tokenize=i;var l=n(2);t.Syntax=l.Syntax,t.version="3.1.3"},function(e,t,n){"use strict";var r=n(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===r.Syntax.BlockStatement&&0===e.body.length){for(var n=[],i=this.leading.length-1;i>=0;--i){var a=this.leading[i];t.end.offset>=a.start&&(n.unshift(a.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&n.unshift(i.comment)}return this.trailing.length=0,n}var a=this.stack[this.stack.length-1];if(a&&a.node.trailingComments){var s=a.node.trailingComments[0];s&&s.range[0]>=t.end.offset&&(n=a.node.trailingComments,delete a.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n,r=[];this.stack.length>0;){var i=this.stack[this.stack.length-1];if(!(i&&i.start>=t.start.offset))break;n=this.stack.pop().node}if(n){for(var a=n.leadingComments?n.leadingComments.length:0,s=a-1;s>=0;--s){var o=n.leadingComments[s];o.range[1]<=t.start.offset&&(r.unshift(o),n.leadingComments.splice(s,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,r}for(var s=this.leading.length-1;s>=0;--s){var i=this.leading[s];i.start<=t.start.offset&&(r.unshift(i.comment),this.leading.splice(s,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===r.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",r={type:n,value:e.value};if(e.range&&(r.range=e.range),e.loc&&(r.loc=e.loc),this.comments.push(r),this.attach){var i={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=n,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){"use strict";var r=n(4),i=n(5),a=n(6),s=n(7),o=n(8),u=n(2),l=n(10),c="ArrowParameterPlaceHolder",p=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new a.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new o.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),a=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),s=this.lastMarker.index,o=this.lastMarker.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;throw this.errorHandler.createError(s,o,u,a)},e.prototype.tolerateError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),a=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),s=this.lastMarker.index,o=this.scanner.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;this.errorHandler.tolerateError(s,o,u,a)},e.prototype.unexpectedTokenError=function(e,t){var n,r=t||i.Messages.UnexpectedToken;if(e?(t||(r=e.type===s.Token.EOF?i.Messages.UnexpectedEOS:e.type===s.Token.Identifier?i.Messages.UnexpectedIdentifier:e.type===s.Token.NumericLiteral?i.Messages.UnexpectedNumber:e.type===s.Token.StringLiteral?i.Messages.UnexpectedString:e.type===s.Token.Template?i.Messages.UnexpectedTemplate:i.Messages.UnexpectedToken,e.type===s.Token.Keyword&&(this.scanner.isFutureReservedWord(e.value)?r=i.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(r=i.Messages.StrictReservedWord))),n=e.type===s.Token.Template?e.value.raw:e.value):n="ILLEGAL",r=r.replace("%0",n),e&&"number"==typeof e.lineNumber){var a=e.start,o=e.lineNumber,u=e.start-this.lastMarker.lineStart+1;return this.errorHandler.createError(a,o,u,r)}var a=this.lastMarker.index,o=this.lastMarker.lineNumber,u=a-this.lastMarker.lineStart+1;return this.errorHandler.createError(a,o,u,r)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var n=e[t],r=void 0;r={type:n.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(n.slice[0],n.slice[1])},this.config.range&&(r.range=n.range),this.config.loc&&(r.loc=n.loc);var i={start:{line:n.loc.start.line,column:n.loc.start.column,offset:n.range[0]},end:{line:n.loc.end.line,column:n.loc.end.column,offset:n.range[1]}};this.delegate(r,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t;return t={type:s.TokenName[e.type],value:this.getTokenRaw(e)},this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.regex&&(t.regex=e.regex),t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var t;return t=this.scanner.lex(),this.hasLineTerminator=!(!e||!t)&&e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===s.Token.Identifier&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=s.Token.Keyword),this.lookahead=t,this.config.tokens&&t.type!==s.Token.EOF&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart}},e.prototype.startNode=function(e){return{index:e.start,line:e.lineNumber,column:e.start-e.lineStart}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var n={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart,offset:this.lastMarker.index}};this.delegate(t,n)}return t},e.prototype.expect=function(e){var t=this.nextToken();t.type===s.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;e.type===s.Token.Punctuator&&","===e.value?this.nextToken():e.type===s.Token.Punctuator&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,i.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();t.type===s.Token.Keyword&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return this.lookahead.type===s.Token.Punctuator&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return this.lookahead.type===s.Token.Keyword&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return this.lookahead.type===s.Token.Identifier&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(this.lookahead.type!==s.Token.Punctuator)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===s.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,n,r,a=this.createNode();switch(this.lookahead.type){case s.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(a,new l.Identifier(this.nextToken().value));break;case s.Token.NumericLiteral:case s.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(a,new l.Literal(n.value,r));break;case s.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value="true"===n.value,r=this.getTokenRaw(n),e=this.finalize(a,new l.Literal(n.value,r));break;case s.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value=null,r=this.getTokenRaw(n),e=this.finalize(a,new l.Literal(n.value,r));break;case s.Token.Template:e=this.parseTemplateLiteral();break;case s.Token.Punctuator:switch(t=this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(a,new l.RegexLiteral(n.value,r,n.regex));
+break;default:this.throwUnexpectedToken(this.nextToken())}break;case s.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(a,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(a,new l.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=!1,t=this.createNode(),n=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new l.FunctionExpression(null,r.params,i,e))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case s.Token.StringLiteral:case s.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var r=this.getTokenRaw(t);n=this.finalize(e,new l.Literal(t.value,r));break;case s.Token.Identifier:case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.Keyword:n=this.finalize(e,new l.Identifier(t.value));break;case s.Token.Punctuator:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return n},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n,r,a=this.createNode(),o=this.lookahead,u=!1,c=!1,p=!1;o.type===s.Token.Identifier?(this.nextToken(),n=this.finalize(a,new l.Identifier(o.value))):this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var f=this.qualifiedPropertyName(this.lookahead);if(o.type===s.Token.Identifier&&"get"===o.value&&f)t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(o.type===s.Token.Identifier&&"set"===o.value&&f)t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(o.type===s.Token.Punctuator&&"*"===o.value&&f)t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),c=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=this.parsePropertyMethodFunction(),c=!0;else if(o.type===s.Token.Identifier){var h=this.finalize(a,new l.Identifier(o.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),p=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(a,new l.AssignmentPattern(h,d))}else p=!0,r=h}else this.throwUnexpectedToken(this.nextToken());return this.finalize(a,new l.Property(t,n,u,r,c,p))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){r.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==s.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],r=this.parseTemplateHead();for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize(e,new l.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:e.type=u.Syntax.ObjectPattern;for(var t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:c,params:[]};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:c,params:[e]};else{var r=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index<this.scanner.length&&this.match(",");){if(this.nextToken(),this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(n)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(var a=0;a<i.length;a++)this.reinterpretExpressionAsPattern(i[a]);r=!0,e={type:c,params:i}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(r)break}r||(e=this.finalize(this.startNode(t),new l.SequenceExpression(i)))}if(!r){if(this.expect(")"),this.match("=>")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(r=!0,e={type:c,params:[e]}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var a=0;a<e.expressions.length;a++)this.reinterpretExpressionAsPattern(e.expressions[a]);else this.reinterpretExpressionAsPattern(e);var s=e.type===u.Syntax.SequenceExpression?e.expressions:[e];e={type:c,params:s}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;this.expectCommaSeparator()}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return e.type===s.Token.Identifier||e.type===s.Token.Keyword||e.type===s.Token.BooleanLiteral||e.type===s.Token.NullLiteral},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new l.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e=this.createNode(),t=this.parseIdentifierName();r.assert("new"===t.name,"New expression must start with `new`");var n;if(this.match("."))if(this.nextToken(),this.lookahead.type===s.Token.Identifier&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();n=new l.MetaProperty(t,i)}else this.throwUnexpectedToken(this.lookahead);else{var a=this.isolateCoverGrammar(this.parseLeftHandSideExpression),o=this.match("(")?this.parseArguments():[];n=new l.NewExpression(a,o),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,n)},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e=this.lookahead,t=this.context.allowIn;this.context.allowIn=!0;var n;for(this.matchKeyword("super")&&this.context.inFunctionBody?(n=this.createNode(),this.nextToken(),n=this.finalize(n,new l.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):n=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();n=this.finalize(this.startNode(e),new l.StaticMemberExpression(n,r))}else if(this.match("(")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var i=this.parseArguments();n=this.finalize(this.startNode(e),new l.CallExpression(n,i))}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),n=this.finalize(this.startNode(e),new l.ComputedMemberExpression(n,r))}else{if(this.lookahead.type!==s.Token.Template||!this.lookahead.head)break;var a=this.parseTemplateLiteral();n=this.finalize(this.startNode(e),new l.TaggedTemplateExpression(n,a))}return this.context.allowIn=t,n},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new l.Super)},e.prototype.parseLeftHandSideExpression=function(){r.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var n=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new l.ComputedMemberExpression(t,n))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var n=this.parseIdentifierName();t=this.finalize(e,new l.StaticMemberExpression(t,n))}else{if(this.lookahead.type!==s.Token.Template||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new l.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var n=this.startNode(t),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment);var a=!0;e=this.finalize(n,new l.UpdateExpression(r.value,e,a)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===s.Token.Punctuator&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var o=this.nextToken().value,a=!1;e=this.finalize(this.startNode(t),new l.UpdateExpression(o,e,a))}return e},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new l.UnaryExpression(n.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(i.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=t,r=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new l.BinaryExpression("**",n,r))}return t},e.prototype.binaryPrecedence=function(e){var t,n=e.value;return t=e.type===s.Token.Punctuator?this.operatorPrecedence[n]||0:e.type===s.Token.Keyword&&("instanceof"===n||this.context.allowIn&&"in"===n)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),n=this.lookahead,r=this.binaryPrecedence(n);if(r>0){this.nextToken(),n.prec=r,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],a=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),o=[a,n,s];;){if(r=this.binaryPrecedence(this.lookahead),r<=0)break;for(;o.length>2&&r<=o[o.length-2].prec;){s=o.pop();var u=o.pop().value;a=o.pop(),i.pop();var c=this.startNode(i[i.length-1]);o.push(this.finalize(c,new l.BinaryExpression(u,a,s)))}n=this.nextToken(),n.prec=r,o.push(n),i.push(this.lookahead),o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=o.length-1;for(t=o[p],i.pop();p>1;){var c=this.startNode(i.pop());t=this.finalize(c,new l.BinaryExpression(o[p-1].value,o[p-2],t)),p-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new l.ConditionalExpression(t,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var n=0;n<t.elements.length;n++)null!==t.elements[n]&&this.checkPatternParam(e,t.elements[n]);break;case u.Syntax.YieldExpression:break;default:r.assert(t.type===u.Syntax.ObjectPattern,"Invalid type");for(var n=0;n<t.properties.length;n++)this.checkPatternParam(e,t.properties[n].value)}},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,n=[e];switch(e.type){case u.Syntax.Identifier:break;case c:n=e.params;break;default:return null}t={paramSet:{}};for(var r=0;r<n.length;++r){var a=n[r];a.type===u.Syntax.AssignmentPattern&&a.right.type===u.Syntax.YieldExpression&&(a.right.argument&&this.throwUnexpectedToken(this.lookahead),a.right.type=u.Syntax.Identifier,a.right.name="yield",delete a.right.argument,delete a.right.delegate),this.checkPatternParam(t,a),n[r]=a}if(this.context.strict||!this.context.allowYield)for(var r=0;r<n.length;++r){var a=n[r];a.type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===i.Messages.StrictParamDupe){var s=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(s,t.message)}return{params:n,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,n=t;if(e=this.parseConditionalExpression(),e.type===c||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var a=this.context.strict,s=this.context.allowYield;this.context.allowYield=!0;var o=this.startNode(t);this.expect("=>");var p=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),f=p.type!==u.Syntax.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(o,new l.ArrowFunctionExpression(r.params,p,f)),this.context.strict=a,this.context.allowYield=s}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var h=e;this.scanner.isRestrictedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new l.AssignmentExpression(n.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);this.startMarker.index<this.scanner.length&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new l.SequenceExpression(n))}return t},e.prototype.parseStatementListItem=function(){var e=null;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===s.Token.Keyword)switch(this.lookahead.value){case"export":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];;){if(this.match("}"))break;t.push(this.parseStatementListItem())}return this.expect("}"),this.finalize(e,new l.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var n=this.createNode(),r=[],a=this.parsePattern(r,e);this.context.strict&&a.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(a.name)&&this.tolerateError(i.Messages.StrictVarName);var s=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)):(!t.inFor&&a.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new l.VariableDeclarator(a,s))},e.prototype.parseBindingList=function(e,t){for(var n=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,t));return n},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.collectComments();var r=this.scanner.lex();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r.type===s.Token.Identifier||r.type===s.Token.Punctuator&&"["===r.value||r.type===s.Token.Punctuator&&"{"===r.value||r.type===s.Token.Keyword&&"let"===r.value||r.type===s.Token.Keyword&&"yield"===r.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),n=this.nextToken().value;r.assert("let"===n||"const"===n,"Lexical declaration must be either let or const");var i=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(t,new l.VariableDeclaration(i,n))},e.prototype.parseBindingRestElement=function(e,t){var n=this.createNode();this.expect("...");var r=this.parsePattern(e,t);return this.finalize(n,new l.RestElement(r))},e.prototype.parseArrayPattern=function(e,t){var n=this.createNode();this.expect("[");for(var r=[];!this.match("]");)if(this.match(","))this.nextToken(),r.push(null);else{if(this.match("...")){r.push(this.parseBindingRestElement(e,t));break}r.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new l.ArrayPattern(r))},e.prototype.parsePropertyPattern=function(e,t){var n,r,i=this.createNode(),a=!1,o=!1,u=!1;if(this.lookahead.type===s.Token.Identifier){var c=this.lookahead;n=this.parseVariableIdentifier();var p=this.finalize(i,new l.Identifier(c.value));if(this.match("=")){e.push(c),o=!0,this.nextToken();var f=this.parseAssignmentExpression();r=this.finalize(this.startNode(c),new l.AssignmentPattern(p,f))}else this.match(":")?(this.expect(":"),r=this.parsePatternWithDefault(e,t)):(e.push(c),o=!0,r=p)}else a=this.match("["),n=this.parseObjectPropertyKey(),this.expect(":"),r=this.parsePatternWithDefault(e,t);return this.finalize(i,new l.Property("init",n,a,r,u,o))},e.prototype.parseObjectPattern=function(e,t){var n=this.createNode(),r=[];for(this.expect("{");!this.match("}");)r.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new l.ObjectPattern(r))},e.prototype.parsePattern=function(e,t){var n;return this.match("[")?n=this.parseArrayPattern(e,t):this.match("{")?n=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,i.Messages.UnexpectedToken),e.push(this.lookahead),n=this.parseVariableIdentifier(t)),n},e.prototype.parsePatternWithDefault=function(e,t){var n=this.lookahead,r=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var a=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,r=this.finalize(this.startNode(n),new l.AssignmentPattern(r,a))}return r},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),n=this.nextToken();return n.type===s.Token.Keyword&&"yield"===n.value?(this.context.strict&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord),this.context.allowYield||this.throwUnexpectedToken(n)):n.type!==s.Token.Identifier?this.context.strict&&n.type===s.Token.Keyword&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord):(this.context.strict||"let"!==n.value||"var"!==e)&&this.throwUnexpectedToken(n):"module"===this.sourceType&&n.type===s.Token.Identifier&&"await"===n.value&&this.tolerateUnexpectedToken(n),this.finalize(t,new l.Identifier(n.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),n=[],r=this.parsePattern(n,"var");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictVarName);var a=null;return this.match("=")?(this.nextToken(),a=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new l.VariableDeclarator(r,a))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(t));return n},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(t))},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),n=null;this.expectKeyword("if"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),e=this.parseStatement(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseStatement())),this.finalize(t,new l.IfStatement(r,e,n))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();return this.expect(")"),this.match(";")&&this.nextToken(),this.finalize(e,new l.DoWhileStatement(n,r))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var r=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=r}return this.finalize(t,new l.WhileStatement(n,e))},e.prototype.parseForStatement=function(){var e,t,n=null,r=null,a=null,s=!0,o=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var c=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=c,1===p.length&&this.matchKeyword("in")){var f=p[0];f.init&&(f.id.type===u.Syntax.ArrayPattern||f.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(i.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new l.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new l.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,s=!1):(n=this.finalize(n,new l.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var h=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){var c=this.context.allowIn;this.context.allowIn=!1;var p=this.parseBindingList(h,{inFor:!0});this.context.allowIn=c,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new l.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new l.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,s=!1):(this.consumeSemicolon(),n=this.finalize(n,new l.VariableDeclaration(p,h)))}else n=this.finalize(n,new l.Identifier(h)),this.nextToken(),e=n,t=this.parseExpression(),n=null}else{var d=this.lookahead,c=this.context.allowIn;if(this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=c,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,s=!1;else{if(this.match(",")){for(var y=[n];this.match(",");)this.nextToken(),y.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(d),new l.SequenceExpression(y))}this.expect(";")}}"undefined"==typeof e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(a=this.parseExpression()));var m;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var b=this.context.inIteration;this.context.inIteration=!0,m=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=b}return"undefined"==typeof e?this.finalize(o,new l.ForStatement(n,r,a,m)):s?this.finalize(o,new l.ForInStatement(e,t,m)):this.finalize(o,new l.ForOfStatement(e,t,m))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===s.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(i.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===s.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(i.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(i.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==s.Token.EOF,n=t?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(n))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(i.Messages.StrictModeWith);var e=this.createNode();this.expectKeyword("with"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.parseStatement();return this.finalize(e,new l.WithStatement(t,n))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),
+this.expect(":");for(var n=[];;){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"))break;n.push(this.parseStatementListItem())}return this.finalize(t,new l.SwitchCase(e,n))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var r=[],a=!1;for(this.expect("{");;){if(this.match("}"))break;var s=this.parseSwitchCase();null===s.test&&(a&&this.throwError(i.Messages.MultipleDefaultsInSwitch),a=!0),r.push(s)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new l.SwitchStatement(t,r))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),n=this.parseExpression();if(n.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var r=n,a="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,a)&&this.throwError(i.Messages.Redeclaration,"Label",r.name),this.context.labelSet[a]=!0;var s=this.parseStatement();delete this.context.labelSet[a],e=new l.LabeledStatement(r,s)}else this.consumeSemicolon(),e=new l.ExpressionStatement(n);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(i.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],n=this.parsePattern(t),r={},a=0;a<t.length;a++){var s="$"+t[a].value;Object.prototype.hasOwnProperty.call(r,s)&&this.tolerateError(i.Messages.DuplicateBinding,t[a].value),r[s]=!0}this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(i.Messages.StrictCatchVariable),this.expect(")");var o=this.parseBlock();return this.finalize(e,new l.CatchClause(n,o))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),n=this.matchKeyword("catch")?this.parseCatchClause():null,r=this.matchKeyword("finally")?this.parseFinallyClause():null;return n||r||this.throwError(i.Messages.NoCatchOrFinally),this.finalize(e,new l.TryStatement(t,n,r))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new l.DebuggerStatement)},e.prototype.parseStatement=function(){var e=null;switch(this.lookahead.type){case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.NumericLiteral:case s.Token.StringLiteral:case s.Token.Template:case s.Token.RegularExpression:e=this.parseExpressionStatement();break;case s.Token.Punctuator:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case s.Token.Identifier:e=this.parseLabelledStatement();break;case s.Token.Keyword:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),n=this.context.labelSet,r=this.context.inIteration,i=this.context.inSwitch,a=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.startMarker.index<this.scanner.length&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=n,this.context.inIteration=r,this.context.inSwitch=i,this.context.inFunctionBody=a,this.finalize(e,new l.BlockStatement(t))},e.prototype.validateParam=function(e,t,n){var r="$"+n;this.context.strict?(this.scanner.isRestrictedWord(n)&&(e.stricted=t,e.message=i.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,r,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[r]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var n=this.parsePattern(e);return this.match("=")&&this.throwError(i.Messages.DefaultRestParameter),this.match(")")||this.throwError(i.Messages.ParameterAfterRestParameter),this.finalize(t,new l.RestElement(n))},e.prototype.parseFormalParameter=function(e){for(var t=[],n=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),r=0;r<t.length;r++)this.validateParam(e,t[r],t[r].value);return e.params.push(n),!this.match(")")},e.prototype.parseFormalParameters=function(e){var t;if(t={params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};this.startMarker.index<this.scanner.length&&this.parseFormalParameter(t);)this.expect(",");return this.expect(")"),{params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode();this.expectKeyword("function");var n=this.match("*");n&&this.nextToken();var r,a=null,s=null;if(!e||!this.match("(")){var o=this.lookahead;a=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(s=o,r=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(s=o,r=i.Messages.StrictReservedWord)}var u=this.context.allowYield;this.context.allowYield=!n;var c=this.parseFormalParameters(s),p=c.params,f=c.stricted;s=c.firstRestricted,c.message&&(r=c.message);var h=this.context.strict,d=this.parseFunctionSourceElements();return this.context.strict&&s&&this.throwUnexpectedToken(s,r),this.context.strict&&f&&this.tolerateUnexpectedToken(f,r),this.context.strict=h,this.context.allowYield=u,this.finalize(t,new l.FunctionDeclaration(a,p,d,n))},e.prototype.parseFunctionExpression=function(){var e=this.createNode();this.expectKeyword("function");var t=this.match("*");t&&this.nextToken();var n,r,a=null,s=this.context.allowYield;if(this.context.allowYield=!t,!this.match("(")){var o=this.lookahead;a=this.context.strict||t||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(r=o,n=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(r=o,n=i.Messages.StrictReservedWord)}var u=this.parseFormalParameters(r),c=u.params,p=u.stricted;r=u.firstRestricted,u.message&&(n=u.message);var f=this.context.strict,h=this.parseFunctionSourceElements();return this.context.strict&&r&&this.throwUnexpectedToken(r,n),this.context.strict&&p&&this.tolerateUnexpectedToken(p,n),this.context.strict=f,this.context.allowYield=s,this.finalize(e,new l.FunctionExpression(a,c,h,t))},e.prototype.parseDirective=function(){var e=this.lookahead,t=null,n=this.createNode(),r=this.parseExpression();return r.type===u.Syntax.Literal&&(t=this.getTokenRaw(e).slice(1,-1)),this.consumeSemicolon(),this.finalize(n,t?new l.Directive(r,t):new l.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var n=this.lookahead;if(n.type!==s.Token.StringLiteral)break;var r=this.parseDirective();t.push(r);var a=r.directive;if("string"!=typeof a)break;"use strict"===a?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,i.Messages.StrictOctalLiteral)):!e&&n.octal&&(e=n)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case s.Token.Identifier:case s.Token.StringLiteral:case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.NumericLiteral:case s.Token.Keyword:return!0;case s.Token.Punctuator:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode();this.expect("("),this.expect(")");var t=!1,n={params:[],stricted:null,firstRestricted:null,message:null},r=this.context.allowYield;this.context.allowYield=!1;var i=this.parsePropertyMethod(n);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,n.params,i,t))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t={params:[],firstRestricted:null,paramSet:{}},n=!1,r=this.context.allowYield;this.context.allowYield=!1,this.expect("("),this.match(")")?this.tolerateUnexpectedToken(this.lookahead):this.parseFormalParameter(t),this.expect(")");var i=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,t.params,i,n))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=!0,n=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(e,new l.FunctionExpression(null,r.params,i,t))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case s.Token.Punctuator:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case s.Token.Keyword:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,n=!1;if(!this.hasLineTerminator){var r=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=r}return this.finalize(e,new l.YieldExpression(t,n))},e.prototype.parseClassElement=function(e){var t,n,r,a=this.lookahead,o=this.createNode(),u=!1,c=!1,p=!1;if(this.match("*"))this.nextToken();else{u=this.match("["),n=this.parseObjectPropertyKey();var f=n;"static"===f.name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(a=this.lookahead,p=!0,u=this.match("["),this.match("*")?this.nextToken():n=this.parseObjectPropertyKey())}var h=this.qualifiedPropertyName(this.lookahead);return a.type===s.Token.Identifier?"get"===a.value&&h?(t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod()):"set"===a.value&&h&&(t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod()):a.type===s.Token.Punctuator&&"*"===a.value&&h&&(t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),c=!0),!t&&n&&this.match("(")&&(t="init",r=this.parsePropertyMethodFunction(),c=!0),t||this.throwUnexpectedToken(this.lookahead),"init"===t&&(t="method"),u||(p&&this.isPropertyKey(n,"prototype")&&this.throwUnexpectedToken(a,i.Messages.StaticPrototype),!p&&this.isPropertyKey(n,"constructor")&&("method"===t&&c&&!r.generator||this.throwUnexpectedToken(a,i.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(a,i.Messages.DuplicateConstructor):e.value=!0,t="constructor")),this.finalize(o,new l.MethodDefinition(n,u,r,t,p))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new l.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=e&&this.lookahead.type!==s.Token.Identifier?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var a=this.parseClassBody();return this.context.strict=n,this.finalize(t,new l.ClassDeclaration(r,i,a))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=this.lookahead.type===s.Token.Identifier?this.parseVariableIdentifier():null,r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new l.ClassExpression(n,r,i))},e.prototype.parseProgram=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();this.startMarker.index<this.scanner.length;)t.push(this.parseStatementListItem());return this.finalize(e,new l.Program(t,this.sourceType))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==s.Token.StringLiteral&&this.throwError(i.Messages.InvalidModuleSpecifier);var t=this.nextToken(),n=this.getTokenRaw(t);return this.finalize(e,new l.Literal(t.value,n))},e.prototype.parseImportSpecifier=function(){var e,t,n=this.createNode();return this.lookahead.type===s.Token.Identifier?(e=this.parseVariableIdentifier(),t=e,this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(e=this.parseIdentifierName(),t=e,this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(n,new l.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new l.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(i.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new l.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var t,n=[];if(this.lookahead.type===s.Token.StringLiteral)t=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new l.ImportDeclaration(n,t))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),n=t;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new l.ExportSpecifier(t,n))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){var n=this.parseClassDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(i.Messages.UnexpectedToken,this.lookahead.value);var n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken();var a=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new l.ExportAllDeclaration(a))}else if(this.lookahead.type===s.Token.Keyword){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else{var o=[],u=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),o.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon();else if(c){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new l.ExportNamedDeclaration(null,o,u))}return t},e}();t.Parser=p},function(e,t){"use strict";function n(e,t){if(!e)throw new Error("ASSERT: "+t)}t.assert=n},function(e,t){"use strict";t.Messages={UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer"}},function(e,t){"use strict";var n=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var n=new Error(e);try{throw n}catch(e){Object.create&&Object.defineProperty&&(n=Object.create(e),Object.defineProperty(n,"column",{value:t}))}finally{return n}},e.prototype.createError=function(e,t,n,r){var i="Line "+t+": "+r,a=this.constructError(i,n);return a.index=e,a.lineNumber=t,a.description=r,a},e.prototype.throwError=function(e,t,n,r){throw this.createError(e,t,n,r)},e.prototype.tolerateError=function(e,t,n,r){var i=this.createError(e,t,n,r);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=n},function(e,t){"use strict";!function(e){e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.RegularExpression=9]="RegularExpression",e[e.Template=10]="Template"}(t.Token||(t.Token={}));var n=t.Token;t.TokenName={},t.TokenName[n.BooleanLiteral]="Boolean",t.TokenName[n.EOF]="<end>",t.TokenName[n.Identifier]="Identifier",t.TokenName[n.Keyword]="Keyword",t.TokenName[n.NullLiteral]="Null",t.TokenName[n.NumericLiteral]="Numeric",t.TokenName[n.Punctuator]="Punctuator",t.TokenName[n.StringLiteral]="String",t.TokenName[n.RegularExpression]="RegularExpression",t.TokenName[n.Template]="Template"},function(e,t,n){"use strict";function r(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var a=n(4),s=n(5),o=n(9),u=n(7),l=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,s.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,n,r;for(this.trackComment&&(t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,o.Character.isLineTerminator(i)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:r};t.push(a)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var a={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:r};t.push(a)}return t},e.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(o.Character.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(o.Character.isWhiteSpace(n))++this.index;else if(o.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var r=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(r)),t=!0}else{if(42!==n)break;this.index+=2;var r=this.skipMultiLineComment();this.trackComment&&(e=e.concat(r))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;var r=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(r))}else{if(60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var r=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(r))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);if(n>=56320&&n<=57343){var r=t;t=1024*(r-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i<t;++i){if(this.eof()||!o.Character.isHexDigit(this.source.charCodeAt(this.index)))return"";n=16*n+r(this.source[this.index++])}return String.fromCharCode(n)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],o.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+r(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),o.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!o.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=o.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&o.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),o.Character.isIdentifierPart(e));)n=o.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&o.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===n.length?u.Token.Identifier:this.isKeyword(n)?u.Token.Keyword:"null"===n?u.Token.NullLiteral:"true"===n||"false"===n?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&o.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&(t=this.source[this.index],"0"===t||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(o.Character.isIdentifierStart(t)||o.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),
+{type:u.Token.NumericLiteral,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",r=!1;for(o.Character.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(o.Character.isIdentifierStart(this.source.charCodeAt(this.index))||o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!o.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];a.assert(o.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var n="";if("."!==t){if(n=this.source[this.index++],t=this.source[this.index],"0"===n){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&o.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(n+=this.source[this.index++];o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(n+=this.source[this.index++],t=this.source[this.index],"+"!==t&&"-"!==t||(n+=this.source[this.index++]),o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];else this.throwUnexpectedToken();return o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseFloat(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];a.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var n=!1,r="";!this.eof();){var i=this.source[this.index++];if(i===t){t="";break}if("\\"===i)if(i=this.source[this.index++],i&&o.Character.isLineTerminator(i.charCodeAt(0)))++this.lineNumber,"\r"===i&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(i){case"u":case"x":if("{"===this.source[this.index])++this.index,r+=this.scanUnicodeCodePointEscape();else{var s=this.scanHexEscape(i);s||this.throwUnexpectedToken(),r+=s}break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=i,this.tolerateUnexpectedToken();break;default:if(i&&o.Character.isOctalDigit(i.charCodeAt(0))){var l=this.octalToDecimal(i);n=l.octal||n,r+=String.fromCharCode(l.code)}else r+=i}else{if(o.Character.isLineTerminator(i.charCodeAt(0)))break;r+=i}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:u.Token.StringLiteral,value:r,octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,n=this.index,r="`"===this.source[n],i=!1,a=2;for(++this.index;!this.eof();){var l=this.source[this.index++];if("`"===l){a=1,i=!0,t=!0;break}if("$"===l){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=l}else if("\\"===l)if(l=this.source[this.index++],o.Character.isLineTerminator(l.charCodeAt(0)))++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(l){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":case"x":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var c=this.index,p=this.scanHexEscape(l);p?e+=p:(this.index=c,e+=l)}break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===l?(o.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(s.Messages.TemplateOctalLiteral),e+="\0"):o.Character.isOctalDigit(l.charCodeAt(0))?this.throwUnexpectedToken(s.Messages.TemplateOctalLiteral):e+=l}else o.Character.isLineTerminator(l.charCodeAt(0))?(++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=l}return t||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:u.Token.Template,value:{cooked:e,raw:this.source.slice(n+1,this.index-a)},head:r,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:n,end:this.index}},e.prototype.testRegExp=function(e,t){var n="￿",r=e,i=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var a=parseInt(t||r,16);return a>1114111&&i.throwUnexpectedToken(s.Messages.InvalidRegExp),a<=65535?String.fromCharCode(a):n}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n));try{RegExp(r)}catch(e){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];a.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,r=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],o.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),t+=e;else if(o.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}r||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);var i=t.substr(1,t.length-2);return{value:i,literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var n=this.source[this.index];if(!o.Character.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var r=this.index;if(n=this.scanHexEscape("u"))for(t+=n,e+="\\u";r<this.index;++r)e+=this.source[r];else this.index=r,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken()}return{value:t,literal:e}},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),n=this.scanRegExpFlags(),r=this.testRegExp(t.value,n.value);return{type:u.Token.RegularExpression,value:r,literal:t.literal+n.literal,regex:{pattern:t.value,flags:n.value},lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:u.Token.EOF,lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return o.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?o.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():o.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&o.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=l},function(e,t){"use strict";var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){"use strict";var r=n(2),i=function(){function e(e){this.type=r.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var a=function(){function e(e){this.type=r.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=a;var s=function(){function e(e,t,n){this.type=r.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}return e}();t.ArrowFunctionExpression=s;var o=function(){function e(e,t,n){this.type=r.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}return e}();t.AssignmentExpression=o;var u=function(){function e(e,t){this.type=r.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var l=function(){function e(e,t,n){var i="||"===e||"&&"===e;this.type=i?r.Syntax.LogicalExpression:r.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}return e}();t.BinaryExpression=l;var c=function(){function e(e){this.type=r.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=c;var p=function(){function e(e){this.type=r.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=p;var f=function(){function e(e,t){this.type=r.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=f;var h=function(){function e(e,t){this.type=r.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=h;var d=function(){function e(e){this.type=r.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var y=function(){function e(e,t,n){this.type=r.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassDeclaration=y;var m=function(){function e(e,t,n){this.type=r.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassExpression=m;var b=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=b;var g=function(){function e(e,t,n){this.type=r.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}return e}();t.ConditionalExpression=g;var v=function(){function e(e){this.type=r.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=v;var x=function(){function e(){this.type=r.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=x;var _=function(){function e(e,t){this.type=r.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=_;var E=function(){function e(e,t){this.type=r.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=E;var A=function(){function e(){this.type=r.Syntax.EmptyStatement}return e}();t.EmptyStatement=A;var D=function(){function e(e){this.type=r.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=D;var C=function(){function e(e){this.type=r.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=C;var S=function(){function e(e,t,n){this.type=r.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}return e}();t.ExportNamedDeclaration=S;var w=function(){function e(e,t){this.type=r.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=w;var k=function(){function e(e){this.type=r.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=k;var F=function(){function e(e,t,n){this.type=r.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}return e}();t.ForInStatement=F;var T=function(){function e(e,t,n){this.type=r.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}return e}();t.ForOfStatement=T;var P=function(){function e(e,t,n,i){this.type=r.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i}return e}();t.ForStatement=P;var j=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=j;var B=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=B;var O=function(){function e(e){this.type=r.Syntax.Identifier,this.name=e}return e}();t.Identifier=O;var I=function(){function e(e,t,n){this.type=r.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}return e}();t.IfStatement=I;var N=function(){function e(e,t){this.type=r.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=N;var L=function(){function e(e){this.type=r.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=L;var M=function(){function e(e){this.type=r.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=M;var R=function(){function e(e,t){this.type=r.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=R;var U=function(){function e(e,t){this.type=r.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=U;var V=function(){function e(e,t){this.type=r.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=V;var G=function(){function e(e,t){this.type=r.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=G;var q=function(){function e(e,t,n,i,a){this.type=r.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=i,this.static=a}return e}();t.MethodDefinition=q;var K=function(){function e(e,t){this.type=r.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=K;var X=function(){function e(e){this.type=r.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=X;var J=function(){function e(e){this.type=r.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=J;var W=function(){function e(e,t){this.type=r.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=W;var z=function(){function e(e,t,n,i,a,s){this.type=r.Syntax.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=a,this.shorthand=s}return e}();t.Property=z;var Y=function(){function e(e,t,n){this.type=r.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}return e}();t.RegexLiteral=Y;var H=function(){function e(e){this.type=r.Syntax.RestElement,this.argument=e}return e}();t.RestElement=H;var $=function(){function e(e){this.type=r.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Q=function(){function e(e){this.type=r.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Q;var Z=function(){function e(e){this.type=r.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Z;var ee=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=r.Syntax.Super}return e}();t.Super=te;var ne=function(){function e(e,t){this.type=r.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=ne;var re=function(){function e(e,t){this.type=r.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=re;var ie=function(){function e(e,t){this.type=r.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var ae=function(){function e(e,t){this.type=r.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=ae;var se=function(){function e(e,t){this.type=r.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=se;var oe=function(){function e(){this.type=r.Syntax.ThisExpression}return e}();t.ThisExpression=oe;var ue=function(){function e(e){this.type=r.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var le=function(){function e(e,t,n){this.type=r.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}return e}();t.TryStatement=le;var ce=function(){function e(e,t){this.type=r.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=ce;var pe=function(){function e(e,t,n){this.type=r.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}return e}();t.UpdateExpression=pe;var fe=function(){function e(e,t){this.type=r.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=fe;var he=function(){function e(e,t){this.type=r.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=he;var de=function(){function e(e,t){this.type=r.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var ye=function(){function e(e,t){this.type=r.Syntax.WithStatement,
+this.object=e,this.body=t}return e}();t.WithStatement=ye;var me=function(){function e(e,t){this.type=r.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=me},function(e,t,n){"use strict";function r(e){var t;switch(e.type){case c.JSXSyntax.JSXIdentifier:var n=e;t=n.name;break;case c.JSXSyntax.JSXNamespacedName:var i=e;t=r(i.namespace)+":"+r(i.name);break;case c.JSXSyntax.JSXMemberExpression:var a=e;t=r(a.object)+"."+r(a.property)}return t}var i,a=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},s=n(9),o=n(7),u=n(3),l=n(12),c=n(13),p=n(10),f=n(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),o.TokenName[i.Identifier]="JSXIdentifier",o.TokenName[i.Text]="JSXText";var h=function(e){function t(t,n,r){e.call(this,t,n,r)}return a(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,r=!1,i=!1,a=!1;!this.scanner.eof()&&n&&!r;){var o=this.scanner.source[this.scanner.index];if(o===e)break;if(r=";"===o,t+=o,++this.scanner.index,!r)switch(t.length){case 2:i="#"===o;break;case 3:i&&(a="x"===o,n=a||s.Character.isDecimalDigit(o.charCodeAt(0)),i=i&&!a);break;default:n=n&&!(i&&!s.Character.isDecimalDigit(o.charCodeAt(0))),n=n&&!(a&&!s.Character.isHexDigit(o.charCodeAt(0)))}}if(n&&r&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):a&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||a||!l.XHTMLEntities[u]||(t=l.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:o.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,r=this.scanner.source[this.scanner.index++],a="";!this.scanner.eof();){var u=this.scanner.source[this.scanner.index++];if(u===r)break;a+="&"===u?this.scanXHTMLEntity(r):u}return{type:o.Token.StringLiteral,value:a,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var l=this.scanner.source.charCodeAt(this.scanner.index+1),c=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===l&&46===c?"...":".",n=this.scanner.index;return this.scanner.index+=t.length,{type:o.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(96===e)return{type:o.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(s.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(s.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}var p=this.scanner.source.slice(n,this.scanner.index);return{type:i.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,s.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var r={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(r)),r},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.scanner.scanComments();var r=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===o.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===o.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new f.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXNamespacedName(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var a=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXMemberExpression(i,a))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=n;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new f.JSXNamespacedName(r,i))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==o.Token.StringLiteral&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new p.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new f.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(t,r,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new f.JSXClosingElement(t))}var n=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(n,i,r))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new f.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start<n.end){var r=this.getTokenRaw(n),i=this.finalize(t,new f.JSXText(n.value,r));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var a=this.parseJSXExpressionContainer();e.push(a)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var n=this.createJSXChildNode(),i=this.parseJSXBoundaryElement();if(i.type===c.JSXSyntax.JSXOpeningElement){var a=i;if(a.selfClosing){var s=this.finalize(n,new f.JSXElement(a,[],null));e.children.push(s)}else t.push(e),e={node:n,opening:a,closing:null,children:[]}}if(i.type===c.JSXSyntax.JSXClosingElement){e.closing=i;var o=r(e.opening.name),u=r(e.closing.name);if(o!==u&&this.tolerateError("Expected corresponding JSX closing tag for %0",o),!(t.length>0))break;var s=this.finalize(e.node,new f.JSXElement(e.opening,e.children,e.closing));e=t.pop(),e.children.push(s)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],r=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(e,new f.JSXElement(t,n,r))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=h},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";var r=n(13),i=function(){function e(e){this.type=r.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var a=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}return e}();t.JSXElement=a;var s=function(){function e(){this.type=r.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=s;var o=function(){function e(e){this.type=r.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=o;var u=function(){function e(e){this.type=r.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var l=function(){function e(e,t){this.type=r.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=l;var c=function(){function e(e,t){this.type=r.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=c;var p=function(){function e(e,t){this.type=r.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=p;var f=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}return e}();t.JSXOpeningElement=f;var h=function(){function e(e){this.type=r.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=h;var d=function(){function e(e,t){this.type=r.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,n){"use strict";var r=n(8),i=n(6),a=n(7),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var r=this.values[this.curly-4];t=!!r&&!this.beforeFunctionExpression(r)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===a.Token.Punctuator||e.type===a.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),o=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var n=e[t],r=void 0,i=this.scanner.source.slice(n.slice[0],n.slice[1]);r={type:n.multiLine?"BlockComment":"LineComment",value:i},this.trackRange&&(r.range=n.range),this.trackLoc&&(r.loc=n.loc),this.buffer.push(r)}if(!this.scanner.eof()){var s=void 0;this.trackLoc&&(s={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var o=void 0;o="/"===this.scanner.source[this.scanner.index]?this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.scanPunctuator():this.scanner.lex(),this.reader.push(o);var u=void 0;u={type:a.TokenName[o.type],value:this.scanner.source.slice(o.start,o.end)},this.trackRange&&(u.range=[o.start,o.end]),this.trackLoc&&(s.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=s),o.regex&&(u.regex=o.regex),this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=o}])})},{}],560:[function(e,t,n){"use strict";function r(e,t,n){if(p)try{p.call(c,e,t,{value:n})}catch(r){e[t]=n}else e[t]=n}function i(e){return e&&(r(e,"call",e.call),r(e,"apply",e.apply)),e}function a(e){return f?f.call(c,e):(m.prototype=e||null,new m)}function s(){do var e=o(y.call(d.call(b(),36),2));while(h.call(g,e));return g[e]=e}function o(e){var t={};return t[e]=!0,Object.keys(t)[0]}function u(e){return a(null)}function l(e){function t(t){function n(n,r){if(n===o)return r?a=null:a||(a=e(t))}var a;r(t,i,n)}function n(e){return h.call(e,i)||t(e),e[i](o)}var i=s(),o=a(null);return e=e||u,n.forget=function(e){h.call(e,i)&&e[i](o,!0)},n}var c=Object,p=Object.defineProperty,f=Object.create;i(p),i(f);var h=i(Object.prototype.hasOwnProperty),d=i(Number.prototype.toString),y=i(String.prototype.slice),m=function(){},b=Math.random,g=a(null);r(n,"makeUniqueKey",s);var v=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=v(e),n=0,r=0,i=t.length;n<i;++n)h.call(g,t[n])||(n>r&&(t[r]=t[n]),++r);return t.length=r,t},r(n,"makeAccessor",l)},{}],561:[function(e,t,n){arguments[4][517][0].apply(n,arguments)},{"./util":570,dup:517}],562:[function(e,t,n){arguments[4][518][0].apply(n,arguments)},{"./base64":563,dup:518}],563:[function(e,t,n){arguments[4][519][0].apply(n,arguments)},{dup:519}],564:[function(e,t,n){arguments[4][520][0].apply(n,arguments)},{dup:520}],565:[function(e,t,n){arguments[4][521][0].apply(n,arguments)},{"./util":570,dup:521}],566:[function(e,t,n){arguments[4][522][0].apply(n,arguments)},{dup:522}],567:[function(e,t,n){arguments[4][523][0].apply(n,arguments)},{"./array-set":561,"./base64-vlq":562,"./binary-search":564,"./quick-sort":566,"./util":570,dup:523}],568:[function(e,t,n){arguments[4][524][0].apply(n,arguments)},{"./array-set":561,"./base64-vlq":562,"./mapping-list":565,"./util":570,dup:524}],569:[function(e,t,n){arguments[4][525][0].apply(n,arguments)},{"./source-map-generator":568,"./util":570,dup:525}],570:[function(e,t,n){arguments[4][526][0].apply(n,arguments)},{dup:526}],571:[function(e,t,n){arguments[4][527][0].apply(n,arguments)},{"./lib/source-map-consumer":567,"./lib/source-map-generator":568,"./lib/source-node":569,dup:527}],572:[function(e,t,n){t.exports={plugins:[e("babel-plugin-syntax-async-functions"),e("babel-plugin-syntax-async-generators"),e("babel-plugin-transform-es2015-classes"),e("babel-plugin-transform-es2015-arrow-functions"),e("babel-plugin-transform-es2015-block-scoping"),e("babel-plugin-transform-es2015-for-of"),e("regenerator-transform").default]}},{"babel-plugin-syntax-async-functions":573,"babel-plugin-syntax-async-generators":574,"babel-plugin-transform-es2015-arrow-functions":575,"babel-plugin-transform-es2015-block-scoping":576,"babel-plugin-transform-es2015-classes":936,"babel-plugin-transform-es2015-for-of":1629,"regenerator-transform":1632}],573:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},t.exports=n.default},{}],574:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},t.exports=n.default},{}],575:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,n){if(n.opts.spec){var r=e.node;if(r.shadow)return;r.shadow={this:!1},r.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(n.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(r,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},t.exports=n.default},{}],576:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return x.isLoop(e.parent)||x.isCatchClause(e.parent)}function s(e){return!!x.isVariableDeclaration(e)&&(!!e[x.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function o(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!x.isFor(n))for(var a=0;a<t.declarations.length;a++){var s=t.declarations[a];s.init=s.init||r.buildUndefinedNode()}if(t[x.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=r.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=r.getOwnBinding(l);c&&(c.kind="var"),r.moveBindingTo(l,o)}}}function u(e){return x.isVariableDeclaration(e,{kind:"var"})&&!s(e)}function l(e){return x.isBreakStatement(e)?"break":x.isContinueStatement(e)?"continue":void 0}n.__esModule=!0;var c=e("babel-runtime/core-js/symbol"),p=i(c),f=e("babel-runtime/core-js/object/create"),h=i(f),d=e("babel-runtime/helpers/classCallCheck"),y=i(d);n.default=function(){return{visitor:{VariableDeclaration:function(e,t){var n=e.node,r=e.parent,i=e.scope;if(s(n)&&(o(e,null,r,i,!0),n._tdzThis)){for(var a=[n],u=0;u<n.declarations.length;u++){var l=n.declarations[u];if(l.init){var c=x.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,a.push(x.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}n._blockHoist=2,e.isCompletionRecord()&&a.push(x.expressionStatement(i.buildUndefinedNode())),e.replaceWithMultiple(a)}},Loop:function(e,t){var n=e.node,r=e.parent,i=e.scope;x.ensureBlock(n);var a=new O(e,e.get("body"),r,i,t),s=a.run();s&&e.replaceWith(s)},CatchClause:function(e,t){var n=e.parent,r=e.scope,i=new O(null,e.get("body"),n,r,t);i.run()},"BlockStatement|SwitchStatement|Program":function(e,t){if(!a(e)){var n=new O(null,e,e.parent,e.scope,t);n.run()}}}}};var m=e("babel-traverse"),b=i(m),g=e("./tdz"),v=e("babel-types"),x=r(v),_=e("lodash/values"),E=i(_),A=e("lodash/extend"),D=i(A),C=e("babel-template"),S=i(C),w=(0,S.default)('\n if (typeof RETURN === "object") return RETURN.v;\n'),k=b.default.visitors.merge([{Function:function(e,t){return e.traverse(F,t),e.skip()}},g.visitor]),F=b.default.visitors.merge([{ReferencedIdentifier:function(e,t){var n=t.letReferences[e.node.name];if(n){var r=e.scope.getBindingIdentifier(e.node.name);r&&r!==n||(t.closurify=!0)}}},g.visitor]),T={enter:function(e,t){var n=e.node,r=e.parent;if(e.isForStatement()){if(u(n.init,n)){var i=t.pushDeclar(n.init);1===i.length?n.init=i[0]:n.init=x.sequenceExpression(i)}}else if(e.isFor())u(n.left,n)&&(t.pushDeclar(n.left),n.left=n.left.declarations[0].id);else if(u(n,r))e.replaceWithMultiple(t.pushDeclar(n).map(function(e){return x.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},P={LabeledStatement:function(e,t){var n=e.node;t.innerLabels.push(n.label.name)}},j={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var n=e.getBindingIdentifiers();for(var r in n)t.outsideReferences[r]===e.scope.getBindingIdentifier(r)&&(t.reassignments[r]=!0)}}},B={Loop:function(e,t){var n=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(B,t),t.ignoreLabeless=n,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var n=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(B,t),t.inSwitchCase=n,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var n=e.node,r=e.parent,i=e.scope;if(!n[this.LOOP_IGNORE]){var a=void 0,s=l(n);if(s){if(n.label){if(t.innerLabels.indexOf(n.label.name)>=0)return;s=s+"|"+n.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(x.isBreakStatement(n)&&x.isSwitchCase(r))return}t.hasBreakContinue=!0,t.map[s]=n,a=x.stringLiteral(s)}e.isReturnStatement()&&(t.hasReturn=!0,a=x.objectExpression([x.objectProperty(x.identifier("v"),n.argument||i.buildUndefinedNode())])),a&&(a=x.returnStatement(a),a[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(x.inherits(a,n)))}}},O=function(){function e(t,n,r,i,a){(0,y.default)(this,e),this.parent=r,this.scope=i,this.file=a,this.blockPath=n,this.block=n.node,this.outsideLetReferences=(0,h.default)(null),this.hasLetReferences=!1,this.letReferences=(0,h.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=x.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(x.isFunction(this.parent)||x.isProgram(this.block))return void this.updateScopeInfo();if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!x.isLabeledStatement(this.loopParent)?x.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,n=t.getFunctionParent(),r=this.letReferences;for(var i in r){var a=r[i],s=t.getBinding(a.name);s&&("let"!==s.kind&&"const"!==s.kind||(s.kind="var",e?t.removeBinding(a.name):t.moveBindingTo(a.name,n)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var n in e){var r=e[n];(t.parentHasBinding(n)||t.hasGlobal(n))&&(t.hasOwnBinding(n)&&t.rename(r.name),this.blockPath.scope.hasOwnBinding(n)&&this.blockPath.scope.rename(r.name))}},e.prototype.wrapClosure=function(){var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var n in t){var r=t[n];(this.scope.hasGlobal(r.name)||this.scope.parentHasBinding(r.name))&&(delete t[r.name],delete this.letReferences[r.name],this.scope.rename(r.name),this.letReferences[r.name]=r,t[r.name]=r)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,E.default)(t),a=(0,E.default)(t),s=this.blockPath.isSwitchStatement(),o=x.functionExpression(null,i,x.blockStatement(s?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(x.variableDeclaration("var",[x.variableDeclarator(u,o)])));var l=x.callExpression(u,a),c=this.scope.generateUidIdentifier("ret"),p=b.default.hasType(o.body,this.scope,"YieldExpression",x.FUNCTION_TYPES);p&&(o.generator=!0,l=x.yieldExpression(l,!0));var f=b.default.hasType(o.body,this.scope,"AwaitExpression",x.FUNCTION_TYPES);f&&(o.async=!0,l=x.awaitExpression(l)),this.buildClosure(c,l),s?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var n=this.has;n.hasReturn||n.hasBreakContinue?this.buildHas(e,t):this.body.push(x.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,j,t);for(var n=0;n<e.params.length;n++){var r=e.params[n];if(t.reassignments[r.name]){var i=this.scope.generateUidIdentifier(r.name);e.params[n]=i,this.scope.rename(r.name,i.name,e),e.body.body.push(x.expressionStatement(x.assignmentExpression("=",r,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,n=[];if(this.loop){var r=this.loop.left||this.loop.init;s(r)&&(n.push(r),(0,D.default)(this.outsideLetReferences,x.getBindingIdentifiers(r)))}var i=function r(i,a){a=a||i.node,(x.isClassDeclaration(a)||x.isFunctionDeclaration(a)||s(a))&&(s(a)&&o(i,a,t,e.scope),n=n.concat(a.declarations||a)),x.isLabeledStatement(a)&&r(i.get("body"),a.body)};if(t.body)for(var a=0;a<t.body.length;a++){var u=this.blockPath.get("body")[a];i(u)}if(t.cases)for(var l=0;l<t.cases.length;l++)for(var c=t.cases[l].consequent,p=0;p<c.length;p++){var f=this.blockPath.get("cases")[l],h=c[p];i(f,h)}for(var d=0;d<n.length;d++){var y=n[d],m=x.getBindingIdentifiers(y,!1,!0);(0,D.default)(this.letReferences,m),this.hasLetReferences=!0}if(this.hasLetReferences){var b={letReferences:this.letReferences,closurify:!1,file:this.file};return this.blockPath.traverse(k,b),b.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,p.default)()};return this.blockPath.traverse(P,e),this.blockPath.traverse(B,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(T,this)},e.prototype.pushDeclar=function(e){var t=[],n=x.getBindingIdentifiers(e);for(var r in n)t.push(x.variableDeclarator(n[r]));this.body.push(x.variableDeclaration(e.kind,t));for(var i=[],a=0;a<e.declarations.length;a++){var s=e.declarations[a];if(s.init){var o=x.assignmentExpression("=",s.id,s.init);i.push(x.inherits(o,s))}}return i},e.prototype.buildHas=function(e,t){var n=this.body;n.push(x.variableDeclaration("var",[x.variableDeclarator(e,t)]));var r=void 0,i=this.has,a=[];if(i.hasReturn&&(r=w({RETURN:e})),i.hasBreakContinue){for(var s in i.map)a.push(x.switchCase(x.stringLiteral(s),[i.map[s]]));if(i.hasReturn&&a.push(x.switchCase(null,[r])),1===a.length){var o=a[0];n.push(x.ifStatement(x.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<a.length;u++){var l=a[u].consequent[0];x.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}n.push(x.switchStatement(e,a))}}else i.hasReturn&&n.push(r)},e}();t.exports=n.default},{"./tdz":577,"babel-runtime/core-js/object/create":582,"babel-runtime/core-js/symbol":585,"babel-runtime/helpers/classCallCheck":589,"babel-template":690,"babel-traverse":695,"babel-types":750,"lodash/extend":904,"lodash/values":935}],577:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e,t){var n=t._guessExecutionStatusRelativeTo(e);return"before"===n?"inside":"after"===n?"outside":"maybe"}function a(e,t){return u.callExpression(t.addHelper("temporalRef"),[e,u.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function s(e,t,n){var r=n.letReferences[e.name];return!!r&&t.getBindingIdentifier(e.name)===r}n.__esModule=!0,n.visitor=void 0;var o=e("babel-types"),u=r(o);n.visitor={ReferencedIdentifier:function(e,t){
+if(this.file.opts.tdz){var n=e.node,r=e.parent,o=e.scope;if(!e.parentPath.isFor({left:n})&&s(n,o,t)){var l=o.getBinding(n.name).path,c=i(e,l);if("inside"!==c)if("maybe"===c){var p=a(n,t.file);if(l.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(r._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(u.sequenceExpression([p,r]))}else e.replaceWith(p)}else"outside"===c&&e.replaceWith(u.throwStatement(u.inherits(u.newExpression(u.identifier("ReferenceError"),[u.stringLiteral(n.name+" is not defined - temporal dead zone")]),n)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var n=e.node;if(!n._ignoreBlockScopingTDZ){var r=[],i=e.getBindingIdentifiers();for(var o in i){var l=i[o];s(l,e.scope,t)&&r.push(a(l,t.file))}r.length&&(n._ignoreBlockScopingTDZ=!0,r.push(n),e.replaceWithMultiple(r.map(u.expressionStatement)))}}}}}},{"babel-types":750}],578:[function(e,t,n){arguments[4][100][0].apply(n,arguments)},{"core-js/library/fn/get-iterator":591,dup:100}],579:[function(e,t,n){arguments[4][101][0].apply(n,arguments)},{"core-js/library/fn/json/stringify":592,dup:101}],580:[function(e,t,n){arguments[4][102][0].apply(n,arguments)},{"core-js/library/fn/map":593,dup:102}],581:[function(e,t,n){arguments[4][103][0].apply(n,arguments)},{"core-js/library/fn/number/max-safe-integer":594,dup:103}],582:[function(e,t,n){arguments[4][105][0].apply(n,arguments)},{"core-js/library/fn/object/create":595,dup:105}],583:[function(e,t,n){arguments[4][106][0].apply(n,arguments)},{"core-js/library/fn/object/get-own-property-symbols":596,dup:106}],584:[function(e,t,n){arguments[4][107][0].apply(n,arguments)},{"core-js/library/fn/object/keys":597,dup:107}],585:[function(e,t,n){arguments[4][109][0].apply(n,arguments)},{"core-js/library/fn/symbol":599,dup:109}],586:[function(e,t,n){arguments[4][110][0].apply(n,arguments)},{"core-js/library/fn/symbol/for":598,dup:110}],587:[function(e,t,n){arguments[4][111][0].apply(n,arguments)},{"core-js/library/fn/symbol/iterator":600,dup:111}],588:[function(e,t,n){arguments[4][112][0].apply(n,arguments)},{"core-js/library/fn/weak-map":601,dup:112}],589:[function(e,t,n){arguments[4][114][0].apply(n,arguments)},{dup:114}],590:[function(e,t,n){arguments[4][118][0].apply(n,arguments)},{"../core-js/symbol":585,"../core-js/symbol/iterator":587,dup:118}],591:[function(e,t,n){arguments[4][119][0].apply(n,arguments)},{"../modules/core.get-iterator":676,"../modules/es6.string.iterator":683,"../modules/web.dom.iterable":689,dup:119}],592:[function(e,t,n){arguments[4][120][0].apply(n,arguments)},{"../../modules/_core":617,dup:120}],593:[function(e,t,n){arguments[4][121][0].apply(n,arguments)},{"../modules/_core":617,"../modules/es6.map":678,"../modules/es6.object.to-string":682,"../modules/es6.string.iterator":683,"../modules/es7.map.to-json":686,"../modules/web.dom.iterable":689,dup:121}],594:[function(e,t,n){arguments[4][122][0].apply(n,arguments)},{"../../modules/es6.number.max-safe-integer":679,dup:122}],595:[function(e,t,n){arguments[4][124][0].apply(n,arguments)},{"../../modules/_core":617,"../../modules/es6.object.create":680,dup:124}],596:[function(e,t,n){arguments[4][125][0].apply(n,arguments)},{"../../modules/_core":617,"../../modules/es6.symbol":684,dup:125}],597:[function(e,t,n){arguments[4][126][0].apply(n,arguments)},{"../../modules/_core":617,"../../modules/es6.object.keys":681,dup:126}],598:[function(e,t,n){arguments[4][128][0].apply(n,arguments)},{"../../modules/_core":617,"../../modules/es6.symbol":684,dup:128}],599:[function(e,t,n){arguments[4][129][0].apply(n,arguments)},{"../../modules/_core":617,"../../modules/es6.object.to-string":682,"../../modules/es6.symbol":684,"../../modules/es7.symbol.async-iterator":687,"../../modules/es7.symbol.observable":688,dup:129}],600:[function(e,t,n){arguments[4][130][0].apply(n,arguments)},{"../../modules/_wks-ext":673,"../../modules/es6.string.iterator":683,"../../modules/web.dom.iterable":689,dup:130}],601:[function(e,t,n){arguments[4][131][0].apply(n,arguments)},{"../modules/_core":617,"../modules/es6.object.to-string":682,"../modules/es6.weak-map":685,"../modules/web.dom.iterable":689,dup:131}],602:[function(e,t,n){arguments[4][133][0].apply(n,arguments)},{dup:133}],603:[function(e,t,n){arguments[4][134][0].apply(n,arguments)},{dup:134}],604:[function(e,t,n){arguments[4][135][0].apply(n,arguments)},{dup:135}],605:[function(e,t,n){arguments[4][136][0].apply(n,arguments)},{"./_is-object":635,dup:136}],606:[function(e,t,n){arguments[4][137][0].apply(n,arguments)},{"./_for-of":626,dup:137}],607:[function(e,t,n){arguments[4][138][0].apply(n,arguments)},{"./_to-index":665,"./_to-iobject":667,"./_to-length":668,dup:138}],608:[function(e,t,n){arguments[4][139][0].apply(n,arguments)},{"./_array-species-create":610,"./_ctx":618,"./_iobject":632,"./_to-length":668,"./_to-object":669,dup:139}],609:[function(e,t,n){arguments[4][140][0].apply(n,arguments)},{"./_is-array":634,"./_is-object":635,"./_wks":674,dup:140}],610:[function(e,t,n){arguments[4][141][0].apply(n,arguments)},{"./_array-species-constructor":609,dup:141}],611:[function(e,t,n){arguments[4][142][0].apply(n,arguments)},{"./_cof":612,"./_wks":674,dup:142}],612:[function(e,t,n){arguments[4][143][0].apply(n,arguments)},{dup:143}],613:[function(e,t,n){arguments[4][144][0].apply(n,arguments)},{"./_an-instance":604,"./_ctx":618,"./_defined":619,"./_descriptors":620,"./_for-of":626,"./_iter-define":638,"./_iter-step":639,"./_meta":643,"./_object-create":645,"./_object-dp":646,"./_redefine-all":658,"./_set-species":660,dup:144}],614:[function(e,t,n){arguments[4][145][0].apply(n,arguments)},{"./_array-from-iterable":606,"./_classof":611,dup:145}],615:[function(e,t,n){arguments[4][146][0].apply(n,arguments)},{"./_an-instance":604,"./_an-object":605,"./_array-methods":608,"./_for-of":626,"./_has":628,"./_is-object":635,"./_meta":643,"./_redefine-all":658,dup:146}],616:[function(e,t,n){arguments[4][147][0].apply(n,arguments)},{"./_an-instance":604,"./_array-methods":608,"./_descriptors":620,"./_export":624,"./_fails":625,"./_for-of":626,"./_global":627,"./_hide":629,"./_is-object":635,"./_meta":643,"./_object-dp":646,"./_redefine-all":658,"./_set-to-string-tag":661,dup:147}],617:[function(e,t,n){arguments[4][148][0].apply(n,arguments)},{dup:148}],618:[function(e,t,n){arguments[4][149][0].apply(n,arguments)},{"./_a-function":602,dup:149}],619:[function(e,t,n){arguments[4][150][0].apply(n,arguments)},{dup:150}],620:[function(e,t,n){arguments[4][151][0].apply(n,arguments)},{"./_fails":625,dup:151}],621:[function(e,t,n){arguments[4][152][0].apply(n,arguments)},{"./_global":627,"./_is-object":635,dup:152}],622:[function(e,t,n){arguments[4][153][0].apply(n,arguments)},{dup:153}],623:[function(e,t,n){arguments[4][154][0].apply(n,arguments)},{"./_object-gops":651,"./_object-keys":654,"./_object-pie":655,dup:154}],624:[function(e,t,n){arguments[4][155][0].apply(n,arguments)},{"./_core":617,"./_ctx":618,"./_global":627,"./_hide":629,dup:155}],625:[function(e,t,n){arguments[4][156][0].apply(n,arguments)},{dup:156}],626:[function(e,t,n){arguments[4][157][0].apply(n,arguments)},{"./_an-object":605,"./_ctx":618,"./_is-array-iter":633,"./_iter-call":636,"./_to-length":668,"./core.get-iterator-method":675,dup:157}],627:[function(e,t,n){arguments[4][158][0].apply(n,arguments)},{dup:158}],628:[function(e,t,n){arguments[4][159][0].apply(n,arguments)},{dup:159}],629:[function(e,t,n){arguments[4][160][0].apply(n,arguments)},{"./_descriptors":620,"./_object-dp":646,"./_property-desc":657,dup:160}],630:[function(e,t,n){arguments[4][161][0].apply(n,arguments)},{"./_global":627,dup:161}],631:[function(e,t,n){arguments[4][162][0].apply(n,arguments)},{"./_descriptors":620,"./_dom-create":621,"./_fails":625,dup:162}],632:[function(e,t,n){arguments[4][163][0].apply(n,arguments)},{"./_cof":612,dup:163}],633:[function(e,t,n){arguments[4][164][0].apply(n,arguments)},{"./_iterators":640,"./_wks":674,dup:164}],634:[function(e,t,n){arguments[4][165][0].apply(n,arguments)},{"./_cof":612,dup:165}],635:[function(e,t,n){arguments[4][166][0].apply(n,arguments)},{dup:166}],636:[function(e,t,n){arguments[4][167][0].apply(n,arguments)},{"./_an-object":605,dup:167}],637:[function(e,t,n){arguments[4][168][0].apply(n,arguments)},{"./_hide":629,"./_object-create":645,"./_property-desc":657,"./_set-to-string-tag":661,"./_wks":674,dup:168}],638:[function(e,t,n){arguments[4][169][0].apply(n,arguments)},{"./_export":624,"./_has":628,"./_hide":629,"./_iter-create":637,"./_iterators":640,"./_library":642,"./_object-gpo":652,"./_redefine":659,"./_set-to-string-tag":661,"./_wks":674,dup:169}],639:[function(e,t,n){arguments[4][170][0].apply(n,arguments)},{dup:170}],640:[function(e,t,n){arguments[4][171][0].apply(n,arguments)},{dup:171}],641:[function(e,t,n){arguments[4][172][0].apply(n,arguments)},{"./_object-keys":654,"./_to-iobject":667,dup:172}],642:[function(e,t,n){arguments[4][173][0].apply(n,arguments)},{dup:173}],643:[function(e,t,n){arguments[4][174][0].apply(n,arguments)},{"./_fails":625,"./_has":628,"./_is-object":635,"./_object-dp":646,"./_uid":671,dup:174}],644:[function(e,t,n){arguments[4][175][0].apply(n,arguments)},{"./_fails":625,"./_iobject":632,"./_object-gops":651,"./_object-keys":654,"./_object-pie":655,"./_to-object":669,dup:175}],645:[function(e,t,n){arguments[4][176][0].apply(n,arguments)},{"./_an-object":605,"./_dom-create":621,"./_enum-bug-keys":622,"./_html":630,"./_object-dps":647,"./_shared-key":662,dup:176}],646:[function(e,t,n){arguments[4][177][0].apply(n,arguments)},{"./_an-object":605,"./_descriptors":620,"./_ie8-dom-define":631,"./_to-primitive":670,dup:177}],647:[function(e,t,n){arguments[4][178][0].apply(n,arguments)},{"./_an-object":605,"./_descriptors":620,"./_object-dp":646,"./_object-keys":654,dup:178}],648:[function(e,t,n){arguments[4][179][0].apply(n,arguments)},{"./_descriptors":620,"./_has":628,"./_ie8-dom-define":631,"./_object-pie":655,"./_property-desc":657,"./_to-iobject":667,"./_to-primitive":670,dup:179}],649:[function(e,t,n){arguments[4][180][0].apply(n,arguments)},{"./_object-gopn":650,"./_to-iobject":667,dup:180}],650:[function(e,t,n){arguments[4][181][0].apply(n,arguments)},{"./_enum-bug-keys":622,"./_object-keys-internal":653,dup:181}],651:[function(e,t,n){arguments[4][182][0].apply(n,arguments)},{dup:182}],652:[function(e,t,n){arguments[4][183][0].apply(n,arguments)},{"./_has":628,"./_shared-key":662,"./_to-object":669,dup:183}],653:[function(e,t,n){arguments[4][184][0].apply(n,arguments)},{"./_array-includes":607,"./_has":628,"./_shared-key":662,"./_to-iobject":667,dup:184}],654:[function(e,t,n){arguments[4][185][0].apply(n,arguments)},{"./_enum-bug-keys":622,"./_object-keys-internal":653,dup:185}],655:[function(e,t,n){arguments[4][186][0].apply(n,arguments)},{dup:186}],656:[function(e,t,n){arguments[4][187][0].apply(n,arguments)},{"./_core":617,"./_export":624,"./_fails":625,dup:187}],657:[function(e,t,n){arguments[4][188][0].apply(n,arguments)},{dup:188}],658:[function(e,t,n){arguments[4][189][0].apply(n,arguments)},{"./_hide":629,dup:189}],659:[function(e,t,n){arguments[4][190][0].apply(n,arguments)},{"./_hide":629,dup:190}],660:[function(e,t,n){arguments[4][192][0].apply(n,arguments)},{"./_core":617,"./_descriptors":620,"./_global":627,"./_object-dp":646,"./_wks":674,dup:192}],661:[function(e,t,n){arguments[4][193][0].apply(n,arguments)},{"./_has":628,"./_object-dp":646,"./_wks":674,dup:193}],662:[function(e,t,n){arguments[4][194][0].apply(n,arguments)},{"./_shared":663,"./_uid":671,dup:194}],663:[function(e,t,n){arguments[4][195][0].apply(n,arguments)},{"./_global":627,dup:195}],664:[function(e,t,n){arguments[4][196][0].apply(n,arguments)},{"./_defined":619,"./_to-integer":666,dup:196}],665:[function(e,t,n){arguments[4][197][0].apply(n,arguments)},{"./_to-integer":666,dup:197}],666:[function(e,t,n){arguments[4][198][0].apply(n,arguments)},{dup:198}],667:[function(e,t,n){arguments[4][199][0].apply(n,arguments)},{"./_defined":619,"./_iobject":632,dup:199}],668:[function(e,t,n){arguments[4][200][0].apply(n,arguments)},{"./_to-integer":666,dup:200}],669:[function(e,t,n){arguments[4][201][0].apply(n,arguments)},{"./_defined":619,dup:201}],670:[function(e,t,n){arguments[4][202][0].apply(n,arguments)},{"./_is-object":635,dup:202}],671:[function(e,t,n){arguments[4][203][0].apply(n,arguments)},{dup:203}],672:[function(e,t,n){arguments[4][204][0].apply(n,arguments)},{"./_core":617,"./_global":627,"./_library":642,"./_object-dp":646,"./_wks-ext":673,dup:204}],673:[function(e,t,n){arguments[4][205][0].apply(n,arguments)},{"./_wks":674,dup:205}],674:[function(e,t,n){arguments[4][206][0].apply(n,arguments)},{"./_global":627,"./_shared":663,"./_uid":671,dup:206}],675:[function(e,t,n){arguments[4][207][0].apply(n,arguments)},{"./_classof":611,"./_core":617,"./_iterators":640,"./_wks":674,dup:207}],676:[function(e,t,n){arguments[4][208][0].apply(n,arguments)},{"./_an-object":605,"./_core":617,"./core.get-iterator-method":675,dup:208}],677:[function(e,t,n){arguments[4][209][0].apply(n,arguments)},{"./_add-to-unscopables":603,"./_iter-define":638,"./_iter-step":639,"./_iterators":640,"./_to-iobject":667,dup:209}],678:[function(e,t,n){arguments[4][210][0].apply(n,arguments)},{"./_collection":616,"./_collection-strong":613,dup:210}],679:[function(e,t,n){arguments[4][211][0].apply(n,arguments)},{"./_export":624,dup:211}],680:[function(e,t,n){arguments[4][213][0].apply(n,arguments)},{"./_export":624,"./_object-create":645,dup:213}],681:[function(e,t,n){arguments[4][214][0].apply(n,arguments)},{"./_object-keys":654,"./_object-sap":656,"./_to-object":669,dup:214}],682:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],683:[function(e,t,n){arguments[4][217][0].apply(n,arguments)},{"./_iter-define":638,"./_string-at":664,dup:217}],684:[function(e,t,n){arguments[4][218][0].apply(n,arguments)},{"./_an-object":605,"./_descriptors":620,"./_enum-keys":623,"./_export":624,"./_fails":625,"./_global":627,"./_has":628,"./_hide":629,"./_is-array":634,"./_keyof":641,"./_library":642,"./_meta":643,"./_object-create":645,"./_object-dp":646,"./_object-gopd":648,"./_object-gopn":650,"./_object-gopn-ext":649,"./_object-gops":651,"./_object-keys":654,"./_object-pie":655,"./_property-desc":657,"./_redefine":659,"./_set-to-string-tag":661,"./_shared":663,"./_to-iobject":667,"./_to-primitive":670,"./_uid":671,"./_wks":674,"./_wks-define":672,"./_wks-ext":673,dup:218}],685:[function(e,t,n){arguments[4][219][0].apply(n,arguments)},{"./_array-methods":608,"./_collection":616,"./_collection-weak":615,"./_is-object":635,"./_meta":643,"./_object-assign":644,"./_redefine":659,dup:219}],686:[function(e,t,n){arguments[4][221][0].apply(n,arguments)},{"./_collection-to-json":614,"./_export":624,dup:221}],687:[function(e,t,n){arguments[4][222][0].apply(n,arguments)},{"./_wks-define":672,dup:222}],688:[function(e,t,n){arguments[4][223][0].apply(n,arguments)},{"./_wks-define":672,dup:223}],689:[function(e,t,n){arguments[4][224][0].apply(n,arguments)},{"./_global":627,"./_hide":629,"./_iterators":640,"./_wks":674,"./es6.array.iterator":677,dup:224}],690:[function(e,t,n){arguments[4][225][0].apply(n,arguments)},{"babel-runtime/core-js/symbol":585,"babel-traverse":695,"babel-types":750,babylon:691,dup:225,"lodash/assign":894,"lodash/cloneDeep":898,"lodash/has":906}],691:[function(e,t,n){arguments[4][274][0].apply(n,arguments)},{dup:274}],692:[function(e,t,n){arguments[4][226][0].apply(n,arguments)},{"babel-runtime/core-js/weak-map":588,dup:226}],693:[function(e,t,n){arguments[4][227][0].apply(n,arguments)},{"./path":702,_process:13,"babel-runtime/core-js/get-iterator":578,"babel-runtime/helpers/classCallCheck":589,"babel-types":750,dup:227}],694:[function(e,t,n){arguments[4][228][0].apply(n,arguments)},{"babel-runtime/helpers/classCallCheck":589,dup:228}],695:[function(e,t,n){arguments[4][229][0].apply(n,arguments)},{"./cache":692,"./context":693,"./hub":694,"./path":702,"./scope":714,"./visitors":716,"babel-messages":731,"babel-runtime/core-js/get-iterator":578,"babel-types":750,dup:229,"lodash/includes":908}],696:[function(e,t,n){arguments[4][230][0].apply(n,arguments)},{"./index":702,"babel-runtime/core-js/get-iterator":578,"babel-types":750,dup:230}],697:[function(e,t,n){arguments[4][231][0].apply(n,arguments)},{dup:231}],698:[function(e,t,n){arguments[4][232][0].apply(n,arguments)},{"../index":695,"babel-runtime/core-js/get-iterator":578,dup:232}],699:[function(e,t,n){arguments[4][233][0].apply(n,arguments)},{"babel-types":750,dup:233}],700:[function(e,t,n){arguments[4][234][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/map":580,"babel-runtime/helpers/typeof":590,dup:234}],701:[function(e,t,n){arguments[4][235][0].apply(n,arguments)},{"./index":702,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/object/create":582,"babel-types":750,dup:235}],702:[function(e,t,n){arguments[4][236][0].apply(n,arguments)},{"../cache":692,"../index":695,"../scope":714,"./ancestry":696,"./comments":697,"./context":698,"./conversion":699,"./evaluation":700,"./family":701,"./inference":703,"./introspection":706,"./lib/virtual-types":709,"./modification":710,"./removal":711,"./replacement":712,"babel-runtime/core-js/get-iterator":578,"babel-runtime/helpers/classCallCheck":589,"babel-types":750,debug:734,dup:236,invariant:738,"lodash/assign":894}],703:[function(e,t,n){arguments[4][237][0].apply(n,arguments)},{"./inferers":705,"babel-runtime/core-js/get-iterator":578,"babel-types":750,dup:237}],704:[function(e,t,n){arguments[4][238][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":578,"babel-types":750,dup:238}],705:[function(e,t,n){arguments[4][239][0].apply(n,arguments)},{"./inferer-reference":704,"babel-types":750,dup:239}],706:[function(e,t,n){arguments[4][240][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":578,"babel-runtime/helpers/typeof":590,"babel-types":750,dup:240,"lodash/includes":908}],707:[function(e,t,n){arguments[4][241][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":578,"babel-runtime/helpers/classCallCheck":589,"babel-types":750,dup:241}],708:[function(e,t,n){arguments[4][242][0].apply(n,arguments)},{dup:242}],709:[function(e,t,n){arguments[4][243][0].apply(n,arguments)},{"babel-types":750,dup:243}],710:[function(e,t,n){arguments[4][244][0].apply(n,arguments)},{"../cache":692,"./index":702,"./lib/hoister":707,"babel-runtime/core-js/get-iterator":578,"babel-runtime/helpers/typeof":590,"babel-types":750,dup:244}],711:[function(e,t,n){arguments[4][245][0].apply(n,arguments)},{"./lib/removal-hooks":708,"babel-runtime/core-js/get-iterator":578,dup:245}],712:[function(e,t,n){arguments[4][246][0].apply(n,arguments)},{"../index":695,"./index":702,"babel-code-frame":717,"babel-runtime/core-js/get-iterator":578,"babel-types":750,babylon:732,dup:246}],713:[function(e,t,n){arguments[4][247][0].apply(n,arguments)},{"babel-runtime/helpers/classCallCheck":589,dup:247}],714:[function(e,t,n){arguments[4][248][0].apply(n,arguments)},{"../cache":692,"../index":695,"./binding":713,"./lib/renamer":715,"babel-messages":731,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/map":580,"babel-runtime/core-js/object/create":582,"babel-runtime/core-js/object/keys":584,"babel-runtime/helpers/classCallCheck":589,"babel-types":750,dup:248,globals:737,"lodash/defaults":901,"lodash/includes":908,"lodash/repeat":927}],715:[function(e,t,n){arguments[4][249][0].apply(n,arguments)},{"../binding":713,"babel-runtime/helpers/classCallCheck":589,"babel-types":750,dup:249}],716:[function(e,t,n){arguments[4][250][0].apply(n,arguments)},{"./path/lib/virtual-types":709,"babel-messages":731,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/object/keys":584,"babel-runtime/helpers/typeof":590,"babel-types":750,dup:250,"lodash/clone":897}],717:[function(e,t,n){arguments[4][60][0].apply(n,arguments)},{chalk:718,dup:60,esutils:729,"js-tokens":730}],718:[function(e,t,n){arguments[4][61][0].apply(n,arguments)},{_process:13,"ansi-styles":719,dup:61,"escape-string-regexp":720,"has-ansi":721,"strip-ansi":723,"supports-color":725}],719:[function(e,t,n){arguments[4][62][0].apply(n,arguments)},{dup:62}],720:[function(e,t,n){arguments[4][63][0].apply(n,arguments)},{dup:63}],721:[function(e,t,n){arguments[4][64][0].apply(n,arguments)},{"ansi-regex":722,dup:64}],722:[function(e,t,n){arguments[4][65][0].apply(n,arguments)},{dup:65}],723:[function(e,t,n){arguments[4][66][0].apply(n,arguments)},{"ansi-regex":724,dup:66}],724:[function(e,t,n){arguments[4][65][0].apply(n,arguments)},{dup:65}],725:[function(e,t,n){arguments[4][68][0].apply(n,arguments)},{_process:13,dup:68}],726:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],727:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],728:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":727,dup:71}],729:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":726,"./code":727,"./keyword":728,dup:72}],730:[function(e,t,n){arguments[4][73][0].apply(n,arguments)},{dup:73}],731:[function(e,t,n){arguments[4][99][0].apply(n,arguments)},{"babel-runtime/core-js/json/stringify":579,dup:99,util:35}],732:[function(e,t,n){arguments[4][274][0].apply(n,arguments)},{dup:274}],733:[function(e,t,n){arguments[4][277][0].apply(n,arguments)},{dup:277}],734:[function(e,t,n){arguments[4][278][0].apply(n,arguments)},{"./debug":735,_process:13,dup:278}],735:[function(e,t,n){arguments[4][279][0].apply(n,arguments)},{dup:279,ms:733}],736:[function(e,t,n){arguments[4][251][0].apply(n,arguments)},{dup:251}],737:[function(e,t,n){arguments[4][252][0].apply(n,arguments)},{"./globals.json":736,dup:252}],738:[function(e,t,n){arguments[4][253][0].apply(n,arguments)},{dup:253}],739:[function(e,t,n){arguments[4][254][0].apply(n,arguments)},{"babel-runtime/core-js/symbol/for":586,dup:254}],740:[function(e,t,n){arguments[4][255][0].apply(n,arguments)},{"./index":750,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/json/stringify":579,"babel-runtime/core-js/number/max-safe-integer":581,dup:255,"lodash/isNumber":915,"lodash/isPlainObject":918,"lodash/isRegExp":919,"lodash/isString":920}],741:[function(e,t,n){arguments[4][256][0].apply(n,arguments)},{"../constants":739,"../index":750,"./index":745,dup:256}],742:[function(e,t,n){arguments[4][257][0].apply(n,arguments)},{"./index":745,dup:257}],743:[function(e,t,n){arguments[4][258][0].apply(n,arguments)},{"./index":745,dup:258}],744:[function(e,t,n){arguments[4][259][0].apply(n,arguments)},{"./index":745,dup:259}],745:[function(e,t,n){arguments[4][260][0].apply(n,arguments)},{"../index":750,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/json/stringify":579,"babel-runtime/helpers/typeof":590,dup:260}],746:[function(e,t,n){arguments[4][261][0].apply(n,arguments)},{"./core":741,"./es2015":742,"./experimental":743,"./flow":744,"./index":745,"./jsx":747,"./misc":748,dup:261}],747:[function(e,t,n){arguments[4][262][0].apply(n,arguments)},{"./index":745,dup:262}],748:[function(e,t,n){arguments[4][263][0].apply(n,arguments)},{"./index":745,dup:263}],749:[function(e,t,n){arguments[4][264][0].apply(n,arguments)},{"./index":750,dup:264}],750:[function(e,t,n){arguments[4][265][0].apply(n,arguments)},{"./constants":739,"./converters":740,"./definitions":745,"./definitions/init":746,"./flow":749,"./react":751,"./retrievers":752,"./validators":753,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/json/stringify":579,"babel-runtime/core-js/object/get-own-property-symbols":583,"babel-runtime/core-js/object/keys":584,dup:265,"lodash/clone":897,"lodash/compact":899,"lodash/each":902,"lodash/uniq":934,"to-fast-properties":758}],751:[function(e,t,n){arguments[4][266][0].apply(n,arguments)},{"./index":750,dup:266}],752:[function(e,t,n){arguments[4][267][0].apply(n,arguments)},{"./index":750,"babel-runtime/core-js/object/create":582,dup:267}],753:[function(e,t,n){arguments[4][268][0].apply(n,arguments)},{"./constants":739,"./index":750,"./retrievers":752,"babel-runtime/core-js/get-iterator":578,"babel-runtime/core-js/object/keys":584,"babel-runtime/helpers/typeof":590,dup:268,esutils:757}],754:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],755:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],756:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":755,dup:71}],757:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":754,"./code":755,"./keyword":756,dup:72}],758:[function(e,t,n){arguments[4][273][0].apply(n,arguments)},{dup:273}],759:[function(e,t,n){arguments[4][282][0].apply(n,arguments)},{"./_getNative":838,"./_root":879,dup:282}],760:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":846,"./_hashDelete":847,"./_hashGet":848,"./_hashHas":849,"./_hashSet":850,dup:283}],761:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":860,"./_listCacheDelete":861,"./_listCacheGet":862,"./_listCacheHas":863,"./_listCacheSet":864,dup:284}],762:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":838,"./_root":879,dup:285}],763:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":865,"./_mapCacheDelete":866,"./_mapCacheGet":867,"./_mapCacheHas":868,"./_mapCacheSet":869,dup:286}],764:[function(e,t,n){arguments[4][287][0].apply(n,arguments)},{"./_getNative":838,"./_root":879,dup:287}],765:[function(e,t,n){arguments[4][288][0].apply(n,arguments)},{"./_getNative":838,"./_root":879,dup:288}],766:[function(e,t,n){arguments[4][289][0].apply(n,arguments)},{"./_MapCache":763,"./_setCacheAdd":880,"./_setCacheHas":881,dup:289}],767:[function(e,t,n){arguments[4][290][0].apply(n,arguments)},{"./_ListCache":761,"./_stackClear":885,"./_stackDelete":886,"./_stackGet":887,"./_stackHas":888,"./_stackSet":889,dup:290}],768:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":879,dup:291}],769:[function(e,t,n){arguments[4][292][0].apply(n,arguments)},{"./_root":879,dup:292}],770:[function(e,t,n){arguments[4][293][0].apply(n,arguments)},{"./_getNative":838,"./_root":879,dup:293}],771:[function(e,t,n){arguments[4][294][0].apply(n,arguments)},{dup:294}],772:[function(e,t,n){arguments[4][295][0].apply(n,arguments)},{dup:295}],773:[function(e,t,n){arguments[4][296][0].apply(n,arguments)},{dup:296}],774:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],775:[function(e,t,n){arguments[4][298][0].apply(n,arguments)},{dup:298}],776:[function(e,t,n){arguments[4][299][0].apply(n,arguments)},{"./_baseIndexOf":796,dup:299}],777:[function(e,t,n){arguments[4][300][0].apply(n,arguments)},{dup:300}],778:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":807,"./_isIndex":854,"./isArguments":909,"./isArray":910,"./isBuffer":912,"./isTypedArray":922,dup:301}],779:[function(e,t,n){arguments[4][302][0].apply(n,arguments)},{dup:302}],780:[function(e,t,n){arguments[4][303][0].apply(n,arguments)},{dup:303}],781:[function(e,t,n){arguments[4][304][0].apply(n,arguments)},{dup:304}],782:[function(e,t,n){arguments[4][308][0].apply(n,arguments)},{"./_baseAssignValue":786,"./eq":903,dup:308}],783:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":903,dup:309}],784:[function(e,t,n){arguments[4][310][0].apply(n,arguments)},{"./_copyObject":824,"./keys":923,dup:310}],785:[function(e,t,n){arguments[4][311][0].apply(n,arguments)},{"./_copyObject":824,"./keysIn":924,dup:311}],786:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{"./_defineProperty":833,dup:312}],787:[function(e,t,n){arguments[4][314][0].apply(n,arguments)},{"./_Stack":767,"./_arrayEach":774,"./_assignValue":782,"./_baseAssign":784,"./_baseAssignIn":785,"./_cloneBuffer":816,"./_copyArray":823,"./_copySymbols":825,"./_copySymbolsIn":826,"./_getAllKeys":835,"./_getAllKeysIn":836,"./_getTag":843,"./_initCloneArray":851,"./_initCloneByTag":852,"./_initCloneObject":853,"./isArray":910,"./isBuffer":912,"./isObject":916,"./keys":923,dup:314}],788:[function(e,t,n){arguments[4][315][0].apply(n,arguments)},{"./isObject":916,dup:315}],789:[function(e,t,n){arguments[4][316][0].apply(n,arguments)},{"./_baseForOwn":792,"./_createBaseEach":829,dup:316}],790:[function(e,t,n){arguments[4][317][0].apply(n,arguments)},{dup:317}],791:[function(e,t,n){arguments[4][319][0].apply(n,arguments)},{"./_createBaseFor":830,dup:319}],792:[function(e,t,n){arguments[4][320][0].apply(n,arguments)},{"./_baseFor":791,"./keys":923,dup:320}],793:[function(e,t,n){arguments[4][322][0].apply(n,arguments)},{"./_arrayPush":780,"./isArray":910,dup:322}],794:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":768,"./_getRawTag":840,"./_objectToString":876,dup:323}],795:[function(e,t,n){arguments[4][324][0].apply(n,arguments)},{dup:324}],796:[function(e,t,n){arguments[4][326][0].apply(n,arguments)},{"./_baseFindIndex":790,"./_baseIsNaN":798,"./_strictIndexOf":890,dup:326}],797:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":794,"./isObjectLike":917,dup:327}],798:[function(e,t,n){arguments[4][331][0].apply(n,arguments)},{dup:331}],799:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":858,"./_toSource":893,"./isFunction":913,"./isObject":916,dup:332}],800:[function(e,t,n){arguments[4][333][0].apply(n,arguments)},{"./_baseGetTag":794,"./isObjectLike":917,dup:333}],801:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":794,"./isLength":914,"./isObjectLike":917,dup:334}],802:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":859,"./_nativeKeys":873,dup:336}],803:[function(e,t,n){arguments[4][337][0].apply(n,arguments)},{"./_isPrototype":859,"./_nativeKeysIn":874,"./isObject":916,dup:337}],804:[function(e,t,n){arguments[4][346][0].apply(n,arguments)},{dup:346}],805:[function(e,t,n){arguments[4][347][0].apply(n,arguments)},{"./_overRest":878,"./_setToString":883,"./identity":907,dup:347}],806:[function(e,t,n){arguments[4][348][0].apply(n,arguments)},{"./_defineProperty":833,"./constant":900,"./identity":907,dup:348}],807:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],808:[function(e,t,n){arguments[4][352][0].apply(n,arguments)},{"./_Symbol":768,"./_arrayMap":779,"./isArray":910,"./isSymbol":921,dup:352}],809:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],810:[function(e,t,n){arguments[4][354][0].apply(n,arguments)},{"./_SetCache":766,"./_arrayIncludes":776,"./_arrayIncludesWith":777,"./_cacheHas":812,"./_createSet":831,"./_setToArray":882,dup:354}],811:[function(e,t,n){arguments[4][355][0].apply(n,arguments)},{"./_arrayMap":779,dup:355}],812:[function(e,t,n){arguments[4][356][0].apply(n,arguments)},{dup:356}],813:[function(e,t,n){arguments[4][357][0].apply(n,arguments)},{"./identity":907,dup:357}],814:[function(e,t,n){arguments[4][358][0].apply(n,arguments)},{"./_isKey":856,"./_stringToPath":891,"./isArray":910,"./toString":933,dup:358}],815:[function(e,t,n){arguments[4][361][0].apply(n,arguments)},{"./_Uint8Array":769,dup:361}],816:[function(e,t,n){arguments[4][362][0].apply(n,arguments)},{"./_root":879,dup:362}],817:[function(e,t,n){arguments[4][363][0].apply(n,arguments)},{"./_cloneArrayBuffer":815,dup:363}],818:[function(e,t,n){arguments[4][364][0].apply(n,arguments)},{"./_addMapEntry":771,"./_arrayReduce":781,"./_mapToArray":870,dup:364}],819:[function(e,t,n){arguments[4][365][0].apply(n,arguments)},{dup:365}],820:[function(e,t,n){arguments[4][366][0].apply(n,arguments)},{"./_addSetEntry":772,"./_arrayReduce":781,"./_setToArray":882,dup:366}],821:[function(e,t,n){arguments[4][367][0].apply(n,arguments)},{"./_Symbol":768,dup:367}],822:[function(e,t,n){arguments[4][368][0].apply(n,arguments)},{"./_cloneArrayBuffer":815,dup:368}],823:[function(e,t,n){arguments[4][371][0].apply(n,arguments)},{dup:371}],824:[function(e,t,n){arguments[4][372][0].apply(n,arguments)},{"./_assignValue":782,
+"./_baseAssignValue":786,dup:372}],825:[function(e,t,n){arguments[4][373][0].apply(n,arguments)},{"./_copyObject":824,"./_getSymbols":841,dup:373}],826:[function(e,t,n){arguments[4][374][0].apply(n,arguments)},{"./_copyObject":824,"./_getSymbolsIn":842,dup:374}],827:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":879,dup:375}],828:[function(e,t,n){arguments[4][376][0].apply(n,arguments)},{"./_baseRest":805,"./_isIterateeCall":855,dup:376}],829:[function(e,t,n){arguments[4][377][0].apply(n,arguments)},{"./isArrayLike":911,dup:377}],830:[function(e,t,n){arguments[4][378][0].apply(n,arguments)},{dup:378}],831:[function(e,t,n){arguments[4][380][0].apply(n,arguments)},{"./_Set":765,"./_setToArray":882,"./noop":926,dup:380}],832:[function(e,t,n){arguments[4][381][0].apply(n,arguments)},{"./eq":903,dup:381}],833:[function(e,t,n){arguments[4][382][0].apply(n,arguments)},{"./_getNative":838,dup:382}],834:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],835:[function(e,t,n){arguments[4][387][0].apply(n,arguments)},{"./_baseGetAllKeys":793,"./_getSymbols":841,"./keys":923,dup:387}],836:[function(e,t,n){arguments[4][388][0].apply(n,arguments)},{"./_baseGetAllKeys":793,"./_getSymbolsIn":842,"./keysIn":924,dup:388}],837:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":857,dup:389}],838:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":799,"./_getValue":844,dup:391}],839:[function(e,t,n){arguments[4][392][0].apply(n,arguments)},{"./_overArg":877,dup:392}],840:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":768,dup:393}],841:[function(e,t,n){arguments[4][394][0].apply(n,arguments)},{"./_arrayFilter":775,"./stubArray":928,dup:394}],842:[function(e,t,n){arguments[4][395][0].apply(n,arguments)},{"./_arrayPush":780,"./_getPrototype":839,"./_getSymbols":841,"./stubArray":928,dup:395}],843:[function(e,t,n){arguments[4][396][0].apply(n,arguments)},{"./_DataView":759,"./_Map":762,"./_Promise":764,"./_Set":765,"./_WeakMap":770,"./_baseGetTag":794,"./_toSource":893,dup:396}],844:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],845:[function(e,t,n){arguments[4][398][0].apply(n,arguments)},{"./_castPath":814,"./_isIndex":854,"./_toKey":892,"./isArguments":909,"./isArray":910,"./isLength":914,dup:398}],846:[function(e,t,n){arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":872,dup:400}],847:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],848:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":872,dup:402}],849:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":872,dup:403}],850:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":872,dup:404}],851:[function(e,t,n){arguments[4][405][0].apply(n,arguments)},{dup:405}],852:[function(e,t,n){arguments[4][406][0].apply(n,arguments)},{"./_cloneArrayBuffer":815,"./_cloneDataView":817,"./_cloneMap":818,"./_cloneRegExp":819,"./_cloneSet":820,"./_cloneSymbol":821,"./_cloneTypedArray":822,dup:406}],853:[function(e,t,n){arguments[4][407][0].apply(n,arguments)},{"./_baseCreate":788,"./_getPrototype":839,"./_isPrototype":859,dup:407}],854:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],855:[function(e,t,n){arguments[4][410][0].apply(n,arguments)},{"./_isIndex":854,"./eq":903,"./isArrayLike":911,"./isObject":916,dup:410}],856:[function(e,t,n){arguments[4][411][0].apply(n,arguments)},{"./isArray":910,"./isSymbol":921,dup:411}],857:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],858:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":827,dup:413}],859:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],860:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],861:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":783,dup:417}],862:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":783,dup:418}],863:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":783,dup:419}],864:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":783,dup:420}],865:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":760,"./_ListCache":761,"./_Map":762,dup:421}],866:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":837,dup:422}],867:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":837,dup:423}],868:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":837,dup:424}],869:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":837,dup:425}],870:[function(e,t,n){arguments[4][426][0].apply(n,arguments)},{dup:426}],871:[function(e,t,n){arguments[4][428][0].apply(n,arguments)},{"./memoize":925,dup:428}],872:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":838,dup:429}],873:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":877,dup:430}],874:[function(e,t,n){arguments[4][431][0].apply(n,arguments)},{dup:431}],875:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":834,dup:432}],876:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],877:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],878:[function(e,t,n){arguments[4][435][0].apply(n,arguments)},{"./_apply":773,dup:435}],879:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":834,dup:436}],880:[function(e,t,n){arguments[4][437][0].apply(n,arguments)},{dup:437}],881:[function(e,t,n){arguments[4][438][0].apply(n,arguments)},{dup:438}],882:[function(e,t,n){arguments[4][439][0].apply(n,arguments)},{dup:439}],883:[function(e,t,n){arguments[4][440][0].apply(n,arguments)},{"./_baseSetToString":806,"./_shortOut":884,dup:440}],884:[function(e,t,n){arguments[4][441][0].apply(n,arguments)},{dup:441}],885:[function(e,t,n){arguments[4][442][0].apply(n,arguments)},{"./_ListCache":761,dup:442}],886:[function(e,t,n){arguments[4][443][0].apply(n,arguments)},{dup:443}],887:[function(e,t,n){arguments[4][444][0].apply(n,arguments)},{dup:444}],888:[function(e,t,n){arguments[4][445][0].apply(n,arguments)},{dup:445}],889:[function(e,t,n){arguments[4][446][0].apply(n,arguments)},{"./_ListCache":761,"./_Map":762,"./_MapCache":763,dup:446}],890:[function(e,t,n){arguments[4][447][0].apply(n,arguments)},{dup:447}],891:[function(e,t,n){arguments[4][449][0].apply(n,arguments)},{"./_memoizeCapped":871,dup:449}],892:[function(e,t,n){arguments[4][450][0].apply(n,arguments)},{"./isSymbol":921,dup:450}],893:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],894:[function(e,t,n){arguments[4][453][0].apply(n,arguments)},{"./_assignValue":782,"./_copyObject":824,"./_createAssigner":828,"./_isPrototype":859,"./isArrayLike":911,"./keys":923,dup:453}],895:[function(e,t,n){var r=e("./_copyObject"),i=e("./_createAssigner"),a=e("./keysIn"),s=i(function(e,t){r(t,a(t),e)});t.exports=s},{"./_copyObject":824,"./_createAssigner":828,"./keysIn":924}],896:[function(e,t,n){arguments[4][454][0].apply(n,arguments)},{"./_copyObject":824,"./_createAssigner":828,"./keysIn":924,dup:454}],897:[function(e,t,n){arguments[4][455][0].apply(n,arguments)},{"./_baseClone":787,dup:455}],898:[function(e,t,n){arguments[4][456][0].apply(n,arguments)},{"./_baseClone":787,dup:456}],899:[function(e,t,n){arguments[4][458][0].apply(n,arguments)},{dup:458}],900:[function(e,t,n){arguments[4][459][0].apply(n,arguments)},{dup:459}],901:[function(e,t,n){arguments[4][460][0].apply(n,arguments)},{"./_apply":773,"./_baseRest":805,"./_customDefaultsAssignIn":832,"./assignInWith":896,dup:460}],902:[function(e,t,n){arguments[4][461][0].apply(n,arguments)},{"./forEach":905,dup:461}],903:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],904:[function(e,t,n){t.exports=e("./assignIn")},{"./assignIn":895}],905:[function(e,t,n){arguments[4][468][0].apply(n,arguments)},{"./_arrayEach":774,"./_baseEach":789,"./_castFunction":813,"./isArray":910,dup:468}],906:[function(e,t,n){arguments[4][470][0].apply(n,arguments)},{"./_baseHas":795,"./_hasPath":845,dup:470}],907:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],908:[function(e,t,n){arguments[4][473][0].apply(n,arguments)},{"./_baseIndexOf":796,"./isArrayLike":911,"./isString":920,"./toInteger":931,"./values":935,dup:473}],909:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":797,"./isObjectLike":917,dup:474}],910:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],911:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":913,"./isLength":914,dup:476}],912:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":879,"./stubFalse":929,dup:479}],913:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":794,"./isObject":916,dup:480}],914:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],915:[function(e,t,n){arguments[4][483][0].apply(n,arguments)},{"./_baseGetTag":794,"./isObjectLike":917,dup:483}],916:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],917:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],918:[function(e,t,n){arguments[4][486][0].apply(n,arguments)},{"./_baseGetTag":794,"./_getPrototype":839,"./isObjectLike":917,dup:486}],919:[function(e,t,n){arguments[4][487][0].apply(n,arguments)},{"./_baseIsRegExp":800,"./_baseUnary":809,"./_nodeUtil":875,dup:487}],920:[function(e,t,n){arguments[4][488][0].apply(n,arguments)},{"./_baseGetTag":794,"./isArray":910,"./isObjectLike":917,dup:488}],921:[function(e,t,n){arguments[4][489][0].apply(n,arguments)},{"./_baseGetTag":794,"./isObjectLike":917,dup:489}],922:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":801,"./_baseUnary":809,"./_nodeUtil":875,dup:490}],923:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":778,"./_baseKeys":802,"./isArrayLike":911,dup:491}],924:[function(e,t,n){arguments[4][492][0].apply(n,arguments)},{"./_arrayLikeKeys":778,"./_baseKeysIn":803,"./isArrayLike":911,dup:492}],925:[function(e,t,n){arguments[4][494][0].apply(n,arguments)},{"./_MapCache":763,dup:494}],926:[function(e,t,n){arguments[4][496][0].apply(n,arguments)},{dup:496}],927:[function(e,t,n){arguments[4][498][0].apply(n,arguments)},{"./_baseRepeat":804,"./_isIterateeCall":855,"./toInteger":931,"./toString":933,dup:498}],928:[function(e,t,n){arguments[4][501][0].apply(n,arguments)},{dup:501}],929:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],930:[function(e,t,n){arguments[4][503][0].apply(n,arguments)},{"./toNumber":932,dup:503}],931:[function(e,t,n){arguments[4][504][0].apply(n,arguments)},{"./toFinite":930,dup:504}],932:[function(e,t,n){arguments[4][505][0].apply(n,arguments)},{"./isObject":916,"./isSymbol":921,dup:505}],933:[function(e,t,n){arguments[4][507][0].apply(n,arguments)},{"./_baseToString":808,dup:507}],934:[function(e,t,n){arguments[4][509][0].apply(n,arguments)},{"./_baseUniq":810,dup:509}],935:[function(e,t,n){arguments[4][510][0].apply(n,arguments)},{"./_baseValues":811,"./keys":923,dup:510}],936:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var i=e("babel-runtime/core-js/symbol"),a=r(i);n.default=function(e){var t=e.types,n=(0,a.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var n=e.node,r=n.declaration.id||e.scope.generateUidIdentifier("class");n.declaration.id=r,e.replaceWith(n.declaration),e.insertAfter(t.exportDefaultDeclaration(r))}},ClassDeclaration:function(e){var n=e.node,r=n.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(r,t.toExpression(n))]))},ClassExpression:function(e,t){var r=e.node;if(!r[n]){var i=(0,p.default)(e);if(i&&i!==r)return e.replaceWith(i);r[n]=!0;var a=l.default;t.opts.loose&&(a=o.default),e.replaceWith(new a(e,t.file).run())}}}}};var s=e("./loose"),o=r(s),u=e("./vanilla"),l=r(u),c=e("babel-helper-function-name"),p=r(c);t.exports=n.default},{"./loose":937,"./vanilla":938,"babel-helper-function-name":1021,"babel-runtime/core-js/symbol":1034}],937:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/helpers/classCallCheck"),s=i(a),o=e("babel-runtime/helpers/possibleConstructorReturn"),u=i(o),l=e("babel-runtime/helpers/inherits"),c=i(l),p=e("babel-helper-function-name"),f=i(p),h=e("./vanilla"),d=i(h),y=e("babel-types"),m=r(y),b=function(e){function t(){(0,s.default)(this,t);var n=(0,u.default)(this,e.apply(this,arguments));return n.isLoose=!0,n}return(0,c.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var n=this.classRef;e.static||(n=m.memberExpression(n,m.identifier("prototype")));var r=m.memberExpression(n,e.key,e.computed||m.isLiteral(e.key)),i=m.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var a=m.toComputedKey(e,e.key);m.isStringLiteral(a)&&(i=(0,f.default)({node:i,id:a,scope:t}));var s=m.expressionStatement(m.assignmentExpression("=",r,i));return m.inheritsComments(s,e),this.body.push(s),!0}},t}(d.default);n.default=b,t.exports=n.default},{"./vanilla":938,"babel-helper-function-name":1021,"babel-runtime/helpers/classCallCheck":1038,"babel-runtime/helpers/inherits":1039,"babel-runtime/helpers/possibleConstructorReturn":1040,"babel-types":1480}],938:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var a=e("babel-runtime/core-js/get-iterator"),s=i(a),o=e("babel-runtime/helpers/classCallCheck"),u=i(o),l=e("babel-traverse"),c=e("babel-helper-replace-supers"),p=i(c),f=e("babel-helper-optimise-call-expression"),h=i(f),d=e("babel-helper-define-map"),y=r(d),m=e("babel-template"),b=i(m),g=e("babel-types"),v=r(g),x=(0,b.default)("\n (function () {\n super(...arguments);\n })\n"),_={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},E=l.visitors.merge([_,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),A=l.visitors.merge([_,{ThisExpression:function(e){this.superThises.push(e)}}]),D=function(){function e(t,n){(0,u.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=n,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?v.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||v.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,n=this.file,r=this.body,i=this.constructorBody=v.blockStatement([]);this.constructor=this.buildConstructor();var a=[],s=[];if(this.isDerived&&(s.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),a.push(t),this.superName=t),this.buildBody(),i.body.unshift(v.expressionStatement(v.callExpression(n.addHelper("classCallCheck"),[v.thisExpression(),this.classRef]))),r=r.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===r.length)return v.toExpression(r[0]);r.push(v.returnStatement(this.classRef));var o=v.functionExpression(null,a,v.blockStatement(r));return o.shadow=!0,v.callExpression(o,s)},e.prototype.buildConstructor=function(){var e=v.functionDeclaration(this.classRef,[],this.constructorBody);return v.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",r=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var a=y.push(i,e,n,this.file,r);return t&&(a.enumerable=v.booleanLiteral(!0)),a},e.prototype.constructorMeMaybe=function(){for(var e=!1,t=this.path.get("body.body"),n=t,r=Array.isArray(n),i=0,n=r?n:(0,s.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}var o=a;if(e=o.equals("kind","constructor"))break}if(!e){var u=void 0,l=void 0;if(this.isDerived){var c=x().expression;u=c.params,l=c.body}else u=[],l=v.blockStatement([]);this.path.get("body").unshiftContainer("body",v.classMethod("constructor",v.identifier("constructor"),u,l))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),v.inherits(this.constructor,this.userConstructor),v.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){for(var e=this.path.get("body.body"),t=e,n=Array.isArray(t),r=0,t=n?t:(0,s.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i,o=a.node;if(a.isClassProperty())throw a.buildCodeFrameError("Missing class properties transform.");if(o.decorators)throw a.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(v.isClassMethod(o)){var u="constructor"===o.kind;if(u&&(a.traverse(E,this),!this.hasBareSuper&&this.isDerived))throw a.buildCodeFrameError("missing super() call in constructor");var l=new p.default({forceSuperMemoisation:u,methodPath:a,methodNode:o,objectRef:this.classRef,superRef:this.superName,isStatic:o.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),u?this.pushConstructor(l,o,a):this.pushMethod(o,a)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,n=void 0;if(this.hasInstanceDescriptors&&(t=y.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(n=y.toClassObject(this.staticMutatorMap)),t||n){t&&(t=y.toComputedObjectFromClass(t)),n&&(n=y.toComputedObjectFromClass(n));var r=v.nullLiteral(),i=[this.classRef,r,r,r,r];t&&(i[1]=t),n&&(i[2]=n),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var a=0,s=0;s<i.length;s++)i[s]!==r&&(a=s);i=i.slice(0,a+1),e.push(v.expressionStatement(v.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return v.variableDeclaration("var",[v.variableDeclarator(e,v.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,n,r){var i=e.node;this.isLoose?(i.arguments.unshift(v.thisExpression()),2===i.arguments.length&&v.isSpreadElement(i.arguments[1])&&v.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=v.memberExpression(t,v.identifier("apply"))):i.callee=v.memberExpression(t,v.identifier("call"))):i=(0,h.default)(v.logicalExpression("||",v.memberExpression(this.classRef,v.identifier("__proto__")),v.callExpression(v.memberExpression(v.identifier("Object"),v.identifier("getPrototypeOf")),[this.classRef])),v.thisExpression(),i.arguments);var a=v.callExpression(this.file.addHelper("possibleConstructorReturn"),[v.thisExpression(),i]),s=this.bareSuperAfter.map(function(e){return e(n)});e.parentPath.isExpressionStatement()&&e.parentPath.container===r.node.body&&r.node.body.length-1===e.parentPath.key?((this.superThises.length||s.length)&&(e.scope.push({id:n}),a=v.assignmentExpression("=",n,a)),s.length&&(a=v.toSequenceExpression([a].concat(s,[n]))),e.parentPath.replaceWith(v.returnStatement(a))):e.replaceWithMultiple([v.variableDeclaration("var",[v.variableDeclarator(n,a)])].concat(s,[v.expressionStatement(n)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,n=t.get("body");t.traverse(A,this);for(var r=!!this.bareSupers.length,i=this.superName||v.identifier("Function"),a=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0,o=u?o:(0,s.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var p=c;this.wrapSuperCall(p,i,a,n),r&&p.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(r=!1,!0):void 0)})}for(var f=this.superThises,h=Array.isArray(f),d=0,f=h?f:(0,s.default)(f);;){var y;if(h){if(d>=f.length)break;y=f[d++]}else{if(d=f.next(),d.done)break;y=d.value}var m=y;m.replaceWith(a)}var b=function(t){return v.callExpression(e.file.addHelper("possibleConstructorReturn"),[a].concat(t||[]))},g=n.get("body");g.length&&!g.pop().isReturnStatement()&&n.pushContainer("body",v.returnStatement(r?a:b()));for(var x=this.superReturns,_=Array.isArray(x),E=0,x=_?x:(0,s.default)(x);;){var D;if(_){if(E>=x.length)break;D=x[E++]}else{if(E=x.next(),E.done)break;D=E.value}var C=D;if(C.node.argument){var S=C.scope.generateDeclaredUidIdentifier("ret");C.get("argument").replaceWithMultiple([v.assignmentExpression("=",S,C.node.argument),b(S)])}else C.get("argument").replaceWith(b())}}},e.prototype.pushMethod=function(e,t){var n=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,n)||this.pushToMap(e,!1,null,n)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,n){this.bareSupers=e.bareSupers,this.superReturns=e.returns,n.scope.hasOwnBinding(this.classRef.name)&&n.scope.rename(this.classRef.name);var r=this.constructor;this.userConstructorPath=n,this.userConstructor=t,this.hasConstructor=!0,v.inheritsComments(r,t),r._ignoreUserWhitespace=!0,r.params=t.params,v.inherits(r.body,t.body),r.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(v.expressionStatement(v.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();n.default=D,t.exports=n.default},{"babel-helper-define-map":939,"babel-helper-optimise-call-expression":1023,"babel-helper-replace-supers":1024,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/classCallCheck":1038,"babel-template":1144,"babel-traverse":1284,"babel-types":1480}],939:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){return!g.isClassMethod(e)&&!g.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}function s(e,t,n,r,i){var s=g.toKeyAlias(t),o={};if((0,m.default)(e,s)&&(o=e[s]),e[s]=o,o._inherits=o._inherits||[],o._inherits.push(t),o._key=t.key,t.computed&&(o._computed=!0),t.decorators){var u=o.decorators=o.decorators||g.arrayExpression([]);u.elements=u.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(o.value||o.initializer)throw r.buildCodeFrameError(t,"Key conflict with sibling node");var l=void 0,c=void 0;(g.isObjectProperty(t)||g.isObjectMethod(t)||g.isClassMethod(t))&&(l=g.toComputedKey(t,t.key)),g.isObjectProperty(t)||g.isClassProperty(t)?c=t.value:(g.isObjectMethod(t)||g.isClassMethod(t))&&(c=g.functionExpression(null,t.params,t.body,t.generator,t.async),c.returnType=t.returnType);var p=a(t);return n&&"value"===p||(n=p),i&&g.isStringLiteral(l)&&("value"===n||"initializer"===n)&&g.isFunctionExpression(c)&&(c=(0,f.default)({id:l,node:c,scope:i})),c&&(g.inheritsComments(c,t),o[n]=c),o}function o(e){for(var t in e)if(e[t]._computed)return!0;return!1}function u(e){for(var t=g.arrayExpression([]),n=0;n<e.properties.length;n++){var r=e.properties[n],i=r.value;i.properties.unshift(g.objectProperty(g.identifier("key"),g.toComputedKey(r))),t.elements.push(i)}return t}function l(e){var t=g.objectExpression([]);return(0,d.default)(e,function(e){var n=g.objectExpression([]),r=g.objectProperty(e._key,n,e._computed);(0,d.default)(e,function(e,t){if("_"!==t[0]){var r=e;(g.isClassMethod(e)||g.isClassProperty(e))&&(e=e.value);var i=g.objectProperty(g.identifier(t),e);g.inheritsComments(i,r),g.removeComments(r),n.properties.push(i)}}),t.properties.push(r)}),t}function c(e){return(0,d.default)(e,function(e){e.value&&(e.writable=g.booleanLiteral(!0)),e.configurable=g.booleanLiteral(!0),e.enumerable=g.booleanLiteral(!0)}),l(e)}n.__esModule=!0,n.push=s,n.hasComputed=o,n.toComputedObjectFromClass=u,n.toClassObject=l,n.toDefineObject=c;var p=e("babel-helper-function-name"),f=i(p),h=e("lodash/each"),d=i(h),y=e("lodash/has"),m=i(y),b=e("babel-types"),g=r(b)},{"babel-helper-function-name":1021,"babel-types":1480,"lodash/each":1002,"lodash/has":1005}],940:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":972,"./_hashDelete":973,"./_hashGet":974,"./_hashHas":975,"./_hashSet":976,dup:283}],941:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":982,"./_listCacheDelete":983,"./_listCacheGet":984,"./_listCacheHas":985,"./_listCacheSet":986,dup:284}],942:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":968,"./_root":998,dup:285}],943:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":987,"./_mapCacheDelete":988,"./_mapCacheGet":989,"./_mapCacheHas":990,"./_mapCacheSet":991,dup:286}],944:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":998,dup:291}],945:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],946:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":958,"./_isIndex":977,"./isArguments":1007,"./isArray":1008,"./isBuffer":1010,"./isTypedArray":1016,dup:301}],947:[function(e,t,n){arguments[4][302][0].apply(n,arguments)},{dup:302}],948:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":1003,dup:309}],949:[function(e,t,n){arguments[4][316][0].apply(n,arguments)},{"./_baseForOwn":951,"./_createBaseEach":964,dup:316}],950:[function(e,t,n){arguments[4][319][0].apply(n,arguments)},{"./_createBaseFor":965,dup:319}],951:[function(e,t,n){arguments[4][320][0].apply(n,arguments)},{"./_baseFor":950,"./keys":1017,dup:320}],952:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":944,"./_getRawTag":969,"./_objectToString":996,dup:323}],953:[function(e,t,n){arguments[4][324][0].apply(n,arguments)},{dup:324}],954:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":952,"./isObjectLike":1014,dup:327}],955:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":980,"./_toSource":1001,"./isFunction":1011,"./isObject":1013,dup:332}],956:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":952,"./isLength":1012,"./isObjectLike":1014,dup:334}],957:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":981,"./_nativeKeys":994,dup:336}],958:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],959:[function(e,t,n){arguments[4][352][0].apply(n,arguments)},{"./_Symbol":944,"./_arrayMap":947,"./isArray":1008,"./isSymbol":1015,dup:352}],960:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],961:[function(e,t,n){arguments[4][357][0].apply(n,arguments)},{"./identity":1006,dup:357}],962:[function(e,t,n){arguments[4][358][0].apply(n,arguments)},{"./_isKey":978,"./_stringToPath":999,"./isArray":1008,"./toString":1020,dup:358}],963:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":998,dup:375}],964:[function(e,t,n){arguments[4][377][0].apply(n,arguments)},{"./isArrayLike":1009,dup:377}],965:[function(e,t,n){arguments[4][378][0].apply(n,arguments)},{dup:378}],966:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],967:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":979,dup:389}],968:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":955,"./_getValue":970,dup:391}],969:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":944,dup:393}],970:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],971:[function(e,t,n){arguments[4][398][0].apply(n,arguments)},{"./_castPath":962,"./_isIndex":977,"./_toKey":1e3,"./isArguments":1007,"./isArray":1008,"./isLength":1012,dup:398}],972:[function(e,t,n){arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":993,dup:400}],973:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],974:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":993,dup:402}],975:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":993,dup:403}],976:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":993,dup:404}],977:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],978:[function(e,t,n){arguments[4][411][0].apply(n,arguments)},{"./isArray":1008,"./isSymbol":1015,dup:411}],979:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],980:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":963,dup:413}],981:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],982:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],983:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":948,dup:417}],984:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":948,dup:418}],985:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":948,dup:419}],986:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":948,dup:420}],987:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":940,"./_ListCache":941,"./_Map":942,dup:421}],988:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":967,dup:422}],989:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":967,dup:423}],990:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":967,dup:424}],991:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":967,dup:425}],992:[function(e,t,n){arguments[4][428][0].apply(n,arguments)},{"./memoize":1018,dup:428}],993:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":968,dup:429}],994:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":997,dup:430}],995:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":966,dup:432}],996:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],997:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],998:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":966,
+dup:436}],999:[function(e,t,n){arguments[4][449][0].apply(n,arguments)},{"./_memoizeCapped":992,dup:449}],1e3:[function(e,t,n){arguments[4][450][0].apply(n,arguments)},{"./isSymbol":1015,dup:450}],1001:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],1002:[function(e,t,n){arguments[4][461][0].apply(n,arguments)},{"./forEach":1004,dup:461}],1003:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],1004:[function(e,t,n){arguments[4][468][0].apply(n,arguments)},{"./_arrayEach":945,"./_baseEach":949,"./_castFunction":961,"./isArray":1008,dup:468}],1005:[function(e,t,n){arguments[4][470][0].apply(n,arguments)},{"./_baseHas":953,"./_hasPath":971,dup:470}],1006:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],1007:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":954,"./isObjectLike":1014,dup:474}],1008:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],1009:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":1011,"./isLength":1012,dup:476}],1010:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":998,"./stubFalse":1019,dup:479}],1011:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":952,"./isObject":1013,dup:480}],1012:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],1013:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],1014:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],1015:[function(e,t,n){arguments[4][489][0].apply(n,arguments)},{"./_baseGetTag":952,"./isObjectLike":1014,dup:489}],1016:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":956,"./_baseUnary":960,"./_nodeUtil":995,dup:490}],1017:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":946,"./_baseKeys":957,"./isArrayLike":1009,dup:491}],1018:[function(e,t,n){arguments[4][494][0].apply(n,arguments)},{"./_MapCache":943,dup:494}],1019:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],1020:[function(e,t,n){arguments[4][507][0].apply(n,arguments)},{"./_baseToString":959,dup:507}],1021:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t,n,r){if(e.selfReference){if(!r.hasBinding(n.name)||r.hasGlobal(n.name)){if(!f.isFunction(t))return;var i=h;t.generator&&(i=d);var a=i({FUNCTION:t,FUNCTION_ID:n,FUNCTION_KEY:r.generateUidIdentifier(n.name)}).expression;a.callee._skipModulesRemap=!0;for(var s=a.callee.body.body[0].params,o=0,l=(0,u.default)(t);o<l;o++)s.push(r.generateUidIdentifier("x"));return a}r.rename(n.name)}t.id=n,r.getProgramParent().references[n.name]=!0}function s(e,t,n){var r={selfAssignment:!1,selfReference:!1,outerDeclar:n.getBindingIdentifier(t),references:[],name:t},i=n.getOwnBinding(t);return i?"param"===i.kind&&(r.selfReference=!0):(r.outerDeclar||n.hasGlobal(t))&&n.traverse(e,y,r),r}n.__esModule=!0,n.default=function(e){var t=e.node,n=e.parent,r=e.scope,i=e.id;if(!t.id){if(!f.isObjectProperty(n)&&!f.isObjectMethod(n,{kind:"method"})||n.computed&&!f.isLiteral(n.key)){if(f.isVariableDeclarator(n)){if(i=n.id,f.isIdentifier(i)){var o=r.parent.getBinding(i.name);if(o&&o.constant&&r.getBinding(i.name)===o)return t.id=i,void(t.id[f.NOT_LOCAL_BINDING]=!0)}}else if(f.isAssignmentExpression(n))i=n.left;else if(!i)return}else i=n.key;var u=void 0;if(i&&f.isLiteral(i))u=i.value;else{if(!i||!f.isIdentifier(i))return;u=i.name}u=f.toBindingIdentifierName(u),i=f.identifier(u),i[f.NOT_LOCAL_BINDING]=!0;var l=s(t,u,r);return a(l,t,i,r)||t}};var o=e("babel-helper-get-function-arity"),u=i(o),l=e("babel-template"),c=i(l),p=e("babel-types"),f=r(p),h=(0,c.default)("\n (function (FUNCTION_KEY) {\n function FUNCTION_ID() {\n return FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n }\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),d=(0,c.default)("\n (function (FUNCTION_KEY) {\n function* FUNCTION_ID() {\n return yield* FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n };\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),y={"ReferencedIdentifier|BindingIdentifier":function(e,t){if(e.node.name===t.name){var n=e.scope.getBindingIdentifier(t.name);n===t.outerDeclar&&(t.selfReference=!0,e.stop())}}};t.exports=n.default},{"babel-helper-get-function-arity":1022,"babel-template":1144,"babel-types":1480}],1022:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0,n.default=function(e){for(var t=e.params,n=0;n<t.length;n++){var r=t[n];if(a.isAssignmentPattern(r)||a.isRestElement(r))return n}return t.length};var i=e("babel-types"),a=r(i);t.exports=n.default},{"babel-types":1480}],1023:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0,n.default=function(e,t,n){return 1===n.length&&a.isSpreadElement(n[0])&&a.isIdentifier(n[0].argument,{name:"arguments"})?a.callExpression(a.memberExpression(e,a.identifier("apply")),[t,n[0].argument]):a.callExpression(a.memberExpression(e,a.identifier("call")),[t].concat(n))};var i=e("babel-types"),a=r(i);t.exports=n.default},{"babel-types":1480}],1024:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){return!!b.isSuper(e)&&(!b.isMemberExpression(t,{computed:!1})&&!b.isCallExpression(t,{callee:e}))}function s(e){return b.isMemberExpression(e)&&b.isSuper(e.object)}function o(e,t){var n=t?e:b.memberExpression(e,b.identifier("prototype"));return b.logicalExpression("||",b.memberExpression(n,b.identifier("__proto__")),b.callExpression(b.memberExpression(b.identifier("Object"),b.identifier("getPrototypeOf")),[n]))}n.__esModule=!0;var u=e("babel-runtime/helpers/classCallCheck"),l=i(u),c=e("babel-runtime/core-js/symbol"),p=i(c),f=e("babel-helper-optimise-call-expression"),h=i(f),d=e("babel-messages"),y=r(d),m=e("babel-types"),b=r(m),g=(0,p.default)(),v={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[g]||t.thises.push(e)},enter:function(e,t){var n=t.specHandle;t.isLoose&&(n=t.looseHandle);var r=e.isCallExpression()&&e.get("callee").isSuper(),i=n.call(t,e);i&&(t.hasSuper=!0),r&&t.bareSupers.push(e),i===!0&&e.requeue(),i!==!0&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},x=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=n,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,n){return b.callExpression(this.file.addHelper("set"),[o(this.getObjectRef(),this.isStatic),n?e:b.stringLiteral(e.name),t,b.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return b.callExpression(this.file.addHelper("get"),[o(this.getObjectRef(),this.isStatic),t?e:b.stringLiteral(e.name),b.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(v,this)},e.prototype.getLooseSuperProperty=function(e,t){var n=this.methodNode,r=this.superRef||b.identifier("Function");return t.property===e?void 0:b.isCallExpression(t,{callee:e})?void 0:b.isMemberExpression(t)&&!n.static?b.memberExpression(r,b.identifier("prototype")):r},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var n=t.callee;if(!b.isMemberExpression(n))return;if(!b.isSuper(n.object))return;return b.appendToMemberExpression(n,b.identifier("call")),t.arguments.unshift(b.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,n){return"="===n.operator?this.setSuperProperty(n.left.property,n.right,n.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[b.variableDeclaration("var",[b.variableDeclarator(e,n.left)]),b.expressionStatement(b.assignmentExpression("=",n.left,b.binaryExpression(n.operator[0],e,n.right)))])},e.prototype.specHandle=function(e){var t=void 0,n=void 0,r=void 0,i=e.parent,o=e.node;if(a(o,i))throw e.buildCodeFrameError(y.get("classesIllegalBareSuper"));if(b.isCallExpression(o)){var u=o.callee;if(b.isSuper(u))return;s(u)&&(t=u.property,n=u.computed,r=o.arguments)}else if(b.isMemberExpression(o)&&b.isSuper(o.object))t=o.property,n=o.computed;else{if(b.isUpdateExpression(o)&&s(o.argument)){var l=b.binaryExpression(o.operator[0],o.argument,b.numericLiteral(1));if(o.prefix)return this.specHandleAssignmentExpression(null,e,l);var c=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(c,e,l).concat(b.expressionStatement(c))}if(b.isAssignmentExpression(o)&&s(o.left))return this.specHandleAssignmentExpression(null,e,o)}if(t){var p=this.getSuperProperty(t,n);return r?this.optimiseCall(p,r):p}},e.prototype.optimiseCall=function(e,t){var n=b.thisExpression();return n[g]=!0,(0,h.default)(e,n,t)},e}();n.default=x,t.exports=n.default},{"babel-helper-optimise-call-expression":1023,"babel-messages":1025,"babel-runtime/core-js/symbol":1034,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480}],1025:[function(e,t,n){arguments[4][99][0].apply(n,arguments)},{"babel-runtime/core-js/json/stringify":1027,dup:99,util:35}],1026:[function(e,t,n){arguments[4][100][0].apply(n,arguments)},{"core-js/library/fn/get-iterator":1042,dup:100}],1027:[function(e,t,n){arguments[4][101][0].apply(n,arguments)},{"core-js/library/fn/json/stringify":1043,dup:101}],1028:[function(e,t,n){arguments[4][102][0].apply(n,arguments)},{"core-js/library/fn/map":1044,dup:102}],1029:[function(e,t,n){arguments[4][103][0].apply(n,arguments)},{"core-js/library/fn/number/max-safe-integer":1045,dup:103}],1030:[function(e,t,n){arguments[4][105][0].apply(n,arguments)},{"core-js/library/fn/object/create":1046,dup:105}],1031:[function(e,t,n){arguments[4][106][0].apply(n,arguments)},{"core-js/library/fn/object/get-own-property-symbols":1047,dup:106}],1032:[function(e,t,n){arguments[4][107][0].apply(n,arguments)},{"core-js/library/fn/object/keys":1048,dup:107}],1033:[function(e,t,n){arguments[4][108][0].apply(n,arguments)},{"core-js/library/fn/object/set-prototype-of":1049,dup:108}],1034:[function(e,t,n){arguments[4][109][0].apply(n,arguments)},{"core-js/library/fn/symbol":1051,dup:109}],1035:[function(e,t,n){arguments[4][110][0].apply(n,arguments)},{"core-js/library/fn/symbol/for":1050,dup:110}],1036:[function(e,t,n){arguments[4][111][0].apply(n,arguments)},{"core-js/library/fn/symbol/iterator":1052,dup:111}],1037:[function(e,t,n){arguments[4][112][0].apply(n,arguments)},{"core-js/library/fn/weak-map":1053,dup:112}],1038:[function(e,t,n){arguments[4][114][0].apply(n,arguments)},{dup:114}],1039:[function(e,t,n){arguments[4][115][0].apply(n,arguments)},{"../core-js/object/create":1030,"../core-js/object/set-prototype-of":1033,"../helpers/typeof":1041,dup:115}],1040:[function(e,t,n){arguments[4][117][0].apply(n,arguments)},{"../helpers/typeof":1041,dup:117}],1041:[function(e,t,n){arguments[4][118][0].apply(n,arguments)},{"../core-js/symbol":1034,"../core-js/symbol/iterator":1036,dup:118}],1042:[function(e,t,n){arguments[4][119][0].apply(n,arguments)},{"../modules/core.get-iterator":1129,"../modules/es6.string.iterator":1137,"../modules/web.dom.iterable":1143,dup:119}],1043:[function(e,t,n){arguments[4][120][0].apply(n,arguments)},{"../../modules/_core":1069,dup:120}],1044:[function(e,t,n){arguments[4][121][0].apply(n,arguments)},{"../modules/_core":1069,"../modules/es6.map":1131,"../modules/es6.object.to-string":1136,"../modules/es6.string.iterator":1137,"../modules/es7.map.to-json":1140,"../modules/web.dom.iterable":1143,dup:121}],1045:[function(e,t,n){arguments[4][122][0].apply(n,arguments)},{"../../modules/es6.number.max-safe-integer":1132,dup:122}],1046:[function(e,t,n){arguments[4][124][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.object.create":1133,dup:124}],1047:[function(e,t,n){arguments[4][125][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.symbol":1138,dup:125}],1048:[function(e,t,n){arguments[4][126][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.object.keys":1134,dup:126}],1049:[function(e,t,n){arguments[4][127][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.object.set-prototype-of":1135,dup:127}],1050:[function(e,t,n){arguments[4][128][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.symbol":1138,dup:128}],1051:[function(e,t,n){arguments[4][129][0].apply(n,arguments)},{"../../modules/_core":1069,"../../modules/es6.object.to-string":1136,"../../modules/es6.symbol":1138,"../../modules/es7.symbol.async-iterator":1141,"../../modules/es7.symbol.observable":1142,dup:129}],1052:[function(e,t,n){arguments[4][130][0].apply(n,arguments)},{"../../modules/_wks-ext":1126,"../../modules/es6.string.iterator":1137,"../../modules/web.dom.iterable":1143,dup:130}],1053:[function(e,t,n){arguments[4][131][0].apply(n,arguments)},{"../modules/_core":1069,"../modules/es6.object.to-string":1136,"../modules/es6.weak-map":1139,"../modules/web.dom.iterable":1143,dup:131}],1054:[function(e,t,n){arguments[4][133][0].apply(n,arguments)},{dup:133}],1055:[function(e,t,n){arguments[4][134][0].apply(n,arguments)},{dup:134}],1056:[function(e,t,n){arguments[4][135][0].apply(n,arguments)},{dup:135}],1057:[function(e,t,n){arguments[4][136][0].apply(n,arguments)},{"./_is-object":1087,dup:136}],1058:[function(e,t,n){arguments[4][137][0].apply(n,arguments)},{"./_for-of":1078,dup:137}],1059:[function(e,t,n){arguments[4][138][0].apply(n,arguments)},{"./_to-index":1118,"./_to-iobject":1120,"./_to-length":1121,dup:138}],1060:[function(e,t,n){arguments[4][139][0].apply(n,arguments)},{"./_array-species-create":1062,"./_ctx":1070,"./_iobject":1084,"./_to-length":1121,"./_to-object":1122,dup:139}],1061:[function(e,t,n){arguments[4][140][0].apply(n,arguments)},{"./_is-array":1086,"./_is-object":1087,"./_wks":1127,dup:140}],1062:[function(e,t,n){arguments[4][141][0].apply(n,arguments)},{"./_array-species-constructor":1061,dup:141}],1063:[function(e,t,n){arguments[4][142][0].apply(n,arguments)},{"./_cof":1064,"./_wks":1127,dup:142}],1064:[function(e,t,n){arguments[4][143][0].apply(n,arguments)},{dup:143}],1065:[function(e,t,n){arguments[4][144][0].apply(n,arguments)},{"./_an-instance":1056,"./_ctx":1070,"./_defined":1071,"./_descriptors":1072,"./_for-of":1078,"./_iter-define":1090,"./_iter-step":1091,"./_meta":1095,"./_object-create":1097,"./_object-dp":1098,"./_redefine-all":1110,"./_set-species":1113,dup:144}],1066:[function(e,t,n){arguments[4][145][0].apply(n,arguments)},{"./_array-from-iterable":1058,"./_classof":1063,dup:145}],1067:[function(e,t,n){arguments[4][146][0].apply(n,arguments)},{"./_an-instance":1056,"./_an-object":1057,"./_array-methods":1060,"./_for-of":1078,"./_has":1080,"./_is-object":1087,"./_meta":1095,"./_redefine-all":1110,dup:146}],1068:[function(e,t,n){arguments[4][147][0].apply(n,arguments)},{"./_an-instance":1056,"./_array-methods":1060,"./_descriptors":1072,"./_export":1076,"./_fails":1077,"./_for-of":1078,"./_global":1079,"./_hide":1081,"./_is-object":1087,"./_meta":1095,"./_object-dp":1098,"./_redefine-all":1110,"./_set-to-string-tag":1114,dup:147}],1069:[function(e,t,n){arguments[4][148][0].apply(n,arguments)},{dup:148}],1070:[function(e,t,n){arguments[4][149][0].apply(n,arguments)},{"./_a-function":1054,dup:149}],1071:[function(e,t,n){arguments[4][150][0].apply(n,arguments)},{dup:150}],1072:[function(e,t,n){arguments[4][151][0].apply(n,arguments)},{"./_fails":1077,dup:151}],1073:[function(e,t,n){arguments[4][152][0].apply(n,arguments)},{"./_global":1079,"./_is-object":1087,dup:152}],1074:[function(e,t,n){arguments[4][153][0].apply(n,arguments)},{dup:153}],1075:[function(e,t,n){arguments[4][154][0].apply(n,arguments)},{"./_object-gops":1103,"./_object-keys":1106,"./_object-pie":1107,dup:154}],1076:[function(e,t,n){arguments[4][155][0].apply(n,arguments)},{"./_core":1069,"./_ctx":1070,"./_global":1079,"./_hide":1081,dup:155}],1077:[function(e,t,n){arguments[4][156][0].apply(n,arguments)},{dup:156}],1078:[function(e,t,n){arguments[4][157][0].apply(n,arguments)},{"./_an-object":1057,"./_ctx":1070,"./_is-array-iter":1085,"./_iter-call":1088,"./_to-length":1121,"./core.get-iterator-method":1128,dup:157}],1079:[function(e,t,n){arguments[4][158][0].apply(n,arguments)},{dup:158}],1080:[function(e,t,n){arguments[4][159][0].apply(n,arguments)},{dup:159}],1081:[function(e,t,n){arguments[4][160][0].apply(n,arguments)},{"./_descriptors":1072,"./_object-dp":1098,"./_property-desc":1109,dup:160}],1082:[function(e,t,n){arguments[4][161][0].apply(n,arguments)},{"./_global":1079,dup:161}],1083:[function(e,t,n){arguments[4][162][0].apply(n,arguments)},{"./_descriptors":1072,"./_dom-create":1073,"./_fails":1077,dup:162}],1084:[function(e,t,n){arguments[4][163][0].apply(n,arguments)},{"./_cof":1064,dup:163}],1085:[function(e,t,n){arguments[4][164][0].apply(n,arguments)},{"./_iterators":1092,"./_wks":1127,dup:164}],1086:[function(e,t,n){arguments[4][165][0].apply(n,arguments)},{"./_cof":1064,dup:165}],1087:[function(e,t,n){arguments[4][166][0].apply(n,arguments)},{dup:166}],1088:[function(e,t,n){arguments[4][167][0].apply(n,arguments)},{"./_an-object":1057,dup:167}],1089:[function(e,t,n){arguments[4][168][0].apply(n,arguments)},{"./_hide":1081,"./_object-create":1097,"./_property-desc":1109,"./_set-to-string-tag":1114,"./_wks":1127,dup:168}],1090:[function(e,t,n){arguments[4][169][0].apply(n,arguments)},{"./_export":1076,"./_has":1080,"./_hide":1081,"./_iter-create":1089,"./_iterators":1092,"./_library":1094,"./_object-gpo":1104,"./_redefine":1111,"./_set-to-string-tag":1114,"./_wks":1127,dup:169}],1091:[function(e,t,n){arguments[4][170][0].apply(n,arguments)},{dup:170}],1092:[function(e,t,n){arguments[4][171][0].apply(n,arguments)},{dup:171}],1093:[function(e,t,n){arguments[4][172][0].apply(n,arguments)},{"./_object-keys":1106,"./_to-iobject":1120,dup:172}],1094:[function(e,t,n){arguments[4][173][0].apply(n,arguments)},{dup:173}],1095:[function(e,t,n){arguments[4][174][0].apply(n,arguments)},{"./_fails":1077,"./_has":1080,"./_is-object":1087,"./_object-dp":1098,"./_uid":1124,dup:174}],1096:[function(e,t,n){arguments[4][175][0].apply(n,arguments)},{"./_fails":1077,"./_iobject":1084,"./_object-gops":1103,"./_object-keys":1106,"./_object-pie":1107,"./_to-object":1122,dup:175}],1097:[function(e,t,n){arguments[4][176][0].apply(n,arguments)},{"./_an-object":1057,"./_dom-create":1073,"./_enum-bug-keys":1074,"./_html":1082,"./_object-dps":1099,"./_shared-key":1115,dup:176}],1098:[function(e,t,n){arguments[4][177][0].apply(n,arguments)},{"./_an-object":1057,"./_descriptors":1072,"./_ie8-dom-define":1083,"./_to-primitive":1123,dup:177}],1099:[function(e,t,n){arguments[4][178][0].apply(n,arguments)},{"./_an-object":1057,"./_descriptors":1072,"./_object-dp":1098,"./_object-keys":1106,dup:178}],1100:[function(e,t,n){arguments[4][179][0].apply(n,arguments)},{"./_descriptors":1072,"./_has":1080,"./_ie8-dom-define":1083,"./_object-pie":1107,"./_property-desc":1109,"./_to-iobject":1120,"./_to-primitive":1123,dup:179}],1101:[function(e,t,n){arguments[4][180][0].apply(n,arguments)},{"./_object-gopn":1102,"./_to-iobject":1120,dup:180}],1102:[function(e,t,n){arguments[4][181][0].apply(n,arguments)},{"./_enum-bug-keys":1074,"./_object-keys-internal":1105,dup:181}],1103:[function(e,t,n){arguments[4][182][0].apply(n,arguments)},{dup:182}],1104:[function(e,t,n){arguments[4][183][0].apply(n,arguments)},{"./_has":1080,"./_shared-key":1115,"./_to-object":1122,dup:183}],1105:[function(e,t,n){arguments[4][184][0].apply(n,arguments)},{"./_array-includes":1059,"./_has":1080,"./_shared-key":1115,"./_to-iobject":1120,dup:184}],1106:[function(e,t,n){arguments[4][185][0].apply(n,arguments)},{"./_enum-bug-keys":1074,"./_object-keys-internal":1105,dup:185}],1107:[function(e,t,n){arguments[4][186][0].apply(n,arguments)},{dup:186}],1108:[function(e,t,n){arguments[4][187][0].apply(n,arguments)},{"./_core":1069,"./_export":1076,"./_fails":1077,dup:187}],1109:[function(e,t,n){arguments[4][188][0].apply(n,arguments)},{dup:188}],1110:[function(e,t,n){arguments[4][189][0].apply(n,arguments)},{"./_hide":1081,dup:189}],1111:[function(e,t,n){arguments[4][190][0].apply(n,arguments)},{"./_hide":1081,dup:190}],1112:[function(e,t,n){arguments[4][191][0].apply(n,arguments)},{"./_an-object":1057,"./_ctx":1070,"./_is-object":1087,"./_object-gopd":1100,dup:191}],1113:[function(e,t,n){arguments[4][192][0].apply(n,arguments)},{"./_core":1069,"./_descriptors":1072,"./_global":1079,"./_object-dp":1098,"./_wks":1127,dup:192}],1114:[function(e,t,n){arguments[4][193][0].apply(n,arguments)},{"./_has":1080,"./_object-dp":1098,"./_wks":1127,dup:193}],1115:[function(e,t,n){arguments[4][194][0].apply(n,arguments)},{"./_shared":1116,"./_uid":1124,dup:194}],1116:[function(e,t,n){arguments[4][195][0].apply(n,arguments)},{"./_global":1079,dup:195}],1117:[function(e,t,n){arguments[4][196][0].apply(n,arguments)},{"./_defined":1071,"./_to-integer":1119,dup:196}],1118:[function(e,t,n){arguments[4][197][0].apply(n,arguments)},{"./_to-integer":1119,dup:197}],1119:[function(e,t,n){arguments[4][198][0].apply(n,arguments)},{dup:198}],1120:[function(e,t,n){arguments[4][199][0].apply(n,arguments)},{"./_defined":1071,"./_iobject":1084,dup:199}],1121:[function(e,t,n){arguments[4][200][0].apply(n,arguments)},{"./_to-integer":1119,dup:200}],1122:[function(e,t,n){arguments[4][201][0].apply(n,arguments)},{"./_defined":1071,dup:201}],1123:[function(e,t,n){arguments[4][202][0].apply(n,arguments)},{"./_is-object":1087,dup:202}],1124:[function(e,t,n){arguments[4][203][0].apply(n,arguments)},{dup:203}],1125:[function(e,t,n){arguments[4][204][0].apply(n,arguments)},{"./_core":1069,"./_global":1079,"./_library":1094,"./_object-dp":1098,"./_wks-ext":1126,dup:204}],1126:[function(e,t,n){arguments[4][205][0].apply(n,arguments)},{"./_wks":1127,dup:205}],1127:[function(e,t,n){arguments[4][206][0].apply(n,arguments)},{"./_global":1079,"./_shared":1116,"./_uid":1124,dup:206}],1128:[function(e,t,n){arguments[4][207][0].apply(n,arguments)},{"./_classof":1063,"./_core":1069,"./_iterators":1092,"./_wks":1127,dup:207}],1129:[function(e,t,n){arguments[4][208][0].apply(n,arguments)},{"./_an-object":1057,"./_core":1069,"./core.get-iterator-method":1128,dup:208}],1130:[function(e,t,n){arguments[4][209][0].apply(n,arguments)},{"./_add-to-unscopables":1055,"./_iter-define":1090,"./_iter-step":1091,"./_iterators":1092,"./_to-iobject":1120,dup:209}],1131:[function(e,t,n){arguments[4][210][0].apply(n,arguments)},{"./_collection":1068,"./_collection-strong":1065,dup:210}],1132:[function(e,t,n){arguments[4][211][0].apply(n,arguments)},{"./_export":1076,dup:211}],1133:[function(e,t,n){arguments[4][213][0].apply(n,arguments)},{"./_export":1076,"./_object-create":1097,dup:213}],1134:[function(e,t,n){arguments[4][214][0].apply(n,arguments)},{"./_object-keys":1106,"./_object-sap":1108,"./_to-object":1122,dup:214}],1135:[function(e,t,n){arguments[4][215][0].apply(n,arguments)},{"./_export":1076,"./_set-proto":1112,dup:215}],1136:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],1137:[function(e,t,n){arguments[4][217][0].apply(n,arguments)},{"./_iter-define":1090,"./_string-at":1117,dup:217}],1138:[function(e,t,n){arguments[4][218][0].apply(n,arguments)},{"./_an-object":1057,"./_descriptors":1072,"./_enum-keys":1075,"./_export":1076,"./_fails":1077,"./_global":1079,"./_has":1080,"./_hide":1081,"./_is-array":1086,"./_keyof":1093,"./_library":1094,"./_meta":1095,"./_object-create":1097,"./_object-dp":1098,"./_object-gopd":1100,"./_object-gopn":1102,"./_object-gopn-ext":1101,"./_object-gops":1103,"./_object-keys":1106,"./_object-pie":1107,"./_property-desc":1109,"./_redefine":1111,"./_set-to-string-tag":1114,"./_shared":1116,"./_to-iobject":1120,"./_to-primitive":1123,"./_uid":1124,"./_wks":1127,"./_wks-define":1125,"./_wks-ext":1126,dup:218}],1139:[function(e,t,n){arguments[4][219][0].apply(n,arguments)},{"./_array-methods":1060,"./_collection":1068,"./_collection-weak":1067,"./_is-object":1087,"./_meta":1095,"./_object-assign":1096,"./_redefine":1111,dup:219}],1140:[function(e,t,n){arguments[4][221][0].apply(n,arguments)},{"./_collection-to-json":1066,"./_export":1076,dup:221}],1141:[function(e,t,n){arguments[4][222][0].apply(n,arguments)},{"./_wks-define":1125,dup:222}],1142:[function(e,t,n){arguments[4][223][0].apply(n,arguments)},{"./_wks-define":1125,dup:223}],1143:[function(e,t,n){arguments[4][224][0].apply(n,arguments)},{"./_global":1079,"./_hide":1081,"./_iterators":1092,"./_wks":1127,"./es6.array.iterator":1130,dup:224}],1144:[function(e,t,n){arguments[4][225][0].apply(n,arguments)},{"babel-runtime/core-js/symbol":1034,"babel-traverse":1284,"babel-types":1480,babylon:1145,dup:225,"lodash/assign":1259,"lodash/cloneDeep":1260,"lodash/has":1263}],1145:[function(e,t,n){arguments[4][274][0].apply(n,arguments)},{dup:274}],1146:[function(e,t,n){arguments[4][282][0].apply(n,arguments)},{"./_getNative":1206,"./_root":1247,dup:282}],1147:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":1214,"./_hashDelete":1215,"./_hashGet":1216,"./_hashHas":1217,"./_hashSet":1218,dup:283}],1148:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":1228,"./_listCacheDelete":1229,"./_listCacheGet":1230,"./_listCacheHas":1231,"./_listCacheSet":1232,dup:284}],1149:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":1206,"./_root":1247,dup:285}],1150:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":1233,"./_mapCacheDelete":1234,"./_mapCacheGet":1235,"./_mapCacheHas":1236,"./_mapCacheSet":1237,dup:286}],1151:[function(e,t,n){arguments[4][287][0].apply(n,arguments)},{"./_getNative":1206,"./_root":1247,dup:287}],1152:[function(e,t,n){arguments[4][288][0].apply(n,arguments)},{"./_getNative":1206,"./_root":1247,dup:288}],1153:[function(e,t,n){arguments[4][290][0].apply(n,arguments)},{"./_ListCache":1148,"./_stackClear":1251,"./_stackDelete":1252,"./_stackGet":1253,"./_stackHas":1254,"./_stackSet":1255,dup:290}],1154:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":1247,dup:291}],1155:[function(e,t,n){arguments[4][292][0].apply(n,arguments)},{"./_root":1247,dup:292}],1156:[function(e,t,n){arguments[4][293][0].apply(n,arguments)},{"./_getNative":1206,"./_root":1247,dup:293}],1157:[function(e,t,n){arguments[4][294][0].apply(n,arguments)},{dup:294}],1158:[function(e,t,n){arguments[4][295][0].apply(n,arguments)},{dup:295}],1159:[function(e,t,n){arguments[4][296][0].apply(n,arguments)},{dup:296}],1160:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],1161:[function(e,t,n){arguments[4][298][0].apply(n,arguments)},{dup:298}],1162:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":1183,"./_isIndex":1222,"./isArguments":1265,"./isArray":1266,"./isBuffer":1268,"./isTypedArray":1274,dup:301}],1163:[function(e,t,n){arguments[4][302][0].apply(n,arguments)},{dup:302}],1164:[function(e,t,n){arguments[4][303][0].apply(n,arguments)},{dup:303}],1165:[function(e,t,n){arguments[4][304][0].apply(n,arguments)},{dup:304}],1166:[function(e,t,n){arguments[4][308][0].apply(n,arguments)},{"./_baseAssignValue":1170,"./eq":1262,dup:308}],1167:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":1262,dup:309}],1168:[function(e,t,n){arguments[4][310][0].apply(n,arguments)},{"./_copyObject":1196,"./keys":1275,dup:310}],1169:[function(e,t,n){arguments[4][311][0].apply(n,arguments)},{"./_copyObject":1196,"./keysIn":1276,dup:311}],1170:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{"./_defineProperty":1201,dup:312}],1171:[function(e,t,n){arguments[4][314][0].apply(n,arguments)},{"./_Stack":1153,"./_arrayEach":1160,"./_assignValue":1166,"./_baseAssign":1168,"./_baseAssignIn":1169,"./_cloneBuffer":1188,"./_copyArray":1195,"./_copySymbols":1197,"./_copySymbolsIn":1198,"./_getAllKeys":1203,"./_getAllKeysIn":1204,"./_getTag":1211,"./_initCloneArray":1219,"./_initCloneByTag":1220,"./_initCloneObject":1221,"./isArray":1266,"./isBuffer":1268,"./isObject":1271,"./keys":1275,dup:314}],1172:[function(e,t,n){arguments[4][315][0].apply(n,arguments)},{"./isObject":1271,dup:315}],1173:[function(e,t,n){arguments[4][322][0].apply(n,arguments)},{"./_arrayPush":1164,"./isArray":1266,dup:322}],1174:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":1154,"./_getRawTag":1208,"./_objectToString":1244,dup:323}],1175:[function(e,t,n){arguments[4][324][0].apply(n,arguments)},{dup:324}],1176:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":1174,"./isObjectLike":1272,dup:327}],1177:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":1226,"./_toSource":1258,"./isFunction":1269,"./isObject":1271,dup:332}],1178:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":1174,"./isLength":1270,"./isObjectLike":1272,dup:334}],1179:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":1227,"./_nativeKeys":1241,dup:336}],1180:[function(e,t,n){arguments[4][337][0].apply(n,arguments)},{"./_isPrototype":1227,"./_nativeKeysIn":1242,"./isObject":1271,dup:337}],1181:[function(e,t,n){arguments[4][347][0].apply(n,arguments)},{"./_overRest":1246,"./_setToString":1249,"./identity":1264,dup:347}],1182:[function(e,t,n){arguments[4][348][0].apply(n,arguments)},{"./_defineProperty":1201,"./constant":1261,"./identity":1264,dup:348}],1183:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],1184:[function(e,t,n){arguments[4][352][0].apply(n,arguments)},{"./_Symbol":1154,"./_arrayMap":1163,"./isArray":1266,"./isSymbol":1273,dup:352}],1185:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],1186:[function(e,t,n){arguments[4][358][0].apply(n,arguments)},{"./_isKey":1224,"./_stringToPath":1256,"./isArray":1266,"./toString":1280,dup:358}],1187:[function(e,t,n){arguments[4][361][0].apply(n,arguments)},{"./_Uint8Array":1155,dup:361}],1188:[function(e,t,n){arguments[4][362][0].apply(n,arguments)},{"./_root":1247,dup:362}],1189:[function(e,t,n){arguments[4][363][0].apply(n,arguments)},{"./_cloneArrayBuffer":1187,dup:363}],1190:[function(e,t,n){arguments[4][364][0].apply(n,arguments)},{"./_addMapEntry":1157,"./_arrayReduce":1165,"./_mapToArray":1238,dup:364}],1191:[function(e,t,n){arguments[4][365][0].apply(n,arguments)},{dup:365}],1192:[function(e,t,n){arguments[4][366][0].apply(n,arguments)},{"./_addSetEntry":1158,"./_arrayReduce":1165,"./_setToArray":1248,dup:366}],1193:[function(e,t,n){arguments[4][367][0].apply(n,arguments)},{"./_Symbol":1154,dup:367}],1194:[function(e,t,n){arguments[4][368][0].apply(n,arguments)},{"./_cloneArrayBuffer":1187,dup:368}],1195:[function(e,t,n){arguments[4][371][0].apply(n,arguments)},{dup:371}],1196:[function(e,t,n){arguments[4][372][0].apply(n,arguments)},{"./_assignValue":1166,"./_baseAssignValue":1170,dup:372}],1197:[function(e,t,n){
+arguments[4][373][0].apply(n,arguments)},{"./_copyObject":1196,"./_getSymbols":1209,dup:373}],1198:[function(e,t,n){arguments[4][374][0].apply(n,arguments)},{"./_copyObject":1196,"./_getSymbolsIn":1210,dup:374}],1199:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":1247,dup:375}],1200:[function(e,t,n){arguments[4][376][0].apply(n,arguments)},{"./_baseRest":1181,"./_isIterateeCall":1223,dup:376}],1201:[function(e,t,n){arguments[4][382][0].apply(n,arguments)},{"./_getNative":1206,dup:382}],1202:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],1203:[function(e,t,n){arguments[4][387][0].apply(n,arguments)},{"./_baseGetAllKeys":1173,"./_getSymbols":1209,"./keys":1275,dup:387}],1204:[function(e,t,n){arguments[4][388][0].apply(n,arguments)},{"./_baseGetAllKeys":1173,"./_getSymbolsIn":1210,"./keysIn":1276,dup:388}],1205:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":1225,dup:389}],1206:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":1177,"./_getValue":1212,dup:391}],1207:[function(e,t,n){arguments[4][392][0].apply(n,arguments)},{"./_overArg":1245,dup:392}],1208:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":1154,dup:393}],1209:[function(e,t,n){arguments[4][394][0].apply(n,arguments)},{"./_arrayFilter":1161,"./stubArray":1278,dup:394}],1210:[function(e,t,n){arguments[4][395][0].apply(n,arguments)},{"./_arrayPush":1164,"./_getPrototype":1207,"./_getSymbols":1209,"./stubArray":1278,dup:395}],1211:[function(e,t,n){arguments[4][396][0].apply(n,arguments)},{"./_DataView":1146,"./_Map":1149,"./_Promise":1151,"./_Set":1152,"./_WeakMap":1156,"./_baseGetTag":1174,"./_toSource":1258,dup:396}],1212:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],1213:[function(e,t,n){arguments[4][398][0].apply(n,arguments)},{"./_castPath":1186,"./_isIndex":1222,"./_toKey":1257,"./isArguments":1265,"./isArray":1266,"./isLength":1270,dup:398}],1214:[function(e,t,n){arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":1240,dup:400}],1215:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],1216:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":1240,dup:402}],1217:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":1240,dup:403}],1218:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":1240,dup:404}],1219:[function(e,t,n){arguments[4][405][0].apply(n,arguments)},{dup:405}],1220:[function(e,t,n){arguments[4][406][0].apply(n,arguments)},{"./_cloneArrayBuffer":1187,"./_cloneDataView":1189,"./_cloneMap":1190,"./_cloneRegExp":1191,"./_cloneSet":1192,"./_cloneSymbol":1193,"./_cloneTypedArray":1194,dup:406}],1221:[function(e,t,n){arguments[4][407][0].apply(n,arguments)},{"./_baseCreate":1172,"./_getPrototype":1207,"./_isPrototype":1227,dup:407}],1222:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],1223:[function(e,t,n){arguments[4][410][0].apply(n,arguments)},{"./_isIndex":1222,"./eq":1262,"./isArrayLike":1267,"./isObject":1271,dup:410}],1224:[function(e,t,n){arguments[4][411][0].apply(n,arguments)},{"./isArray":1266,"./isSymbol":1273,dup:411}],1225:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],1226:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":1199,dup:413}],1227:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],1228:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],1229:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":1167,dup:417}],1230:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":1167,dup:418}],1231:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":1167,dup:419}],1232:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":1167,dup:420}],1233:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":1147,"./_ListCache":1148,"./_Map":1149,dup:421}],1234:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":1205,dup:422}],1235:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":1205,dup:423}],1236:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":1205,dup:424}],1237:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":1205,dup:425}],1238:[function(e,t,n){arguments[4][426][0].apply(n,arguments)},{dup:426}],1239:[function(e,t,n){arguments[4][428][0].apply(n,arguments)},{"./memoize":1277,dup:428}],1240:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":1206,dup:429}],1241:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":1245,dup:430}],1242:[function(e,t,n){arguments[4][431][0].apply(n,arguments)},{dup:431}],1243:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":1202,dup:432}],1244:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],1245:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],1246:[function(e,t,n){arguments[4][435][0].apply(n,arguments)},{"./_apply":1159,dup:435}],1247:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":1202,dup:436}],1248:[function(e,t,n){arguments[4][439][0].apply(n,arguments)},{dup:439}],1249:[function(e,t,n){arguments[4][440][0].apply(n,arguments)},{"./_baseSetToString":1182,"./_shortOut":1250,dup:440}],1250:[function(e,t,n){arguments[4][441][0].apply(n,arguments)},{dup:441}],1251:[function(e,t,n){arguments[4][442][0].apply(n,arguments)},{"./_ListCache":1148,dup:442}],1252:[function(e,t,n){arguments[4][443][0].apply(n,arguments)},{dup:443}],1253:[function(e,t,n){arguments[4][444][0].apply(n,arguments)},{dup:444}],1254:[function(e,t,n){arguments[4][445][0].apply(n,arguments)},{dup:445}],1255:[function(e,t,n){arguments[4][446][0].apply(n,arguments)},{"./_ListCache":1148,"./_Map":1149,"./_MapCache":1150,dup:446}],1256:[function(e,t,n){arguments[4][449][0].apply(n,arguments)},{"./_memoizeCapped":1239,dup:449}],1257:[function(e,t,n){arguments[4][450][0].apply(n,arguments)},{"./isSymbol":1273,dup:450}],1258:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],1259:[function(e,t,n){arguments[4][453][0].apply(n,arguments)},{"./_assignValue":1166,"./_copyObject":1196,"./_createAssigner":1200,"./_isPrototype":1227,"./isArrayLike":1267,"./keys":1275,dup:453}],1260:[function(e,t,n){arguments[4][456][0].apply(n,arguments)},{"./_baseClone":1171,dup:456}],1261:[function(e,t,n){arguments[4][459][0].apply(n,arguments)},{dup:459}],1262:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],1263:[function(e,t,n){arguments[4][470][0].apply(n,arguments)},{"./_baseHas":1175,"./_hasPath":1213,dup:470}],1264:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],1265:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":1176,"./isObjectLike":1272,dup:474}],1266:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],1267:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":1269,"./isLength":1270,dup:476}],1268:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":1247,"./stubFalse":1279,dup:479}],1269:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":1174,"./isObject":1271,dup:480}],1270:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],1271:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],1272:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],1273:[function(e,t,n){arguments[4][489][0].apply(n,arguments)},{"./_baseGetTag":1174,"./isObjectLike":1272,dup:489}],1274:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":1178,"./_baseUnary":1185,"./_nodeUtil":1243,dup:490}],1275:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":1162,"./_baseKeys":1179,"./isArrayLike":1267,dup:491}],1276:[function(e,t,n){arguments[4][492][0].apply(n,arguments)},{"./_arrayLikeKeys":1162,"./_baseKeysIn":1180,"./isArrayLike":1267,dup:492}],1277:[function(e,t,n){arguments[4][494][0].apply(n,arguments)},{"./_MapCache":1150,dup:494}],1278:[function(e,t,n){arguments[4][501][0].apply(n,arguments)},{dup:501}],1279:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],1280:[function(e,t,n){arguments[4][507][0].apply(n,arguments)},{"./_baseToString":1184,dup:507}],1281:[function(e,t,n){arguments[4][226][0].apply(n,arguments)},{"babel-runtime/core-js/weak-map":1037,dup:226}],1282:[function(e,t,n){arguments[4][227][0].apply(n,arguments)},{"./path":1291,_process:13,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480,dup:227}],1283:[function(e,t,n){arguments[4][228][0].apply(n,arguments)},{"babel-runtime/helpers/classCallCheck":1038,dup:228}],1284:[function(e,t,n){arguments[4][229][0].apply(n,arguments)},{"./cache":1281,"./context":1282,"./hub":1283,"./path":1291,"./scope":1303,"./visitors":1305,"babel-messages":1025,"babel-runtime/core-js/get-iterator":1026,"babel-types":1480,dup:229,"lodash/includes":1447}],1285:[function(e,t,n){arguments[4][230][0].apply(n,arguments)},{"./index":1291,"babel-runtime/core-js/get-iterator":1026,"babel-types":1480,dup:230}],1286:[function(e,t,n){arguments[4][231][0].apply(n,arguments)},{dup:231}],1287:[function(e,t,n){arguments[4][232][0].apply(n,arguments)},{"../index":1284,"babel-runtime/core-js/get-iterator":1026,dup:232}],1288:[function(e,t,n){arguments[4][233][0].apply(n,arguments)},{"babel-types":1480,dup:233}],1289:[function(e,t,n){arguments[4][234][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/map":1028,"babel-runtime/helpers/typeof":1041,dup:234}],1290:[function(e,t,n){arguments[4][235][0].apply(n,arguments)},{"./index":1291,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/object/create":1030,"babel-types":1480,dup:235}],1291:[function(e,t,n){arguments[4][236][0].apply(n,arguments)},{"../cache":1281,"../index":1284,"../scope":1303,"./ancestry":1285,"./comments":1286,"./context":1287,"./conversion":1288,"./evaluation":1289,"./family":1290,"./inference":1292,"./introspection":1295,"./lib/virtual-types":1298,"./modification":1299,"./removal":1300,"./replacement":1301,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480,debug:1322,dup:236,invariant:1326,"lodash/assign":1440}],1292:[function(e,t,n){arguments[4][237][0].apply(n,arguments)},{"./inferers":1294,"babel-runtime/core-js/get-iterator":1026,"babel-types":1480,dup:237}],1293:[function(e,t,n){arguments[4][238][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":1026,"babel-types":1480,dup:238}],1294:[function(e,t,n){arguments[4][239][0].apply(n,arguments)},{"./inferer-reference":1293,"babel-types":1480,dup:239}],1295:[function(e,t,n){arguments[4][240][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/typeof":1041,"babel-types":1480,dup:240,"lodash/includes":1447}],1296:[function(e,t,n){arguments[4][241][0].apply(n,arguments)},{"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480,dup:241}],1297:[function(e,t,n){arguments[4][242][0].apply(n,arguments)},{dup:242}],1298:[function(e,t,n){arguments[4][243][0].apply(n,arguments)},{"babel-types":1480,dup:243}],1299:[function(e,t,n){arguments[4][244][0].apply(n,arguments)},{"../cache":1281,"./index":1291,"./lib/hoister":1296,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/helpers/typeof":1041,"babel-types":1480,dup:244}],1300:[function(e,t,n){arguments[4][245][0].apply(n,arguments)},{"./lib/removal-hooks":1297,"babel-runtime/core-js/get-iterator":1026,dup:245}],1301:[function(e,t,n){arguments[4][246][0].apply(n,arguments)},{"../index":1284,"./index":1291,"babel-code-frame":1306,"babel-runtime/core-js/get-iterator":1026,"babel-types":1480,babylon:1320,dup:246}],1302:[function(e,t,n){arguments[4][247][0].apply(n,arguments)},{"babel-runtime/helpers/classCallCheck":1038,dup:247}],1303:[function(e,t,n){arguments[4][248][0].apply(n,arguments)},{"../cache":1281,"../index":1284,"./binding":1302,"./lib/renamer":1304,"babel-messages":1025,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/map":1028,"babel-runtime/core-js/object/create":1030,"babel-runtime/core-js/object/keys":1032,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480,dup:248,globals:1325,"lodash/defaults":1444,"lodash/includes":1447,"lodash/repeat":1461}],1304:[function(e,t,n){arguments[4][249][0].apply(n,arguments)},{"../binding":1302,"babel-runtime/helpers/classCallCheck":1038,"babel-types":1480,dup:249}],1305:[function(e,t,n){arguments[4][250][0].apply(n,arguments)},{"./path/lib/virtual-types":1298,"babel-messages":1025,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/object/keys":1032,"babel-runtime/helpers/typeof":1041,"babel-types":1480,dup:250,"lodash/clone":1442}],1306:[function(e,t,n){arguments[4][60][0].apply(n,arguments)},{chalk:1307,dup:60,esutils:1318,"js-tokens":1319}],1307:[function(e,t,n){arguments[4][61][0].apply(n,arguments)},{_process:13,"ansi-styles":1308,dup:61,"escape-string-regexp":1309,"has-ansi":1310,"strip-ansi":1312,"supports-color":1314}],1308:[function(e,t,n){arguments[4][62][0].apply(n,arguments)},{dup:62}],1309:[function(e,t,n){arguments[4][63][0].apply(n,arguments)},{dup:63}],1310:[function(e,t,n){arguments[4][64][0].apply(n,arguments)},{"ansi-regex":1311,dup:64}],1311:[function(e,t,n){arguments[4][65][0].apply(n,arguments)},{dup:65}],1312:[function(e,t,n){arguments[4][66][0].apply(n,arguments)},{"ansi-regex":1313,dup:66}],1313:[function(e,t,n){arguments[4][65][0].apply(n,arguments)},{dup:65}],1314:[function(e,t,n){arguments[4][68][0].apply(n,arguments)},{_process:13,dup:68}],1315:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],1316:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],1317:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":1316,dup:71}],1318:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":1315,"./code":1316,"./keyword":1317,dup:72}],1319:[function(e,t,n){arguments[4][73][0].apply(n,arguments)},{dup:73}],1320:[function(e,t,n){arguments[4][274][0].apply(n,arguments)},{dup:274}],1321:[function(e,t,n){arguments[4][277][0].apply(n,arguments)},{dup:277}],1322:[function(e,t,n){arguments[4][278][0].apply(n,arguments)},{"./debug":1323,_process:13,dup:278}],1323:[function(e,t,n){arguments[4][279][0].apply(n,arguments)},{dup:279,ms:1321}],1324:[function(e,t,n){arguments[4][251][0].apply(n,arguments)},{dup:251}],1325:[function(e,t,n){arguments[4][252][0].apply(n,arguments)},{"./globals.json":1324,dup:252}],1326:[function(e,t,n){arguments[4][253][0].apply(n,arguments)},{dup:253}],1327:[function(e,t,n){arguments[4][282][0].apply(n,arguments)},{"./_getNative":1391,"./_root":1429,dup:282}],1328:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":1398,"./_hashDelete":1399,"./_hashGet":1400,"./_hashHas":1401,"./_hashSet":1402,dup:283}],1329:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":1411,"./_listCacheDelete":1412,"./_listCacheGet":1413,"./_listCacheHas":1414,"./_listCacheSet":1415,dup:284}],1330:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":1391,"./_root":1429,dup:285}],1331:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":1416,"./_mapCacheDelete":1417,"./_mapCacheGet":1418,"./_mapCacheHas":1419,"./_mapCacheSet":1420,dup:286}],1332:[function(e,t,n){arguments[4][287][0].apply(n,arguments)},{"./_getNative":1391,"./_root":1429,dup:287}],1333:[function(e,t,n){arguments[4][288][0].apply(n,arguments)},{"./_getNative":1391,"./_root":1429,dup:288}],1334:[function(e,t,n){arguments[4][290][0].apply(n,arguments)},{"./_ListCache":1329,"./_stackClear":1433,"./_stackDelete":1434,"./_stackGet":1435,"./_stackHas":1436,"./_stackSet":1437,dup:290}],1335:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":1429,dup:291}],1336:[function(e,t,n){arguments[4][292][0].apply(n,arguments)},{"./_root":1429,dup:292}],1337:[function(e,t,n){arguments[4][293][0].apply(n,arguments)},{"./_getNative":1391,"./_root":1429,dup:293}],1338:[function(e,t,n){arguments[4][294][0].apply(n,arguments)},{dup:294}],1339:[function(e,t,n){arguments[4][295][0].apply(n,arguments)},{dup:295}],1340:[function(e,t,n){arguments[4][296][0].apply(n,arguments)},{dup:296}],1341:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],1342:[function(e,t,n){arguments[4][298][0].apply(n,arguments)},{dup:298}],1343:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":1367,"./_isIndex":1406,"./isArguments":1448,"./isArray":1449,"./isBuffer":1451,"./isTypedArray":1458,dup:301}],1344:[function(e,t,n){arguments[4][302][0].apply(n,arguments)},{dup:302}],1345:[function(e,t,n){arguments[4][303][0].apply(n,arguments)},{dup:303}],1346:[function(e,t,n){arguments[4][304][0].apply(n,arguments)},{dup:304}],1347:[function(e,t,n){arguments[4][308][0].apply(n,arguments)},{"./_baseAssignValue":1351,"./eq":1445,dup:308}],1348:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":1445,dup:309}],1349:[function(e,t,n){arguments[4][310][0].apply(n,arguments)},{"./_copyObject":1380,"./keys":1459,dup:310}],1350:[function(e,t,n){arguments[4][311][0].apply(n,arguments)},{"./_copyObject":1380,"./keysIn":1460,dup:311}],1351:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{"./_defineProperty":1386,dup:312}],1352:[function(e,t,n){arguments[4][314][0].apply(n,arguments)},{"./_Stack":1334,"./_arrayEach":1341,"./_assignValue":1347,"./_baseAssign":1349,"./_baseAssignIn":1350,"./_cloneBuffer":1372,"./_copyArray":1379,"./_copySymbols":1381,"./_copySymbolsIn":1382,"./_getAllKeys":1388,"./_getAllKeysIn":1389,"./_getTag":1396,"./_initCloneArray":1403,"./_initCloneByTag":1404,"./_initCloneObject":1405,"./isArray":1449,"./isBuffer":1451,"./isObject":1454,"./keys":1459,dup:314}],1353:[function(e,t,n){arguments[4][315][0].apply(n,arguments)},{"./isObject":1454,dup:315}],1354:[function(e,t,n){arguments[4][317][0].apply(n,arguments)},{dup:317}],1355:[function(e,t,n){arguments[4][322][0].apply(n,arguments)},{"./_arrayPush":1345,"./isArray":1449,dup:322}],1356:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":1335,"./_getRawTag":1393,"./_objectToString":1426,dup:323}],1357:[function(e,t,n){arguments[4][326][0].apply(n,arguments)},{"./_baseFindIndex":1354,"./_baseIsNaN":1359,"./_strictIndexOf":1438,dup:326}],1358:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":1356,"./isObjectLike":1455,dup:327}],1359:[function(e,t,n){arguments[4][331][0].apply(n,arguments)},{dup:331}],1360:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":1409,"./_toSource":1439,"./isFunction":1452,"./isObject":1454,dup:332}],1361:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":1356,"./isLength":1453,"./isObjectLike":1455,dup:334}],1362:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":1410,"./_nativeKeys":1423,dup:336}],1363:[function(e,t,n){arguments[4][337][0].apply(n,arguments)},{"./_isPrototype":1410,"./_nativeKeysIn":1424,"./isObject":1454,dup:337}],1364:[function(e,t,n){arguments[4][346][0].apply(n,arguments)},{dup:346}],1365:[function(e,t,n){arguments[4][347][0].apply(n,arguments)},{"./_overRest":1428,"./_setToString":1431,"./identity":1446,dup:347}],1366:[function(e,t,n){arguments[4][348][0].apply(n,arguments)},{"./_defineProperty":1386,"./constant":1443,"./identity":1446,dup:348}],1367:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],1368:[function(e,t,n){arguments[4][352][0].apply(n,arguments)},{"./_Symbol":1335,"./_arrayMap":1344,"./isArray":1449,"./isSymbol":1457,dup:352}],1369:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],1370:[function(e,t,n){arguments[4][355][0].apply(n,arguments)},{"./_arrayMap":1344,dup:355}],1371:[function(e,t,n){arguments[4][361][0].apply(n,arguments)},{"./_Uint8Array":1336,dup:361}],1372:[function(e,t,n){arguments[4][362][0].apply(n,arguments)},{"./_root":1429,dup:362}],1373:[function(e,t,n){arguments[4][363][0].apply(n,arguments)},{"./_cloneArrayBuffer":1371,dup:363}],1374:[function(e,t,n){arguments[4][364][0].apply(n,arguments)},{"./_addMapEntry":1338,"./_arrayReduce":1346,"./_mapToArray":1421,dup:364}],1375:[function(e,t,n){arguments[4][365][0].apply(n,arguments)},{dup:365}],1376:[function(e,t,n){arguments[4][366][0].apply(n,arguments)},{"./_addSetEntry":1339,"./_arrayReduce":1346,"./_setToArray":1430,dup:366}],1377:[function(e,t,n){arguments[4][367][0].apply(n,arguments)},{"./_Symbol":1335,dup:367}],1378:[function(e,t,n){arguments[4][368][0].apply(n,arguments)},{"./_cloneArrayBuffer":1371,dup:368}],1379:[function(e,t,n){arguments[4][371][0].apply(n,arguments)},{dup:371}],1380:[function(e,t,n){arguments[4][372][0].apply(n,arguments)},{"./_assignValue":1347,"./_baseAssignValue":1351,dup:372}],1381:[function(e,t,n){arguments[4][373][0].apply(n,arguments)},{"./_copyObject":1380,"./_getSymbols":1394,dup:373}],1382:[function(e,t,n){arguments[4][374][0].apply(n,arguments)},{"./_copyObject":1380,"./_getSymbolsIn":1395,dup:374}],1383:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":1429,dup:375}],1384:[function(e,t,n){arguments[4][376][0].apply(n,arguments)},{"./_baseRest":1365,"./_isIterateeCall":1407,dup:376}],1385:[function(e,t,n){arguments[4][381][0].apply(n,arguments)},{"./eq":1445,dup:381}],1386:[function(e,t,n){arguments[4][382][0].apply(n,arguments)},{"./_getNative":1391,dup:382}],1387:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],1388:[function(e,t,n){arguments[4][387][0].apply(n,arguments)},{"./_baseGetAllKeys":1355,"./_getSymbols":1394,"./keys":1459,dup:387}],1389:[function(e,t,n){arguments[4][388][0].apply(n,arguments)},{"./_baseGetAllKeys":1355,"./_getSymbolsIn":1395,"./keysIn":1460,dup:388}],1390:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":1408,dup:389}],1391:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":1360,"./_getValue":1397,dup:391}],1392:[function(e,t,n){arguments[4][392][0].apply(n,arguments)},{"./_overArg":1427,dup:392}],1393:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":1335,dup:393}],1394:[function(e,t,n){arguments[4][394][0].apply(n,arguments)},{"./_arrayFilter":1342,"./stubArray":1462,dup:394}],1395:[function(e,t,n){arguments[4][395][0].apply(n,arguments)},{"./_arrayPush":1345,"./_getPrototype":1392,"./_getSymbols":1394,"./stubArray":1462,dup:395}],1396:[function(e,t,n){arguments[4][396][0].apply(n,arguments)},{"./_DataView":1327,"./_Map":1330,"./_Promise":1332,"./_Set":1333,"./_WeakMap":1337,"./_baseGetTag":1356,"./_toSource":1439,dup:396}],1397:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],1398:[function(e,t,n){arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":1422,dup:400}],1399:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],1400:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":1422,dup:402}],1401:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":1422,dup:403}],1402:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":1422,dup:404}],1403:[function(e,t,n){arguments[4][405][0].apply(n,arguments)},{dup:405}],1404:[function(e,t,n){arguments[4][406][0].apply(n,arguments)},{"./_cloneArrayBuffer":1371,"./_cloneDataView":1373,"./_cloneMap":1374,"./_cloneRegExp":1375,"./_cloneSet":1376,"./_cloneSymbol":1377,"./_cloneTypedArray":1378,dup:406}],1405:[function(e,t,n){arguments[4][407][0].apply(n,arguments)},{"./_baseCreate":1353,"./_getPrototype":1392,"./_isPrototype":1410,dup:407}],1406:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],1407:[function(e,t,n){arguments[4][410][0].apply(n,arguments)},{"./_isIndex":1406,"./eq":1445,"./isArrayLike":1450,"./isObject":1454,dup:410}],1408:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],1409:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":1383,dup:413}],1410:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],1411:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],1412:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":1348,dup:417}],1413:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":1348,dup:418}],1414:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":1348,dup:419}],1415:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":1348,dup:420}],1416:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":1328,"./_ListCache":1329,"./_Map":1330,dup:421}],1417:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":1390,dup:422}],1418:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":1390,dup:423}],1419:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":1390,dup:424}],1420:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":1390,dup:425}],1421:[function(e,t,n){arguments[4][426][0].apply(n,arguments)},{dup:426}],1422:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":1391,dup:429}],1423:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":1427,dup:430}],1424:[function(e,t,n){arguments[4][431][0].apply(n,arguments)},{dup:431}],1425:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":1387,dup:432}],1426:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],1427:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],1428:[function(e,t,n){arguments[4][435][0].apply(n,arguments)},{"./_apply":1340,dup:435}],1429:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":1387,dup:436}],1430:[function(e,t,n){arguments[4][439][0].apply(n,arguments)},{dup:439}],1431:[function(e,t,n){arguments[4][440][0].apply(n,arguments)},{"./_baseSetToString":1366,"./_shortOut":1432,dup:440}],1432:[function(e,t,n){arguments[4][441][0].apply(n,arguments)},{dup:441}],1433:[function(e,t,n){arguments[4][442][0].apply(n,arguments)},{"./_ListCache":1329,dup:442}],1434:[function(e,t,n){arguments[4][443][0].apply(n,arguments)},{dup:443}],1435:[function(e,t,n){arguments[4][444][0].apply(n,arguments)},{dup:444}],1436:[function(e,t,n){arguments[4][445][0].apply(n,arguments)},{dup:445}],1437:[function(e,t,n){arguments[4][446][0].apply(n,arguments)},{"./_ListCache":1329,"./_Map":1330,"./_MapCache":1331,dup:446}],1438:[function(e,t,n){arguments[4][447][0].apply(n,arguments)},{dup:447}],1439:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],1440:[function(e,t,n){arguments[4][453][0].apply(n,arguments)},{"./_assignValue":1347,"./_copyObject":1380,"./_createAssigner":1384,"./_isPrototype":1410,"./isArrayLike":1450,"./keys":1459,dup:453}],1441:[function(e,t,n){arguments[4][454][0].apply(n,arguments)},{"./_copyObject":1380,"./_createAssigner":1384,"./keysIn":1460,dup:454}],1442:[function(e,t,n){arguments[4][455][0].apply(n,arguments)},{"./_baseClone":1352,dup:455}],1443:[function(e,t,n){arguments[4][459][0].apply(n,arguments)},{dup:459}],1444:[function(e,t,n){arguments[4][460][0].apply(n,arguments)},{"./_apply":1340,"./_baseRest":1365,"./_customDefaultsAssignIn":1385,"./assignInWith":1441,dup:460}],1445:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],1446:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],1447:[function(e,t,n){arguments[4][473][0].apply(n,arguments)},{"./_baseIndexOf":1357,"./isArrayLike":1450,"./isString":1456,"./toInteger":1465,"./values":1468,dup:473}],1448:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":1358,"./isObjectLike":1455,dup:474}],1449:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],1450:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":1452,"./isLength":1453,dup:476}],1451:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":1429,"./stubFalse":1463,dup:479}],1452:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":1356,"./isObject":1454,dup:480}],1453:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],1454:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],1455:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],1456:[function(e,t,n){arguments[4][488][0].apply(n,arguments)},{"./_baseGetTag":1356,"./isArray":1449,"./isObjectLike":1455,dup:488}],1457:[function(e,t,n){arguments[4][489][0].apply(n,arguments)},{"./_baseGetTag":1356,"./isObjectLike":1455,dup:489}],1458:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":1361,"./_baseUnary":1369,"./_nodeUtil":1425,dup:490}],1459:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":1343,"./_baseKeys":1362,"./isArrayLike":1450,dup:491}],1460:[function(e,t,n){arguments[4][492][0].apply(n,arguments)},{"./_arrayLikeKeys":1343,"./_baseKeysIn":1363,"./isArrayLike":1450,dup:492}],1461:[function(e,t,n){arguments[4][498][0].apply(n,arguments)},{"./_baseRepeat":1364,"./_isIterateeCall":1407,"./toInteger":1465,"./toString":1467,dup:498}],1462:[function(e,t,n){arguments[4][501][0].apply(n,arguments)},{dup:501}],1463:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],1464:[function(e,t,n){arguments[4][503][0].apply(n,arguments)},{"./toNumber":1466,dup:503}],1465:[function(e,t,n){arguments[4][504][0].apply(n,arguments)},{"./toFinite":1464,dup:504}],1466:[function(e,t,n){arguments[4][505][0].apply(n,arguments)},{"./isObject":1454,"./isSymbol":1457,dup:505}],1467:[function(e,t,n){arguments[4][507][0].apply(n,arguments)},{"./_baseToString":1368,dup:507}],1468:[function(e,t,n){arguments[4][510][0].apply(n,arguments)},{"./_baseValues":1370,"./keys":1459,dup:510}],1469:[function(e,t,n){arguments[4][254][0].apply(n,arguments)},{"babel-runtime/core-js/symbol/for":1035,dup:254}],1470:[function(e,t,n){arguments[4][255][0].apply(n,arguments)},{"./index":1480,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/json/stringify":1027,"babel-runtime/core-js/number/max-safe-integer":1029,dup:255,"lodash/isNumber":1615,"lodash/isPlainObject":1618,"lodash/isRegExp":1619,"lodash/isString":1620}],1471:[function(e,t,n){arguments[4][256][0].apply(n,arguments)},{"../constants":1469,"../index":1480,"./index":1475,dup:256}],1472:[function(e,t,n){arguments[4][257][0].apply(n,arguments)},{"./index":1475,dup:257}],1473:[function(e,t,n){arguments[4][258][0].apply(n,arguments)},{"./index":1475,dup:258}],1474:[function(e,t,n){arguments[4][259][0].apply(n,arguments)},{"./index":1475,dup:259}],1475:[function(e,t,n){arguments[4][260][0].apply(n,arguments)},{"../index":1480,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/json/stringify":1027,"babel-runtime/helpers/typeof":1041,dup:260}],1476:[function(e,t,n){arguments[4][261][0].apply(n,arguments)},{"./core":1471,"./es2015":1472,"./experimental":1473,"./flow":1474,"./index":1475,"./jsx":1477,"./misc":1478,dup:261}],1477:[function(e,t,n){arguments[4][262][0].apply(n,arguments)},{"./index":1475,dup:262}],1478:[function(e,t,n){arguments[4][263][0].apply(n,arguments)},{"./index":1475,dup:263}],1479:[function(e,t,n){arguments[4][264][0].apply(n,arguments)},{"./index":1480,dup:264}],1480:[function(e,t,n){arguments[4][265][0].apply(n,arguments)},{"./constants":1469,"./converters":1470,"./definitions":1475,"./definitions/init":1476,"./flow":1479,"./react":1481,"./retrievers":1482,"./validators":1483,"babel-runtime/core-js/get-iterator":1026,
+"babel-runtime/core-js/json/stringify":1027,"babel-runtime/core-js/object/get-own-property-symbols":1031,"babel-runtime/core-js/object/keys":1032,dup:265,"lodash/clone":1603,"lodash/compact":1604,"lodash/each":1605,"lodash/uniq":1627,"to-fast-properties":1628}],1481:[function(e,t,n){arguments[4][266][0].apply(n,arguments)},{"./index":1480,dup:266}],1482:[function(e,t,n){arguments[4][267][0].apply(n,arguments)},{"./index":1480,"babel-runtime/core-js/object/create":1030,dup:267}],1483:[function(e,t,n){arguments[4][268][0].apply(n,arguments)},{"./constants":1469,"./index":1480,"./retrievers":1482,"babel-runtime/core-js/get-iterator":1026,"babel-runtime/core-js/object/keys":1032,"babel-runtime/helpers/typeof":1041,dup:268,esutils:1487}],1484:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],1485:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],1486:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":1485,dup:71}],1487:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":1484,"./code":1485,"./keyword":1486,dup:72}],1488:[function(e,t,n){arguments[4][282][0].apply(n,arguments)},{"./_getNative":1556,"./_root":1592,dup:282}],1489:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":1563,"./_hashDelete":1564,"./_hashGet":1565,"./_hashHas":1566,"./_hashSet":1567,dup:283}],1490:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":1575,"./_listCacheDelete":1576,"./_listCacheGet":1577,"./_listCacheHas":1578,"./_listCacheSet":1579,dup:284}],1491:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":1556,"./_root":1592,dup:285}],1492:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":1580,"./_mapCacheDelete":1581,"./_mapCacheGet":1582,"./_mapCacheHas":1583,"./_mapCacheSet":1584,dup:286}],1493:[function(e,t,n){arguments[4][287][0].apply(n,arguments)},{"./_getNative":1556,"./_root":1592,dup:287}],1494:[function(e,t,n){arguments[4][288][0].apply(n,arguments)},{"./_getNative":1556,"./_root":1592,dup:288}],1495:[function(e,t,n){arguments[4][289][0].apply(n,arguments)},{"./_MapCache":1492,"./_setCacheAdd":1593,"./_setCacheHas":1594,dup:289}],1496:[function(e,t,n){arguments[4][290][0].apply(n,arguments)},{"./_ListCache":1490,"./_stackClear":1596,"./_stackDelete":1597,"./_stackGet":1598,"./_stackHas":1599,"./_stackSet":1600,dup:290}],1497:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":1592,dup:291}],1498:[function(e,t,n){arguments[4][292][0].apply(n,arguments)},{"./_root":1592,dup:292}],1499:[function(e,t,n){arguments[4][293][0].apply(n,arguments)},{"./_getNative":1556,"./_root":1592,dup:293}],1500:[function(e,t,n){arguments[4][294][0].apply(n,arguments)},{dup:294}],1501:[function(e,t,n){arguments[4][295][0].apply(n,arguments)},{dup:295}],1502:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],1503:[function(e,t,n){arguments[4][298][0].apply(n,arguments)},{dup:298}],1504:[function(e,t,n){arguments[4][299][0].apply(n,arguments)},{"./_baseIndexOf":1522,dup:299}],1505:[function(e,t,n){arguments[4][300][0].apply(n,arguments)},{dup:300}],1506:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":1530,"./_isIndex":1571,"./isArguments":1609,"./isArray":1610,"./isBuffer":1612,"./isTypedArray":1621,dup:301}],1507:[function(e,t,n){arguments[4][303][0].apply(n,arguments)},{dup:303}],1508:[function(e,t,n){arguments[4][304][0].apply(n,arguments)},{dup:304}],1509:[function(e,t,n){arguments[4][308][0].apply(n,arguments)},{"./_baseAssignValue":1513,"./eq":1606,dup:308}],1510:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":1606,dup:309}],1511:[function(e,t,n){arguments[4][310][0].apply(n,arguments)},{"./_copyObject":1544,"./keys":1622,dup:310}],1512:[function(e,t,n){arguments[4][311][0].apply(n,arguments)},{"./_copyObject":1544,"./keysIn":1623,dup:311}],1513:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{"./_defineProperty":1551,dup:312}],1514:[function(e,t,n){arguments[4][314][0].apply(n,arguments)},{"./_Stack":1496,"./_arrayEach":1502,"./_assignValue":1509,"./_baseAssign":1511,"./_baseAssignIn":1512,"./_cloneBuffer":1536,"./_copyArray":1543,"./_copySymbols":1545,"./_copySymbolsIn":1546,"./_getAllKeys":1553,"./_getAllKeysIn":1554,"./_getTag":1561,"./_initCloneArray":1568,"./_initCloneByTag":1569,"./_initCloneObject":1570,"./isArray":1610,"./isBuffer":1612,"./isObject":1616,"./keys":1622,dup:314}],1515:[function(e,t,n){arguments[4][315][0].apply(n,arguments)},{"./isObject":1616,dup:315}],1516:[function(e,t,n){arguments[4][316][0].apply(n,arguments)},{"./_baseForOwn":1519,"./_createBaseEach":1548,dup:316}],1517:[function(e,t,n){arguments[4][317][0].apply(n,arguments)},{dup:317}],1518:[function(e,t,n){arguments[4][319][0].apply(n,arguments)},{"./_createBaseFor":1549,dup:319}],1519:[function(e,t,n){arguments[4][320][0].apply(n,arguments)},{"./_baseFor":1518,"./keys":1622,dup:320}],1520:[function(e,t,n){arguments[4][322][0].apply(n,arguments)},{"./_arrayPush":1507,"./isArray":1610,dup:322}],1521:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":1497,"./_getRawTag":1558,"./_objectToString":1590,dup:323}],1522:[function(e,t,n){arguments[4][326][0].apply(n,arguments)},{"./_baseFindIndex":1517,"./_baseIsNaN":1524,"./_strictIndexOf":1601,dup:326}],1523:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isObjectLike":1617,dup:327}],1524:[function(e,t,n){arguments[4][331][0].apply(n,arguments)},{dup:331}],1525:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":1573,"./_toSource":1602,"./isFunction":1613,"./isObject":1616,dup:332}],1526:[function(e,t,n){arguments[4][333][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isObjectLike":1617,dup:333}],1527:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isLength":1614,"./isObjectLike":1617,dup:334}],1528:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":1574,"./_nativeKeys":1587,dup:336}],1529:[function(e,t,n){arguments[4][337][0].apply(n,arguments)},{"./_isPrototype":1574,"./_nativeKeysIn":1588,"./isObject":1616,dup:337}],1530:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],1531:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],1532:[function(e,t,n){arguments[4][354][0].apply(n,arguments)},{"./_SetCache":1495,"./_arrayIncludes":1504,"./_arrayIncludesWith":1505,"./_cacheHas":1533,"./_createSet":1550,"./_setToArray":1595,dup:354}],1533:[function(e,t,n){arguments[4][356][0].apply(n,arguments)},{dup:356}],1534:[function(e,t,n){arguments[4][357][0].apply(n,arguments)},{"./identity":1608,dup:357}],1535:[function(e,t,n){arguments[4][361][0].apply(n,arguments)},{"./_Uint8Array":1498,dup:361}],1536:[function(e,t,n){arguments[4][362][0].apply(n,arguments)},{"./_root":1592,dup:362}],1537:[function(e,t,n){arguments[4][363][0].apply(n,arguments)},{"./_cloneArrayBuffer":1535,dup:363}],1538:[function(e,t,n){arguments[4][364][0].apply(n,arguments)},{"./_addMapEntry":1500,"./_arrayReduce":1508,"./_mapToArray":1585,dup:364}],1539:[function(e,t,n){arguments[4][365][0].apply(n,arguments)},{dup:365}],1540:[function(e,t,n){arguments[4][366][0].apply(n,arguments)},{"./_addSetEntry":1501,"./_arrayReduce":1508,"./_setToArray":1595,dup:366}],1541:[function(e,t,n){arguments[4][367][0].apply(n,arguments)},{"./_Symbol":1497,dup:367}],1542:[function(e,t,n){arguments[4][368][0].apply(n,arguments)},{"./_cloneArrayBuffer":1535,dup:368}],1543:[function(e,t,n){arguments[4][371][0].apply(n,arguments)},{dup:371}],1544:[function(e,t,n){arguments[4][372][0].apply(n,arguments)},{"./_assignValue":1509,"./_baseAssignValue":1513,dup:372}],1545:[function(e,t,n){arguments[4][373][0].apply(n,arguments)},{"./_copyObject":1544,"./_getSymbols":1559,dup:373}],1546:[function(e,t,n){arguments[4][374][0].apply(n,arguments)},{"./_copyObject":1544,"./_getSymbolsIn":1560,dup:374}],1547:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":1592,dup:375}],1548:[function(e,t,n){arguments[4][377][0].apply(n,arguments)},{"./isArrayLike":1611,dup:377}],1549:[function(e,t,n){arguments[4][378][0].apply(n,arguments)},{dup:378}],1550:[function(e,t,n){arguments[4][380][0].apply(n,arguments)},{"./_Set":1494,"./_setToArray":1595,"./noop":1624,dup:380}],1551:[function(e,t,n){arguments[4][382][0].apply(n,arguments)},{"./_getNative":1556,dup:382}],1552:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],1553:[function(e,t,n){arguments[4][387][0].apply(n,arguments)},{"./_baseGetAllKeys":1520,"./_getSymbols":1559,"./keys":1622,dup:387}],1554:[function(e,t,n){arguments[4][388][0].apply(n,arguments)},{"./_baseGetAllKeys":1520,"./_getSymbolsIn":1560,"./keysIn":1623,dup:388}],1555:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":1572,dup:389}],1556:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":1525,"./_getValue":1562,dup:391}],1557:[function(e,t,n){arguments[4][392][0].apply(n,arguments)},{"./_overArg":1591,dup:392}],1558:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":1497,dup:393}],1559:[function(e,t,n){arguments[4][394][0].apply(n,arguments)},{"./_arrayFilter":1503,"./stubArray":1625,dup:394}],1560:[function(e,t,n){arguments[4][395][0].apply(n,arguments)},{"./_arrayPush":1507,"./_getPrototype":1557,"./_getSymbols":1559,"./stubArray":1625,dup:395}],1561:[function(e,t,n){arguments[4][396][0].apply(n,arguments)},{"./_DataView":1488,"./_Map":1491,"./_Promise":1493,"./_Set":1494,"./_WeakMap":1499,"./_baseGetTag":1521,"./_toSource":1602,dup:396}],1562:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],1563:[function(e,t,n){arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":1586,dup:400}],1564:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],1565:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":1586,dup:402}],1566:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":1586,dup:403}],1567:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":1586,dup:404}],1568:[function(e,t,n){arguments[4][405][0].apply(n,arguments)},{dup:405}],1569:[function(e,t,n){arguments[4][406][0].apply(n,arguments)},{"./_cloneArrayBuffer":1535,"./_cloneDataView":1537,"./_cloneMap":1538,"./_cloneRegExp":1539,"./_cloneSet":1540,"./_cloneSymbol":1541,"./_cloneTypedArray":1542,dup:406}],1570:[function(e,t,n){arguments[4][407][0].apply(n,arguments)},{"./_baseCreate":1515,"./_getPrototype":1557,"./_isPrototype":1574,dup:407}],1571:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],1572:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],1573:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":1547,dup:413}],1574:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],1575:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],1576:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":1510,dup:417}],1577:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":1510,dup:418}],1578:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":1510,dup:419}],1579:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":1510,dup:420}],1580:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":1489,"./_ListCache":1490,"./_Map":1491,dup:421}],1581:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":1555,dup:422}],1582:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":1555,dup:423}],1583:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":1555,dup:424}],1584:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":1555,dup:425}],1585:[function(e,t,n){arguments[4][426][0].apply(n,arguments)},{dup:426}],1586:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":1556,dup:429}],1587:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":1591,dup:430}],1588:[function(e,t,n){arguments[4][431][0].apply(n,arguments)},{dup:431}],1589:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":1552,dup:432}],1590:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],1591:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],1592:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":1552,dup:436}],1593:[function(e,t,n){arguments[4][437][0].apply(n,arguments)},{dup:437}],1594:[function(e,t,n){arguments[4][438][0].apply(n,arguments)},{dup:438}],1595:[function(e,t,n){arguments[4][439][0].apply(n,arguments)},{dup:439}],1596:[function(e,t,n){arguments[4][442][0].apply(n,arguments)},{"./_ListCache":1490,dup:442}],1597:[function(e,t,n){arguments[4][443][0].apply(n,arguments)},{dup:443}],1598:[function(e,t,n){arguments[4][444][0].apply(n,arguments)},{dup:444}],1599:[function(e,t,n){arguments[4][445][0].apply(n,arguments)},{dup:445}],1600:[function(e,t,n){arguments[4][446][0].apply(n,arguments)},{"./_ListCache":1490,"./_Map":1491,"./_MapCache":1492,dup:446}],1601:[function(e,t,n){arguments[4][447][0].apply(n,arguments)},{dup:447}],1602:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],1603:[function(e,t,n){arguments[4][455][0].apply(n,arguments)},{"./_baseClone":1514,dup:455}],1604:[function(e,t,n){arguments[4][458][0].apply(n,arguments)},{dup:458}],1605:[function(e,t,n){arguments[4][461][0].apply(n,arguments)},{"./forEach":1607,dup:461}],1606:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],1607:[function(e,t,n){arguments[4][468][0].apply(n,arguments)},{"./_arrayEach":1502,"./_baseEach":1516,"./_castFunction":1534,"./isArray":1610,dup:468}],1608:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],1609:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":1523,"./isObjectLike":1617,dup:474}],1610:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],1611:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":1613,"./isLength":1614,dup:476}],1612:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":1592,"./stubFalse":1626,dup:479}],1613:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isObject":1616,dup:480}],1614:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],1615:[function(e,t,n){arguments[4][483][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isObjectLike":1617,dup:483}],1616:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],1617:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],1618:[function(e,t,n){arguments[4][486][0].apply(n,arguments)},{"./_baseGetTag":1521,"./_getPrototype":1557,"./isObjectLike":1617,dup:486}],1619:[function(e,t,n){arguments[4][487][0].apply(n,arguments)},{"./_baseIsRegExp":1526,"./_baseUnary":1531,"./_nodeUtil":1589,dup:487}],1620:[function(e,t,n){arguments[4][488][0].apply(n,arguments)},{"./_baseGetTag":1521,"./isArray":1610,"./isObjectLike":1617,dup:488}],1621:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":1527,"./_baseUnary":1531,"./_nodeUtil":1589,dup:490}],1622:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":1506,"./_baseKeys":1528,"./isArrayLike":1611,dup:491}],1623:[function(e,t,n){arguments[4][492][0].apply(n,arguments)},{"./_arrayLikeKeys":1506,"./_baseKeysIn":1529,"./isArrayLike":1611,dup:492}],1624:[function(e,t,n){arguments[4][496][0].apply(n,arguments)},{dup:496}],1625:[function(e,t,n){arguments[4][501][0].apply(n,arguments)},{dup:501}],1626:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],1627:[function(e,t,n){arguments[4][509][0].apply(n,arguments)},{"./_baseUniq":1532,dup:509}],1628:[function(e,t,n){arguments[4][273][0].apply(n,arguments)},{dup:273}],1629:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e){function t(e){var t=e.node,n=e.scope,r=[],i=t.right;if(!s.isIdentifier(i)||!n.hasBinding(i.name)){var a=n.generateUidIdentifier("arr");r.push(s.variableDeclaration("var",[s.variableDeclarator(a,i)])),i=a}var u=n.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});s.inherits(l,t),s.ensureBlock(l);var c=s.memberExpression(i,u,!0),p=t.left;return s.isVariableDeclaration(p)?(p.declarations[0].init=c,l.body.body.unshift(p)):l.body.body.unshift(s.expressionStatement(s.assignmentExpression("=",p,c))),e.parentPath.isLabeledStatement()&&(l=s.labeledStatement(e.parentPath.node.label,l)),r.push(l),r}function n(e,t){var n=e.node,r=e.scope,a=n.left,o=void 0,l=void 0;if(s.isIdentifier(a)||s.isPattern(a)||s.isMemberExpression(a))l=a;else{if(!s.isVariableDeclaration(a))throw t.buildCodeFrameError(a,i.get("unknownForHead",a.type));l=r.generateUidIdentifier("ref"),o=s.variableDeclaration(a.kind,[s.variableDeclarator(a.declarations[0].id,l)])}var c=r.generateUidIdentifier("iterator"),p=r.generateUidIdentifier("isArray"),f=u({LOOP_OBJECT:c,IS_ARRAY:p,OBJECT:n.right,INDEX:r.generateUidIdentifier("i"),ID:l});return o||f.body.body.shift(),{declar:o,node:f,loop:f}}function r(e,t){var n=e.node,r=e.scope,a=e.parent,o=n.left,u=void 0,c=r.generateUidIdentifier("step"),p=s.memberExpression(c,s.identifier("value"));if(s.isIdentifier(o)||s.isPattern(o)||s.isMemberExpression(o))u=s.expressionStatement(s.assignmentExpression("=",o,p));else{if(!s.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=s.variableDeclaration(o.kind,[s.variableDeclarator(o.declarations[0].id,p)])}var f=r.generateUidIdentifier("iterator"),h=l({ITERATOR_HAD_ERROR_KEY:r.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:r.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:r.generateUidIdentifier("iteratorError"),ITERATOR_KEY:f,STEP_KEY:c,OBJECT:n.right,BODY:null}),d=s.isLabeledStatement(a),y=h[3].block.body,m=y[0];return d&&(y[0]=s.labeledStatement(a.label,m)),{replaceParent:d,declar:u,loop:m,node:h}}var i=e.messages,a=e.template,s=e.types,o=a("\n for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n "),u=a("\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n var ID;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n "),l=a("\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var a=r;i.opts.loose&&(a=n);var o=e.node,u=a(e,i),l=u.declar,c=u.loop,p=c.body;e.ensureBlock(),l&&p.body.push(l),p.body=p.body.concat(o.body.body),s.inherits(c,o),s.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},t.exports=n.default},{}],1630:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){d.default.ok(this instanceof a),m.assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=s(),this.tryEntries=[],this.leapManager=new g.LeapManager(this)}function s(){return m.numericLiteral(-1)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+(0,f.default)(e))}function u(e){var t=e.type;return"normal"===t?!A.call(e,"target"):"break"===t||"continue"===t?!A.call(e,"value")&&m.isLiteral(e.target):("return"===t||"throw"===t)&&(A.call(e,"value")&&!A.call(e,"target"))}var l=e("babel-runtime/helpers/typeof"),c=i(l),p=e("babel-runtime/core-js/json/stringify"),f=i(p),h=e("assert"),d=i(h),y=e("babel-types"),m=r(y),b=e("./leap"),g=r(b),v=e("./meta"),x=r(v),_=e("./util"),E=r(_),A=Object.prototype.hasOwnProperty,D=a.prototype;n.Emitter=a,D.mark=function(e){m.assertLiteral(e);var t=this.listing.length;return e.value===-1?e.value=t:d.default.strictEqual(e.value,t),this.marked[t]=!0,e},D.emit=function(e){m.isExpression(e)&&(e=m.expressionStatement(e)),m.assertStatement(e),this.listing.push(e)},D.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},D.assign=function(e,t){return m.expressionStatement(m.assignmentExpression("=",e,t))},D.contextProperty=function(e,t){return m.memberExpression(this.contextId,t?m.stringLiteral(e):m.identifier(e),!!t)},D.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},D.setReturnValue=function(e){m.assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},D.clearPendingException=function(e,t){m.assertLiteral(e);var n=m.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,n):this.emit(n)},D.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(m.breakStatement())},D.jumpIf=function(e,t){m.assertExpression(e),m.assertLiteral(t),this.emit(m.ifStatement(e,m.blockStatement([this.assign(this.contextProperty("next"),t),m.breakStatement()])))},D.jumpIfNot=function(e,t){m.assertExpression(e),m.assertLiteral(t);var n=void 0;n=m.isUnaryExpression(e)&&"!"===e.operator?e.argument:m.unaryExpression("!",e),this.emit(m.ifStatement(n,m.blockStatement([this.assign(this.contextProperty("next"),t),m.breakStatement()])))},D.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},D.getContextFunction=function(e){return m.functionExpression(e||null,[this.contextId],m.blockStatement([this.getDispatchLoop()]),!1,!1)},D.getDispatchLoop=function(){var e=this,t=[],n=void 0,r=!1;return e.listing.forEach(function(i,a){e.marked.hasOwnProperty(a)&&(t.push(m.switchCase(m.numericLiteral(a),n=[])),r=!1),r||(n.push(i),m.isCompletionStatement(i)&&(r=!0))}),this.finalLoc.value=this.listing.length,t.push(m.switchCase(this.finalLoc,[]),m.switchCase(m.stringLiteral("end"),[m.returnStatement(m.callExpression(this.contextProperty("stop"),[]))])),m.whileStatement(m.numericLiteral(1),m.switchStatement(m.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),t))},D.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return m.arrayExpression(this.tryEntries.map(function(t){var n=t.firstLoc.value;d.default.ok(n>=e,"try entries out of order"),e=n;var r=t.catchEntry,i=t.finallyEntry,a=[t.firstLoc,r?r.firstLoc:null];return i&&(a[2]=i.firstLoc,a[3]=i.afterLoc),m.arrayExpression(a)}))},D.explode=function(e,t){var n=e.node,r=this;if(m.assertNode(n),m.isDeclaration(n))throw o(n);if(m.isStatement(n))return r.explodeStatement(e);if(m.isExpression(n))return r.explodeExpression(e,t);switch(n.type){case"Program":return e.get("body").map(r.explodeStatement,r);case"VariableDeclarator":throw o(n);case"Property":case"SwitchCase":case"CatchClause":throw new Error(n.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+(0,f.default)(n.type))}},D.explodeStatement=function(e,t){var n=e.node,r=this,i=void 0,a=void 0,o=void 0;if(m.assertStatement(n),t?m.assertIdentifier(t):t=null,m.isBlockStatement(n))return void e.get("body").forEach(function(e){r.explodeStatement(e)});if(!x.containsLeap(n))return void r.emit(n);var u=function(){switch(n.type){case"ExpressionStatement":r.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":a=s(),r.leapManager.withEntry(new g.LabeledEntry(a,n.label),function(){r.explodeStatement(e.get("body"),n.label)}),r.mark(a);break;case"WhileStatement":i=s(),a=s(),r.mark(i),r.jumpIfNot(r.explodeExpression(e.get("test")),a),r.leapManager.withEntry(new g.LoopEntry(a,i,t),function(){r.explodeStatement(e.get("body"))}),r.jump(i),r.mark(a);break;case"DoWhileStatement":var u=s(),l=s();a=s(),r.mark(u),r.leapManager.withEntry(new g.LoopEntry(a,l,t),function(){r.explode(e.get("body"))}),r.mark(l),r.jumpIf(r.explodeExpression(e.get("test")),u),r.mark(a);break;case"ForStatement":o=s();var c=s();a=s(),n.init&&r.explode(e.get("init"),!0),r.mark(o),n.test&&r.jumpIfNot(r.explodeExpression(e.get("test")),a),r.leapManager.withEntry(new g.LoopEntry(a,c,t),function(){r.explodeStatement(e.get("body"))}),r.mark(c),n.update&&r.explode(e.get("update"),!0),r.jump(o),r.mark(a);break;case"TypeCastExpression":return{v:r.explodeExpression(e.get("expression"))};case"ForInStatement":o=s(),a=s();var p=r.makeTempVar();r.emitAssign(p,m.callExpression(E.runtimeProperty("keys"),[r.explodeExpression(e.get("right"))])),r.mark(o);var h=r.makeTempVar();r.jumpIf(m.memberExpression(m.assignmentExpression("=",h,m.callExpression(p,[])),m.identifier("done"),!1),a),r.emitAssign(n.left,m.memberExpression(h,m.identifier("value"),!1)),r.leapManager.withEntry(new g.LoopEntry(a,o,t),function(){r.explodeStatement(e.get("body"))}),r.jump(o),r.mark(a);break;case"BreakStatement":r.emitAbruptCompletion({type:"break",target:r.leapManager.getBreakLoc(n.label)});break;case"ContinueStatement":r.emitAbruptCompletion({type:"continue",target:r.leapManager.getContinueLoc(n.label)});break;case"SwitchStatement":var y=r.emitAssign(r.makeTempVar(),r.explodeExpression(e.get("discriminant")));a=s();for(var b=s(),v=b,x=[],_=n.cases||[],A=_.length-1;A>=0;--A){var D=_[A];m.assertSwitchCase(D),D.test?v=m.conditionalExpression(m.binaryExpression("===",y,D.test),x[A]=s(),v):x[A]=b}var S=e.get("discriminant");S.replaceWith(v),r.jump(r.explodeExpression(S)),r.leapManager.withEntry(new g.SwitchEntry(a),function(){e.get("cases").forEach(function(e){var t=e.key;r.mark(x[t]),e.get("consequent").forEach(function(e){r.explodeStatement(e)})})}),r.mark(a),b.value===-1&&(r.mark(b),d.default.strictEqual(a.value,b.value));break;case"IfStatement":var w=n.alternate&&s();a=s(),r.jumpIfNot(r.explodeExpression(e.get("test")),w||a),r.explodeStatement(e.get("consequent")),w&&(r.jump(a),r.mark(w),r.explodeStatement(e.get("alternate"))),r.mark(a);break;case"ReturnStatement":r.emitAbruptCompletion({type:"return",value:r.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":a=s();var k=n.handler,F=k&&s(),T=F&&new g.CatchEntry(F,k.param),P=n.finalizer&&s(),j=P&&new g.FinallyEntry(P,a),B=new g.TryEntry(r.getUnmarkedCurrentLoc(),T,j);r.tryEntries.push(B),r.updateContextPrevLoc(B.firstLoc),r.leapManager.withEntry(B,function(){r.explodeStatement(e.get("block")),F&&!function(){P?r.jump(P):r.jump(a),r.updateContextPrevLoc(r.mark(F));var t=e.get("handler.body"),n=r.makeTempVar();r.clearPendingException(B.firstLoc,n),t.traverse(C,{safeParam:n,catchParamName:k.param.name}),r.leapManager.withEntry(T,function(){r.explodeStatement(t)})}(),P&&(r.updateContextPrevLoc(r.mark(P)),r.leapManager.withEntry(j,function(){r.explodeStatement(e.get("finalizer"))}),r.emit(m.returnStatement(m.callExpression(r.contextProperty("finish"),[j.firstLoc]))))}),r.mark(a);break;case"ThrowStatement":r.emit(m.throwStatement(r.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+(0,f.default)(n.type))}}();return"object"===("undefined"==typeof u?"undefined":(0,c.default)(u))?u.v:void 0};var C={Identifier:function(e,t){e.node.name===t.catchParamName&&E.isReference(e)&&e.replaceWith(t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};D.emitAbruptCompletion=function(e){u(e)||d.default.ok(!1,"invalid completion record: "+(0,f.default)(e)),d.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[m.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(m.assertLiteral(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(m.assertExpression(e.value),t[1]=e.value),this.emit(m.returnStatement(m.callExpression(this.contextProperty("abrupt"),t)))},D.getUnmarkedCurrentLoc=function(){return m.numericLiteral(this.listing.length)},D.updateContextPrevLoc=function(e){e?(m.assertLiteral(e),e.value===-1?e.value=this.listing.length:d.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},D.explodeExpression=function(e,t){function n(e){return m.assertExpression(e),t?void a.emit(e):e}function r(e,t,n){d.default.ok(!n||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var r=a.explodeExpression(t,n);return n||(e||l&&!m.isLiteral(r))&&(r=a.emitAssign(e||a.makeTempVar(),r)),r}var i=e.node;if(!i)return i;m.assertExpression(i);var a=this,o=void 0,u=void 0;if(!x.containsLeap(i))return n(i);var l=x.containsLeap.onlyChildren(i),p=function(){switch(i.type){case"MemberExpression":return{v:n(m.memberExpression(a.explodeExpression(e.get("object")),i.computed?r(null,e.get("property")):i.property,i.computed))};case"CallExpression":var l=e.get("callee"),c=e.get("arguments"),p=void 0,h=[],y=!1;if(c.forEach(function(e){y=y||x.containsLeap(e.node)}),m.isMemberExpression(l.node))if(y){var b=r(a.makeTempVar(),l.get("object")),g=l.node.computed?r(null,l.get("property")):l.node.property;h.unshift(b),p=m.memberExpression(m.memberExpression(b,g,l.node.computed),m.identifier("call"),!1)}else p=a.explodeExpression(l);else p=r(null,l),m.isMemberExpression(p)&&(p=m.sequenceExpression([m.numericLiteral(0),p]));return c.forEach(function(e){h.push(r(null,e))}),{v:n(m.callExpression(p,h))};case"NewExpression":return{v:n(m.newExpression(r(null,e.get("callee")),e.get("arguments").map(function(e){return r(null,e)})))};case"ObjectExpression":return{v:n(m.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?m.objectProperty(e.node.key,r(null,e.get("value")),e.node.computed):e.node})))};case"ArrayExpression":return{v:n(m.arrayExpression(e.get("elements").map(function(e){return r(null,e)})))};case"SequenceExpression":var v=i.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===v?o=a.explodeExpression(e,t):a.explodeExpression(e,!0)}),{v:o};case"LogicalExpression":u=s(),t||(o=a.makeTempVar());var _=r(o,e.get("left"));return"&&"===i.operator?a.jumpIfNot(_,u):(d.default.strictEqual(i.operator,"||"),a.jumpIf(_,u)),r(o,e.get("right"),t),a.mark(u),{v:o};case"ConditionalExpression":var E=s();u=s();var A=a.explodeExpression(e.get("test"));return a.jumpIfNot(A,E),t||(o=a.makeTempVar()),r(o,e.get("consequent"),t),a.jump(u),a.mark(E),r(o,e.get("alternate"),t),a.mark(u),{v:o};case"UnaryExpression":return{v:n(m.unaryExpression(i.operator,a.explodeExpression(e.get("argument")),!!i.prefix))};case"BinaryExpression":return{v:n(m.binaryExpression(i.operator,r(null,e.get("left")),r(null,e.get("right"))))};case"AssignmentExpression":return{v:n(m.assignmentExpression(i.operator,a.explodeExpression(e.get("left")),a.explodeExpression(e.get("right"))))};case"UpdateExpression":return{v:n(m.updateExpression(i.operator,a.explodeExpression(e.get("argument")),i.prefix))};case"YieldExpression":
+u=s();var D=i.argument&&a.explodeExpression(e.get("argument"));if(D&&i.delegate){var C=a.makeTempVar();return a.emit(m.returnStatement(m.callExpression(a.contextProperty("delegateYield"),[D,m.stringLiteral(C.property.name),u]))),a.mark(u),{v:C}}return a.emitAssign(a.contextProperty("next"),u),a.emit(m.returnStatement(D||null)),a.mark(u),{v:a.contextProperty("sent")};default:throw new Error("unknown Expression of type "+(0,f.default)(i.type))}}();return"object"===("undefined"==typeof p?"undefined":(0,c.default)(p))?p.v:void 0}},{"./leap":1633,"./meta":1634,"./util":1635,assert:2,"babel-runtime/core-js/json/stringify":1638,"babel-runtime/helpers/typeof":1646,"babel-types":1737}],1631:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}var a=e("babel-runtime/core-js/object/keys"),s=i(a),o=e("babel-types"),u=r(o),l=Object.prototype.hasOwnProperty;n.hoist=function(e){function t(e,t){u.assertVariableDeclaration(e);var r=[];return e.declarations.forEach(function(e){n[e.id.name]=u.identifier(e.id.name),e.init?r.push(u.assignmentExpression("=",e.id,e.init)):t&&r.push(e.id)}),0===r.length?null:1===r.length?r[0]:u.sequenceExpression(r)}u.assertFunction(e.node);var n={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var n=t(e.node,!1);null===n?e.remove():e.replaceWith(u.expressionStatement(n)),e.skip()}},ForStatement:function(e){var n=e.node.init;u.isVariableDeclaration(n)&&e.get("init").replaceWith(t(n,!1))},ForXStatement:function(e){var n=e.get("left");n.isVariableDeclaration()&&n.replaceWith(t(n.node,!0))},FunctionDeclaration:function(e){var t=e.node;n[t.id.name]=t.id;var r=u.expressionStatement(u.assignmentExpression("=",t.id,u.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",r),e.remove()):e.replaceWith(r),e.skip()},FunctionExpression:function(e){e.skip()}});var r={};e.get("params").forEach(function(e){var t=e.node;u.isIdentifier(t)&&(r[t.name]=t)});var i=[];return(0,s.default)(n).forEach(function(e){l.call(r,e)||i.push(u.variableDeclarator(n[e],null))}),0===i.length?null:u.variableDeclaration("var",i)}},{"babel-runtime/core-js/object/keys":1642,"babel-types":1737}],1632:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(){return e("./visit")}},{"./visit":1636}],1633:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(){y.default.ok(this instanceof a)}function s(e){a.call(this),b.assertLiteral(e),this.returnLoc=e}function o(e,t,n){a.call(this),b.assertLiteral(e),b.assertLiteral(t),n?b.assertIdentifier(n):n=null,this.breakLoc=e,this.continueLoc=t,this.label=n}function u(e){a.call(this),b.assertLiteral(e),this.breakLoc=e}function l(e,t,n){a.call(this),b.assertLiteral(e),t?y.default.ok(t instanceof c):t=null,n?y.default.ok(n instanceof p):n=null,y.default.ok(t||n),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=n}function c(e,t){a.call(this),b.assertLiteral(e),b.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function p(e,t){a.call(this),b.assertLiteral(e),b.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function f(e,t){a.call(this),b.assertLiteral(e),b.assertIdentifier(t),this.breakLoc=e,this.label=t}function h(t){y.default.ok(this instanceof h);var n=e("./emit").Emitter;y.default.ok(t instanceof n),this.emitter=t,this.entryStack=[new s(t.finalLoc)]}var d=e("assert"),y=i(d),m=e("babel-types"),b=r(m),g=e("util");(0,g.inherits)(s,a),n.FunctionEntry=s,(0,g.inherits)(o,a),n.LoopEntry=o,(0,g.inherits)(u,a),n.SwitchEntry=u,(0,g.inherits)(l,a),n.TryEntry=l,(0,g.inherits)(c,a),n.CatchEntry=c,(0,g.inherits)(p,a),n.FinallyEntry=p,(0,g.inherits)(f,a),n.LabeledEntry=f;var v=h.prototype;n.LeapManager=h,v.withEntry=function(e,t){y.default.ok(e instanceof a),this.entryStack.push(e);try{t.call(this.emitter)}finally{var n=this.entryStack.pop();y.default.strictEqual(n,e)}},v._findLeapLocation=function(e,t){for(var n=this.entryStack.length-1;n>=0;--n){var r=this.entryStack[n],i=r[e];if(i)if(t){if(r.label&&r.label.name===t.name)return i}else if(!(r instanceof f))return i}return null},v.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},v.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},{"./emit":1630,assert:2,"babel-types":1737,util:35}],1634:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){function n(e){function t(e){return n||(Array.isArray(e)?e.some(t):l.isNode(e)&&(o.default.strictEqual(n,!1),n=r(e))),n}l.assertNode(e);var n=!1,i=l.VISITOR_KEYS[e.type];if(i)for(var a=0;a<i.length;a++){var s=i[a],u=e[s];t(u)}return n}function r(r){l.assertNode(r);var i=c(r);return p.call(i,e)?i[e]:p.call(f,r.type)?i[e]=!1:p.call(t,r.type)?i[e]=!0:i[e]=n(r)}return r.onlyChildren=n,r}var s=e("assert"),o=i(s),u=e("babel-types"),l=r(u),c=e("private").makeAccessor(),p=Object.prototype.hasOwnProperty,f={FunctionExpression:!0},h={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},d={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var y in d)p.call(d,y)&&(h[y]=d[y]);n.hasSideEffects=a("hasSideEffects",h),n.containsLeap=a("containsLeap",d)},{assert:2,"babel-types":1737,private:1886}],1635:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return o.memberExpression(o.identifier("regeneratorRuntime"),o.identifier(e),!1)}function a(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}n.__esModule=!0,n.runtimeProperty=i,n.isReference=a;var s=e("babel-types"),o=r(s)},{"babel-types":1737}],1636:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function a(e){var t=e.node;if(p.assertFunction(t),t.id||(t.id=e.scope.parent.generateUidIdentifier("callee")),t.generator&&p.isFunctionDeclaration(t)){var n=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!n)return t.id;var r=s(n),i=r.declarations[0].id,a=r.declarations[0].init.callee.object;p.assertArrayExpression(a);var o=a.elements.length;return a.elements.push(t.id),p.memberExpression(i,p.numericLiteral(o),!0)}return t.id}function s(e){var t=e.node;l.default.ok(Array.isArray(t.body));var n=m(t);return n.decl?n.decl:(n.decl=p.variableDeclaration("var",[p.variableDeclarator(e.scope.generateUidIdentifier("marked"),p.callExpression(p.memberExpression(p.arrayExpression([]),p.identifier("map"),!1),[y.runtimeProperty("mark")]))]),e.unshiftContainer("body",n.decl),n.decl)}function o(e,t){var n={didRenameArguments:!1,argsId:t};return e.traverse(b,n),n.didRenameArguments}var u=e("assert"),l=i(u),c=e("babel-types"),p=r(c),f=e("./hoist"),h=e("./emit"),d=e("./util"),y=r(d),m=e("private").makeAccessor();n.visitor={Function:{exit:function(e,t){var n=e.node;if(n.generator){if(n.async){if(t.opts.asyncGenerators===!1)return}else if(t.opts.generators===!1)return}else{if(!n.async)return;if(t.opts.async===!1)return}var r=e.scope.generateUidIdentifier("context"),i=e.scope.generateUidIdentifier("args");e.ensureBlock();var s=e.get("body");n.async&&s.traverse(v),s.traverse(g,{context:r});var u=[],l=[];s.get("body").forEach(function(e){var t=e.node;p.isExpressionStatement(t)&&p.isStringLiteral(t.expression)?u.push(t):t&&null!=t._blockHoist?u.push(t):l.push(t)}),u.length>0&&(s.node.body=l);var c=a(e);p.assertIdentifier(n.id);var d=p.identifier(n.id.name+"$"),m=(0,f.hoist)(e),b=o(e,i);b&&(m=m||p.variableDeclaration("var",[]),m.declarations.push(p.variableDeclarator(i,p.identifier("arguments"))));var x=new h.Emitter(r);x.explode(e.get("body")),m&&m.declarations.length>0&&u.push(m);var _=[x.getContextFunction(d),n.generator?c:p.nullLiteral(),p.thisExpression()],E=x.getTryLocsList();E&&_.push(E);var A=p.callExpression(y.runtimeProperty(n.async?"async":"wrap"),_);u.push(p.returnStatement(A)),n.body=p.blockStatement(u);var D=s.node.directives;D&&(n.body.directives=D);var C=n.generator;C&&(n.generator=!1),n.async&&(n.async=!1),C&&p.isExpression(n)&&e.replaceWith(p.callExpression(y.runtimeProperty("mark"),[n])),e.requeue()}}};var b={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&y.isReference(e)&&(e.replaceWith(t.argsId),t.didRenameArguments=!0)}},g={MetaProperty:function(e){var t=e.node;"function"===t.meta.name&&"sent"===t.property.name&&e.replaceWith(p.memberExpression(this.context,p.identifier("_sent")))}},v={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument;e.replaceWith(p.yieldExpression(p.callExpression(y.runtimeProperty("awrap"),[t]),!1))}}},{"./emit":1630,"./hoist":1631,"./util":1635,assert:2,"babel-types":1737,private:1886}],1637:[function(e,t,n){arguments[4][100][0].apply(n,arguments)},{"core-js/library/fn/get-iterator":1647,dup:100}],1638:[function(e,t,n){arguments[4][101][0].apply(n,arguments)},{"core-js/library/fn/json/stringify":1648,dup:101}],1639:[function(e,t,n){arguments[4][103][0].apply(n,arguments)},{"core-js/library/fn/number/max-safe-integer":1649,dup:103}],1640:[function(e,t,n){arguments[4][105][0].apply(n,arguments)},{"core-js/library/fn/object/create":1650,dup:105}],1641:[function(e,t,n){arguments[4][106][0].apply(n,arguments)},{"core-js/library/fn/object/get-own-property-symbols":1651,dup:106}],1642:[function(e,t,n){arguments[4][107][0].apply(n,arguments)},{"core-js/library/fn/object/keys":1652,dup:107}],1643:[function(e,t,n){arguments[4][109][0].apply(n,arguments)},{"core-js/library/fn/symbol":1654,dup:109}],1644:[function(e,t,n){arguments[4][110][0].apply(n,arguments)},{"core-js/library/fn/symbol/for":1653,dup:110}],1645:[function(e,t,n){arguments[4][111][0].apply(n,arguments)},{"core-js/library/fn/symbol/iterator":1655,dup:111}],1646:[function(e,t,n){arguments[4][118][0].apply(n,arguments)},{"../core-js/symbol":1643,"../core-js/symbol/iterator":1645,dup:118}],1647:[function(e,t,n){arguments[4][119][0].apply(n,arguments)},{"../modules/core.get-iterator":1715,"../modules/es6.string.iterator":1721,"../modules/web.dom.iterable":1725,dup:119}],1648:[function(e,t,n){arguments[4][120][0].apply(n,arguments)},{"../../modules/_core":1662,dup:120}],1649:[function(e,t,n){arguments[4][122][0].apply(n,arguments)},{"../../modules/es6.number.max-safe-integer":1717,dup:122}],1650:[function(e,t,n){arguments[4][124][0].apply(n,arguments)},{"../../modules/_core":1662,"../../modules/es6.object.create":1718,dup:124}],1651:[function(e,t,n){arguments[4][125][0].apply(n,arguments)},{"../../modules/_core":1662,"../../modules/es6.symbol":1722,dup:125}],1652:[function(e,t,n){arguments[4][126][0].apply(n,arguments)},{"../../modules/_core":1662,"../../modules/es6.object.keys":1719,dup:126}],1653:[function(e,t,n){arguments[4][128][0].apply(n,arguments)},{"../../modules/_core":1662,"../../modules/es6.symbol":1722,dup:128}],1654:[function(e,t,n){arguments[4][129][0].apply(n,arguments)},{"../../modules/_core":1662,"../../modules/es6.object.to-string":1720,"../../modules/es6.symbol":1722,"../../modules/es7.symbol.async-iterator":1723,"../../modules/es7.symbol.observable":1724,dup:129}],1655:[function(e,t,n){arguments[4][130][0].apply(n,arguments)},{"../../modules/_wks-ext":1712,"../../modules/es6.string.iterator":1721,"../../modules/web.dom.iterable":1725,dup:130}],1656:[function(e,t,n){arguments[4][133][0].apply(n,arguments)},{dup:133}],1657:[function(e,t,n){arguments[4][134][0].apply(n,arguments)},{dup:134}],1658:[function(e,t,n){arguments[4][136][0].apply(n,arguments)},{"./_is-object":1678,dup:136}],1659:[function(e,t,n){arguments[4][138][0].apply(n,arguments)},{"./_to-index":1704,"./_to-iobject":1706,"./_to-length":1707,dup:138}],1660:[function(e,t,n){arguments[4][142][0].apply(n,arguments)},{"./_cof":1661,"./_wks":1713,dup:142}],1661:[function(e,t,n){arguments[4][143][0].apply(n,arguments)},{dup:143}],1662:[function(e,t,n){arguments[4][148][0].apply(n,arguments)},{dup:148}],1663:[function(e,t,n){arguments[4][149][0].apply(n,arguments)},{"./_a-function":1656,dup:149}],1664:[function(e,t,n){arguments[4][150][0].apply(n,arguments)},{dup:150}],1665:[function(e,t,n){arguments[4][151][0].apply(n,arguments)},{"./_fails":1670,dup:151}],1666:[function(e,t,n){arguments[4][152][0].apply(n,arguments)},{"./_global":1671,"./_is-object":1678,dup:152}],1667:[function(e,t,n){arguments[4][153][0].apply(n,arguments)},{dup:153}],1668:[function(e,t,n){arguments[4][154][0].apply(n,arguments)},{"./_object-gops":1692,"./_object-keys":1695,"./_object-pie":1696,dup:154}],1669:[function(e,t,n){arguments[4][155][0].apply(n,arguments)},{"./_core":1662,"./_ctx":1663,"./_global":1671,"./_hide":1673,dup:155}],1670:[function(e,t,n){arguments[4][156][0].apply(n,arguments)},{dup:156}],1671:[function(e,t,n){arguments[4][158][0].apply(n,arguments)},{dup:158}],1672:[function(e,t,n){arguments[4][159][0].apply(n,arguments)},{dup:159}],1673:[function(e,t,n){arguments[4][160][0].apply(n,arguments)},{"./_descriptors":1665,"./_object-dp":1687,"./_property-desc":1698,dup:160}],1674:[function(e,t,n){arguments[4][161][0].apply(n,arguments)},{"./_global":1671,dup:161}],1675:[function(e,t,n){arguments[4][162][0].apply(n,arguments)},{"./_descriptors":1665,"./_dom-create":1666,"./_fails":1670,dup:162}],1676:[function(e,t,n){arguments[4][163][0].apply(n,arguments)},{"./_cof":1661,dup:163}],1677:[function(e,t,n){arguments[4][165][0].apply(n,arguments)},{"./_cof":1661,dup:165}],1678:[function(e,t,n){arguments[4][166][0].apply(n,arguments)},{dup:166}],1679:[function(e,t,n){arguments[4][168][0].apply(n,arguments)},{"./_hide":1673,"./_object-create":1686,"./_property-desc":1698,"./_set-to-string-tag":1700,"./_wks":1713,dup:168}],1680:[function(e,t,n){arguments[4][169][0].apply(n,arguments)},{"./_export":1669,"./_has":1672,"./_hide":1673,"./_iter-create":1679,"./_iterators":1682,"./_library":1684,"./_object-gpo":1693,"./_redefine":1699,"./_set-to-string-tag":1700,"./_wks":1713,dup:169}],1681:[function(e,t,n){arguments[4][170][0].apply(n,arguments)},{dup:170}],1682:[function(e,t,n){arguments[4][171][0].apply(n,arguments)},{dup:171}],1683:[function(e,t,n){arguments[4][172][0].apply(n,arguments)},{"./_object-keys":1695,"./_to-iobject":1706,dup:172}],1684:[function(e,t,n){arguments[4][173][0].apply(n,arguments)},{dup:173}],1685:[function(e,t,n){arguments[4][174][0].apply(n,arguments)},{"./_fails":1670,"./_has":1672,"./_is-object":1678,"./_object-dp":1687,"./_uid":1710,dup:174}],1686:[function(e,t,n){arguments[4][176][0].apply(n,arguments)},{"./_an-object":1658,"./_dom-create":1666,"./_enum-bug-keys":1667,"./_html":1674,"./_object-dps":1688,"./_shared-key":1701,dup:176}],1687:[function(e,t,n){arguments[4][177][0].apply(n,arguments)},{"./_an-object":1658,"./_descriptors":1665,"./_ie8-dom-define":1675,"./_to-primitive":1709,dup:177}],1688:[function(e,t,n){arguments[4][178][0].apply(n,arguments)},{"./_an-object":1658,"./_descriptors":1665,"./_object-dp":1687,"./_object-keys":1695,dup:178}],1689:[function(e,t,n){arguments[4][179][0].apply(n,arguments)},{"./_descriptors":1665,"./_has":1672,"./_ie8-dom-define":1675,"./_object-pie":1696,"./_property-desc":1698,"./_to-iobject":1706,"./_to-primitive":1709,dup:179}],1690:[function(e,t,n){arguments[4][180][0].apply(n,arguments)},{"./_object-gopn":1691,"./_to-iobject":1706,dup:180}],1691:[function(e,t,n){arguments[4][181][0].apply(n,arguments)},{"./_enum-bug-keys":1667,"./_object-keys-internal":1694,dup:181}],1692:[function(e,t,n){arguments[4][182][0].apply(n,arguments)},{dup:182}],1693:[function(e,t,n){arguments[4][183][0].apply(n,arguments)},{"./_has":1672,"./_shared-key":1701,"./_to-object":1708,dup:183}],1694:[function(e,t,n){arguments[4][184][0].apply(n,arguments)},{"./_array-includes":1659,"./_has":1672,"./_shared-key":1701,"./_to-iobject":1706,dup:184}],1695:[function(e,t,n){arguments[4][185][0].apply(n,arguments)},{"./_enum-bug-keys":1667,"./_object-keys-internal":1694,dup:185}],1696:[function(e,t,n){arguments[4][186][0].apply(n,arguments)},{dup:186}],1697:[function(e,t,n){arguments[4][187][0].apply(n,arguments)},{"./_core":1662,"./_export":1669,"./_fails":1670,dup:187}],1698:[function(e,t,n){arguments[4][188][0].apply(n,arguments)},{dup:188}],1699:[function(e,t,n){arguments[4][190][0].apply(n,arguments)},{"./_hide":1673,dup:190}],1700:[function(e,t,n){arguments[4][193][0].apply(n,arguments)},{"./_has":1672,"./_object-dp":1687,"./_wks":1713,dup:193}],1701:[function(e,t,n){arguments[4][194][0].apply(n,arguments)},{"./_shared":1702,"./_uid":1710,dup:194}],1702:[function(e,t,n){arguments[4][195][0].apply(n,arguments)},{"./_global":1671,dup:195}],1703:[function(e,t,n){arguments[4][196][0].apply(n,arguments)},{"./_defined":1664,"./_to-integer":1705,dup:196}],1704:[function(e,t,n){arguments[4][197][0].apply(n,arguments)},{"./_to-integer":1705,dup:197}],1705:[function(e,t,n){arguments[4][198][0].apply(n,arguments)},{dup:198}],1706:[function(e,t,n){arguments[4][199][0].apply(n,arguments)},{"./_defined":1664,"./_iobject":1676,dup:199}],1707:[function(e,t,n){arguments[4][200][0].apply(n,arguments)},{"./_to-integer":1705,dup:200}],1708:[function(e,t,n){arguments[4][201][0].apply(n,arguments)},{"./_defined":1664,dup:201}],1709:[function(e,t,n){arguments[4][202][0].apply(n,arguments)},{"./_is-object":1678,dup:202}],1710:[function(e,t,n){arguments[4][203][0].apply(n,arguments)},{dup:203}],1711:[function(e,t,n){arguments[4][204][0].apply(n,arguments)},{"./_core":1662,"./_global":1671,"./_library":1684,"./_object-dp":1687,"./_wks-ext":1712,dup:204}],1712:[function(e,t,n){arguments[4][205][0].apply(n,arguments)},{"./_wks":1713,dup:205}],1713:[function(e,t,n){arguments[4][206][0].apply(n,arguments)},{"./_global":1671,"./_shared":1702,"./_uid":1710,dup:206}],1714:[function(e,t,n){arguments[4][207][0].apply(n,arguments)},{"./_classof":1660,"./_core":1662,"./_iterators":1682,"./_wks":1713,dup:207}],1715:[function(e,t,n){arguments[4][208][0].apply(n,arguments)},{"./_an-object":1658,"./_core":1662,"./core.get-iterator-method":1714,dup:208}],1716:[function(e,t,n){arguments[4][209][0].apply(n,arguments)},{"./_add-to-unscopables":1657,"./_iter-define":1680,"./_iter-step":1681,"./_iterators":1682,"./_to-iobject":1706,dup:209}],1717:[function(e,t,n){arguments[4][211][0].apply(n,arguments)},{"./_export":1669,dup:211}],1718:[function(e,t,n){arguments[4][213][0].apply(n,arguments)},{"./_export":1669,"./_object-create":1686,dup:213}],1719:[function(e,t,n){arguments[4][214][0].apply(n,arguments)},{"./_object-keys":1695,"./_object-sap":1697,"./_to-object":1708,dup:214}],1720:[function(e,t,n){arguments[4][1][0].apply(n,arguments)},{dup:1}],1721:[function(e,t,n){arguments[4][217][0].apply(n,arguments)},{"./_iter-define":1680,"./_string-at":1703,dup:217}],1722:[function(e,t,n){arguments[4][218][0].apply(n,arguments)},{"./_an-object":1658,"./_descriptors":1665,"./_enum-keys":1668,"./_export":1669,"./_fails":1670,"./_global":1671,"./_has":1672,"./_hide":1673,"./_is-array":1677,"./_keyof":1683,"./_library":1684,"./_meta":1685,"./_object-create":1686,"./_object-dp":1687,"./_object-gopd":1689,"./_object-gopn":1691,"./_object-gopn-ext":1690,"./_object-gops":1692,"./_object-keys":1695,"./_object-pie":1696,"./_property-desc":1698,"./_redefine":1699,"./_set-to-string-tag":1700,"./_shared":1702,"./_to-iobject":1706,"./_to-primitive":1709,"./_uid":1710,"./_wks":1713,"./_wks-define":1711,"./_wks-ext":1712,dup:218}],1723:[function(e,t,n){arguments[4][222][0].apply(n,arguments)},{"./_wks-define":1711,dup:222}],1724:[function(e,t,n){arguments[4][223][0].apply(n,arguments)},{"./_wks-define":1711,dup:223}],1725:[function(e,t,n){arguments[4][224][0].apply(n,arguments)},{"./_global":1671,"./_hide":1673,"./_iterators":1682,"./_wks":1713,"./es6.array.iterator":1716,dup:224}],1726:[function(e,t,n){arguments[4][254][0].apply(n,arguments)},{"babel-runtime/core-js/symbol/for":1644,dup:254}],1727:[function(e,t,n){arguments[4][255][0].apply(n,arguments)},{"./index":1737,"babel-runtime/core-js/get-iterator":1637,"babel-runtime/core-js/json/stringify":1638,"babel-runtime/core-js/number/max-safe-integer":1639,dup:255,"lodash/isNumber":1872,"lodash/isPlainObject":1875,"lodash/isRegExp":1876,"lodash/isString":1877}],1728:[function(e,t,n){arguments[4][256][0].apply(n,arguments)},{"../constants":1726,"../index":1737,"./index":1732,dup:256}],1729:[function(e,t,n){arguments[4][257][0].apply(n,arguments)},{"./index":1732,dup:257}],1730:[function(e,t,n){arguments[4][258][0].apply(n,arguments)},{"./index":1732,dup:258}],1731:[function(e,t,n){arguments[4][259][0].apply(n,arguments)},{"./index":1732,dup:259}],1732:[function(e,t,n){arguments[4][260][0].apply(n,arguments)},{"../index":1737,"babel-runtime/core-js/get-iterator":1637,"babel-runtime/core-js/json/stringify":1638,"babel-runtime/helpers/typeof":1646,dup:260}],1733:[function(e,t,n){arguments[4][261][0].apply(n,arguments)},{"./core":1728,"./es2015":1729,"./experimental":1730,"./flow":1731,"./index":1732,"./jsx":1734,"./misc":1735,dup:261}],1734:[function(e,t,n){arguments[4][262][0].apply(n,arguments)},{"./index":1732,dup:262}],1735:[function(e,t,n){arguments[4][263][0].apply(n,arguments)},{"./index":1732,dup:263}],1736:[function(e,t,n){arguments[4][264][0].apply(n,arguments)},{"./index":1737,dup:264}],1737:[function(e,t,n){arguments[4][265][0].apply(n,arguments)},{"./constants":1726,"./converters":1727,"./definitions":1732,"./definitions/init":1733,"./flow":1736,"./react":1738,"./retrievers":1739,"./validators":1740,"babel-runtime/core-js/get-iterator":1637,"babel-runtime/core-js/json/stringify":1638,"babel-runtime/core-js/object/get-own-property-symbols":1641,"babel-runtime/core-js/object/keys":1642,dup:265,"lodash/clone":1860,"lodash/compact":1861,"lodash/each":1862,"lodash/uniq":1884,"to-fast-properties":1885}],1738:[function(e,t,n){arguments[4][266][0].apply(n,arguments)},{"./index":1737,dup:266}],1739:[function(e,t,n){arguments[4][267][0].apply(n,arguments)},{"./index":1737,"babel-runtime/core-js/object/create":1640,dup:267}],1740:[function(e,t,n){arguments[4][268][0].apply(n,arguments)},{"./constants":1726,"./index":1737,"./retrievers":1739,"babel-runtime/core-js/get-iterator":1637,"babel-runtime/core-js/object/keys":1642,"babel-runtime/helpers/typeof":1646,dup:268,esutils:1744}],1741:[function(e,t,n){arguments[4][69][0].apply(n,arguments)},{dup:69}],1742:[function(e,t,n){arguments[4][70][0].apply(n,arguments)},{dup:70}],1743:[function(e,t,n){arguments[4][71][0].apply(n,arguments)},{"./code":1742,dup:71}],1744:[function(e,t,n){arguments[4][72][0].apply(n,arguments)},{"./ast":1741,"./code":1742,"./keyword":1743,dup:72}],1745:[function(e,t,n){arguments[4][282][0].apply(n,arguments)},{"./_getNative":1813,"./_root":1849,dup:282}],1746:[function(e,t,n){arguments[4][283][0].apply(n,arguments)},{"./_hashClear":1820,"./_hashDelete":1821,"./_hashGet":1822,"./_hashHas":1823,"./_hashSet":1824,dup:283}],1747:[function(e,t,n){arguments[4][284][0].apply(n,arguments)},{"./_listCacheClear":1832,"./_listCacheDelete":1833,"./_listCacheGet":1834,"./_listCacheHas":1835,"./_listCacheSet":1836,dup:284}],1748:[function(e,t,n){arguments[4][285][0].apply(n,arguments)},{"./_getNative":1813,"./_root":1849,dup:285}],1749:[function(e,t,n){arguments[4][286][0].apply(n,arguments)},{"./_mapCacheClear":1837,"./_mapCacheDelete":1838,"./_mapCacheGet":1839,"./_mapCacheHas":1840,"./_mapCacheSet":1841,dup:286}],1750:[function(e,t,n){arguments[4][287][0].apply(n,arguments)},{"./_getNative":1813,"./_root":1849,dup:287}],1751:[function(e,t,n){arguments[4][288][0].apply(n,arguments)},{"./_getNative":1813,"./_root":1849,dup:288}],1752:[function(e,t,n){arguments[4][289][0].apply(n,arguments)},{"./_MapCache":1749,"./_setCacheAdd":1850,"./_setCacheHas":1851,dup:289}],1753:[function(e,t,n){arguments[4][290][0].apply(n,arguments)},{"./_ListCache":1747,"./_stackClear":1853,"./_stackDelete":1854,"./_stackGet":1855,"./_stackHas":1856,"./_stackSet":1857,dup:290}],1754:[function(e,t,n){arguments[4][291][0].apply(n,arguments)},{"./_root":1849,dup:291}],1755:[function(e,t,n){arguments[4][292][0].apply(n,arguments)},{"./_root":1849,dup:292}],1756:[function(e,t,n){arguments[4][293][0].apply(n,arguments)},{"./_getNative":1813,"./_root":1849,dup:293}],1757:[function(e,t,n){arguments[4][294][0].apply(n,arguments)},{dup:294}],1758:[function(e,t,n){arguments[4][295][0].apply(n,arguments)},{dup:295}],1759:[function(e,t,n){arguments[4][297][0].apply(n,arguments)},{dup:297}],1760:[function(e,t,n){arguments[4][298][0].apply(n,arguments)},{dup:298}],1761:[function(e,t,n){arguments[4][299][0].apply(n,arguments)},{"./_baseIndexOf":1779,dup:299}],1762:[function(e,t,n){arguments[4][300][0].apply(n,arguments)},{dup:300}],1763:[function(e,t,n){arguments[4][301][0].apply(n,arguments)},{"./_baseTimes":1787,"./_isIndex":1828,"./isArguments":1866,"./isArray":1867,"./isBuffer":1869,"./isTypedArray":1878,dup:301}],1764:[function(e,t,n){arguments[4][303][0].apply(n,arguments)},{dup:303}],1765:[function(e,t,n){arguments[4][304][0].apply(n,arguments)},{dup:304}],1766:[function(e,t,n){arguments[4][308][0].apply(n,arguments)},{"./_baseAssignValue":1770,"./eq":1863,dup:308}],1767:[function(e,t,n){arguments[4][309][0].apply(n,arguments)},{"./eq":1863,dup:309}],1768:[function(e,t,n){arguments[4][310][0].apply(n,arguments)},{"./_copyObject":1801,"./keys":1879,dup:310}],1769:[function(e,t,n){arguments[4][311][0].apply(n,arguments)},{"./_copyObject":1801,"./keysIn":1880,dup:311}],1770:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{"./_defineProperty":1808,dup:312}],1771:[function(e,t,n){arguments[4][314][0].apply(n,arguments)},{"./_Stack":1753,"./_arrayEach":1759,"./_assignValue":1766,"./_baseAssign":1768,"./_baseAssignIn":1769,"./_cloneBuffer":1793,"./_copyArray":1800,"./_copySymbols":1802,"./_copySymbolsIn":1803,"./_getAllKeys":1810,"./_getAllKeysIn":1811,"./_getTag":1818,"./_initCloneArray":1825,"./_initCloneByTag":1826,"./_initCloneObject":1827,"./isArray":1867,"./isBuffer":1869,"./isObject":1873,"./keys":1879,dup:314}],1772:[function(e,t,n){arguments[4][315][0].apply(n,arguments)},{"./isObject":1873,dup:315}],1773:[function(e,t,n){arguments[4][316][0].apply(n,arguments)},{"./_baseForOwn":1776,"./_createBaseEach":1805,dup:316}],1774:[function(e,t,n){arguments[4][317][0].apply(n,arguments)},{dup:317}],1775:[function(e,t,n){arguments[4][319][0].apply(n,arguments)},{"./_createBaseFor":1806,dup:319}],1776:[function(e,t,n){arguments[4][320][0].apply(n,arguments)},{"./_baseFor":1775,"./keys":1879,dup:320}],1777:[function(e,t,n){arguments[4][322][0].apply(n,arguments)},{"./_arrayPush":1764,"./isArray":1867,dup:322}],1778:[function(e,t,n){arguments[4][323][0].apply(n,arguments)},{"./_Symbol":1754,"./_getRawTag":1815,"./_objectToString":1847,dup:323}],1779:[function(e,t,n){arguments[4][326][0].apply(n,arguments)},{"./_baseFindIndex":1774,"./_baseIsNaN":1781,"./_strictIndexOf":1858,dup:326}],1780:[function(e,t,n){arguments[4][327][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isObjectLike":1874,dup:327}],1781:[function(e,t,n){arguments[4][331][0].apply(n,arguments)},{dup:331}],1782:[function(e,t,n){arguments[4][332][0].apply(n,arguments)},{"./_isMasked":1830,"./_toSource":1859,"./isFunction":1870,"./isObject":1873,dup:332}],1783:[function(e,t,n){arguments[4][333][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isObjectLike":1874,dup:333}],1784:[function(e,t,n){arguments[4][334][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isLength":1871,"./isObjectLike":1874,dup:334}],1785:[function(e,t,n){arguments[4][336][0].apply(n,arguments)},{"./_isPrototype":1831,"./_nativeKeys":1844,dup:336}],1786:[function(e,t,n){arguments[4][337][0].apply(n,arguments)},{"./_isPrototype":1831,"./_nativeKeysIn":1845,"./isObject":1873,dup:337}],1787:[function(e,t,n){arguments[4][351][0].apply(n,arguments)},{dup:351}],1788:[function(e,t,n){arguments[4][353][0].apply(n,arguments)},{dup:353}],1789:[function(e,t,n){arguments[4][354][0].apply(n,arguments)},{"./_SetCache":1752,"./_arrayIncludes":1761,"./_arrayIncludesWith":1762,"./_cacheHas":1790,"./_createSet":1807,"./_setToArray":1852,dup:354}],1790:[function(e,t,n){arguments[4][356][0].apply(n,arguments)},{dup:356}],1791:[function(e,t,n){arguments[4][357][0].apply(n,arguments)},{"./identity":1865,dup:357}],1792:[function(e,t,n){arguments[4][361][0].apply(n,arguments)},{"./_Uint8Array":1755,dup:361}],1793:[function(e,t,n){arguments[4][362][0].apply(n,arguments)},{"./_root":1849,dup:362}],1794:[function(e,t,n){arguments[4][363][0].apply(n,arguments)},{"./_cloneArrayBuffer":1792,dup:363}],1795:[function(e,t,n){arguments[4][364][0].apply(n,arguments)},{"./_addMapEntry":1757,"./_arrayReduce":1765,"./_mapToArray":1842,dup:364}],1796:[function(e,t,n){arguments[4][365][0].apply(n,arguments)},{dup:365}],1797:[function(e,t,n){arguments[4][366][0].apply(n,arguments)},{"./_addSetEntry":1758,"./_arrayReduce":1765,"./_setToArray":1852,dup:366}],1798:[function(e,t,n){arguments[4][367][0].apply(n,arguments)},{"./_Symbol":1754,dup:367}],1799:[function(e,t,n){arguments[4][368][0].apply(n,arguments)},{"./_cloneArrayBuffer":1792,dup:368}],1800:[function(e,t,n){arguments[4][371][0].apply(n,arguments)},{dup:371}],1801:[function(e,t,n){arguments[4][372][0].apply(n,arguments)},{"./_assignValue":1766,"./_baseAssignValue":1770,dup:372}],1802:[function(e,t,n){arguments[4][373][0].apply(n,arguments)},{"./_copyObject":1801,"./_getSymbols":1816,dup:373}],1803:[function(e,t,n){arguments[4][374][0].apply(n,arguments)},{"./_copyObject":1801,"./_getSymbolsIn":1817,dup:374}],1804:[function(e,t,n){arguments[4][375][0].apply(n,arguments)},{"./_root":1849,dup:375}],1805:[function(e,t,n){arguments[4][377][0].apply(n,arguments)},{"./isArrayLike":1868,dup:377}],1806:[function(e,t,n){arguments[4][378][0].apply(n,arguments)},{dup:378}],1807:[function(e,t,n){arguments[4][380][0].apply(n,arguments)},{"./_Set":1751,"./_setToArray":1852,"./noop":1881,dup:380}],1808:[function(e,t,n){arguments[4][382][0].apply(n,arguments)},{"./_getNative":1813,dup:382}],1809:[function(e,t,n){arguments[4][386][0].apply(n,arguments)},{dup:386}],1810:[function(e,t,n){arguments[4][387][0].apply(n,arguments)},{"./_baseGetAllKeys":1777,"./_getSymbols":1816,"./keys":1879,dup:387}],1811:[function(e,t,n){arguments[4][388][0].apply(n,arguments)},{"./_baseGetAllKeys":1777,"./_getSymbolsIn":1817,"./keysIn":1880,dup:388}],1812:[function(e,t,n){arguments[4][389][0].apply(n,arguments)},{"./_isKeyable":1829,dup:389}],1813:[function(e,t,n){arguments[4][391][0].apply(n,arguments)},{"./_baseIsNative":1782,"./_getValue":1819,dup:391}],1814:[function(e,t,n){arguments[4][392][0].apply(n,arguments)},{"./_overArg":1848,dup:392}],1815:[function(e,t,n){arguments[4][393][0].apply(n,arguments)},{"./_Symbol":1754,dup:393}],1816:[function(e,t,n){arguments[4][394][0].apply(n,arguments)},{"./_arrayFilter":1760,"./stubArray":1882,dup:394}],1817:[function(e,t,n){arguments[4][395][0].apply(n,arguments)},{"./_arrayPush":1764,"./_getPrototype":1814,"./_getSymbols":1816,"./stubArray":1882,dup:395}],1818:[function(e,t,n){arguments[4][396][0].apply(n,arguments)},{"./_DataView":1745,"./_Map":1748,"./_Promise":1750,"./_Set":1751,"./_WeakMap":1756,"./_baseGetTag":1778,"./_toSource":1859,dup:396}],1819:[function(e,t,n){arguments[4][397][0].apply(n,arguments)},{dup:397}],1820:[function(e,t,n){
+arguments[4][400][0].apply(n,arguments)},{"./_nativeCreate":1843,dup:400}],1821:[function(e,t,n){arguments[4][401][0].apply(n,arguments)},{dup:401}],1822:[function(e,t,n){arguments[4][402][0].apply(n,arguments)},{"./_nativeCreate":1843,dup:402}],1823:[function(e,t,n){arguments[4][403][0].apply(n,arguments)},{"./_nativeCreate":1843,dup:403}],1824:[function(e,t,n){arguments[4][404][0].apply(n,arguments)},{"./_nativeCreate":1843,dup:404}],1825:[function(e,t,n){arguments[4][405][0].apply(n,arguments)},{dup:405}],1826:[function(e,t,n){arguments[4][406][0].apply(n,arguments)},{"./_cloneArrayBuffer":1792,"./_cloneDataView":1794,"./_cloneMap":1795,"./_cloneRegExp":1796,"./_cloneSet":1797,"./_cloneSymbol":1798,"./_cloneTypedArray":1799,dup:406}],1827:[function(e,t,n){arguments[4][407][0].apply(n,arguments)},{"./_baseCreate":1772,"./_getPrototype":1814,"./_isPrototype":1831,dup:407}],1828:[function(e,t,n){arguments[4][409][0].apply(n,arguments)},{dup:409}],1829:[function(e,t,n){arguments[4][412][0].apply(n,arguments)},{dup:412}],1830:[function(e,t,n){arguments[4][413][0].apply(n,arguments)},{"./_coreJsData":1804,dup:413}],1831:[function(e,t,n){arguments[4][414][0].apply(n,arguments)},{dup:414}],1832:[function(e,t,n){arguments[4][416][0].apply(n,arguments)},{dup:416}],1833:[function(e,t,n){arguments[4][417][0].apply(n,arguments)},{"./_assocIndexOf":1767,dup:417}],1834:[function(e,t,n){arguments[4][418][0].apply(n,arguments)},{"./_assocIndexOf":1767,dup:418}],1835:[function(e,t,n){arguments[4][419][0].apply(n,arguments)},{"./_assocIndexOf":1767,dup:419}],1836:[function(e,t,n){arguments[4][420][0].apply(n,arguments)},{"./_assocIndexOf":1767,dup:420}],1837:[function(e,t,n){arguments[4][421][0].apply(n,arguments)},{"./_Hash":1746,"./_ListCache":1747,"./_Map":1748,dup:421}],1838:[function(e,t,n){arguments[4][422][0].apply(n,arguments)},{"./_getMapData":1812,dup:422}],1839:[function(e,t,n){arguments[4][423][0].apply(n,arguments)},{"./_getMapData":1812,dup:423}],1840:[function(e,t,n){arguments[4][424][0].apply(n,arguments)},{"./_getMapData":1812,dup:424}],1841:[function(e,t,n){arguments[4][425][0].apply(n,arguments)},{"./_getMapData":1812,dup:425}],1842:[function(e,t,n){arguments[4][426][0].apply(n,arguments)},{dup:426}],1843:[function(e,t,n){arguments[4][429][0].apply(n,arguments)},{"./_getNative":1813,dup:429}],1844:[function(e,t,n){arguments[4][430][0].apply(n,arguments)},{"./_overArg":1848,dup:430}],1845:[function(e,t,n){arguments[4][431][0].apply(n,arguments)},{dup:431}],1846:[function(e,t,n){arguments[4][432][0].apply(n,arguments)},{"./_freeGlobal":1809,dup:432}],1847:[function(e,t,n){arguments[4][433][0].apply(n,arguments)},{dup:433}],1848:[function(e,t,n){arguments[4][434][0].apply(n,arguments)},{dup:434}],1849:[function(e,t,n){arguments[4][436][0].apply(n,arguments)},{"./_freeGlobal":1809,dup:436}],1850:[function(e,t,n){arguments[4][437][0].apply(n,arguments)},{dup:437}],1851:[function(e,t,n){arguments[4][438][0].apply(n,arguments)},{dup:438}],1852:[function(e,t,n){arguments[4][439][0].apply(n,arguments)},{dup:439}],1853:[function(e,t,n){arguments[4][442][0].apply(n,arguments)},{"./_ListCache":1747,dup:442}],1854:[function(e,t,n){arguments[4][443][0].apply(n,arguments)},{dup:443}],1855:[function(e,t,n){arguments[4][444][0].apply(n,arguments)},{dup:444}],1856:[function(e,t,n){arguments[4][445][0].apply(n,arguments)},{dup:445}],1857:[function(e,t,n){arguments[4][446][0].apply(n,arguments)},{"./_ListCache":1747,"./_Map":1748,"./_MapCache":1749,dup:446}],1858:[function(e,t,n){arguments[4][447][0].apply(n,arguments)},{dup:447}],1859:[function(e,t,n){arguments[4][451][0].apply(n,arguments)},{dup:451}],1860:[function(e,t,n){arguments[4][455][0].apply(n,arguments)},{"./_baseClone":1771,dup:455}],1861:[function(e,t,n){arguments[4][458][0].apply(n,arguments)},{dup:458}],1862:[function(e,t,n){arguments[4][461][0].apply(n,arguments)},{"./forEach":1864,dup:461}],1863:[function(e,t,n){arguments[4][462][0].apply(n,arguments)},{dup:462}],1864:[function(e,t,n){arguments[4][468][0].apply(n,arguments)},{"./_arrayEach":1759,"./_baseEach":1773,"./_castFunction":1791,"./isArray":1867,dup:468}],1865:[function(e,t,n){arguments[4][472][0].apply(n,arguments)},{dup:472}],1866:[function(e,t,n){arguments[4][474][0].apply(n,arguments)},{"./_baseIsArguments":1780,"./isObjectLike":1874,dup:474}],1867:[function(e,t,n){arguments[4][475][0].apply(n,arguments)},{dup:475}],1868:[function(e,t,n){arguments[4][476][0].apply(n,arguments)},{"./isFunction":1870,"./isLength":1871,dup:476}],1869:[function(e,t,n){arguments[4][479][0].apply(n,arguments)},{"./_root":1849,"./stubFalse":1883,dup:479}],1870:[function(e,t,n){arguments[4][480][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isObject":1873,dup:480}],1871:[function(e,t,n){arguments[4][482][0].apply(n,arguments)},{dup:482}],1872:[function(e,t,n){arguments[4][483][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isObjectLike":1874,dup:483}],1873:[function(e,t,n){arguments[4][484][0].apply(n,arguments)},{dup:484}],1874:[function(e,t,n){arguments[4][485][0].apply(n,arguments)},{dup:485}],1875:[function(e,t,n){arguments[4][486][0].apply(n,arguments)},{"./_baseGetTag":1778,"./_getPrototype":1814,"./isObjectLike":1874,dup:486}],1876:[function(e,t,n){arguments[4][487][0].apply(n,arguments)},{"./_baseIsRegExp":1783,"./_baseUnary":1788,"./_nodeUtil":1846,dup:487}],1877:[function(e,t,n){arguments[4][488][0].apply(n,arguments)},{"./_baseGetTag":1778,"./isArray":1867,"./isObjectLike":1874,dup:488}],1878:[function(e,t,n){arguments[4][490][0].apply(n,arguments)},{"./_baseIsTypedArray":1784,"./_baseUnary":1788,"./_nodeUtil":1846,dup:490}],1879:[function(e,t,n){arguments[4][491][0].apply(n,arguments)},{"./_arrayLikeKeys":1763,"./_baseKeys":1785,"./isArrayLike":1868,dup:491}],1880:[function(e,t,n){arguments[4][492][0].apply(n,arguments)},{"./_arrayLikeKeys":1763,"./_baseKeysIn":1786,"./isArrayLike":1868,dup:492}],1881:[function(e,t,n){arguments[4][496][0].apply(n,arguments)},{dup:496}],1882:[function(e,t,n){arguments[4][501][0].apply(n,arguments)},{dup:501}],1883:[function(e,t,n){arguments[4][502][0].apply(n,arguments)},{dup:502}],1884:[function(e,t,n){arguments[4][509][0].apply(n,arguments)},{"./_baseUniq":1789,dup:509}],1885:[function(e,t,n){arguments[4][273][0].apply(n,arguments)},{dup:273}],1886:[function(e,t,n){arguments[4][560][0].apply(n,arguments)},{dup:560}],1887:[function(e,t,n){(function(t){n.path=e("path").join(t,"runtime.js")}).call(this,"/node_modules/regenerator/node_modules/regenerator-runtime")},{path:12}],1888:[function(e,t,n){(function(n){var r="object"==typeof n?n:"object"==typeof window?window:"object"==typeof self?self:this,i=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,a=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=e("./runtime"),i)r.regeneratorRuntime=a;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./runtime":1889}],1889:[function(e,t,n){(function(e,n){!function(n){"use strict";function r(e,t,n,r){var i=t&&t.prototype instanceof a?t:a,s=Object.create(i.prototype),o=new h(r||[]);return s._invoke=c(e,n,o),s}function i(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function a(){}function s(){}function o(){}function u(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function l(t){function n(e,r,a,s){var o=i(t[e],t,r);if("throw"!==o.type){var u=o.arg,l=u.value;return l&&"object"==typeof l&&g.call(l,"__await")?Promise.resolve(l.__await).then(function(e){n("next",e,a,s)},function(e){n("throw",e,a,s)}):Promise.resolve(l).then(function(e){u.value=e,a(u)},s)}s(o.arg)}function r(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return a=a?a.then(r,r):r()}"object"==typeof e&&e.domain&&(n=e.domain.bind(n));var a;this._invoke=r}function c(e,t,n){var r=D;return function(a,s){if(r===S)throw new Error("Generator is already running");if(r===w){if("throw"===a)throw s;return y()}for(;;){var o=n.delegate;if(o){if("return"===a||"throw"===a&&o.iterator[a]===m){n.delegate=null;var u=o.iterator.return;if(u){var l=i(u,o.iterator,s);if("throw"===l.type){a="throw",s=l.arg;continue}}if("return"===a)continue}var l=i(o.iterator[a],o.iterator,s);if("throw"===l.type){n.delegate=null,a="throw",s=l.arg;continue}a="next",s=m;var c=l.arg;if(!c.done)return r=C,c;n[o.resultName]=c.value,n.next=o.nextLoc,n.delegate=null}if("next"===a)n.sent=n._sent=s;else if("throw"===a){if(r===D)throw r=w,s;n.dispatchException(s)&&(a="next",s=m)}else"return"===a&&n.abrupt("return",s);r=S;var l=i(e,t,n);if("normal"===l.type){r=n.done?w:C;var c={value:l.arg,done:n.done};if(l.arg!==k)return c;n.delegate&&"next"===a&&(s=m)}else"throw"===l.type&&(r=w,a="throw",s=l.arg)}}}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function f(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function h(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function d(e){if(e){var t=e[x];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(g.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=m,t.done=!0,t};return r.next=r}}return{next:y}}function y(){return{value:m,done:!0}}var m,b=Object.prototype,g=b.hasOwnProperty,v="function"==typeof Symbol?Symbol:{},x=v.iterator||"@@iterator",_=v.toStringTag||"@@toStringTag",E="object"==typeof t,A=n.regeneratorRuntime;if(A)return void(E&&(t.exports=A));A=n.regeneratorRuntime=E?t.exports:{},A.wrap=r;var D="suspendedStart",C="suspendedYield",S="executing",w="completed",k={},F={};F[x]=function(){return this};var T=Object.getPrototypeOf,P=T&&T(T(d([])));P&&P!==b&&g.call(P,x)&&(F=P);var j=o.prototype=a.prototype=Object.create(F);s.prototype=j.constructor=o,o.constructor=s,o[_]=s.displayName="GeneratorFunction",A.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===s||"GeneratorFunction"===(t.displayName||t.name))},A.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,o):(e.__proto__=o,_ in e||(e[_]="GeneratorFunction")),e.prototype=Object.create(j),e},A.awrap=function(e){return{__await:e}},u(l.prototype),A.AsyncIterator=l,A.async=function(e,t,n,i){var a=new l(r(e,t,n,i));return A.isGeneratorFunction(t)?a:a.next().then(function(e){return e.done?e.value:a.next()})},u(j),j[_]="Generator",j.toString=function(){return"[object Generator]"},A.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},A.values=d,h.prototype={constructor:h,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=m,this.done=!1,this.delegate=null,this.tryEntries.forEach(f),!e)for(var t in this)"t"===t.charAt(0)&&g.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=m)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,r){return a.type="throw",a.arg=e,n.next=t,!!r}if(this.done)throw e;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var s=g.call(i,"catchLoc"),o=g.call(i,"finallyLoc");if(s&&o){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&g.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?this.next=i.finallyLoc:this.complete(a),k},complete:function(e,t){if("throw"===e.type)throw e.arg;"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=e.arg,this.next="end"):"normal"===e.type&&t&&(this.next=t)},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),f(n),k}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;f(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:d(e),resultName:t,nextLoc:n},k}}}("object"==typeof n?n:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:13}],1890:[function(e,t,n){(function(r){function i(e,t,n){function i(){for(;l.length&&!p.paused;){var e=l.shift();if(null===e)return p.emit("end");p.emit("data",e)}}function s(){p.writable=!1,t.call(p),!p.readable&&p.autoDestroy&&p.destroy()}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var o=!1,u=!1,l=[],c=!1,p=new a;return p.readable=p.writable=!0,p.paused=!1,p.autoDestroy=!(n&&n.autoDestroy===!1),p.write=function(t){return e.call(this,t),!p.paused},p.queue=p.push=function(e){return c?p:(null===e&&(c=!0),l.push(e),i(),p)},p.on("end",function(){p.readable=!1,!p.writable&&p.autoDestroy&&r.nextTick(function(){p.destroy()})}),p.end=function(e){if(!o)return o=!0,arguments.length&&p.write(e),s(),p},p.destroy=function(){if(!u)return u=!0,o=!0,l.length=0,p.writable=p.readable=!1,p.emit("close"),p},p.pause=function(){if(!p.paused)return p.paused=!0,p},p.resume=function(){return p.paused&&(p.paused=!1,p.emit("resume")),i(),p.paused||p.emit("drain"),p},p}var a=e("stream");n=t.exports=i,i.through=i}).call(this,e("_process"))},{_process:13,stream:30}],regenerator:[function(e,t,n){function n(e,t){function n(e){i.push(e)}function r(){try{this.queue(a(i.join(""),t).code),this.queue(null)}catch(e){this.emit("error",e)}}var i=[];return o(n,r)}function r(){regeneratorRuntime=e("regenerator-runtime")}function i(){return p||(p=s.readFileSync(r.path,"utf8"))}function a(t,n){var r;return n=l.defaults(n||{},{includeRuntime:!1}),r=c.test(t)?e("babel-core").transform(t,f):{code:t},n.includeRuntime===!0&&(r.code=i()+"\n"+r.code),r}var s=e("fs"),o=e("through"),u=e("./lib/visit").transform,l=e("./lib/util"),c=/\bfunction\s*\*|\basync\b/;t.exports=n,n.runtime=r,r.path=e("regenerator-runtime/path.js").path;var p,f={presets:[e("regenerator-preset")],parserOpts:{sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,strictMode:!1,plugins:["*","jsx","flow"]}};n.types=e("recast").types,n.compile=a,n.transform=u},{"./lib/util":36,"./lib/visit":37,"babel-core":38,fs:1,recast:539,"regenerator-preset":572,"regenerator-runtime":1888,"regenerator-runtime/path.js":1887,through:1890}]},{},[]); \ No newline at end of file
diff --git a/tools/eslint/node_modules/ajv/lib/ajv.d.ts b/tools/eslint/node_modules/ajv/lib/ajv.d.ts
index d25a7d1e4e..0e10c9a678 100644
--- a/tools/eslint/node_modules/ajv/lib/ajv.d.ts
+++ b/tools/eslint/node_modules/ajv/lib/ajv.d.ts
@@ -74,6 +74,19 @@ declare namespace ajv {
*/
addKeyword(keyword: string, definition: KeywordDefinition): void;
/**
+ * Get keyword definition
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
+ */
+ getKeyword(keyword: string): Object | boolean;
+ /**
+ * Remove keyword
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ */
+ removeKeyword(keyword: string): void;
+ /**
* Convert array of error message objects to string
* @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.
* @param {Object} options optional options with properties `separator` and `dataVar`.
@@ -108,6 +121,7 @@ declare namespace ajv {
unicode?: boolean;
format?: string;
formats?: Object;
+ unknownFormats?: boolean | string | Array<string>;
schemas?: Array<Object> | Object;
ownProperties?: boolean;
missingRefs?: boolean | string;
diff --git a/tools/eslint/node_modules/ajv/lib/ajv.js b/tools/eslint/node_modules/ajv/lib/ajv.js
index 02f3d4be18..0502c1fd36 100644
--- a/tools/eslint/node_modules/ajv/lib/ajv.js
+++ b/tools/eslint/node_modules/ajv/lib/ajv.js
@@ -15,7 +15,11 @@ var compileSchema = require('./compile')
module.exports = Ajv;
Ajv.prototype.compileAsync = async.compile;
-Ajv.prototype.addKeyword = require('./keyword');
+
+var customKeyword = require('./keyword');
+Ajv.prototype.addKeyword = customKeyword.add;
+Ajv.prototype.getKeyword = customKeyword.get;
+Ajv.prototype.removeKeyword = customKeyword.remove;
Ajv.ValidationError = require('./compile/validation_error');
var META_SCHEMA_ID = 'http://json-schema.org/draft-04/schema';
diff --git a/tools/eslint/node_modules/ajv/lib/async.js b/tools/eslint/node_modules/ajv/lib/async.js
index e5eac8c8bc..173c2c00ad 100644
--- a/tools/eslint/node_modules/ajv/lib/async.js
+++ b/tools/eslint/node_modules/ajv/lib/async.js
@@ -92,7 +92,8 @@ function checkAsyncFunction(opts, required) {
function getRegenerator(opts, required) {
try {
if (!regenerator) {
- regenerator = require('' + 'regenerator');
+ var name = 'regenerator';
+ regenerator = require(name);
regenerator.runtime();
}
if (!opts.async || opts.async === true)
@@ -113,7 +114,10 @@ function regeneratorTranspile(code) {
function getNodent(opts, required) {
/* jshint evil: true */
try {
- if (!nodent) nodent = require('' + 'nodent')({ log: false, dontInstallRequireHook: true });
+ if (!nodent) {
+ var name = 'nodent';
+ nodent = require(name)({ log: false, dontInstallRequireHook: true });
+ }
if (opts.async != 'es7') {
if (opts.async && opts.async !== true) console.warn('nodent transpiles only es7 async functions');
opts.async = 'es7';
diff --git a/tools/eslint/node_modules/ajv/lib/compile/equal.js b/tools/eslint/node_modules/ajv/lib/compile/equal.js
index 7b07ea1711..2a918746c2 100644
--- a/tools/eslint/node_modules/ajv/lib/compile/equal.js
+++ b/tools/eslint/node_modules/ajv/lib/compile/equal.js
@@ -1,5 +1,7 @@
'use strict';
+/*eslint complexity: 0*/
+
module.exports = function equal(a, b) {
if (a === b) return true;
@@ -18,11 +20,20 @@ module.exports = function equal(a, b) {
if (a && b && typeof a === 'object' && typeof b === 'object') {
var keys = Object.keys(a);
-
if (keys.length !== Object.keys(b).length) return false;
+ var dateA = a instanceof Date
+ , dateB = b instanceof Date;
+ if (dateA && dateB) return a.getTime() == b.getTime();
+ if (dateA != dateB) return false;
+
+ var regexpA = a instanceof RegExp
+ , regexpB = b instanceof RegExp;
+ if (regexpA && regexpB) return a.toString() == b.toString();
+ if (regexpA != regexpB) return false;
+
for (i = 0; i < keys.length; i++)
- if (b[keys[i]] === undefined) return false;
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
for (i = 0; i < keys.length; i++)
if(!equal(a[keys[i]], b[keys[i]])) return false;
diff --git a/tools/eslint/node_modules/ajv/lib/compile/formats.js b/tools/eslint/node_modules/ajv/lib/compile/formats.js
index 4b5fbfbfa7..415389efe0 100644
--- a/tools/eslint/node_modules/ajv/lib/compile/formats.js
+++ b/tools/eslint/node_modules/ajv/lib/compile/formats.js
@@ -8,8 +8,8 @@ var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
var HOSTNAME = /^[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?(\.[0-9a-z](?:(?:[-0-9a-z]{0,61})?[0-9a-z])?)*$/i;
var URI = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?(?:\#(?:[a-z0-9\-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*)?$/i;
var UUID = /^(?:urn\:uuid\:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;
-var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)+)*(?:\/)?$/i;
-var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)+)*(?:\/)?)$/;
+var JSON_POINTER = /^(?:\/(?:[^~\/]|~0|~1)*)*$|^\#(?:\/(?:[a-z0-9_\-\.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;
+var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:\#|(?:\/(?:[^~\/]|~0|~1)*)*)$/;
module.exports = formats;
diff --git a/tools/eslint/node_modules/ajv/lib/compile/index.js b/tools/eslint/node_modules/ajv/lib/compile/index.js
index 546a7d454a..c9c6730f8a 100644
--- a/tools/eslint/node_modules/ajv/lib/compile/index.js
+++ b/tools/eslint/node_modules/ajv/lib/compile/index.js
@@ -5,7 +5,15 @@ var resolve = require('./resolve')
, stableStringify = require('json-stable-stringify')
, async = require('../async');
-var beautify = (function() { try { return require('' + 'js-beautify').js_beautify; } catch(e) {/*empty*/} })();
+var beautify;
+
+function loadBeautify(){
+ if (beautify === undefined) {
+ var name = 'js-beautify';
+ try { beautify = require(name).js_beautify; }
+ catch(e) { beautify = false; }
+ }
+}
var validateGenerator = require('../dotjs/validate');
@@ -112,9 +120,10 @@ function compile(schema, root, localRefs, baseId) {
sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)
+ vars(defaults, defaultCode) + vars(customRules, customRuleCode)
- + sourceCode + 'return validate;';
+ + sourceCode;
if (opts.beautify) {
+ loadBeautify();
/* istanbul ignore else */
if (beautify) sourceCode = beautify(sourceCode, opts.beautify);
else console.error('"npm install js-beautify" to use beautify option');
diff --git a/tools/eslint/node_modules/ajv/lib/dot/allOf.jst b/tools/eslint/node_modules/ajv/lib/dot/allOf.jst
index 614579d7a6..4c2836311b 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/allOf.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/allOf.jst
@@ -3,11 +3,15 @@
{{# def.setupKeyword }}
{{# def.setupNextLevel }}
-{{ var $currentBaseId = $it.baseId; }}
+{{
+ var $currentBaseId = $it.baseId
+ , $allSchemasEmpty = true;
+}}
{{~ $schema:$sch:$i }}
{{? {{# def.nonEmptySchema:$sch }} }}
{{
+ $allSchemasEmpty = false;
$it.schema = $sch;
$it.schemaPath = $schemaPath + '[' + $i + ']';
$it.errSchemaPath = $errSchemaPath + '/' + $i;
@@ -20,7 +24,11 @@
{{~}}
{{? $breakOnError }}
- {{= $closingBraces.slice(0,-1) }}
+ {{? $allSchemasEmpty }}
+ if (true) {
+ {{??}}
+ {{= $closingBraces.slice(0,-1) }}
+ {{?}}
{{?}}
{{# def.cleanUp }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/anyOf.jst b/tools/eslint/node_modules/ajv/lib/dot/anyOf.jst
index 2a4456087e..93c3cd828a 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/anyOf.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/anyOf.jst
@@ -24,7 +24,7 @@
{{# def.insertSubschemaCode }}
- {{=$valid}} = {{=$valid}} || valid{{=$it.level}};
+ {{=$valid}} = {{=$valid}} || {{=$nextValid}};
if (!{{=$valid}}) {
{{ $closingBraces += '}'; }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/custom.jst b/tools/eslint/node_modules/ajv/lib/dot/custom.jst
index 9195bf1cad..55c143bbf7 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/custom.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/custom.jst
@@ -72,7 +72,7 @@ var valid{{=$lvl}};
({{= $ruleValidate.validate }})
{{?}}
{{?? $macro }}
- valid{{=$it.level}}
+ {{=$nextValid}}
{{??}}
{{? $asyncKeyword }}
{{? $rDef.errors === false }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/definitions.def b/tools/eslint/node_modules/ajv/lib/dot/definitions.def
index 162c737038..8f2719fb50 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/definitions.def
+++ b/tools/eslint/node_modules/ajv/lib/dot/definitions.def
@@ -3,7 +3,7 @@
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -33,6 +33,7 @@
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
}}
#}}
@@ -47,7 +48,7 @@
{{## def.ifResultValid:
{{? $breakOnError }}
- if (valid{{=$it.level}}) {
+ if ({{=$nextValid}}) {
{{ $closingBraces += '}'; }}
{{?}}
#}}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/dependencies.jst b/tools/eslint/node_modules/ajv/lib/dot/dependencies.jst
index 4fdb3f4591..c6d00950f0 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/dependencies.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/dependencies.jst
@@ -45,7 +45,7 @@ var missing{{=$lvl}};
{{ for (var $property in $schemaDeps) { }}
{{ var $sch = $schemaDeps[$property]; }}
{{? {{# def.nonEmptySchema:$sch }} }}
- valid{{=$it.level}} = true;
+ {{=$nextValid}} = true;
if ({{=$data}}['{{= $property }}'] !== undefined) {
{{
diff --git a/tools/eslint/node_modules/ajv/lib/dot/enum.jst b/tools/eslint/node_modules/ajv/lib/dot/enum.jst
index f82ed274c7..357c2e8c08 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/enum.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/enum.jst
@@ -3,9 +3,13 @@
{{# def.setupKeyword }}
{{# def.$data }}
-{{ var $i = 'i' + $lvl; }}
+{{
+ var $i = 'i' + $lvl
+ , $vSchema = 'schema' + $lvl;
+}}
+
{{? !$isData }}
- var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
+ var {{=$vSchema}} = validate.schema{{=$schemaPath}};
{{?}}
var {{=$valid}};
@@ -13,8 +17,8 @@ var {{=$valid}};
{{=$valid}} = false;
-for (var {{=$i}}=0; {{=$i}}<schema{{=$lvl}}.length; {{=$i}}++)
- if (equal({{=$data}}, schema{{=$lvl}}[{{=$i}}])) {
+for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
+ if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
{{=$valid}} = true;
break;
}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/errors.def b/tools/eslint/node_modules/ajv/lib/dot/errors.def
index 530e5f5cb1..3e0472120b 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/errors.def
+++ b/tools/eslint/node_modules/ajv/lib/dot/errors.def
@@ -64,7 +64,7 @@
throw new ValidationError(vErrors);
{{??}}
validate.errors = vErrors;
- return false
+ return false;
{{?}}
{{?}}
#}}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/format.jst b/tools/eslint/node_modules/ajv/lib/dot/format.jst
index 59d63a2fc7..961fe4fc9e 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/format.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/format.jst
@@ -15,13 +15,19 @@
{{## def.$dataCheckFormat:
{{# def.$dataNotType:'string' }}
- ({{=$format}} && !(typeof {{=$format}} == 'function'
+ ({{? $unknownFormats === true || $allowUnknown }}
+ ({{=$schemaValue}} && !{{=$format}}
+ {{? $allowUnknown }}
+ && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
+ {{?}}) ||
+ {{?}}
+ ({{=$format}} && !(typeof {{=$format}} == 'function'
? {{? it.async}}
(async{{=$lvl}} ? {{=it.yieldAwait}} {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
{{??}}
{{=$format}}({{=$data}})
{{?}}
- : {{=$format}}.test({{=$data}})))
+ : {{=$format}}.test({{=$data}}))))
#}}
{{## def.checkFormat:
@@ -37,6 +43,11 @@
#}}
+{{
+ var $unknownFormats = it.opts.unknownFormats
+ , $allowUnknown = Array.isArray($unknownFormats);
+}}
+
{{? $isData }}
{{ var $format = 'format' + $lvl; }}
var {{=$format}} = formats[{{=$schemaValue}}];
@@ -44,13 +55,28 @@
&& !({{=$format}} instanceof RegExp)
&& {{=$format}}.validate;
if (isObject{{=$lvl}}) {
- var async{{=$lvl}} = {{=$format}}.async;
+ {{? it.async}}
+ var async{{=$lvl}} = {{=$format}}.async;
+ {{?}}
{{=$format}} = {{=$format}}.validate;
}
if ({{# def.$dataCheckFormat }}) {
{{??}}
{{ var $format = it.formats[$schema]; }}
- {{? !$format }}{{# def.skipFormat }}{{?}}
+ {{? !$format }}
+ {{? $unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1) }}
+ {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
+ {{??}}
+ {{
+ if (!$allowUnknown) {
+ console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
+ if ($unknownFormats !== 'ignore')
+ console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
+ }
+ }}
+ {{# def.skipFormat }}
+ {{?}}
+ {{?}}
{{
var $isObject = typeof $format == 'object'
&& !($format instanceof RegExp)
diff --git a/tools/eslint/node_modules/ajv/lib/dot/items.jst b/tools/eslint/node_modules/ajv/lib/dot/items.jst
index c43f8e4b43..a8b8aa7dd2 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/items.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/items.jst
@@ -5,24 +5,25 @@
{{## def.validateItems:startFrom:
- for (var i{{=$lvl}} = {{=startFrom}}; i{{=$lvl}} < {{=$data}}.length; i{{=$lvl}}++) {
+ for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
{{
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
- var $passData = $data + '[i' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'i' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
+ var $passData = $data + '[' + $idx + ']';
+ $it.dataPathArr[$dataNxt] = $idx;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
{{? $breakOnError }}
- if (!valid{{=$it.level}}) break;
+ if (!{{=$nextValid}}) break;
{{?}}
}
#}}
{{
- var $dataNxt = $it.dataLevel = it.dataLevel + 1
+ var $idx = 'i' + $lvl
+ , $dataNxt = $it.dataLevel = it.dataLevel + 1
, $nextData = 'data' + $dataNxt
, $currentBaseId = it.baseId;
}}
@@ -46,7 +47,7 @@ var {{=$valid}};
{{~ $schema:$sch:$i }}
{{? {{# def.nonEmptySchema:$sch }} }}
- valid{{=$it.level}} = true;
+ {{=$nextValid}} = true;
if ({{=$data}}.length > {{=$i}}) {
{{
@@ -72,7 +73,7 @@ var {{=$valid}};
$it.schemaPath = it.schemaPath + '.additionalItems';
$it.errSchemaPath = it.errSchemaPath + '/additionalItems';
}}
- valid{{=$it.level}} = true;
+ {{=$nextValid}} = true;
if ({{=$data}}.length > {{= $schema.length }}) {
{{# def.validateItems: $schema.length }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/not.jst b/tools/eslint/node_modules/ajv/lib/dot/not.jst
index 9943be830f..e03185ae87 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/not.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/not.jst
@@ -30,7 +30,7 @@
{{# def.resetCompositeRule }}
- if (valid{{=$it.level}}) {
+ if ({{=$nextValid}}) {
{{# def.error:'not' }}
} else {
{{# def.resetErrors }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/oneOf.jst b/tools/eslint/node_modules/ajv/lib/dot/oneOf.jst
index b42b70ebf6..b7f7bff079 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/oneOf.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/oneOf.jst
@@ -20,17 +20,17 @@ var {{=$valid}} = false;
{{# def.insertSubschemaCode }}
{{??}}
- var valid{{=$it.level}} = true;
+ var {{=$nextValid}} = true;
{{?}}
{{? $i }}
- if (valid{{=$it.level}} && prevValid{{=$lvl}})
+ if ({{=$nextValid}} && prevValid{{=$lvl}})
{{=$valid}} = false;
else {
{{ $closingBraces += '}'; }}
{{?}}
- if (valid{{=$it.level}}) {{=$valid}} = prevValid{{=$lvl}} = true;
+ if ({{=$nextValid}}) {{=$valid}} = prevValid{{=$lvl}} = true;
{{~}}
{{# def.resetCompositeRule }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/properties.jst b/tools/eslint/node_modules/ajv/lib/dot/properties.jst
index 1b969fffcc..3a4b966ffe 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/properties.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/properties.jst
@@ -11,9 +11,9 @@
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
$it.errorPath = it.opts._errorDataPathProperty
? it.errorPath
- : it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
@@ -51,7 +51,7 @@
var {{=$errs}} = errors;
-var valid{{=$it.level}} = true;
+var {{=$nextValid}} = true;
{{? $checkAdditional }}
for (var {{=$key}} in {{=$data}}) {
@@ -86,16 +86,16 @@ var valid{{=$it.level}} = true;
{{??}}
{{
var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + key' + $lvl + ' + \'';
+ var $additionalProperty = '\' + ' + $key + ' + \'';
if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
+ it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
}
}}
{{? $noAdditional }}
{{? $removeAdditional }}
delete {{=$data}}[{{=$key}}];
{{??}}
- valid{{=$it.level}} = false;
+ {{=$nextValid}} = false;
{{
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + '/additionalProperties';
@@ -111,7 +111,7 @@ var valid{{=$it.level}} = true;
{{# def.validateAdditional }}
- if (!valid{{=$it.level}}) {
+ if (!{{=$nextValid}}) {
errors = {{=$errs}};
if (validate.errors !== null) {
if (errors) validate.errors.length = errors;
@@ -123,7 +123,7 @@ var valid{{=$it.level}} = true;
{{# def.resetCompositeRule }}
{{??}}
{{# def.validateAdditional }}
- {{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
+ {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
{{?}}
{{?}}
{{ it.errorPath = $currentErrorPath; }}
@@ -171,7 +171,7 @@ var valid{{=$it.level}} = true;
{{??}}
{{? $requiredHash && $requiredHash[$propertyKey] }}
if ({{=$useData}} === undefined) {
- valid{{=$it.level}} = false;
+ {{=$nextValid}} = false;
{{
var $currentErrorPath = it.errorPath
, $currErrSchemaPath = $errSchemaPath
@@ -188,7 +188,7 @@ var valid{{=$it.level}} = true;
{{??}}
{{? $breakOnError }}
if ({{=$useData}} === undefined) {
- valid{{=$it.level}} = true;
+ {{=$nextValid}} = true;
} else {
{{??}}
if ({{=$useData}} !== undefined) {
@@ -219,17 +219,17 @@ var valid{{=$it.level}} = true;
{{# def.checkOwnProperty }}
if ({{= it.usePattern($pProperty) }}.test({{=$key}})) {
{{
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
- {{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
+ {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
}
- {{? $breakOnError }} else valid{{=$it.level}} = true; {{?}}
+ {{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
}
{{# def.ifResultValid }}
@@ -261,17 +261,17 @@ var valid{{=$it.level}} = true;
pgPropCount{{=$lvl}}++;
{{
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
- {{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
+ {{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
}
- {{? $breakOnError }} else valid{{=$it.level}} = true; {{?}}
+ {{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
}
{{# def.ifResultValid }}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/ref.jst b/tools/eslint/node_modules/ajv/lib/dot/ref.jst
index 6bafe312ad..e8cdc4435a 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/ref.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/ref.jst
@@ -51,7 +51,7 @@
{{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
{{= $code }}
{{? $breakOnError}}
- if (valid{{=$it.level}}) {
+ if ({{=$nextValid}}) {
{{?}}
{{??}}
{{
diff --git a/tools/eslint/node_modules/ajv/lib/dot/required.jst b/tools/eslint/node_modules/ajv/lib/dot/required.jst
index 974cd1a56b..e109568f3e 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/required.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/required.jst
@@ -4,10 +4,11 @@
{{# def.setupKeyword }}
{{# def.$data }}
+{{ var $vSchema = 'schema' + $lvl; }}
{{## def.setupLoop:
{{? !$isData }}
- var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
+ var {{=$vSchema}} = validate.schema{{=$schemaPath}};
{{?}}
{{
@@ -51,8 +52,8 @@
{{?$isData}}{{# def.check$dataIsArray }}{{?}}
- for (var {{=$i}} = 0; {{=$i}} < schema{{=$lvl}}.length; {{=$i}}++) {
- {{=$valid}} = {{=$data}}[schema{{=$lvl}}[{{=$i}}]] !== undefined;
+ for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
+ {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined;
if (!{{=$valid}}) break;
}
@@ -69,13 +70,13 @@
{{? $loopRequired }}
{{# def.setupLoop }}
{{? $isData }}
- if (schema{{=$lvl}} && !Array.isArray(schema{{=$lvl}})) {
+ if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
{{# def.addError:'required' }}
- } else if (schema{{=$lvl}} !== undefined) {
+ } else if ({{=$vSchema}} !== undefined) {
{{?}}
- for (var {{=$i}} = 0; {{=$i}} < schema{{=$lvl}}.length; {{=$i}}++) {
- if ({{=$data}}[schema{{=$lvl}}[{{=$i}}]] === undefined) {
+ for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
+ if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined) {
{{# def.addError:'required' }}
}
}
diff --git a/tools/eslint/node_modules/ajv/lib/dot/v5/switch.jst b/tools/eslint/node_modules/ajv/lib/dot/v5/switch.jst
index 7b2906a60b..389678e345 100644
--- a/tools/eslint/node_modules/ajv/lib/dot/v5/switch.jst
+++ b/tools/eslint/node_modules/ajv/lib/dot/v5/switch.jst
@@ -10,7 +10,7 @@
{{# def._validateSwitchRule:if }}
{{ $it.createErrors = true; }}
{{# def.resetCompositeRule }}
- {{=$ifPassed}} = valid{{=$it.level}};
+ {{=$ifPassed}} = {{=$nextValid}};
#}}
{{## def.validateThen:
@@ -18,7 +18,7 @@
{{? $sch.then === false }}
{{# def.error:'switch' }}
{{?}}
- var valid{{=$it.level}} = {{= $sch.then }};
+ var {{=$nextValid}} = {{= $sch.then }};
{{??}}
{{# def._validateSwitchRule:then }}
{{?}}
@@ -68,6 +68,6 @@ var {{=$ifPassed}};
{{= $closingBraces }}
-var {{=$valid}} = valid{{=$it.level}};
+var {{=$valid}} = {{=$nextValid}};
{{# def.cleanUp }}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/_formatLimit.js b/tools/eslint/node_modules/ajv/lib/dotjs/_formatLimit.js
index 0f2a5e9380..996e1f2c20 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/_formatLimit.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/_formatLimit.js
@@ -4,7 +4,7 @@ module.exports = function generate__formatLimit(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/_limit.js b/tools/eslint/node_modules/ajv/lib/dotjs/_limit.js
index c830ec26ef..4d92024afc 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/_limit.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/_limit.js
@@ -4,7 +4,7 @@ module.exports = function generate__limit(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/_limitItems.js b/tools/eslint/node_modules/ajv/lib/dotjs/_limitItems.js
index 1f2ac543b3..6a843627bc 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/_limitItems.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/_limitItems.js
@@ -4,7 +4,7 @@ module.exports = function generate__limitItems(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/_limitLength.js b/tools/eslint/node_modules/ajv/lib/dotjs/_limitLength.js
index a6976374b8..e378104df9 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/_limitLength.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/_limitLength.js
@@ -4,7 +4,7 @@ module.exports = function generate__limitLength(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js b/tools/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js
index 60a6702f64..74c0851842 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js
@@ -4,7 +4,7 @@ module.exports = function generate__limitProperties(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/allOf.js b/tools/eslint/node_modules/ajv/lib/dotjs/allOf.js
index eaada3faeb..0063ecf1a7 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/allOf.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/allOf.js
@@ -2,13 +2,15 @@
module.exports = function generate_allOf(it, $keyword) {
var out = ' ';
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
- var $currentBaseId = $it.baseId;
+ var $nextValid = 'valid' + $it.level;
+ var $currentBaseId = $it.baseId,
+ $allSchemasEmpty = true;
var arr1 = $schema;
if (arr1) {
var $sch, $i = -1,
@@ -16,20 +18,25 @@ module.exports = function generate_allOf(it, $keyword) {
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
+ $allSchemasEmpty = false;
$it.schema = $sch;
$it.schemaPath = $schemaPath + '[' + $i + ']';
$it.errSchemaPath = $errSchemaPath + '/' + $i;
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
}
}
if ($breakOnError) {
- out += ' ' + ($closingBraces.slice(0, -1));
+ if ($allSchemasEmpty) {
+ out += ' if (true) { ';
+ } else {
+ out += ' ' + ($closingBraces.slice(0, -1)) + ' ';
+ }
}
out = it.util.cleanUpCode(out);
return out;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/anyOf.js b/tools/eslint/node_modules/ajv/lib/dotjs/anyOf.js
index 23e1d13b98..3d24b89f07 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/anyOf.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/anyOf.js
@@ -4,7 +4,7 @@ module.exports = function generate_anyOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -14,6 +14,7 @@ module.exports = function generate_anyOf(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $noEmptySchema = $schema.every(function($sch) {
return it.util.schemaHasRules($sch, it.RULES.all);
});
@@ -33,7 +34,7 @@ module.exports = function generate_anyOf(it, $keyword) {
$it.errSchemaPath = $errSchemaPath + '/' + $i;
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
- out += ' ' + ($valid) + ' = ' + ($valid) + ' || valid' + ($it.level) + '; if (!' + ($valid) + ') { ';
+ out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';
$closingBraces += '}';
}
}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/constant.js b/tools/eslint/node_modules/ajv/lib/dotjs/constant.js
index 7afe7c2704..9e8f371f28 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/constant.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/constant.js
@@ -4,7 +4,7 @@ module.exports = function generate_constant(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/custom.js b/tools/eslint/node_modules/ajv/lib/dotjs/custom.js
index 36758aee18..9b0c8b6fa5 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/custom.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/custom.js
@@ -4,7 +4,7 @@ module.exports = function generate_custom(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -49,6 +49,7 @@ module.exports = function generate_custom(it, $keyword) {
} else if ($macro) {
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
$it.schema = $ruleValidate.validate;
$it.schemaPath = '';
var $wasComposite = it.compositeRule;
@@ -104,7 +105,7 @@ module.exports = function generate_custom(it, $keyword) {
out += ' (' + ($ruleValidate.validate) + ') ';
}
} else if ($macro) {
- out += ' valid' + ($it.level) + ' ';
+ out += ' ' + ($nextValid) + ' ';
} else {
if ($asyncKeyword) {
if ($rDef.errors === false) {
@@ -188,7 +189,7 @@ module.exports = function generate_custom(it, $keyword) {
if (it.async) {
out += ' throw new ValidationError(vErrors); ';
} else {
- out += ' validate.errors = vErrors; return false ';
+ out += ' validate.errors = vErrors; return false; ';
}
}
} else {
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/dependencies.js b/tools/eslint/node_modules/ajv/lib/dotjs/dependencies.js
index 0fef637930..837ec02f47 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/dependencies.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/dependencies.js
@@ -4,7 +4,7 @@ module.exports = function generate_dependencies(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -13,6 +13,7 @@ module.exports = function generate_dependencies(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $schemaDeps = {},
$propertyDeps = {};
for ($property in $schema) {
@@ -126,7 +127,7 @@ module.exports = function generate_dependencies(it, $keyword) {
for (var $property in $schemaDeps) {
var $sch = $schemaDeps[$property];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '[\'' + ($property) + '\'] !== undefined) { ';
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '[\'' + ($property) + '\'] !== undefined) { ';
$it.schema = $sch;
$it.schemaPath = $schemaPath + it.util.getProperty($property);
$it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);
@@ -134,7 +135,7 @@ module.exports = function generate_dependencies(it, $keyword) {
$it.baseId = $currentBaseId;
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/enum.js b/tools/eslint/node_modules/ajv/lib/dotjs/enum.js
index dff0828248..92c7960a61 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/enum.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/enum.js
@@ -4,7 +4,7 @@ module.exports = function generate_enum(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -18,15 +18,16 @@ module.exports = function generate_enum(it, $keyword) {
} else {
$schemaValue = $schema;
}
- var $i = 'i' + $lvl;
+ var $i = 'i' + $lvl,
+ $vSchema = 'schema' + $lvl;
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';
}
out += 'var ' + ($valid) + ';';
if ($isData) {
out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
}
- out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<schema' + ($lvl) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', schema' + ($lvl) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
+ out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';
if ($isData) {
out += ' } ';
}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/format.js b/tools/eslint/node_modules/ajv/lib/dotjs/format.js
index 15253b4ba7..09f7efe12e 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/format.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/format.js
@@ -4,7 +4,7 @@ module.exports = function generate_format(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -23,26 +23,48 @@ module.exports = function generate_format(it, $keyword) {
} else {
$schemaValue = $schema;
}
+ var $unknownFormats = it.opts.unknownFormats,
+ $allowUnknown = Array.isArray($unknownFormats);
if ($isData) {
var $format = 'format' + $lvl;
- out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var isObject' + ($lvl) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; if (isObject' + ($lvl) + ') { var async' + ($lvl) + ' = ' + ($format) + '.async; ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';
+ out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var isObject' + ($lvl) + ' = typeof ' + ($format) + ' == \'object\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; if (isObject' + ($lvl) + ') { ';
+ if (it.async) {
+ out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';
+ }
+ out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';
if ($isData) {
out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || ';
}
+ out += ' (';
+ if ($unknownFormats === true || $allowUnknown) {
+ out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';
+ if ($allowUnknown) {
+ out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';
+ }
+ out += ') || ';
+ }
out += ' (' + ($format) + ' && !(typeof ' + ($format) + ' == \'function\' ? ';
if (it.async) {
out += ' (async' + ($lvl) + ' ? ' + (it.yieldAwait) + ' ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';
} else {
out += ' ' + ($format) + '(' + ($data) + ') ';
}
- out += ' : ' + ($format) + '.test(' + ($data) + ')))) {';
+ out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';
} else {
var $format = it.formats[$schema];
if (!$format) {
- if ($breakOnError) {
- out += ' if (true) { ';
+ if ($unknownFormats === true || ($allowUnknown && $unknownFormats.indexOf($schema) == -1)) {
+ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"');
+ } else {
+ if (!$allowUnknown) {
+ console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
+ if ($unknownFormats !== 'ignore') console.warn('In the next major version it will throw exception. See option unknownFormats for more information');
+ }
+ if ($breakOnError) {
+ out += ' if (true) { ';
+ }
+ return out;
}
- return out;
}
var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;
if ($isObject) {
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/items.js b/tools/eslint/node_modules/ajv/lib/dotjs/items.js
index 8aa36efdcc..7148707a98 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/items.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/items.js
@@ -4,7 +4,7 @@ module.exports = function generate_items(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -14,7 +14,9 @@ module.exports = function generate_items(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
- var $dataNxt = $it.dataLevel = it.dataLevel + 1,
+ var $nextValid = 'valid' + $it.level;
+ var $idx = 'i' + $lvl,
+ $dataNxt = $it.dataLevel = it.dataLevel + 1,
$nextData = 'data' + $dataNxt,
$currentBaseId = it.baseId;
out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';
@@ -65,7 +67,7 @@ module.exports = function generate_items(it, $keyword) {
while ($i < l1) {
$sch = arr1[$i += 1];
if (it.util.schemaHasRules($sch, it.RULES.all)) {
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';
var $passData = $data + '[' + $i + ']';
$it.schema = $sch;
$it.schemaPath = $schemaPath + '[' + $i + ']';
@@ -81,7 +83,7 @@ module.exports = function generate_items(it, $keyword) {
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -91,10 +93,10 @@ module.exports = function generate_items(it, $keyword) {
$it.schema = $additionalItems;
$it.schemaPath = it.schemaPath + '.additionalItems';
$it.errSchemaPath = it.errSchemaPath + '/additionalItems';
- out += ' valid' + ($it.level) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var i' + ($lvl) + ' = ' + ($schema.length) + '; i' + ($lvl) + ' < ' + ($data) + '.length; i' + ($lvl) + '++) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
- var $passData = $data + '[i' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'i' + $lvl;
+ out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
+ var $passData = $data + '[' + $idx + ']';
+ $it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -103,11 +105,11 @@ module.exports = function generate_items(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -115,10 +117,10 @@ module.exports = function generate_items(it, $keyword) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
$it.errSchemaPath = $errSchemaPath;
- out += ' for (var i' + ($lvl) + ' = ' + (0) + '; i' + ($lvl) + ' < ' + ($data) + '.length; i' + ($lvl) + '++) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
- var $passData = $data + '[i' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'i' + $lvl;
+ out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
+ var $passData = $data + '[' + $idx + ']';
+ $it.dataPathArr[$dataNxt] = $idx;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -127,11 +129,11 @@ module.exports = function generate_items(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/multipleOf.js b/tools/eslint/node_modules/ajv/lib/dotjs/multipleOf.js
index 010cb3831b..1f89031ddb 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/multipleOf.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/multipleOf.js
@@ -4,7 +4,7 @@ module.exports = function generate_multipleOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/not.js b/tools/eslint/node_modules/ajv/lib/dotjs/not.js
index 6c0e277c25..f1af86d2bb 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/not.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/not.js
@@ -4,7 +4,7 @@ module.exports = function generate_not(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -12,6 +12,7 @@ module.exports = function generate_not(it, $keyword) {
var $errs = 'errs__' + $lvl;
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
if (it.util.schemaHasRules($schema, it.RULES.all)) {
$it.schema = $schema;
$it.schemaPath = $schemaPath;
@@ -29,7 +30,7 @@ module.exports = function generate_not(it, $keyword) {
$it.createErrors = true;
if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;
it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = ''; /* istanbul ignore else */
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/oneOf.js b/tools/eslint/node_modules/ajv/lib/dotjs/oneOf.js
index 688a45eec5..077f00a7c8 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/oneOf.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/oneOf.js
@@ -4,7 +4,7 @@ module.exports = function generate_oneOf(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -14,6 +14,7 @@ module.exports = function generate_oneOf(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;';
var $currentBaseId = $it.baseId;
var $wasComposite = it.compositeRule;
@@ -31,13 +32,13 @@ module.exports = function generate_oneOf(it, $keyword) {
out += ' ' + (it.validate($it)) + ' ';
$it.baseId = $currentBaseId;
} else {
- out += ' var valid' + ($it.level) + ' = true; ';
+ out += ' var ' + ($nextValid) + ' = true; ';
}
if ($i) {
- out += ' if (valid' + ($it.level) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';
+ out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { ';
$closingBraces += '}';
}
- out += ' if (valid' + ($it.level) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';
+ out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;';
}
}
it.compositeRule = $it.compositeRule = $wasComposite;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/pattern.js b/tools/eslint/node_modules/ajv/lib/dotjs/pattern.js
index ddb18197fe..dc221495de 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/pattern.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/pattern.js
@@ -4,7 +4,7 @@ module.exports = function generate_pattern(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/patternRequired.js b/tools/eslint/node_modules/ajv/lib/dotjs/patternRequired.js
index 196443aefe..e20df98ca7 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/patternRequired.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/patternRequired.js
@@ -4,7 +4,7 @@ module.exports = function generate_patternRequired(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/properties.js b/tools/eslint/node_modules/ajv/lib/dotjs/properties.js
index 0d31e6963e..ea42c82885 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/properties.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/properties.js
@@ -4,7 +4,7 @@ module.exports = function generate_properties(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -14,6 +14,7 @@ module.exports = function generate_properties(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $key = 'key' + $lvl,
$dataNxt = $it.dataLevel = it.dataLevel + 1,
$nextData = 'data' + $dataNxt;
@@ -34,7 +35,7 @@ module.exports = function generate_properties(it, $keyword) {
var $pgProperties = it.schema.patternGroups || {},
$pgPropertyKeys = Object.keys($pgProperties);
}
- out += 'var ' + ($errs) + ' = errors;var valid' + ($it.level) + ' = true;';
+ out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';
if ($checkAdditional) {
out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';
if ($ownProperties) {
@@ -85,15 +86,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' delete ' + ($data) + '[' + ($key) + ']; ';
} else {
var $currentErrorPath = it.errorPath;
- var $additionalProperty = '\' + key' + $lvl + ' + \'';
+ var $additionalProperty = '\' + ' + $key + ' + \'';
if (it.opts._errorDataPathProperty) {
- it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
+ it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
}
if ($noAdditional) {
if ($removeAdditional) {
out += ' delete ' + ($data) + '[' + ($key) + ']; ';
} else {
- out += ' valid' + ($it.level) + ' = false; ';
+ out += ' ' + ($nextValid) + ' = false; ';
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + '/additionalProperties';
var $$outStack = $$outStack || [];
@@ -135,9 +136,9 @@ module.exports = function generate_properties(it, $keyword) {
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + '.additionalProperties';
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
- $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -145,15 +146,15 @@ module.exports = function generate_properties(it, $keyword) {
} else {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
- out += ' if (!valid' + ($it.level) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';
+ out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';
it.compositeRule = $it.compositeRule = $wasComposite;
} else {
$it.schema = $aProperties;
$it.schemaPath = it.schemaPath + '.additionalProperties';
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
- $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -162,7 +163,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
}
}
@@ -173,7 +174,7 @@ module.exports = function generate_properties(it, $keyword) {
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -208,7 +209,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' ' + ($code) + ' ';
} else {
if ($requiredHash && $requiredHash[$propertyKey]) {
- out += ' if (' + ($useData) + ' === undefined) { valid' + ($it.level) + ' = false; ';
+ out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = false; ';
var $currentErrorPath = it.errorPath,
$currErrSchemaPath = $errSchemaPath,
$missingProperty = it.util.escapeQuotes($propertyKey);
@@ -253,7 +254,7 @@ module.exports = function generate_properties(it, $keyword) {
out += ' } else { ';
} else {
if ($breakOnError) {
- out += ' if (' + ($useData) + ' === undefined) { valid' + ($it.level) + ' = true; } else { ';
+ out += ' if (' + ($useData) + ' === undefined) { ' + ($nextValid) + ' = true; } else { ';
} else {
out += ' if (' + ($useData) + ' !== undefined) { ';
}
@@ -262,7 +263,7 @@ module.exports = function generate_properties(it, $keyword) {
}
}
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -284,9 +285,9 @@ module.exports = function generate_properties(it, $keyword) {
out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
}
out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -295,15 +296,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' else valid' + ($it.level) + ' = true; ';
+ out += ' else ' + ($nextValid) + ' = true; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
}
@@ -327,9 +328,9 @@ module.exports = function generate_properties(it, $keyword) {
out += ' if (!Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($key) + ')) continue; ';
}
out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; ';
- $it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
- var $passData = $data + '[key' + $lvl + ']';
- $it.dataPathArr[$dataNxt] = 'key' + $lvl;
+ $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
+ var $passData = $data + '[' + $key + ']';
+ $it.dataPathArr[$dataNxt] = $key;
var $code = it.validate($it);
$it.baseId = $currentBaseId;
if (it.util.varOccurences($code, $nextData) < 2) {
@@ -338,15 +339,15 @@ module.exports = function generate_properties(it, $keyword) {
out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';
}
if ($breakOnError) {
- out += ' if (!valid' + ($it.level) + ') break; ';
+ out += ' if (!' + ($nextValid) + ') break; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' else valid' + ($it.level) + ' = true; ';
+ out += ' else ' + ($nextValid) + ' = true; ';
}
out += ' } ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
$closingBraces += '}';
}
var $pgMin = $pgSchema.minimum,
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/ref.js b/tools/eslint/node_modules/ajv/lib/dotjs/ref.js
index 743057180b..b8e3a1add9 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/ref.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/ref.js
@@ -67,13 +67,14 @@ module.exports = function generate_ref(it, $keyword) {
} else if ($refVal.inline) {
var $it = it.util.copy(it);
$it.level++;
+ var $nextValid = 'valid' + $it.level;
$it.schema = $refVal.schema;
$it.schemaPath = '';
$it.errSchemaPath = $schema;
var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code);
out += ' ' + ($code) + ' ';
if ($breakOnError) {
- out += ' if (valid' + ($it.level) + ') { ';
+ out += ' if (' + ($nextValid) + ') { ';
}
} else {
$async = $refVal.$async === true;
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/required.js b/tools/eslint/node_modules/ajv/lib/dotjs/required.js
index b69bc06d12..43dbf35562 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/required.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/required.js
@@ -4,7 +4,7 @@ module.exports = function generate_required(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -18,6 +18,7 @@ module.exports = function generate_required(it, $keyword) {
} else {
$schemaValue = $schema;
}
+ var $vSchema = 'schema' + $lvl;
if (!$isData) {
if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {
var $required = [];
@@ -44,7 +45,7 @@ module.exports = function generate_required(it, $keyword) {
out += ' var missing' + ($lvl) + '; ';
if ($loopRequired) {
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + '; ';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
}
var $i = 'i' + $lvl,
$propertyPath = 'schema' + $lvl + '[' + $i + ']',
@@ -56,7 +57,7 @@ module.exports = function generate_required(it, $keyword) {
if ($isData) {
out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';
}
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < schema' + ($lvl) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[schema' + ($lvl) + '[' + ($i) + ']] !== undefined; if (!' + ($valid) + ') break; } ';
+ out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined; if (!' + ($valid) + ') break; } ';
if ($isData) {
out += ' } ';
}
@@ -152,7 +153,7 @@ module.exports = function generate_required(it, $keyword) {
} else {
if ($loopRequired) {
if (!$isData) {
- out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + '; ';
+ out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';
}
var $i = 'i' + $lvl,
$propertyPath = 'schema' + $lvl + '[' + $i + ']',
@@ -161,7 +162,7 @@ module.exports = function generate_required(it, $keyword) {
it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
}
if ($isData) {
- out += ' if (schema' + ($lvl) + ' && !Array.isArray(schema' + ($lvl) + ')) { var err = '; /* istanbul ignore else */
+ out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */
if (it.createErrors !== false) {
out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
if (it.opts.messages !== false) {
@@ -180,9 +181,9 @@ module.exports = function generate_required(it, $keyword) {
} else {
out += ' {} ';
}
- out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (schema' + ($lvl) + ' !== undefined) { ';
+ out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';
}
- out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < schema' + ($lvl) + '.length; ' + ($i) + '++) { if (' + ($data) + '[schema' + ($lvl) + '[' + ($i) + ']] === undefined) { var err = '; /* istanbul ignore else */
+ out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined) { var err = '; /* istanbul ignore else */
if (it.createErrors !== false) {
out += ' { keyword: \'' + ($errorKeyword || 'required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';
if (it.opts.messages !== false) {
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/switch.js b/tools/eslint/node_modules/ajv/lib/dotjs/switch.js
index b40ab0268c..4ccf0bca36 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/switch.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/switch.js
@@ -4,7 +4,7 @@ module.exports = function generate_switch(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
@@ -14,6 +14,7 @@ module.exports = function generate_switch(it, $keyword) {
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
+ var $nextValid = 'valid' + $it.level;
var $ifPassed = 'ifPassed' + it.level,
$currentBaseId = $it.baseId,
$shouldContinue;
@@ -40,7 +41,7 @@ module.exports = function generate_switch(it, $keyword) {
$it.baseId = $currentBaseId;
$it.createErrors = true;
it.compositeRule = $it.compositeRule = $wasComposite;
- out += ' ' + ($ifPassed) + ' = valid' + ($it.level) + '; if (' + ($ifPassed) + ') { ';
+ out += ' ' + ($ifPassed) + ' = ' + ($nextValid) + '; if (' + ($ifPassed) + ') { ';
if (typeof $sch.then == 'boolean') {
if ($sch.then === false) {
var $$outStack = $$outStack || [];
@@ -70,7 +71,7 @@ module.exports = function generate_switch(it, $keyword) {
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
}
}
- out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
} else {
$it.schema = $sch.then;
$it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
@@ -110,7 +111,7 @@ module.exports = function generate_switch(it, $keyword) {
out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';
}
}
- out += ' var valid' + ($it.level) + ' = ' + ($sch.then) + '; ';
+ out += ' var ' + ($nextValid) + ' = ' + ($sch.then) + '; ';
} else {
$it.schema = $sch.then;
$it.schemaPath = $schemaPath + '[' + $caseIndex + '].then';
@@ -122,7 +123,7 @@ module.exports = function generate_switch(it, $keyword) {
$shouldContinue = $sch.continue
}
}
- out += '' + ($closingBraces) + 'var ' + ($valid) + ' = valid' + ($it.level) + '; ';
+ out += '' + ($closingBraces) + 'var ' + ($valid) + ' = ' + ($nextValid) + '; ';
out = it.util.cleanUpCode(out);
return out;
}
diff --git a/tools/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js b/tools/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js
index 682c022962..7faff85aa7 100644
--- a/tools/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js
+++ b/tools/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js
@@ -4,7 +4,7 @@ module.exports = function generate_uniqueItems(it, $keyword) {
var $lvl = it.level;
var $dataLvl = it.dataLevel;
var $schema = it.schema[$keyword];
- var $schemaPath = it.schemaPath + '.' + $keyword;
+ var $schemaPath = it.schemaPath + it.util.getProperty($keyword);
var $errSchemaPath = it.errSchemaPath + '/' + $keyword;
var $breakOnError = !it.opts.allErrors;
var $errorKeyword;
diff --git a/tools/eslint/node_modules/ajv/lib/keyword.js b/tools/eslint/node_modules/ajv/lib/keyword.js
index 0b4d70a3a0..784a9a49d9 100644
--- a/tools/eslint/node_modules/ajv/lib/keyword.js
+++ b/tools/eslint/node_modules/ajv/lib/keyword.js
@@ -1,18 +1,26 @@
'use strict';
-var IDENTIFIER = /^[a-z_$][a-z0-9_$]*$/i;
+var IDENTIFIER = /^[a-z_$][a-z0-9_$\-]*$/i;
var customRuleCode = require('./dotjs/custom');
+module.exports = {
+ add: addKeyword,
+ get: getKeyword,
+ remove: removeKeyword
+};
+
/**
* Define custom keyword
* @this Ajv
- * @param {String} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords.
+ * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).
* @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.
*/
-module.exports = function addKeyword(keyword, definition) {
+function addKeyword(keyword, definition) {
+ /* jshint validthis: true */
/* eslint no-shadow: 0 */
- var self = this;
- if (this.RULES.keywords[keyword])
+ var RULES = this.RULES;
+
+ if (RULES.keywords[keyword])
throw new Error('Keyword ' + keyword + ' is already defined');
if (!IDENTIFIER.test(keyword))
@@ -31,7 +39,7 @@ module.exports = function addKeyword(keyword, definition) {
var $data = definition.$data === true && this._opts.v5;
if ($data && !definition.validate)
- throw new Error('$data support: neither "validate" nor "compile" functions are defined');
+ throw new Error('$data support: "validate" function is not defined');
var metaSchema = definition.metaSchema;
if (metaSchema) {
@@ -43,17 +51,17 @@ module.exports = function addKeyword(keyword, definition) {
]
};
}
- definition.validateSchema = self.compile(metaSchema, true);
+ definition.validateSchema = this.compile(metaSchema, true);
}
}
- this.RULES.keywords[keyword] = this.RULES.all[keyword] = true;
+ RULES.keywords[keyword] = RULES.all[keyword] = true;
function _addRule(keyword, dataType, definition) {
var ruleGroup;
- for (var i=0; i<self.RULES.length; i++) {
- var rg = self.RULES[i];
+ for (var i=0; i<RULES.length; i++) {
+ var rg = RULES[i];
if (rg.type == dataType) {
ruleGroup = rg;
break;
@@ -62,7 +70,7 @@ module.exports = function addKeyword(keyword, definition) {
if (!ruleGroup) {
ruleGroup = { type: dataType, rules: [] };
- self.RULES.push(ruleGroup);
+ RULES.push(ruleGroup);
}
var rule = {
@@ -72,11 +80,47 @@ module.exports = function addKeyword(keyword, definition) {
code: customRuleCode
};
ruleGroup.rules.push(rule);
- self.RULES.custom[keyword] = rule;
+ RULES.custom[keyword] = rule;
}
function checkDataType(dataType) {
- if (!self.RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
+ if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
}
-};
+}
+
+
+/**
+ * Get keyword
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
+ */
+function getKeyword(keyword) {
+ /* jshint validthis: true */
+ var rule = this.RULES.custom[keyword];
+ return rule ? rule.definition : this.RULES.keywords[keyword] || false;
+}
+
+
+/**
+ * Remove keyword
+ * @this Ajv
+ * @param {String} keyword pre-defined or custom keyword.
+ */
+function removeKeyword(keyword) {
+ /* jshint validthis: true */
+ var RULES = this.RULES;
+ delete RULES.keywords[keyword];
+ delete RULES.all[keyword];
+ delete RULES.custom[keyword];
+ for (var i=0; i<RULES.length; i++) {
+ var rules = RULES[i].rules;
+ for (var j=0; j<rules.length; j++) {
+ if (rules[j].keyword == keyword) {
+ rules.splice(j, 1);
+ break;
+ }
+ }
+ }
+}
diff --git a/tools/eslint/node_modules/ajv/package.json b/tools/eslint/node_modules/ajv/package.json
index ae31768640..7bd6d34a91 100644
--- a/tools/eslint/node_modules/ajv/package.json
+++ b/tools/eslint/node_modules/ajv/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "ajv@>=4.7.0 <5.0.0",
- "_id": "ajv@4.7.7",
+ "_id": "ajv@4.10.4",
"_inCache": true,
"_location": "/ajv",
- "_nodeVersion": "4.4.4",
+ "_nodeVersion": "4.6.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/ajv-4.7.7.tgz_1475693184318_0.560827705077827"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/ajv-4.10.4.tgz_1483646632206_0.8484643213450909"
},
"_npmUser": {
"name": "esp",
"email": "e.poberezkin@me.com"
},
- "_npmVersion": "2.15.1",
+ "_npmVersion": "2.15.9",
"_phantomChildren": {},
"_requested": {
"raw": "ajv@^4.7.0",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/table"
],
- "_resolved": "https://registry.npmjs.org/ajv/-/ajv-4.7.7.tgz",
- "_shasum": "4980d5f65ce90a2579532eec66429f320dea0321",
+ "_resolved": "https://registry.npmjs.org/ajv/-/ajv-4.10.4.tgz",
+ "_shasum": "c0974dd00b3464984892d6010aa9c2c945933254",
"_shrinkwrap": null,
"_spec": "ajv@^4.7.0",
"_where": "/Users/trott/io.js/tools/node_modules/table",
@@ -74,30 +74,31 @@
"karma-chrome-launcher": "^2.0.0",
"karma-mocha": "^1.1.1",
"karma-phantomjs-launcher": "^1.0.0",
- "karma-sauce-launcher": "^0.3.0",
+ "karma-sauce-launcher": "^1.1.0",
"mocha": "^3.0.0",
- "nodent": "^2.5.3",
- "nyc": "^8.3.0",
+ "nodent": "^3.0.2",
+ "nyc": "^10.0.0",
"phantomjs-prebuilt": "^2.1.4",
"pre-commit": "^1.1.1",
- "regenerator": "0.8.42",
+ "regenerator": "0.9.5",
"require-globify": "^1.3.0",
"typescript": "^2.0.3",
"uglify-js": "^2.6.1",
- "watch": "^0.19.1"
+ "watch": "^1.0.0"
},
"directories": {},
"dist": {
- "shasum": "4980d5f65ce90a2579532eec66429f320dea0321",
- "tarball": "https://registry.npmjs.org/ajv/-/ajv-4.7.7.tgz"
+ "shasum": "c0974dd00b3464984892d6010aa9c2c945933254",
+ "tarball": "https://registry.npmjs.org/ajv/-/ajv-4.10.4.tgz"
},
"files": [
"lib/",
"dist/",
+ "scripts/",
"LICENSE",
".tonic_example.js"
],
- "gitHead": "40319b9e228a20b7d9a9577ce76affe5ca6fc7d8",
+ "gitHead": "b4ecf27fb2f19516034a6ddf9c1cc7f766b0d014",
"homepage": "https://github.com/epoberezkin/ajv",
"keywords": [
"JSON",
@@ -139,9 +140,9 @@
"url": "git+https://github.com/epoberezkin/ajv.git"
},
"scripts": {
- "build": "node scripts/compile-dots.js",
+ "build": "rm -f lib/dotjs/*.js && node scripts/compile-dots.js",
"bundle": "./scripts/bundle . Ajv pure_getters",
- "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent",
+ "bundle-all": "rm -rf dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent",
"bundle-beautify": "./scripts/bundle js-beautify",
"bundle-nodent": "./scripts/bundle nodent",
"bundle-regenerator": "./scripts/bundle regenerator",
@@ -149,16 +150,17 @@
"jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*",
"prepublish": "npm run build && npm run bundle-all",
"test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && npm run test-browser",
- "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS",
+ "test-browser": "rm -rf .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma",
"test-cov": "nyc npm run test-spec",
"test-debug": "mocha spec/*.spec.js --debug-brk -R spec",
"test-fast": "AJV_FAST_TEST=true npm run test-spec",
+ "test-karma": "karma start --single-run --browsers PhantomJS",
"test-spec": "mocha spec/*.spec.js -R spec",
"test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts",
"watch": "watch 'npm run build' ./lib/dot"
},
"tonicExampleFilename": ".tonic_example.js",
"typings": "lib/ajv.d.ts",
- "version": "4.7.7",
+ "version": "4.10.4",
"webpack": "dist/ajv.bundle.js"
}
diff --git a/tools/eslint/node_modules/ajv/scripts/bundle b/tools/eslint/node_modules/ajv/scripts/bundle
new file mode 100755
index 0000000000..fe299cdefc
--- /dev/null
+++ b/tools/eslint/node_modules/ajv/scripts/bundle
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+set -e
+
+package=$1
+standalone=$2
+compress=$3
+
+name=$(./scripts/info $package name)
+main=$(./scripts/info $package main)
+version=$(./scripts/info $package version)
+description=$(./scripts/info $package description)
+
+if [ "$package" != "." ]; then
+ package="./node_modules/$package"
+fi
+
+mkdir -p dist
+
+browserify -r "$package/$main:$name" \
+ -o "dist/$name.bundle.js" \
+ $([ -n "$standalone" ] && echo "-s $standalone")
+
+uglifyjs dist/$name.bundle.js \
+ -o dist/$name.min.js \
+ -c $compress \
+ -m \
+ $([ -n "$standalone" ] && echo "--source-map dist/$name.min.js.map -r $standalone") \
+ --preamble "/* $name $version: $description */"
+
+if [ -z "$standalone" ]; then
+ rm dist/$name.bundle.js
+fi
diff --git a/tools/eslint/node_modules/ajv/scripts/compile-dots.js b/tools/eslint/node_modules/ajv/scripts/compile-dots.js
new file mode 100644
index 0000000000..7150bebfa7
--- /dev/null
+++ b/tools/eslint/node_modules/ajv/scripts/compile-dots.js
@@ -0,0 +1,56 @@
+//compile doT templates to js functions
+
+var glob = require('glob')
+ , fs = require('fs')
+ , path = require('path')
+ , doT = require('dot')
+ , beautify = require('js-beautify').js_beautify;
+
+var defsRootPath = process.argv[2] || path.join(__dirname, '../lib');
+
+var defs = {};
+var defFiles = glob.sync('./dot/**/*.def', { cwd: defsRootPath });
+defFiles.forEach(function (f) {
+ var name = path.basename(f, '.def');
+ defs[name] = fs.readFileSync(path.join(defsRootPath, f));
+});
+
+var filesRootPath = process.argv[3] || path.join(__dirname, '../lib');
+var files = glob.sync('./dot/**/*.jst', { cwd: filesRootPath });
+
+var dotjsPath = path.join(filesRootPath, './dotjs');
+try { fs.mkdirSync(dotjsPath); } catch(e) {}
+
+console.log('\n\nCompiling:');
+
+var FUNCTION_NAME = /function\s+anonymous\s*\(it[^)]*\)\s*{/;
+var OUT_EMPTY_STRING = /out\s*\+=\s*'\s*';/g;
+var ISTANBUL = /\'(istanbul[^']+)\';/g;
+var VARS = ['$errs', '$valid', '$lvl', '$data', '$dataLvl',
+ '$errorKeyword', '$closingBraces', '$schemaPath'];
+
+files.forEach(function (f) {
+ var keyword = path.basename(f, '.jst');
+ var targetPath = path.join(dotjsPath, keyword + '.js');
+ var template = fs.readFileSync(path.join(filesRootPath, f));
+ var code = doT.compile(template, defs);
+ code = code.toString()
+ .replace(OUT_EMPTY_STRING, '')
+ .replace(FUNCTION_NAME, 'function generate_' + keyword + '(it, $keyword) {')
+ .replace(ISTANBUL, '/* $1 */');
+ VARS.forEach(removeUnusedVar);
+ code = "'use strict';\nmodule.exports = " + code;
+ code = beautify(code, { indent_size: 2 }) + '\n';
+ fs.writeFileSync(targetPath, code);
+ console.log('compiled', keyword);
+
+ function removeUnusedVar(v) {
+ v = v.replace(/\$/g, '\\$$');
+ var regexp = new RegExp(v + '[^A-Za-z0-9_$]', 'g');
+ var count = (code.match(regexp) || []).length;
+ if (count == 1) {
+ regexp = new RegExp('var\\s+' + v + '\\s*=[^;]+;|var\\s+' + v + ';');
+ code = code.replace(regexp, '');
+ }
+ }
+});
diff --git a/tools/eslint/node_modules/ajv/scripts/info b/tools/eslint/node_modules/ajv/scripts/info
new file mode 100755
index 0000000000..77269ab5fa
--- /dev/null
+++ b/tools/eslint/node_modules/ajv/scripts/info
@@ -0,0 +1,10 @@
+#!/usr/bin/env node
+
+'use strict';
+
+var fs = require('fs');
+var name = process.argv[2] || '.';
+var property = process.argv[3] || 'version';
+if (name != '.') name = 'node_modules/' + name;
+var json = JSON.parse(fs.readFileSync(name + '/package.json', 'utf8'));
+console.log(json[property]);
diff --git a/tools/eslint/node_modules/ajv/scripts/prepare-tests b/tools/eslint/node_modules/ajv/scripts/prepare-tests
new file mode 100755
index 0000000000..c08093f791
--- /dev/null
+++ b/tools/eslint/node_modules/ajv/scripts/prepare-tests
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -e
+
+mkdir -p .browser
+
+find spec -type f -name '*.spec.js' | \
+xargs -I {} sh -c \
+'export f="{}"; browserify $f -t require-globify -t brfs -x ajv -u buffer -o $(echo $f | sed -e "s/spec/.browser/");'
diff --git a/tools/eslint/node_modules/ajv/scripts/travis-gh-pages b/tools/eslint/node_modules/ajv/scripts/travis-gh-pages
new file mode 100755
index 0000000000..ac8b8f5442
--- /dev/null
+++ b/tools/eslint/node_modules/ajv/scripts/travis-gh-pages
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" && $TRAVIS_JOB_NUMBER =~ ".3" ]]; then
+ git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qE '\.md$|^LICENSE$' && {
+ rm -rf ../gh-pages
+ git clone -b gh-pages --single-branch https://${GITHUB_TOKEN}@github.com/epoberezkin/ajv.git ../gh-pages
+ mkdir -p ../gh-pages/_source
+ cp *.md ../gh-pages/_source
+ cp LICENSE ../gh-pages/_source
+ currentDir=$(pwd)
+ cd ../gh-pages
+ $currentDir/node_modules/.bin/gh-pages-generator
+ git config user.email "$GIT_USER_EMAIL"
+ git config user.name "$GIT_USER_NAME"
+ git add .
+ git commit -am "updated by travis build #$TRAVIS_BUILD_NUMBER"
+ git push --quiet origin gh-pages > /dev/null 2>&1
+ }
+fi
diff --git a/tools/eslint/node_modules/babel-code-frame/README.md b/tools/eslint/node_modules/babel-code-frame/README.md
new file mode 100644
index 0000000000..0257a2da1f
--- /dev/null
+++ b/tools/eslint/node_modules/babel-code-frame/README.md
@@ -0,0 +1,43 @@
+# babel-code-frame
+
+> Generate errors that contain a code frame that point to source locations.
+
+## Install
+
+```sh
+npm install --save-dev babel-code-frame
+```
+
+## Usage
+
+```js
+import codeFrame from 'babel-code-frame';
+
+const rawLines = `class Foo {
+ constructor()
+}`;
+const lineNumber = 2;
+const colNumber = 16;
+
+const result = codeFrame(rawLines, lineNumber, colNumber, { /* options */ });
+
+console.log(result);
+```
+
+```sh
+ 1 | class Foo {
+> 2 | constructor()
+ | ^
+ 3 | }
+```
+
+If the column number is not known, you may pass `null` instead.
+
+## Options
+
+name | type | default | description
+-----------------------|----------|-----------------|------------------------------------------------------
+highlightCode | boolean | `false` | Syntax highlight the code as JavaScript for terminals
+linesAbove | number | 2 | The number of lines to show above the error
+linesBelow | number | 3 | The number of lines to show below the error
+forceColor | boolean | `false` | Forcibly syntax highlight the code as JavaScript (for non-terminals); overrides highlightCode
diff --git a/tools/eslint/node_modules/babel-code-frame/lib/index.js b/tools/eslint/node_modules/babel-code-frame/lib/index.js
new file mode 100644
index 0000000000..486f53a632
--- /dev/null
+++ b/tools/eslint/node_modules/babel-code-frame/lib/index.js
@@ -0,0 +1,141 @@
+"use strict";
+
+exports.__esModule = true;
+
+exports.default = function (rawLines, lineNumber, colNumber) {
+ var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
+
+ colNumber = Math.max(colNumber, 0);
+
+ var highlighted = opts.highlightCode && _chalk2.default.supportsColor || opts.forceColor;
+ var chalk = _chalk2.default;
+ if (opts.forceColor) {
+ chalk = new _chalk2.default.constructor({ enabled: true });
+ }
+ var maybeHighlight = function maybeHighlight(chalkFn, string) {
+ return highlighted ? chalkFn(string) : string;
+ };
+ var defs = getDefs(chalk);
+ if (highlighted) rawLines = highlight(defs, rawLines);
+
+ var linesAbove = opts.linesAbove || 2;
+ var linesBelow = opts.linesBelow || 3;
+
+ var lines = rawLines.split(NEWLINE);
+ var start = Math.max(lineNumber - (linesAbove + 1), 0);
+ var end = Math.min(lines.length, lineNumber + linesBelow);
+
+ if (!lineNumber && !colNumber) {
+ start = 0;
+ end = lines.length;
+ }
+
+ var numberMaxWidth = String(end).length;
+
+ var frame = lines.slice(start, end).map(function (line, index) {
+ var number = start + 1 + index;
+ var paddedNumber = (" " + number).slice(-numberMaxWidth);
+ var gutter = " " + paddedNumber + " | ";
+ if (number === lineNumber) {
+ var markerLine = "";
+ if (colNumber) {
+ var markerSpacing = line.slice(0, colNumber - 1).replace(/[^\t]/g, " ");
+ markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^")].join("");
+ }
+ return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join("");
+ } else {
+ return " " + maybeHighlight(defs.gutter, gutter) + line;
+ }
+ }).join("\n");
+
+ if (highlighted) {
+ return chalk.reset(frame);
+ } else {
+ return frame;
+ }
+};
+
+var _jsTokens = require("js-tokens");
+
+var _jsTokens2 = _interopRequireDefault(_jsTokens);
+
+var _esutils = require("esutils");
+
+var _esutils2 = _interopRequireDefault(_esutils);
+
+var _chalk = require("chalk");
+
+var _chalk2 = _interopRequireDefault(_chalk);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function getDefs(chalk) {
+ return {
+ keyword: chalk.cyan,
+ capitalized: chalk.yellow,
+ jsx_tag: chalk.yellow,
+ punctuator: chalk.yellow,
+
+ number: chalk.magenta,
+ string: chalk.green,
+ regex: chalk.magenta,
+ comment: chalk.grey,
+ invalid: chalk.white.bgRed.bold,
+ gutter: chalk.grey,
+ marker: chalk.red.bold
+ };
+}
+
+var NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
+
+var JSX_TAG = /^[a-z][\w-]*$/i;
+
+var BRACKET = /^[()\[\]{}]$/;
+
+function getTokenType(match) {
+ var _match$slice = match.slice(-2),
+ offset = _match$slice[0],
+ text = _match$slice[1];
+
+ var token = _jsTokens2.default.matchToToken(match);
+
+ if (token.type === "name") {
+ if (_esutils2.default.keyword.isReservedWordES6(token.value)) {
+ return "keyword";
+ }
+
+ if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == "</")) {
+ return "jsx_tag";
+ }
+
+ if (token.value[0] !== token.value[0].toLowerCase()) {
+ return "capitalized";
+ }
+ }
+
+ if (token.type === "punctuator" && BRACKET.test(token.value)) {
+ return "bracket";
+ }
+
+ return token.type;
+}
+
+function highlight(defs, text) {
+ return text.replace(_jsTokens2.default, function () {
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ var type = getTokenType(args);
+ var colorize = defs[type];
+ if (colorize) {
+ return args[0].split(NEWLINE).map(function (str) {
+ return colorize(str);
+ }).join("\n");
+ } else {
+ return args[0];
+ }
+ });
+}
+
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/tools/eslint/node_modules/babel-code-frame/package.json b/tools/eslint/node_modules/babel-code-frame/package.json
new file mode 100644
index 0000000000..6d31cc583c
--- /dev/null
+++ b/tools/eslint/node_modules/babel-code-frame/package.json
@@ -0,0 +1,102 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "babel-code-frame@^6.16.0",
+ "scope": null,
+ "escapedName": "babel-code-frame",
+ "name": "babel-code-frame",
+ "rawSpec": "^6.16.0",
+ "spec": ">=6.16.0 <7.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/eslint"
+ ]
+ ],
+ "_from": "babel-code-frame@>=6.16.0 <7.0.0",
+ "_id": "babel-code-frame@6.20.0",
+ "_inCache": true,
+ "_location": "/babel-code-frame",
+ "_nodeVersion": "6.9.0",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/babel-code-frame-6.20.0.tgz_1481239541478_0.12437463807873428"
+ },
+ "_npmUser": {
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
+ },
+ "_npmVersion": "3.10.8",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "babel-code-frame@^6.16.0",
+ "scope": null,
+ "escapedName": "babel-code-frame",
+ "name": "babel-code-frame",
+ "rawSpec": "^6.16.0",
+ "spec": ">=6.16.0 <7.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/eslint"
+ ],
+ "_resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz",
+ "_shasum": "b968f839090f9a8bc6d41938fb96cb84f7387b26",
+ "_shrinkwrap": null,
+ "_spec": "babel-code-frame@^6.16.0",
+ "_where": "/Users/trott/io.js/tools/node_modules/eslint",
+ "author": {
+ "name": "Sebastian McKenzie",
+ "email": "sebmck@gmail.com"
+ },
+ "dependencies": {
+ "chalk": "^1.1.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^2.0.0"
+ },
+ "description": "Generate errors that contain a code frame that point to source locations.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "b968f839090f9a8bc6d41938fb96cb84f7387b26",
+ "tarball": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.20.0.tgz"
+ },
+ "homepage": "https://babeljs.io/",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "maintainers": [
+ {
+ "name": "amasad",
+ "email": "amjad.masad@gmail.com"
+ },
+ {
+ "name": "hzoo",
+ "email": "hi@henryzoo.com"
+ },
+ {
+ "name": "jmm",
+ "email": "npm-public@jessemccarthy.net"
+ },
+ {
+ "name": "loganfsmyth",
+ "email": "loganfsmyth@gmail.com"
+ },
+ {
+ "name": "sebmck",
+ "email": "sebmck@gmail.com"
+ },
+ {
+ "name": "thejameskyle",
+ "email": "me@thejameskyle.com"
+ }
+ ],
+ "name": "babel-code-frame",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame"
+ },
+ "scripts": {},
+ "version": "6.20.0"
+}
diff --git a/tools/eslint/node_modules/buffer-shims/index.js b/tools/eslint/node_modules/buffer-shims/index.js
new file mode 100644
index 0000000000..1cab4c05e1
--- /dev/null
+++ b/tools/eslint/node_modules/buffer-shims/index.js
@@ -0,0 +1,108 @@
+'use strict';
+
+var buffer = require('buffer');
+var Buffer = buffer.Buffer;
+var SlowBuffer = buffer.SlowBuffer;
+var MAX_LEN = buffer.kMaxLength || 2147483647;
+exports.alloc = function alloc(size, fill, encoding) {
+ if (typeof Buffer.alloc === 'function') {
+ return Buffer.alloc(size, fill, encoding);
+ }
+ if (typeof encoding === 'number') {
+ throw new TypeError('encoding must not be number');
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ var enc = encoding;
+ var _fill = fill;
+ if (_fill === undefined) {
+ enc = undefined;
+ _fill = 0;
+ }
+ var buf = new Buffer(size);
+ if (typeof _fill === 'string') {
+ var fillBuf = new Buffer(_fill, enc);
+ var flen = fillBuf.length;
+ var i = -1;
+ while (++i < size) {
+ buf[i] = fillBuf[i % flen];
+ }
+ } else {
+ buf.fill(_fill);
+ }
+ return buf;
+}
+exports.allocUnsafe = function allocUnsafe(size) {
+ if (typeof Buffer.allocUnsafe === 'function') {
+ return Buffer.allocUnsafe(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new Buffer(size);
+}
+exports.from = function from(value, encodingOrOffset, length) {
+ if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
+ return Buffer.from(value, encodingOrOffset, length);
+ }
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number');
+ }
+ if (typeof value === 'string') {
+ return new Buffer(value, encodingOrOffset);
+ }
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ var offset = encodingOrOffset;
+ if (arguments.length === 1) {
+ return new Buffer(value);
+ }
+ if (typeof offset === 'undefined') {
+ offset = 0;
+ }
+ var len = length;
+ if (typeof len === 'undefined') {
+ len = value.byteLength - offset;
+ }
+ if (offset >= value.byteLength) {
+ throw new RangeError('\'offset\' is out of bounds');
+ }
+ if (len > value.byteLength - offset) {
+ throw new RangeError('\'length\' is out of bounds');
+ }
+ return new Buffer(value.slice(offset, offset + len));
+ }
+ if (Buffer.isBuffer(value)) {
+ var out = new Buffer(value.length);
+ value.copy(out, 0, 0, value.length);
+ return out;
+ }
+ if (value) {
+ if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
+ return new Buffer(value);
+ }
+ if (value.type === 'Buffer' && Array.isArray(value.data)) {
+ return new Buffer(value.data);
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
+}
+exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
+ if (typeof Buffer.allocUnsafeSlow === 'function') {
+ return Buffer.allocUnsafeSlow(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size >= MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new SlowBuffer(size);
+}
diff --git a/tools/eslint/node_modules/buffer-shims/license.md b/tools/eslint/node_modules/buffer-shims/license.md
new file mode 100644
index 0000000000..01cfaefe2f
--- /dev/null
+++ b/tools/eslint/node_modules/buffer-shims/license.md
@@ -0,0 +1,19 @@
+# Copyright (c) 2016 Calvin Metcalf
+
+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/tools/eslint/node_modules/buffer-shims/package.json b/tools/eslint/node_modules/buffer-shims/package.json
new file mode 100644
index 0000000000..0d4402661b
--- /dev/null
+++ b/tools/eslint/node_modules/buffer-shims/package.json
@@ -0,0 +1,85 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "buffer-shims@^1.0.0",
+ "scope": null,
+ "escapedName": "buffer-shims",
+ "name": "buffer-shims",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/readable-stream"
+ ]
+ ],
+ "_from": "buffer-shims@>=1.0.0 <2.0.0",
+ "_id": "buffer-shims@1.0.0",
+ "_inCache": true,
+ "_location": "/buffer-shims",
+ "_nodeVersion": "5.11.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/buffer-shims-1.0.0.tgz_1462560889323_0.8640750856138766"
+ },
+ "_npmUser": {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ },
+ "_npmVersion": "3.8.6",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "buffer-shims@^1.0.0",
+ "scope": null,
+ "escapedName": "buffer-shims",
+ "name": "buffer-shims",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "_shrinkwrap": null,
+ "_spec": "buffer-shims@^1.0.0",
+ "_where": "/Users/trott/io.js/tools/node_modules/readable-stream",
+ "bugs": {
+ "url": "https://github.com/calvinmetcalf/buffer-shims/issues"
+ },
+ "dependencies": {},
+ "description": "some shims for node buffers",
+ "devDependencies": {
+ "tape": "^4.5.1"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "tarball": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "ea89b3857ab5b8203957922a84e9a48cf4c47e0a",
+ "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme",
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "cwmma",
+ "email": "calvin.metcalf@gmail.com"
+ }
+ ],
+ "name": "buffer-shims",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/tools/eslint/node_modules/buffer-shims/readme.md b/tools/eslint/node_modules/buffer-shims/readme.md
new file mode 100644
index 0000000000..7ea6475e28
--- /dev/null
+++ b/tools/eslint/node_modules/buffer-shims/readme.md
@@ -0,0 +1,21 @@
+buffer-shims
+===
+
+functions to make sure the new buffer methods work in older browsers.
+
+```js
+var bufferShim = require('buffer-shims');
+bufferShim.from('foo');
+bufferShim.alloc(9, 'cafeface', 'hex');
+bufferShim.allocUnsafe(15);
+bufferShim.allocUnsafeSlow(21);
+```
+
+should just use the original in newer nodes and on older nodes uses fallbacks.
+
+Known Issues
+===
+- this does not patch the buffer object, only the constructor stuff
+- it's actually a polyfill
+
+![](https://i.imgur.com/zxII3jJ.gif)
diff --git a/tools/eslint/node_modules/chalk/package.json b/tools/eslint/node_modules/chalk/package.json
index f74ee9546e..febc046b45 100644
--- a/tools/eslint/node_modules/chalk/package.json
+++ b/tools/eslint/node_modules/chalk/package.json
@@ -38,6 +38,7 @@
"type": "range"
},
"_requiredBy": [
+ "/babel-code-frame",
"/eslint",
"/inquirer",
"/table"
diff --git a/tools/eslint/node_modules/circular-json/package.json b/tools/eslint/node_modules/circular-json/package.json
index 6ac94a5b2b..05f5e76028 100644
--- a/tools/eslint/node_modules/circular-json/package.json
+++ b/tools/eslint/node_modules/circular-json/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "circular-json@^0.3.0",
+ "raw": "circular-json@^0.3.1",
"scope": null,
"escapedName": "circular-json",
"name": "circular-json",
- "rawSpec": "^0.3.0",
- "spec": ">=0.3.0 <0.4.0",
+ "rawSpec": "^0.3.1",
+ "spec": ">=0.3.1 <0.4.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/flat-cache"
]
],
- "_from": "circular-json@>=0.3.0 <0.4.0",
+ "_from": "circular-json@>=0.3.1 <0.4.0",
"_id": "circular-json@0.3.1",
"_inCache": true,
"_location": "/circular-json",
@@ -29,12 +29,12 @@
"_npmVersion": "3.10.5",
"_phantomChildren": {},
"_requested": {
- "raw": "circular-json@^0.3.0",
+ "raw": "circular-json@^0.3.1",
"scope": null,
"escapedName": "circular-json",
"name": "circular-json",
- "rawSpec": "^0.3.0",
- "spec": ">=0.3.0 <0.4.0",
+ "rawSpec": "^0.3.1",
+ "spec": ">=0.3.1 <0.4.0",
"type": "range"
},
"_requiredBy": [
@@ -43,7 +43,7 @@
"_resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
"_shasum": "be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d",
"_shrinkwrap": null,
- "_spec": "circular-json@^0.3.0",
+ "_spec": "circular-json@^0.3.1",
"_where": "/Users/trott/io.js/tools/node_modules/flat-cache",
"author": {
"name": "Andrea Giammarchi",
diff --git a/tools/eslint/node_modules/code-point-at/index.js b/tools/eslint/node_modules/code-point-at/index.js
index 0335117977..0432fe6a30 100644
--- a/tools/eslint/node_modules/code-point-at/index.js
+++ b/tools/eslint/node_modules/code-point-at/index.js
@@ -1,6 +1,5 @@
+/* eslint-disable babel/new-cap, xo/throw-new-error */
'use strict';
-var numberIsNan = require('number-is-nan');
-
module.exports = function (str, pos) {
if (str === null || str === undefined) {
throw TypeError();
@@ -11,7 +10,7 @@ module.exports = function (str, pos) {
var size = str.length;
var i = pos ? Number(pos) : 0;
- if (numberIsNan(i)) {
+ if (Number.isNaN(i)) {
i = 0;
}
@@ -25,7 +24,7 @@ module.exports = function (str, pos) {
var second = str.charCodeAt(i + 1);
if (second >= 0xDC00 && second <= 0xDFFF) {
- return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
+ return ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;
}
}
diff --git a/tools/eslint/node_modules/code-point-at/package.json b/tools/eslint/node_modules/code-point-at/package.json
index 4f90819336..d97a97e677 100644
--- a/tools/eslint/node_modules/code-point-at/package.json
+++ b/tools/eslint/node_modules/code-point-at/package.json
@@ -14,13 +14,13 @@
]
],
"_from": "code-point-at@>=1.0.0 <2.0.0",
- "_id": "code-point-at@1.0.1",
+ "_id": "code-point-at@1.1.0",
"_inCache": true,
"_location": "/code-point-at",
- "_nodeVersion": "4.5.0",
+ "_nodeVersion": "4.6.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/code-point-at-1.0.1.tgz_1475223183649_0.724906453397125"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/code-point-at-1.1.0.tgz_1478169780337_0.8445875702891499"
},
"_npmUser": {
"name": "sindresorhus",
@@ -41,8 +41,8 @@
"/readline2",
"/string-width"
],
- "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz",
- "_shasum": "1104cd34f9b5b45d3eba88f1babc1924e1ce35fb",
+ "_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/trott/io.js/tools/node_modules/readline2",
@@ -54,17 +54,16 @@
"bugs": {
"url": "https://github.com/sindresorhus/code-point-at/issues"
},
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "description": "ES2015 String#codePointAt() ponyfill",
+ "dependencies": {},
+ "description": "ES2015 `String#codePointAt()` ponyfill",
"devDependencies": {
- "ava": "*"
+ "ava": "*",
+ "xo": "^0.16.0"
},
"directories": {},
"dist": {
- "shasum": "1104cd34f9b5b45d3eba88f1babc1924e1ce35fb",
- "tarball": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz"
+ "shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
+ "tarball": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -72,7 +71,7 @@
"files": [
"index.js"
],
- "gitHead": "502d72c5a959275e5d90f9c6641589756af44085",
+ "gitHead": "f8f21c8df2d40248fef1b36ca9076e59c0c34791",
"homepage": "https://github.com/sindresorhus/code-point-at#readme",
"keywords": [
"es2015",
@@ -102,7 +101,7 @@
"url": "git+https://github.com/sindresorhus/code-point-at.git"
},
"scripts": {
- "test": "ava"
+ "test": "xo && ava"
},
- "version": "1.0.1"
+ "version": "1.1.0"
}
diff --git a/tools/eslint/node_modules/code-point-at/readme.md b/tools/eslint/node_modules/code-point-at/readme.md
index ef9713f1b0..4c97730e69 100644
--- a/tools/eslint/node_modules/code-point-at/readme.md
+++ b/tools/eslint/node_modules/code-point-at/readme.md
@@ -29,4 +29,4 @@ codePointAt('abc', 2);
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/tools/eslint/node_modules/concat-stream/package.json b/tools/eslint/node_modules/concat-stream/package.json
index 39076975ad..e8a12a8fe8 100644
--- a/tools/eslint/node_modules/concat-stream/package.json
+++ b/tools/eslint/node_modules/concat-stream/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "concat-stream@>=1.4.6 <2.0.0",
- "_id": "concat-stream@1.5.2",
+ "_id": "concat-stream@1.6.0",
"_inCache": true,
"_location": "/concat-stream",
- "_nodeVersion": "4.4.3",
+ "_nodeVersion": "4.6.2",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/concat-stream-1.5.2.tgz_1472715196934_0.010375389130786061"
+ "tmp": "tmp/concat-stream-1.6.0.tgz_1482162257023_0.2988202746491879"
},
"_npmUser": {
"name": "mafintosh",
"email": "mathiasbuus@gmail.com"
},
- "_npmVersion": "2.15.9",
+ "_npmVersion": "2.15.11",
"_phantomChildren": {},
"_requested": {
"raw": "concat-stream@^1.4.6",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "_shasum": "708978624d856af41a5a741defdd261da752c266",
+ "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "_shasum": "0aac662fd52be78964d5532f694784e70110acf7",
"_shrinkwrap": null,
"_spec": "concat-stream@^1.4.6",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
@@ -53,18 +53,18 @@
"url": "http://github.com/maxogden/concat-stream/issues"
},
"dependencies": {
- "inherits": "~2.0.1",
- "readable-stream": "~2.0.0",
- "typedarray": "~0.0.5"
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
},
"description": "writable stream that concatenates strings or binary data and calls a callback with the result",
"devDependencies": {
- "tape": "~2.3.2"
+ "tape": "^4.6.3"
},
"directories": {},
"dist": {
- "shasum": "708978624d856af41a5a741defdd261da752c266",
- "tarball": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz"
+ "shasum": "0aac662fd52be78964d5532f694784e70110acf7",
+ "tarball": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz"
},
"engines": [
"node >= 0.8"
@@ -72,8 +72,8 @@
"files": [
"index.js"
],
- "gitHead": "731fedd137eae89d066c249fdca070f8f16afbb8",
- "homepage": "https://github.com/maxogden/concat-stream#readme",
+ "gitHead": "e482281642c1e011fc158f5749ef40a71c77a426",
+ "homepage": "https://github.com/maxogden/concat-stream",
"license": "MIT",
"main": "index.js",
"maintainers": [
@@ -118,5 +118,5 @@
"android-browser/4.2..latest"
]
},
- "version": "1.5.2"
+ "version": "1.6.0"
}
diff --git a/tools/eslint/node_modules/concat-stream/readme.md b/tools/eslint/node_modules/concat-stream/readme.md
index 8ad4197c9e..f45e6fc872 100644
--- a/tools/eslint/node_modules/concat-stream/readme.md
+++ b/tools/eslint/node_modules/concat-stream/readme.md
@@ -16,7 +16,7 @@ There are also `objectMode` streams that emit things other than Buffers, and you
## Related
-`stream-each` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
+`concat-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
### examples
diff --git a/tools/eslint/node_modules/debug/.coveralls.yml b/tools/eslint/node_modules/debug/.coveralls.yml
new file mode 100644
index 0000000000..20a7068581
--- /dev/null
+++ b/tools/eslint/node_modules/debug/.coveralls.yml
@@ -0,0 +1 @@
+repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
diff --git a/tools/eslint/node_modules/debug/LICENSE b/tools/eslint/node_modules/debug/LICENSE
new file mode 100644
index 0000000000..658c933d28
--- /dev/null
+++ b/tools/eslint/node_modules/debug/LICENSE
@@ -0,0 +1,19 @@
+(The MIT License)
+
+Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
+
+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/tools/eslint/node_modules/debug/Makefile b/tools/eslint/node_modules/debug/Makefile
index 5cf4a5962b..1a2c195a6a 100644
--- a/tools/eslint/node_modules/debug/Makefile
+++ b/tools/eslint/node_modules/debug/Makefile
@@ -1,4 +1,3 @@
-
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
@@ -6,31 +5,48 @@ THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
# BIN directory
BIN := $(THIS_DIR)/node_modules/.bin
+# Path
+PATH := node_modules/.bin:$(PATH)
+SHELL := /bin/bash
+
# applications
NODE ?= $(shell which node)
-NPM ?= $(NODE) $(shell which npm)
+YARN ?= $(shell which yarn)
+PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
BROWSERIFY ?= $(NODE) $(BIN)/browserify
+.FORCE:
+
all: dist/debug.js
install: node_modules
-
-clean:
- @rm -rf dist
-
-dist:
- @mkdir -p $@
-
-dist/debug.js: node_modules browser.js debug.js dist
- @$(BROWSERIFY) \
- --standalone debug \
- . > $@
-
-distclean: clean
- @rm -rf node_modules
-
+
node_modules: package.json
- @NODE_ENV= $(NPM) install
+ @NODE_ENV= $(PKG) install
@touch node_modules
-
+
+lint: .FORCE
+ eslint browser.js debug.js index.js node.js
+
+test-node: .FORCE
+ istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
+
+test-browser: .FORCE
+ mkdir -p dist
+
+ @$(BROWSERIFY) \
+ --standalone debug \
+ . > dist/debug.js
+
+ karma start --single-run
+ rimraf dist
+
+test: .FORCE
+ concurrently \
+ "make test-node" \
+ "make test-browser"
+
+coveralls:
+ cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
+
.PHONY: all install clean distclean
diff --git a/tools/eslint/node_modules/debug/Readme.md b/tools/eslint/node_modules/debug/Readme.md
index b4f45e3cc6..2c57ddfa5d 100644
--- a/tools/eslint/node_modules/debug/Readme.md
+++ b/tools/eslint/node_modules/debug/Readme.md
@@ -1,6 +1,9 @@
# debug
+[![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)
- tiny node.js debugging utility modelled after node core's debugging technique.
+A tiny node.js debugging utility modelled after node core's debugging technique.
+
+**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
## Installation
@@ -10,7 +13,7 @@ $ npm install debug
## Usage
- With `debug` you simply invoke the exported function to generate your debug function, passing it a name which will determine if a noop function is returned, or a decorated `console.error`, so all of the `console` format string goodies you're used to work fine. A unique color is selected per-function for visibility.
+`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.
Example _app.js_:
@@ -59,6 +62,12 @@ setInterval(function(){
set DEBUG=*,-not_this
```
+ Note that PowerShell uses different syntax to set environment variables.
+
+ ```cmd
+ $env:DEBUG = "*,-not_this"
+ ```
+
Then, run the program to be debugged as usual.
## Millisecond diff
@@ -73,7 +82,7 @@ Then, run the program to be debugged as usual.
## Conventions
- 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".
+ 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".
## Wildcards
@@ -81,21 +90,69 @@ Then, run the program to be debugged as usual.
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:".
-## Browser support
+## Environment Variables
+
+ When running through Node.js, you can set a few environment variables that will
+ change the behavior of the debug logging:
+
+| Name | Purpose |
+|-----------|-------------------------------------------------|
+| `DEBUG` | Enables/disabled 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. |
+
+
+ __Note:__ The environment variables beginning with `DEBUG_` end up being
+ converted into an Options object that gets used with `%o`/`%O` formatters.
+ See the Node.js documentation for
+ [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
+ for the complete list.
+
+## Formatters
+
- Debug works in the browser as well, currently persisted by `localStorage`. Consider the situation shown below where you have `worker:a` and `worker:b`, and wish to debug both. Somewhere in the code on your page, include:
+ Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
+
+| Formatter | Representation |
+|-----------|----------------|
+| `%O` | Pretty-print an Object on multiple lines. |
+| `%o` | Pretty-print an Object all on a single line. |
+| `%s` | String. |
+| `%d` | Number (both integer and float). |
+| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
+| `%%` | Single percent sign ('%'). This does not consume an argument. |
+
+### Custom formatters
+
+ 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:
```js
-window.myDebug = require("debug");
+const createDebug = require('debug')
+createDebug.formatters.h = (v) => {
+ return v.toString('hex')
+}
+
+// …elsewhere
+const debug = createDebug('foo')
+debug('this is hex: %h', new Buffer('hello world'))
+// foo this is hex: 68656c6c6f20776f726c6421 +0ms
```
- ("debug" is a global object in the browser so we give this object a different name.) When your page is open in the browser, type the following in the console:
+## Browser support
+ You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
+ or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
+ if you don't want to build it yourself.
+
+ Debug's enable state is currently persisted by `localStorage`.
+ Consider the situation shown below where you have `worker:a` and `worker:b`,
+ and wish to debug both. You can enable this using `localStorage.debug`:
```js
-myDebug.enable("worker:*")
+localStorage.debug = 'worker:*'
```
- Refresh the page. Debug output will continue to be sent to the console until it is disabled by typing `myDebug.disable()` in the console.
+And then refresh the page.
```js
a = debug('worker:a');
@@ -121,9 +178,10 @@ setInterval(function(){
![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-### stderr vs stdout
-You can set an alternative logging method per-namespace by overriding the `log` method on a per-namespace or globally:
+## Output streams
+
+ By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
Example _stdout.js_:
@@ -147,26 +205,18 @@ error('now goes to stdout via console.info');
log('still goes to stdout, but via console.info now');
```
-### Save debug output to a file
-
-You can save all debug statements to a file by piping them.
-
-Example:
-
-```bash
-$ DEBUG_FD=3 node your-app.js 3> whatever.log
-```
## Authors
- TJ Holowaychuk
- Nathan Rajlich
+ - Andrew Rhyne
## License
(The MIT License)
-Copyright (c) 2014 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
+Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff --git a/tools/eslint/node_modules/debug/karma.conf.js b/tools/eslint/node_modules/debug/karma.conf.js
new file mode 100644
index 0000000000..103a82d15b
--- /dev/null
+++ b/tools/eslint/node_modules/debug/karma.conf.js
@@ -0,0 +1,70 @@
+// Karma configuration
+// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
+
+module.exports = function(config) {
+ config.set({
+
+ // base path that will be used to resolve all patterns (eg. files, exclude)
+ basePath: '',
+
+
+ // frameworks to use
+ // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['mocha', 'chai', 'sinon'],
+
+
+ // list of files / patterns to load in the browser
+ files: [
+ 'dist/debug.js',
+ 'test/*spec.js'
+ ],
+
+
+ // list of files to exclude
+ exclude: [
+ 'src/node.js'
+ ],
+
+
+ // preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+ preprocessors: {
+ },
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+ reporters: ['progress'],
+
+
+ // web server port
+ port: 9876,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: ['PhantomJS'],
+
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: false,
+
+ // Concurrency level
+ // how many browser should be started simultaneous
+ concurrency: Infinity
+ })
+}
diff --git a/tools/eslint/node_modules/debug/node.js b/tools/eslint/node_modules/debug/node.js
index 1d392a81d6..7fc36fe6db 100644
--- a/tools/eslint/node_modules/debug/node.js
+++ b/tools/eslint/node_modules/debug/node.js
@@ -1,209 +1 @@
-
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- var debugColors = (process.env.DEBUG_COLORS || '').trim().toLowerCase();
- if (0 === debugColors.length) {
- return tty.isatty(fd);
- } else {
- return '0' !== debugColors
- && 'no' !== debugColors
- && 'false' !== debugColors
- && 'disabled' !== debugColors;
- }
-}
-
-/**
- * Map %o to `util.inspect()`, since Node doesn't do that out of the box.
- */
-
-var inspect = (4 === util.inspect.length ?
- // node <= 0.8.x
- function (v, colors) {
- return util.inspect(v, void 0, void 0, colors);
- } :
- // node > 0.8.x
- function (v, colors) {
- return util.inspect(v, { colors: colors });
- }
-);
-
-exports.formatters.o = function(v) {
- return inspect(v, this.useColors)
- .replace(/\s*\n\s*/g, ' ');
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs() {
- var args = arguments;
- var useColors = this.useColors;
- var name = this.namespace;
-
- if (useColors) {
- var c = this.color;
-
- args[0] = ' \u001b[3' + c + ';1m' + name + ' '
- + '\u001b[0m'
- + args[0] + '\u001b[3' + c + 'm'
- + ' +' + exports.humanize(this.diff) + '\u001b[0m';
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
- return args;
-}
-
-/**
- * Invokes `console.error()` with the specified arguments.
- */
-
-function log() {
- return stream.write(util.format.apply(this, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
+module.exports = require('./src/node');
diff --git a/tools/eslint/node_modules/debug/package.json b/tools/eslint/node_modules/debug/package.json
index ba8ba322eb..3e8f3b946b 100644
--- a/tools/eslint/node_modules/debug/package.json
+++ b/tools/eslint/node_modules/debug/package.json
@@ -14,15 +14,19 @@
]
],
"_from": "debug@>=2.1.1 <3.0.0",
- "_id": "debug@2.2.0",
+ "_id": "debug@2.6.0",
"_inCache": true,
"_location": "/debug",
- "_nodeVersion": "0.12.2",
+ "_nodeVersion": "6.9.2",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/debug-2.6.0.tgz_1482990633625_0.042889281176030636"
+ },
"_npmUser": {
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
+ "name": "thebigredgeek",
+ "email": "rhyneandrew@gmail.com"
},
- "_npmVersion": "2.7.4",
+ "_npmVersion": "3.10.9",
"_phantomChildren": {},
"_requested": {
"raw": "debug@^2.1.1",
@@ -36,8 +40,8 @@
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "_shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da",
+ "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
+ "_shasum": "bc596bcabe7617f11d9fa15361eded5608b8499b",
"_shrinkwrap": null,
"_spec": "debug@^2.1.1",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
@@ -45,7 +49,7 @@
"name": "TJ Holowaychuk",
"email": "tj@vision-media.ca"
},
- "browser": "./browser.js",
+ "browser": "./src/browser.js",
"bugs": {
"url": "https://github.com/visionmedia/debug/issues"
},
@@ -60,38 +64,52 @@
"name": "Nathan Rajlich",
"email": "nathan@tootallnate.net",
"url": "http://n8.io"
+ },
+ {
+ "name": "Andrew Rhyne",
+ "email": "rhyneandrew@gmail.com"
}
],
"dependencies": {
- "ms": "0.7.1"
+ "ms": "0.7.2"
},
"description": "small debugging utility",
"devDependencies": {
"browserify": "9.0.3",
- "mocha": "*"
+ "chai": "^3.5.0",
+ "concurrently": "^3.1.0",
+ "coveralls": "^2.11.15",
+ "eslint": "^3.12.1",
+ "istanbul": "^0.4.5",
+ "karma": "^1.3.0",
+ "karma-chai": "^0.1.0",
+ "karma-mocha": "^1.3.0",
+ "karma-phantomjs-launcher": "^1.0.2",
+ "karma-sinon": "^1.0.5",
+ "mocha": "^3.2.0",
+ "mocha-lcov-reporter": "^1.2.0",
+ "rimraf": "^2.5.4",
+ "sinon": "^1.17.6",
+ "sinon-chai": "^2.8.0"
},
"directories": {},
"dist": {
- "shasum": "f87057e995b1a1f6ae6a4960664137bc56f039da",
- "tarball": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz"
+ "shasum": "bc596bcabe7617f11d9fa15361eded5608b8499b",
+ "tarball": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz"
},
- "gitHead": "b38458422b5aa8aa6d286b10dfe427e8a67e2b35",
- "homepage": "https://github.com/visionmedia/debug",
+ "gitHead": "ac5ccae70358a2bccc71d288e5f9c656a7678748",
+ "homepage": "https://github.com/visionmedia/debug#readme",
"keywords": [
"debug",
"log",
"debugger"
],
"license": "MIT",
- "main": "./node.js",
+ "main": "./src/index.js",
"maintainers": [
{
- "name": "tjholowaychuk",
- "email": "tj@vision-media.ca"
- },
- {
- "name": "tootallnate",
- "email": "nathan@tootallnate.net"
+ "name": "thebigredgeek",
+ "email": "rhyneandrew@gmail.com"
}
],
"name": "debug",
@@ -102,5 +120,5 @@
"url": "git://github.com/visionmedia/debug.git"
},
"scripts": {},
- "version": "2.2.0"
+ "version": "2.6.0"
}
diff --git a/tools/eslint/node_modules/debug/browser.js b/tools/eslint/node_modules/debug/src/browser.js
index 7c76452219..38d6391e3e 100644
--- a/tools/eslint/node_modules/debug/browser.js
+++ b/tools/eslint/node_modules/debug/src/browser.js
@@ -1,4 +1,3 @@
-
/**
* This is the web browser implementation of `debug()`.
*
@@ -38,13 +37,23 @@ exports.colors = [
*/
function useColors() {
+ // NB: In an Electron preload script, document will be defined but not fully
+ // initialized. Since we know we're in Chrome, we'll just detect this case
+ // explicitly
+ if (typeof window !== 'undefined' && window && typeof window.process !== 'undefined' && window.process.type === 'renderer') {
+ return true;
+ }
+
// is webkit? http://stackoverflow.com/a/16459606/376773
- return ('WebkitAppearance' in document.documentElement.style) ||
+ // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
+ return (typeof document !== 'undefined' && document && 'WebkitAppearance' in document.documentElement.style) ||
// is firebug? http://stackoverflow.com/a/398120/376773
- (window.console && (console.firebug || (console.exception && console.table))) ||
+ (typeof window !== 'undefined' && window && window.console && (console.firebug || (console.exception && console.table))) ||
// is firefox >= v31?
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31);
+ (typeof navigator !== 'undefined' && navigator && 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+)/));
}
/**
@@ -52,7 +61,11 @@ function useColors() {
*/
exports.formatters.j = function(v) {
- return JSON.stringify(v);
+ try {
+ return JSON.stringify(v);
+ } catch (err) {
+ return '[UnexpectedJSONParseError]: ' + err.message;
+ }
};
@@ -62,8 +75,7 @@ exports.formatters.j = function(v) {
* @api public
*/
-function formatArgs() {
- var args = arguments;
+function formatArgs(args) {
var useColors = this.useColors;
args[0] = (useColors ? '%c' : '')
@@ -73,17 +85,17 @@ function formatArgs() {
+ (useColors ? '%c ' : ' ')
+ '+' + exports.humanize(this.diff);
- if (!useColors) return args;
+ if (!useColors) return;
var c = 'color: ' + this.color;
- args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));
+ args.splice(1, 0, c, 'color: inherit')
// the final "%c" is somewhat tricky, because there could be other
// arguments passed either before or after the %c, so we need to
// figure out the correct index to insert the CSS into
var index = 0;
var lastC = 0;
- args[0].replace(/%[a-z%]/g, function(match) {
+ args[0].replace(/%[a-zA-Z%]/g, function(match) {
if ('%%' === match) return;
index++;
if ('%c' === match) {
@@ -94,7 +106,6 @@ function formatArgs() {
});
args.splice(lastC, 0, c);
- return args;
}
/**
@@ -137,11 +148,14 @@ function save(namespaces) {
*/
function load() {
- var r;
try {
- r = exports.storage.debug;
+ return exports.storage.debug;
} catch(e) {}
- return r;
+
+ // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
+ if (typeof process !== 'undefined' && 'env' in process) {
+ return process.env.DEBUG;
+ }
}
/**
@@ -161,7 +175,7 @@ exports.enable(load());
* @api private
*/
-function localstorage(){
+function localstorage() {
try {
return window.localStorage;
} catch (e) {}
diff --git a/tools/eslint/node_modules/debug/debug.js b/tools/eslint/node_modules/debug/src/debug.js
index 7571a86058..4d3c7f2782 100644
--- a/tools/eslint/node_modules/debug/debug.js
+++ b/tools/eslint/node_modules/debug/src/debug.js
@@ -6,7 +6,7 @@
* Expose `debug()` as the module.
*/
-exports = module.exports = debug;
+exports = module.exports = createDebug.debug = createDebug.default = createDebug;
exports.coerce = coerce;
exports.disable = disable;
exports.enable = enable;
@@ -23,18 +23,12 @@ exports.skips = [];
/**
* Map of special "%n" handling functions, for the debug "format" argument.
*
- * Valid key names are a single, lowercased letter, i.e. "n".
+ * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
*/
exports.formatters = {};
/**
- * Previously assigned color.
- */
-
-var prevColor = 0;
-
-/**
* Previous log timestamp.
*/
@@ -42,13 +36,20 @@ var prevTime;
/**
* Select a color.
- *
+ * @param {String} namespace
* @return {Number}
* @api private
*/
-function selectColor() {
- return exports.colors[prevColor++ % exports.colors.length];
+function selectColor(namespace) {
+ var hash = 0, i;
+
+ for (i in namespace) {
+ hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
+ hash |= 0; // Convert to 32bit integer
+ }
+
+ return exports.colors[Math.abs(hash) % exports.colors.length];
}
/**
@@ -59,17 +60,13 @@ function selectColor() {
* @api public
*/
-function debug(namespace) {
-
- // define the `disabled` version
- function disabled() {
- }
- disabled.enabled = false;
+function createDebug(namespace) {
- // define the `enabled` version
- function enabled() {
+ function debug() {
+ // disabled?
+ if (!debug.enabled) return;
- var self = enabled;
+ var self = debug;
// set `diff` timestamp
var curr = +new Date();
@@ -79,22 +76,22 @@ function debug(namespace) {
self.curr = curr;
prevTime = curr;
- // add the `color` if not set
- if (null == self.useColors) self.useColors = exports.useColors();
- if (null == self.color && self.useColors) self.color = selectColor();
-
- var args = Array.prototype.slice.call(arguments);
+ // turn the `arguments` into a proper Array
+ var args = new Array(arguments.length);
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
args[0] = exports.coerce(args[0]);
if ('string' !== typeof args[0]) {
- // anything else let's inspect with %o
- args = ['%o'].concat(args);
+ // anything else let's inspect with %O
+ args.unshift('%O');
}
// apply any `formatters` transformations
var index = 0;
- args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
// if we encounter an escaped % then don't increase the array index
if (match === '%%') return match;
index++;
@@ -110,19 +107,24 @@ function debug(namespace) {
return match;
});
- if ('function' === typeof exports.formatArgs) {
- args = exports.formatArgs.apply(self, args);
- }
- var logFn = enabled.log || exports.log || console.log.bind(console);
+ // apply env-specific formatting (colors, etc.)
+ exports.formatArgs.call(self, args);
+
+ var logFn = debug.log || exports.log || console.log.bind(console);
logFn.apply(self, args);
}
- enabled.enabled = true;
- var fn = exports.enabled(namespace) ? enabled : disabled;
+ debug.namespace = namespace;
+ debug.enabled = exports.enabled(namespace);
+ debug.useColors = exports.useColors();
+ debug.color = selectColor(namespace);
- fn.namespace = namespace;
+ // env-specific initialization logic for debug instances
+ if ('function' === typeof exports.init) {
+ exports.init(debug);
+ }
- return fn;
+ return debug;
}
/**
diff --git a/tools/eslint/node_modules/debug/src/index.js b/tools/eslint/node_modules/debug/src/index.js
new file mode 100644
index 0000000000..e12cf4d58c
--- /dev/null
+++ b/tools/eslint/node_modules/debug/src/index.js
@@ -0,0 +1,10 @@
+/**
+ * Detect Electron renderer process, which is node, but we should
+ * treat as a browser.
+ */
+
+if (typeof process !== 'undefined' && process.type === 'renderer') {
+ module.exports = require('./browser.js');
+} else {
+ module.exports = require('./node.js');
+}
diff --git a/tools/eslint/node_modules/debug/src/node.js b/tools/eslint/node_modules/debug/src/node.js
new file mode 100644
index 0000000000..ea6a8967b3
--- /dev/null
+++ b/tools/eslint/node_modules/debug/src/node.js
@@ -0,0 +1,240 @@
+/**
+ * Module dependencies.
+ */
+
+var tty = require('tty');
+var util = require('util');
+
+/**
+ * This is the Node.js implementation of `debug()`.
+ *
+ * Expose `debug()` as the module.
+ */
+
+exports = module.exports = require('./debug');
+exports.init = init;
+exports.log = log;
+exports.formatArgs = formatArgs;
+exports.save = save;
+exports.load = load;
+exports.useColors = useColors;
+
+/**
+ * Colors.
+ */
+
+exports.colors = [6, 2, 3, 4, 5, 1];
+
+/**
+ * Build up the default `inspectOpts` object from the environment variables.
+ *
+ * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
+ */
+
+exports.inspectOpts = Object.keys(process.env).filter(function (key) {
+ return /^debug_/i.test(key);
+}).reduce(function (obj, key) {
+ // camel-case
+ var prop = key
+ .substring(6)
+ .toLowerCase()
+ .replace(/_([a-z])/, function (_, k) { return k.toUpperCase() });
+
+ // coerce string value into JS value
+ var val = process.env[key];
+ if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
+ else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
+ else if (val === 'null') val = null;
+ else val = Number(val);
+
+ obj[prop] = val;
+ return obj;
+}, {});
+
+/**
+ * The file descriptor to write the `debug()` calls to.
+ * Set the `DEBUG_FD` env variable to override with another value. i.e.:
+ *
+ * $ DEBUG_FD=3 node script.js 3>debug.log
+ */
+
+if ('DEBUG_FD' in process.env) {
+ util.deprecate(function(){}, '`DEBUG_FD` is deprecated. Override `debug.log` if you want to use a different log function (https://git.io/vMUyr)')()
+}
+
+var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
+var stream = 1 === fd ? process.stdout :
+ 2 === fd ? process.stderr :
+ createWritableStdioStream(fd);
+
+/**
+ * Is stdout a TTY? Colored output is enabled when `true`.
+ */
+
+function useColors() {
+ return 'colors' in exports.inspectOpts
+ ? Boolean(exports.inspectOpts.colors)
+ : tty.isatty(fd);
+}
+
+/**
+ * Map %o to `util.inspect()`, all on a single line.
+ */
+
+exports.formatters.o = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts)
+ .replace(/\s*\n\s*/g, ' ');
+};
+
+/**
+ * Map %o to `util.inspect()`, allowing multiple lines if needed.
+ */
+
+exports.formatters.O = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts);
+};
+
+/**
+ * Adds ANSI color escape codes if enabled.
+ *
+ * @api public
+ */
+
+function formatArgs(args) {
+ var name = this.namespace;
+ var useColors = this.useColors;
+
+ if (useColors) {
+ var c = this.color;
+ var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
+
+ args[0] = prefix + args[0].split('\n').join('\n' + prefix);
+ args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
+ } else {
+ args[0] = new Date().toUTCString()
+ + ' ' + name + ' ' + args[0];
+ }
+}
+
+/**
+ * Invokes `util.format()` with the specified arguments and writes to `stream`.
+ */
+
+function log() {
+ return stream.write(util.format.apply(util, arguments) + '\n');
+}
+
+/**
+ * Save `namespaces`.
+ *
+ * @param {String} namespaces
+ * @api private
+ */
+
+function save(namespaces) {
+ if (null == namespaces) {
+ // If you set a process.env field to null or undefined, it gets cast to the
+ // string 'null' or 'undefined'. Just delete instead.
+ delete process.env.DEBUG;
+ } else {
+ process.env.DEBUG = namespaces;
+ }
+}
+
+/**
+ * Load `namespaces`.
+ *
+ * @return {String} returns the previously persisted debug modes
+ * @api private
+ */
+
+function load() {
+ return process.env.DEBUG;
+}
+
+/**
+ * Copied from `node/src/node.js`.
+ *
+ * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
+ * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
+ */
+
+function createWritableStdioStream (fd) {
+ var stream;
+ var tty_wrap = process.binding('tty_wrap');
+
+ // Note stream._type is used for test-module-load-list.js
+
+ switch (tty_wrap.guessHandleType(fd)) {
+ case 'TTY':
+ stream = new tty.WriteStream(fd);
+ stream._type = 'tty';
+
+ // Hack to have stream not keep the event loop alive.
+ // See https://github.com/joyent/node/issues/1726
+ if (stream._handle && stream._handle.unref) {
+ stream._handle.unref();
+ }
+ break;
+
+ case 'FILE':
+ var fs = require('fs');
+ stream = new fs.SyncWriteStream(fd, { autoClose: false });
+ stream._type = 'fs';
+ break;
+
+ case 'PIPE':
+ case 'TCP':
+ var net = require('net');
+ stream = new net.Socket({
+ fd: fd,
+ readable: false,
+ writable: true
+ });
+
+ // FIXME Should probably have an option in net.Socket to create a
+ // stream from an existing fd which is writable only. But for now
+ // we'll just add this hack and set the `readable` member to false.
+ // Test: ./node test/fixtures/echo.js < /etc/passwd
+ stream.readable = false;
+ stream.read = null;
+ stream._type = 'pipe';
+
+ // FIXME Hack to have stream not keep the event loop alive.
+ // See https://github.com/joyent/node/issues/1726
+ if (stream._handle && stream._handle.unref) {
+ stream._handle.unref();
+ }
+ break;
+
+ default:
+ // Probably an error on in uv_guess_handle()
+ throw new Error('Implement me. Unknown stream file type!');
+ }
+
+ // For supporting legacy API we put the FD here.
+ stream.fd = fd;
+
+ stream._isStdio = true;
+
+ return stream;
+}
+
+/**
+ * Init logic for `debug` instances.
+ *
+ * Create a new `inspectOpts` object in case `useColors` is set
+ * differently for a particular `debug` instance.
+ */
+
+function init (debug) {
+ debug.inspectOpts = util._extend({}, exports.inspectOpts);
+}
+
+/**
+ * Enable namespaces listed in `process.env.DEBUG` initially.
+ */
+
+exports.enable(load());
diff --git a/tools/eslint/node_modules/esutils/package.json b/tools/eslint/node_modules/esutils/package.json
index ace6e17299..0c26be81d6 100644
--- a/tools/eslint/node_modules/esutils/package.json
+++ b/tools/eslint/node_modules/esutils/package.json
@@ -34,6 +34,7 @@
"type": "range"
},
"_requiredBy": [
+ "/babel-code-frame",
"/doctrine",
"/eslint"
],
diff --git a/tools/eslint/node_modules/fast-levenshtein/levenshtein.js b/tools/eslint/node_modules/fast-levenshtein/levenshtein.js
index 404a31558d..dbe3628080 100644
--- a/tools/eslint/node_modules/fast-levenshtein/levenshtein.js
+++ b/tools/eslint/node_modules/fast-levenshtein/levenshtein.js
@@ -44,37 +44,71 @@
}
prevRow[str2Len] = str2Len;
- // calculate current row distance from previous row
- for (i=0; i<str1Len; ++i) {
- nextCol = i + 1;
-
- for (j=0; j<str2Len; ++j) {
- curCol = nextCol;
-
- // substution
- var strCmp = useCollator ? (0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]))) : str1.charCodeAt(i) === str2Char[j];
-
- nextCol = prevRow[j] + ( strCmp ? 0 : 1 );
-
- // insertion
- tmp = curCol + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
- }
- // deletion
- tmp = prevRow[j + 1] + 1;
- if (nextCol > tmp) {
- nextCol = tmp;
+ var strCmp;
+ if (useCollator) {
+ // calculate current row distance from previous row using collator
+ for (i = 0; i < str1Len; ++i) {
+ nextCol = i + 1;
+
+ for (j = 0; j < str2Len; ++j) {
+ curCol = nextCol;
+
+ // substution
+ strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j]));
+
+ nextCol = prevRow[j] + (strCmp ? 0 : 1);
+
+ // insertion
+ tmp = curCol + 1;
+ if (nextCol > tmp) {
+ nextCol = tmp;
+ }
+ // deletion
+ tmp = prevRow[j + 1] + 1;
+ if (nextCol > tmp) {
+ nextCol = tmp;
+ }
+
+ // copy current col value into previous (in preparation for next iteration)
+ prevRow[j] = curCol;
}
- // copy current col value into previous (in preparation for next iteration)
- prevRow[j] = curCol;
+ // copy last col value into previous (in preparation for next iteration)
+ prevRow[j] = nextCol;
}
-
- // copy last col value into previous (in preparation for next iteration)
- prevRow[j] = nextCol;
}
+ else {
+ // calculate current row distance from previous row without collator
+ for (i = 0; i < str1Len; ++i) {
+ nextCol = i + 1;
+
+ for (j = 0; j < str2Len; ++j) {
+ curCol = nextCol;
+ // substution
+ strCmp = str1.charCodeAt(i) === str2Char[j];
+
+ nextCol = prevRow[j] + (strCmp ? 0 : 1);
+
+ // insertion
+ tmp = curCol + 1;
+ if (nextCol > tmp) {
+ nextCol = tmp;
+ }
+ // deletion
+ tmp = prevRow[j + 1] + 1;
+ if (nextCol > tmp) {
+ nextCol = tmp;
+ }
+
+ // copy current col value into previous (in preparation for next iteration)
+ prevRow[j] = curCol;
+ }
+
+ // copy last col value into previous (in preparation for next iteration)
+ prevRow[j] = nextCol;
+ }
+ }
return nextCol;
}
diff --git a/tools/eslint/node_modules/fast-levenshtein/package.json b/tools/eslint/node_modules/fast-levenshtein/package.json
index b92de2e36f..5fa5b4089e 100644
--- a/tools/eslint/node_modules/fast-levenshtein/package.json
+++ b/tools/eslint/node_modules/fast-levenshtein/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "fast-levenshtein@>=2.0.4 <2.1.0",
- "_id": "fast-levenshtein@2.0.5",
+ "_id": "fast-levenshtein@2.0.6",
"_inCache": true,
"_location": "/fast-levenshtein",
- "_nodeVersion": "4.4.5",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/fast-levenshtein-2.0.5.tgz_1475102215149_0.23410583310760558"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/fast-levenshtein-2.0.6.tgz_1482873305730_0.48711988772265613"
},
"_npmUser": {
"name": "hiddentao",
"email": "ram@hiddentao.com"
},
- "_npmVersion": "3.9.3",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "fast-levenshtein@~2.0.4",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/optionator"
],
- "_resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz",
- "_shasum": "bd33145744519ab1c36c3ee9f31f08e9079b67f2",
+ "_resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "_shasum": "3d8a5c66883a16a30ca8643e851f19baa7797917",
"_shrinkwrap": null,
"_spec": "fast-levenshtein@~2.0.4",
"_where": "/Users/trott/io.js/tools/node_modules/optionator",
@@ -70,13 +70,13 @@
},
"directories": {},
"dist": {
- "shasum": "bd33145744519ab1c36c3ee9f31f08e9079b67f2",
- "tarball": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz"
+ "shasum": "3d8a5c66883a16a30ca8643e851f19baa7797917",
+ "tarball": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
},
"files": [
"levenshtein.js"
],
- "gitHead": "7c41122f8725a63587ec34bb19b12dd91f12465f",
+ "gitHead": "5bffe7151f99fb02f319f70a004e653105a760fb",
"homepage": "https://github.com/hiddentao/fast-levenshtein#readme",
"keywords": [
"levenshtein",
@@ -104,5 +104,5 @@
"prepublish": "npm run build",
"test": "mocha"
},
- "version": "2.0.5"
+ "version": "2.0.6"
}
diff --git a/tools/eslint/node_modules/flat-cache/cache.js b/tools/eslint/node_modules/flat-cache/cache.js
index e7d205e5e1..294d3fbe74 100644
--- a/tools/eslint/node_modules/flat-cache/cache.js
+++ b/tools/eslint/node_modules/flat-cache/cache.js
@@ -1,8 +1,8 @@
var path = require( 'path' );
var fs = require( 'graceful-fs' );
var del = require( 'del' ).sync;
-var readJSON = require( './utils' ).readJSON;
-var writeJSON = require( './utils' ).writeJSON;
+var utils = require( './utils' );
+var writeJSON = utils.writeJSON;
var cache = {
/**
@@ -22,7 +22,7 @@ var cache = {
me._pathToFile = cacheDir ? path.resolve( cacheDir, docId ) : path.resolve( __dirname, './.cache/', docId );
if ( fs.existsSync( me._pathToFile ) ) {
- me._persisted = readJSON( me._pathToFile );
+ me._persisted = utils.tryParse( me._pathToFile, { } );
}
},
diff --git a/tools/eslint/node_modules/flat-cache/changelog.md b/tools/eslint/node_modules/flat-cache/changelog.md
index 4312b4c32a..879fd3cc5a 100644
--- a/tools/eslint/node_modules/flat-cache/changelog.md
+++ b/tools/eslint/node_modules/flat-cache/changelog.md
@@ -1,5 +1,26 @@
# flat-cache - Changelog
+## v1.2.2
+- **Bug Fixes**
+ - Do not crash if cache file is invalid JSON. ([#13](https://github.com/royriojas/flat-cache/issues/13)) - [87beaa6]( https://github.com/royriojas/flat-cache/commit/87beaa6 ), [Roy Riojas](https://github.com/Roy Riojas), 19/12/2016 21:03:35
+
+ Fixes <a target="_blank" class="info-link" href="https://github.com/royriojas/flat-cache/issues/12"><span>#12</span></a>
+
+ Not sure under which situations a cache file might exist that does
+ not contain a valid JSON structure, but just in case to cover
+ the possibility of this happening a try catch block has been added
+
+ If the cache is somehow not valid the cache will be discarded an a
+ a new cache will be stored instead
+- **Other changes**
+ - Added travis ci support for modern node versions ([#11](https://github.com/royriojas/flat-cache/issues/11)) - [1c2b1f7]( https://github.com/royriojas/flat-cache/commit/1c2b1f7 ), [Amila Welihinda](https://github.com/Amila Welihinda), 11/11/2016 02:47:52
+
+
+ - Bumping `circular-son` version ([#10](https://github.com/royriojas/flat-cache/issues/10)) - [4d5e861]( https://github.com/royriojas/flat-cache/commit/4d5e861 ), [Andrea Giammarchi](https://github.com/Andrea Giammarchi), 02/08/2016 09:13:52
+
+ As mentioned in https://github.com/WebReflection/circular-json/issues/25 `circular-json` wan't rightly implementing the license field.
+
+ Latest version bump changed only that bit so that ESLint should now be happy.
## v1.2.1
- **Bug Fixes**
- Add missing utils.js file to the package. closes [#8](https://github.com/royriojas/flat-cache/issues/8) - [ec10cf2]( https://github.com/royriojas/flat-cache/commit/ec10cf2 ), [Roy Riojas](https://github.com/Roy Riojas), 01/08/2016 04:18:57
diff --git a/tools/eslint/node_modules/flat-cache/package.json b/tools/eslint/node_modules/flat-cache/package.json
index 1fb31fe940..0bd37edaa6 100644
--- a/tools/eslint/node_modules/flat-cache/package.json
+++ b/tools/eslint/node_modules/flat-cache/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "flat-cache@>=1.2.1 <2.0.0",
- "_id": "flat-cache@1.2.1",
+ "_id": "flat-cache@1.2.2",
"_inCache": true,
"_location": "/flat-cache",
- "_nodeVersion": "6.3.0",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/flat-cache-1.2.1.tgz_1470043202592_0.29112970223650336"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/flat-cache-1.2.2.tgz_1482199463409_0.13759022881276906"
},
"_npmUser": {
"name": "royriojas",
"email": "royriojas@gmail.com"
},
- "_npmVersion": "3.10.3",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "flat-cache@^1.2.1",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/file-entry-cache"
],
- "_resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz",
- "_shasum": "6c837d6225a7de5659323740b36d5361f71691ff",
+ "_resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "_shasum": "fa86714e72c21db88601761ecf2f555d1abc6b96",
"_shrinkwrap": null,
"_spec": "flat-cache@^1.2.1",
"_where": "/Users/trott/io.js/tools/node_modules/file-entry-cache",
@@ -65,7 +65,7 @@
"projectName": "flat-cache"
},
"dependencies": {
- "circular-json": "^0.3.0",
+ "circular-json": "^0.3.1",
"del": "^2.0.2",
"graceful-fs": "^4.1.2",
"write": "^0.2.1"
@@ -88,8 +88,8 @@
},
"directories": {},
"dist": {
- "shasum": "6c837d6225a7de5659323740b36d5361f71691ff",
- "tarball": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz"
+ "shasum": "fa86714e72c21db88601761ecf2f555d1abc6b96",
+ "tarball": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -98,7 +98,7 @@
"cache.js",
"utils.js"
],
- "gitHead": "ca27117e382576b93d22754902bf7d80f607fb22",
+ "gitHead": "9fdf499efd3dfb950e563ed7486623d7dc3e26c8",
"homepage": "https://github.com/royriojas/flat-cache#readme",
"keywords": [
"json cache",
@@ -150,5 +150,5 @@
"verify": "npm run check && npm run test:cache",
"watch": "watch-run -i -p 'test/specs/**/*.js' istanbul cover test/runner.js html text-summary"
},
- "version": "1.2.1"
+ "version": "1.2.2"
}
diff --git a/tools/eslint/node_modules/flat-cache/utils.js b/tools/eslint/node_modules/flat-cache/utils.js
index 3bdd1efa37..e3654d23fa 100644
--- a/tools/eslint/node_modules/flat-cache/utils.js
+++ b/tools/eslint/node_modules/flat-cache/utils.js
@@ -4,6 +4,16 @@ var circularJson = require( 'circular-json' );
module.exports = {
+ tryParse: function ( filePath, defaultValue) {
+ var result;
+ try {
+ result = this.readJSON( filePath );
+ } catch (ex) {
+ result = defaultValue;
+ }
+ return result;
+ },
+
/**
* Read json file synchronously using circular-json
*
diff --git a/tools/eslint/node_modules/glob/package.json b/tools/eslint/node_modules/glob/package.json
index 343a8ef715..e1f34368f5 100644
--- a/tools/eslint/node_modules/glob/package.json
+++ b/tools/eslint/node_modules/glob/package.json
@@ -40,7 +40,8 @@
"_requiredBy": [
"/eslint",
"/globby",
- "/rimraf"
+ "/rimraf",
+ "/shelljs"
],
"_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"_shasum": "805211df04faaf1c63a3600306cdf5ade50b2ec8",
diff --git a/tools/eslint/node_modules/globals/globals.json b/tools/eslint/node_modules/globals/globals.json
index 9a25ed0b88..38b2a89a4e 100644
--- a/tools/eslint/node_modules/globals/globals.json
+++ b/tools/eslint/node_modules/globals/globals.json
@@ -239,6 +239,7 @@
"CSSTransition": false,
"CSSUnknownRule": false,
"CSSViewportRule": false,
+ "customElements": false,
"CustomEvent": false,
"DataTransfer": false,
"DataTransferItem": false,
@@ -500,6 +501,7 @@
"print": false,
"ProcessingInstruction": false,
"ProgressEvent": false,
+ "PromiseRejectionEvent": false,
"prompt": false,
"PushManager": false,
"PushSubscription": false,
diff --git a/tools/eslint/node_modules/globals/package.json b/tools/eslint/node_modules/globals/package.json
index 5a34d069c5..df3a2e1dc5 100644
--- a/tools/eslint/node_modules/globals/package.json
+++ b/tools/eslint/node_modules/globals/package.json
@@ -2,48 +2,48 @@
"_args": [
[
{
- "raw": "globals@^9.2.0",
+ "raw": "globals@^9.14.0",
"scope": null,
"escapedName": "globals",
"name": "globals",
- "rawSpec": "^9.2.0",
- "spec": ">=9.2.0 <10.0.0",
+ "rawSpec": "^9.14.0",
+ "spec": ">=9.14.0 <10.0.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/eslint"
]
],
- "_from": "globals@>=9.2.0 <10.0.0",
- "_id": "globals@9.12.0",
+ "_from": "globals@>=9.14.0 <10.0.0",
+ "_id": "globals@9.14.0",
"_inCache": true,
"_location": "/globals",
- "_nodeVersion": "4.6.0",
+ "_nodeVersion": "4.6.2",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/globals-9.12.0.tgz_1476075908170_0.06293708248995245"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/globals-9.14.0.tgz_1479623329065_0.9806821248494089"
},
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.15.9",
+ "_npmVersion": "2.15.11",
"_phantomChildren": {},
"_requested": {
- "raw": "globals@^9.2.0",
+ "raw": "globals@^9.14.0",
"scope": null,
"escapedName": "globals",
"name": "globals",
- "rawSpec": "^9.2.0",
- "spec": ">=9.2.0 <10.0.0",
+ "rawSpec": "^9.14.0",
+ "spec": ">=9.14.0 <10.0.0",
"type": "range"
},
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz",
- "_shasum": "992ce90828c3a55fa8f16fada177adb64664cf9d",
+ "_resolved": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz",
+ "_shasum": "8859936af0038741263053b39d0e76ca241e4034",
"_shrinkwrap": null,
- "_spec": "globals@^9.2.0",
+ "_spec": "globals@^9.14.0",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
"author": {
"name": "Sindre Sorhus",
@@ -60,8 +60,8 @@
},
"directories": {},
"dist": {
- "shasum": "992ce90828c3a55fa8f16fada177adb64664cf9d",
- "tarball": "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz"
+ "shasum": "8859936af0038741263053b39d0e76ca241e4034",
+ "tarball": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -70,7 +70,7 @@
"index.js",
"globals.json"
],
- "gitHead": "282ae63d59b6fae64a5d0965e03cce9c6263de55",
+ "gitHead": "4159cd067369b8242131551beb09fafb52afc289",
"homepage": "https://github.com/sindresorhus/globals#readme",
"keywords": [
"globals",
@@ -111,5 +111,5 @@
"scripts": {
"test": "mocha"
},
- "version": "9.12.0"
+ "version": "9.14.0"
}
diff --git a/tools/eslint/node_modules/graceful-fs/package.json b/tools/eslint/node_modules/graceful-fs/package.json
index d611a8270d..65b1921ea9 100644
--- a/tools/eslint/node_modules/graceful-fs/package.json
+++ b/tools/eslint/node_modules/graceful-fs/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "graceful-fs@>=4.1.2 <5.0.0",
- "_id": "graceful-fs@4.1.9",
+ "_id": "graceful-fs@4.1.11",
"_inCache": true,
"_location": "/graceful-fs",
"_nodeVersion": "6.5.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/graceful-fs-4.1.9.tgz_1475103672016_0.7011275647673756"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/graceful-fs-4.1.11.tgz_1479843029430_0.2122855328489095"
},
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_npmVersion": "3.10.7",
+ "_npmVersion": "3.10.9",
"_phantomChildren": {},
"_requested": {
"raw": "graceful-fs@^4.1.2",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/flat-cache"
],
- "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz",
- "_shasum": "baacba37d19d11f9d146d3578bc99958c3787e29",
+ "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
"_shrinkwrap": null,
"_spec": "graceful-fs@^4.1.2",
"_where": "/Users/trott/io.js/tools/node_modules/flat-cache",
@@ -59,8 +59,8 @@
"test": "test"
},
"dist": {
- "shasum": "baacba37d19d11f9d146d3578bc99958c3787e29",
- "tarball": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz"
+ "shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
+ "tarball": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
},
"engines": {
"node": ">=0.4.0"
@@ -71,7 +71,7 @@
"legacy-streams.js",
"polyfills.js"
],
- "gitHead": "0798db3711e33de92de5a93979278bb89d629143",
+ "gitHead": "65cf80d1fd3413b823c16c626c1e7c326452bee5",
"homepage": "https://github.com/isaacs/node-graceful-fs#readme",
"keywords": [
"fs",
@@ -107,5 +107,5 @@
"scripts": {
"test": "node test.js | tap -"
},
- "version": "4.1.9"
+ "version": "4.1.11"
}
diff --git a/tools/eslint/node_modules/graceful-fs/polyfills.js b/tools/eslint/node_modules/graceful-fs/polyfills.js
index cf474df73f..4c6aca78a3 100644
--- a/tools/eslint/node_modules/graceful-fs/polyfills.js
+++ b/tools/eslint/node_modules/graceful-fs/polyfills.js
@@ -3,6 +3,9 @@ var constants = require('constants')
var origCwd = process.cwd
var cwd = null
+
+var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform
+
process.cwd = function() {
if (!cwd)
cwd = origCwd.call(process)
@@ -80,15 +83,32 @@ function patch (fs) {
// on Windows, A/V software can lock the directory, causing this
// to fail with an EACCES or EPERM if the directory contains newly
- // created files. Try again on failure, for up to 1 second.
- if (process.platform === "win32") {
+ // created files. Try again on failure, for up to 60 seconds.
+
+ // Set the timeout this long because some Windows Anti-Virus, such as Parity
+ // bit9, may lock files for up to a minute, causing npm package install
+ // failures. Also, take care to yield the scheduler. Windows scheduling gives
+ // CPU to a busy looping process, which can cause the program causing the lock
+ // contention to be starved of CPU by node, so the contention doesn't resolve.
+ if (platform === "win32") {
fs.rename = (function (fs$rename) { return function (from, to, cb) {
var start = Date.now()
+ var backoff = 0;
fs$rename(from, to, function CB (er) {
if (er
&& (er.code === "EACCES" || er.code === "EPERM")
- && Date.now() - start < 1000) {
- return fs$rename(from, to, CB)
+ && Date.now() - start < 60000) {
+ setTimeout(function() {
+ fs.stat(to, function (stater, st) {
+ if (stater && stater.code === "ENOENT")
+ fs$rename(from, to, CB);
+ else
+ cb(er)
+ })
+ }, backoff)
+ if (backoff < 100)
+ backoff += 10;
+ return;
}
if (cb) cb(er)
})
diff --git a/tools/eslint/node_modules/ignore/package.json b/tools/eslint/node_modules/ignore/package.json
index a4a65b9656..8333c2e9ba 100644
--- a/tools/eslint/node_modules/ignore/package.json
+++ b/tools/eslint/node_modules/ignore/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "ignore@^3.1.5",
+ "raw": "ignore@^3.2.0",
"scope": null,
"escapedName": "ignore",
"name": "ignore",
- "rawSpec": "^3.1.5",
- "spec": ">=3.1.5 <4.0.0",
+ "rawSpec": "^3.2.0",
+ "spec": ">=3.2.0 <4.0.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/eslint"
]
],
- "_from": "ignore@>=3.1.5 <4.0.0",
+ "_from": "ignore@>=3.2.0 <4.0.0",
"_id": "ignore@3.2.0",
"_inCache": true,
"_location": "/ignore",
@@ -29,12 +29,12 @@
"_npmVersion": "3.10.3",
"_phantomChildren": {},
"_requested": {
- "raw": "ignore@^3.1.5",
+ "raw": "ignore@^3.2.0",
"scope": null,
"escapedName": "ignore",
"name": "ignore",
- "rawSpec": "^3.1.5",
- "spec": ">=3.1.5 <4.0.0",
+ "rawSpec": "^3.2.0",
+ "spec": ">=3.2.0 <4.0.0",
"type": "range"
},
"_requiredBy": [
@@ -43,7 +43,7 @@
"_resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.0.tgz",
"_shasum": "8d88f03c3002a0ac52114db25d2c673b0bf1e435",
"_shrinkwrap": null,
- "_spec": "ignore@^3.1.5",
+ "_spec": "ignore@^3.2.0",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
"author": {
"name": "kael"
diff --git a/tools/eslint/node_modules/inherits/package.json b/tools/eslint/node_modules/inherits/package.json
index 37aff1aaf8..b7271ca9ce 100644
--- a/tools/eslint/node_modules/inherits/package.json
+++ b/tools/eslint/node_modules/inherits/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "inherits@~2.0.1",
+ "raw": "inherits@^2.0.3",
"scope": null,
"escapedName": "inherits",
"name": "inherits",
- "rawSpec": "~2.0.1",
- "spec": ">=2.0.1 <2.1.0",
+ "rawSpec": "^2.0.3",
+ "spec": ">=2.0.3 <3.0.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/concat-stream"
]
],
- "_from": "inherits@>=2.0.1 <2.1.0",
+ "_from": "inherits@>=2.0.3 <3.0.0",
"_id": "inherits@2.0.3",
"_inCache": true,
"_location": "/inherits",
@@ -29,12 +29,12 @@
"_npmVersion": "3.10.7",
"_phantomChildren": {},
"_requested": {
- "raw": "inherits@~2.0.1",
+ "raw": "inherits@^2.0.3",
"scope": null,
"escapedName": "inherits",
"name": "inherits",
- "rawSpec": "~2.0.1",
- "spec": ">=2.0.1 <2.1.0",
+ "rawSpec": "^2.0.3",
+ "spec": ">=2.0.3 <3.0.0",
"type": "range"
},
"_requiredBy": [
@@ -45,7 +45,7 @@
"_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"_shasum": "633c2c83e3da42a502f52466022480f4208261de",
"_shrinkwrap": null,
- "_spec": "inherits@~2.0.1",
+ "_spec": "inherits@^2.0.3",
"_where": "/Users/trott/io.js/tools/node_modules/concat-stream",
"browser": "./inherits_browser.js",
"bugs": {
diff --git a/tools/eslint/node_modules/interpret/LICENSE b/tools/eslint/node_modules/interpret/LICENSE
new file mode 100644
index 0000000000..a55f5b74bd
--- /dev/null
+++ b/tools/eslint/node_modules/interpret/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2014 Tyler Kellen
+
+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/tools/eslint/node_modules/interpret/README.md b/tools/eslint/node_modules/interpret/README.md
new file mode 100644
index 0000000000..34ce5b644c
--- /dev/null
+++ b/tools/eslint/node_modules/interpret/README.md
@@ -0,0 +1,136 @@
+# interpret
+> A dictionary of file extensions and associated module loaders.
+
+[![NPM](https://nodei.co/npm/interpret.png)](https://nodei.co/npm/interpret/)
+
+## What is it
+This is used by [Liftoff](http://github.com/tkellen/node-liftoff) to automatically require dependencies for configuration files, and by [rechoir](http://github.com/tkellen/node-rechoir) for registering module loaders.
+
+## API
+
+### extensions
+Map file types to modules which provide a [require.extensions] loader.
+
+```js
+{
+ '.babel.js': [
+ {
+ module: 'babel-register',
+ register: function (module) {
+ module({
+ // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+ // which only captures the final extension (.babel.js -> .js)
+ extensions: '.js'
+ });
+ }
+ },
+ {
+ module: 'babel-core/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ },
+ {
+ module: 'babel/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ }
+ ],
+ '.buble.js': [
+ {
+ module: 'buble/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ }
+ ],
+ '.cirru': 'cirru-script/lib/register',
+ '.cjsx': 'node-cjsx/register',
+ '.co': 'coco',
+ '.coffee': ['coffee-script/register', 'coffee-script'],
+ '.coffee.md': ['coffee-script/register', 'coffee-script'],
+ '.csv': 'require-csv',
+ '.eg': 'earlgrey/register',
+ '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
+ '.iced.md': 'iced-coffee-script/register',
+ '.ini': 'require-ini',
+ '.js': null,
+ '.json': null,
+ '.json5': 'json5/lib/require',
+ '.jsx': [
+ {
+ module: 'babel-register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ }
+ },
+ {
+ module: 'babel-core/register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ }
+ },
+ {
+ module: 'babel/register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ },
+ },
+ {
+ module: 'node-jsx',
+ register: function (module) {
+ module.install({
+ extension: '.jsx',
+ harmony: true
+ });
+ }
+ }
+ ],
+ '.litcoffee': ['coffee-script/register', 'coffee-script'],
+ '.liticed': 'iced-coffee-script/register',
+ '.ls': ['livescript', 'LiveScript'],
+ '.node': null,
+ '.toml': {
+ module: 'toml-require',
+ register: function (module) {
+ module.install();
+ }
+ },
+ '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
+ '.tsx': ['ts-node/register', 'typescript-node/register'],
+ '.wisp': 'wisp/engine/node',
+ '.xml': 'require-xml',
+ '.yaml': 'require-yaml',
+ '.yml': 'require-yaml'
+};
+```
+
+### jsVariants
+Same as above, but only include the extensions which are javascript variants.
+
+## How to use it
+
+Consumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following:
+
+1. If the value is null, do nothing.
+
+2. If the value is a string, try to require it.
+
+3. If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument.
+
+4. If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw.
+
+[require.extensions]: http://nodejs.org/api/globals.html#globals_require_extensions
diff --git a/tools/eslint/node_modules/interpret/index.js b/tools/eslint/node_modules/interpret/index.js
new file mode 100644
index 0000000000..db4cb94c35
--- /dev/null
+++ b/tools/eslint/node_modules/interpret/index.js
@@ -0,0 +1,132 @@
+const extensions = {
+ '.babel.js': [
+ {
+ module: 'babel-register',
+ register: function (module) {
+ module({
+ // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+ // which only captures the final extension (.babel.js -> .js)
+ extensions: '.js'
+ });
+ }
+ },
+ {
+ module: 'babel-core/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ },
+ {
+ module: 'babel/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ }
+ ],
+ '.buble.js': [
+ {
+ module: 'buble/register',
+ register: function (module) {
+ module({
+ extensions: '.js'
+ });
+ }
+ }
+ ],
+ '.cirru': 'cirru-script/lib/register',
+ '.cjsx': 'node-cjsx/register',
+ '.co': 'coco',
+ '.coffee': ['coffee-script/register', 'coffee-script'],
+ '.coffee.md': ['coffee-script/register', 'coffee-script'],
+ '.csv': 'require-csv',
+ '.eg': 'earlgrey/register',
+ '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
+ '.iced.md': 'iced-coffee-script/register',
+ '.ini': 'require-ini',
+ '.js': null,
+ '.json': null,
+ '.json5': 'json5/lib/require',
+ '.jsx': [
+ {
+ module: 'babel-register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ }
+ },
+ {
+ module: 'babel-core/register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ }
+ },
+ {
+ module: 'babel/register',
+ register: function (module) {
+ module({
+ extensions: '.jsx'
+ });
+ },
+ },
+ {
+ module: 'node-jsx',
+ register: function (module) {
+ module.install({
+ extension: '.jsx',
+ harmony: true
+ });
+ }
+ }
+ ],
+ '.litcoffee': ['coffee-script/register', 'coffee-script'],
+ '.liticed': 'iced-coffee-script/register',
+ '.ls': ['livescript', 'LiveScript'],
+ '.node': null,
+ '.toml': {
+ module: 'toml-require',
+ register: function (module) {
+ module.install();
+ }
+ },
+ '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
+ '.tsx': ['ts-node/register', 'typescript-node/register'],
+ '.wisp': 'wisp/engine/node',
+ '.xml': 'require-xml',
+ '.yaml': 'require-yaml',
+ '.yml': 'require-yaml'
+};
+
+const jsVariantExtensions = [
+ '.js',
+ '.babel.js',
+ '.buble.js',
+ '.cirru',
+ '.cjsx',
+ '.co',
+ '.coffee',
+ '.coffee.md',
+ '.eg',
+ '.iced',
+ '.iced.md',
+ '.jsx',
+ '.litcoffee',
+ '.liticed',
+ '.ls',
+ '.ts',
+ '.wisp'
+];
+
+module.exports = {
+ extensions: extensions,
+ jsVariants: jsVariantExtensions.reduce(function (result, ext) {
+ result[ext] = extensions[ext];
+ return result;
+ }, {})
+};
diff --git a/tools/eslint/node_modules/interpret/package.json b/tools/eslint/node_modules/interpret/package.json
new file mode 100644
index 0000000000..aca70b16bf
--- /dev/null
+++ b/tools/eslint/node_modules/interpret/package.json
@@ -0,0 +1,119 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "interpret@^1.0.0",
+ "scope": null,
+ "escapedName": "interpret",
+ "name": "interpret",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/shelljs"
+ ]
+ ],
+ "_from": "interpret@>=1.0.0 <2.0.0",
+ "_id": "interpret@1.0.1",
+ "_inCache": true,
+ "_location": "/interpret",
+ "_nodeVersion": "5.7.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/interpret-1.0.1.tgz_1462139669981_0.06998275523073971"
+ },
+ "_npmUser": {
+ "name": "tkellen",
+ "email": "tyler@sleekcode.net"
+ },
+ "_npmVersion": "3.6.0",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "interpret@^1.0.0",
+ "scope": null,
+ "escapedName": "interpret",
+ "name": "interpret",
+ "rawSpec": "^1.0.0",
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/shelljs"
+ ],
+ "_resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+ "_shasum": "d579fb7f693b858004947af39fa0db49f795602c",
+ "_shrinkwrap": null,
+ "_spec": "interpret@^1.0.0",
+ "_where": "/Users/trott/io.js/tools/node_modules/shelljs",
+ "author": {
+ "name": "Tyler Kellen",
+ "url": "http://goingslowly.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/tkellen/node-interpret/issues"
+ },
+ "dependencies": {},
+ "description": "A dictionary of file extensions and associated module loaders.",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "d579fb7f693b858004947af39fa0db49f795602c",
+ "tarball": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz"
+ },
+ "gitHead": "80e9d49ece362c75e697bc7487186761efd77a6f",
+ "homepage": "https://github.com/tkellen/node-interpret",
+ "keywords": [
+ "cirru-script",
+ "cjsx",
+ "co",
+ "coco",
+ "coffee-script",
+ "coffee",
+ "coffee.md",
+ "csv",
+ "earlgrey",
+ "es",
+ "es6",
+ "iced",
+ "iced.md",
+ "iced-coffee-script",
+ "ini",
+ "js",
+ "json",
+ "json5",
+ "jsx",
+ "react",
+ "litcoffee",
+ "liticed",
+ "ls",
+ "livescript",
+ "toml",
+ "ts",
+ "typescript",
+ "wisp",
+ "xml",
+ "yaml",
+ "yml"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "tkellen",
+ "email": "tyler@sleekcode.net"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "name": "interpret",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/tkellen/node-interpret.git"
+ },
+ "scripts": {},
+ "version": "1.0.1"
+}
diff --git a/tools/eslint/node_modules/is-path-in-cwd/package.json b/tools/eslint/node_modules/is-path-in-cwd/package.json
index 7bb97c1394..ebf674ef61 100644
--- a/tools/eslint/node_modules/is-path-in-cwd/package.json
+++ b/tools/eslint/node_modules/is-path-in-cwd/package.json
@@ -58,7 +58,7 @@
"directories": {},
"dist": {
"shasum": "6477582b8214d602346094567003be8a9eac04dc",
- "tarball": "http://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz"
+ "tarball": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz"
},
"engines": {
"node": ">=0.10.0"
diff --git a/tools/eslint/node_modules/js-tokens/LICENSE b/tools/eslint/node_modules/js-tokens/LICENSE
new file mode 100644
index 0000000000..c9a4e1bb46
--- /dev/null
+++ b/tools/eslint/node_modules/js-tokens/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014, 2015, 2016 Simon Lydell
+
+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/tools/eslint/node_modules/js-tokens/changelog.md b/tools/eslint/node_modules/js-tokens/changelog.md
new file mode 100644
index 0000000000..b789fdd495
--- /dev/null
+++ b/tools/eslint/node_modules/js-tokens/changelog.md
@@ -0,0 +1,82 @@
+### Version 2.0.0 (2016-06-19) ###
+
+- Added: Support for ES2016. In other words, support for the `**` exponentiation
+ operator.
+
+These are the breaking changes:
+
+- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`.
+- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`.
+
+
+### Version 1.0.3 (2016-03-27) ###
+
+- Improved: Made the regex ever so slightly smaller.
+- Updated: The readme.
+
+
+### Version 1.0.2 (2015-10-18) ###
+
+- Improved: Limited npm package contents for a smaller download. Thanks to
+ @zertosh!
+
+
+### Version 1.0.1 (2015-06-20) ###
+
+- Fixed: Declared an undeclared variable.
+
+
+### Version 1.0.0 (2015-02-26) ###
+
+- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That
+ type is now equivalent to the Punctuator token in the ECMAScript
+ specification. (Backwards-incompatible change.)
+- Fixed: A `-` followed by a number is now correctly matched as a punctuator
+ followed by a number. It used to be matched as just a number, but there is no
+ such thing as negative number literals. (Possibly backwards-incompatible
+ change.)
+
+
+### Version 0.4.1 (2015-02-21) ###
+
+- Added: Support for the regex `u` flag.
+
+
+### Version 0.4.0 (2015-02-21) ###
+
+- Improved: `jsTokens.matchToToken` performance.
+- Added: Support for octal and binary number literals.
+- Added: Support for template strings.
+
+
+### Version 0.3.1 (2015-01-06) ###
+
+- Fixed: Support for unicode spaces. They used to be allowed in names (which is
+ very confusing), and some unicode newlines were wrongly allowed in strings and
+ regexes.
+
+
+### Version 0.3.0 (2014-12-19) ###
+
+- Changed: The `jsTokens.names` array has been replaced with the
+ `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no
+ longer part of the public API; instead use said function. See this [gist] for
+ an example. (Backwards-incompatible change.)
+- Changed: The empty string is now considered an “invalid” token, instead an
+ “empty” token (its own group). (Backwards-incompatible change.)
+- Removed: component support. (Backwards-incompatible change.)
+
+[gist]: https://gist.github.com/lydell/be49dbf80c382c473004
+
+
+### Version 0.2.0 (2014-06-19) ###
+
+- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own
+ category (“functionArrow”), for simplicity. (Backwards-incompatible change.)
+- Added: ES6 splats (`...`) are now matched as an operator (instead of three
+ punctuations). (Backwards-incompatible change.)
+
+
+### Version 0.1.0 (2014-03-08) ###
+
+- Initial release.
diff --git a/tools/eslint/node_modules/js-tokens/index.js b/tools/eslint/node_modules/js-tokens/index.js
new file mode 100644
index 0000000000..2e070409d9
--- /dev/null
+++ b/tools/eslint/node_modules/js-tokens/index.js
@@ -0,0 +1,19 @@
+// Copyright 2014, 2015, 2016 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+// This regex comes from regex.coffee, and is inserted here by generate-index.js
+// (run `npm run build`).
+module.exports = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]{1,6}\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g
+
+module.exports.matchToToken = function(match) {
+ var token = {type: "invalid", value: match[0]}
+ if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4])
+ else if (match[ 5]) token.type = "comment"
+ else if (match[ 6]) token.type = "comment", token.closed = !!match[7]
+ else if (match[ 8]) token.type = "regex"
+ else if (match[ 9]) token.type = "number"
+ else if (match[10]) token.type = "name"
+ else if (match[11]) token.type = "punctuator"
+ else if (match[12]) token.type = "whitespace"
+ return token
+}
diff --git a/tools/eslint/node_modules/js-tokens/package.json b/tools/eslint/node_modules/js-tokens/package.json
new file mode 100644
index 0000000000..c78fde1d95
--- /dev/null
+++ b/tools/eslint/node_modules/js-tokens/package.json
@@ -0,0 +1,100 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "js-tokens@^2.0.0",
+ "scope": null,
+ "escapedName": "js-tokens",
+ "name": "js-tokens",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/babel-code-frame"
+ ]
+ ],
+ "_from": "js-tokens@>=2.0.0 <3.0.0",
+ "_id": "js-tokens@2.0.0",
+ "_inCache": true,
+ "_location": "/js-tokens",
+ "_nodeVersion": "5.11.1",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/js-tokens-2.0.0.tgz_1466321890449_0.1510669116396457"
+ },
+ "_npmUser": {
+ "name": "lydell",
+ "email": "simon.lydell@gmail.com"
+ },
+ "_npmVersion": "3.8.6",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "js-tokens@^2.0.0",
+ "scope": null,
+ "escapedName": "js-tokens",
+ "name": "js-tokens",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/babel-code-frame"
+ ],
+ "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz",
+ "_shasum": "79903f5563ee778cc1162e6dcf1a0027c97f9cb5",
+ "_shrinkwrap": null,
+ "_spec": "js-tokens@^2.0.0",
+ "_where": "/Users/trott/io.js/tools/node_modules/babel-code-frame",
+ "author": {
+ "name": "Simon Lydell"
+ },
+ "bugs": {
+ "url": "https://github.com/lydell/js-tokens/issues"
+ },
+ "dependencies": {},
+ "description": "A regex that tokenizes JavaScript.",
+ "devDependencies": {
+ "coffee-script": "~1.10.0",
+ "esprima": "^2.7.2",
+ "everything.js": "^1.0.3",
+ "mocha": "^2.5.3"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "79903f5563ee778cc1162e6dcf1a0027c97f9cb5",
+ "tarball": "https://registry.npmjs.org/js-tokens/-/js-tokens-2.0.0.tgz"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "23fcbe4639fb4baee5dc53616958cc04c8b94026",
+ "homepage": "https://github.com/lydell/js-tokens#readme",
+ "keywords": [
+ "JavaScript",
+ "js",
+ "token",
+ "tokenize",
+ "regex"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "lydell",
+ "email": "simon.lydell@gmail.com"
+ }
+ ],
+ "name": "js-tokens",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lydell/js-tokens.git"
+ },
+ "scripts": {
+ "build": "node generate-index.js",
+ "dev": "npm run build && npm test",
+ "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js",
+ "test": "mocha --ui tdd"
+ },
+ "version": "2.0.0"
+}
diff --git a/tools/eslint/node_modules/js-tokens/readme.md b/tools/eslint/node_modules/js-tokens/readme.md
new file mode 100644
index 0000000000..68e470f0cd
--- /dev/null
+++ b/tools/eslint/node_modules/js-tokens/readme.md
@@ -0,0 +1,217 @@
+Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.png?branch=master)](https://travis-ci.org/lydell/js-tokens)
+========
+
+A regex that tokenizes JavaScript.
+
+```js
+var jsTokens = require("js-tokens")
+
+var jsString = "var foo=opts.foo;\n..."
+
+jsString.match(jsTokens)
+// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...]
+```
+
+
+Installation
+============
+
+`npm install js-tokens`
+
+```js
+var jsTokens = require("js-tokens")
+```
+
+
+Usage
+=====
+
+### `jsTokens` ###
+
+A regex with the `g` flag that matches JavaScript tokens.
+
+The regex _always_ matches, even invalid JavaScript and the empty string.
+
+The next match is always directly after the previous.
+
+### `var token = jsTokens.matchToToken(match)` ###
+
+Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type:
+String, value: String}` object. The following types are available:
+
+- string
+- comment
+- regex
+- number
+- name
+- punctuator
+- whitespace
+- invalid
+
+Multi-line comments and strings also have a `closed` property indicating if the
+token was closed or not (see below).
+
+Comments and strings both come in several flavors. To distinguish them, check if
+the token starts with `//`, `/*`, `'`, `"` or `` ` ``.
+
+Names are ECMAScript IdentifierNames, that is, including both identifiers and
+keywords. You may use [is-keyword-js] to tell them apart.
+
+Whitespace includes both line terminators and other whitespace.
+
+For example usage, please see this [gist].
+
+[is-keyword-js]: https://github.com/crissdev/is-keyword-js
+[gist]: https://gist.github.com/lydell/be49dbf80c382c473004
+
+
+ECMAScript support
+==================
+
+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.
+
+[ECMAScript 2016]: http://www.ecma-international.org/ecma-262/7.0/index.html
+
+
+Invalid code handling
+=====================
+
+Unterminated strings are still matched as strings. JavaScript strings cannot
+contain (unescaped) newlines, so unterminated strings simply end at the end of
+the line. Unterminated template strings can contain unescaped newlines, though,
+so they go on to the end of input.
+
+Unterminated multi-line comments are also still matched as comments. They
+simply go on to the end of the input.
+
+Unterminated regex literals are likely matched as division and whatever is
+inside the regex.
+
+Invalid ASCII characters have their own capturing group.
+
+Invalid non-ASCII characters are treated as names, to simplify the matching of
+names (except unicode spaces which are treated as whitespace).
+
+Regex literals may contain invalid regex syntax. They are still matched as
+regex literals. They may also contain repeated regex flags, to keep the regex
+simple.
+
+Strings may contain invalid escape sequences.
+
+
+Limitations
+===========
+
+Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be
+perfect. But that’s not the point either.
+
+You may compare jsTokens with [esprima] by using `esprima-compare.js`.
+See `npm run esprima-compare`!
+
+[esprima]: http://esprima.org/
+
+### Template string interpolation ###
+
+Template strings are matched as single tokens, from the starting `` ` `` to the
+ending `` ` ``, including interpolations (whose tokens are not matched
+individually).
+
+Matching template string interpolations requires recursive balancing of `{` and
+`}`—something that JavaScript regexes cannot do. Only one level of nesting is
+supported.
+
+### Division and regex literals collision ###
+
+Consider this example:
+
+```js
+var g = 9.82
+var number = bar / 2/g
+
+var regex = / 2/g
+```
+
+A human can easily understand that in the `number` line we’re dealing with
+division, and in the `regex` line we’re dealing with a regex literal. How come?
+Because humans can look at the whole code to put the `/` characters in context.
+A JavaScript regex cannot. It only sees forwards.
+
+When the `jsTokens` regex scans throught the above, it will see the following
+at the end of both the `number` and `regex` rows:
+
+```js
+/ 2/g
+```
+
+It is then impossible to know if that is a regex literal, or part of an
+expression dealing with division.
+
+Here is a similar case:
+
+```js
+foo /= 2/g
+foo(/= 2/g)
+```
+
+The first line divides the `foo` variable with `2/g`. The second line calls the
+`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only
+sees forwards, it cannot tell the two cases apart.
+
+There are some cases where we _can_ tell division and regex literals apart,
+though.
+
+First off, we have the simple cases where there’s only one slash in the line:
+
+```js
+var foo = 2/g
+foo /= 2
+```
+
+Regex literals cannot contain newlines, so the above cases are correctly
+identified as division. Things are only problematic when there are more than
+one non-comment slash in a single line.
+
+Secondly, not every character is a valid regex flag.
+
+```js
+var number = bar / 2/e
+```
+
+The above example is also correctly identified as division, because `e` is not a
+valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*`
+(any letter) as flags, but it is not worth it since it increases the amount of
+ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are
+allowed. This means that the above example will be identified as division as
+long as you don’t rename the `e` variable to some permutation of `gmiyu` 1 to 5
+characters long.
+
+Lastly, we can look _forward_ for information.
+
+- If the token following what looks like a regex literal is not valid after a
+ regex literal, but is valid in a division expression, then the regex literal
+ is treated as division instead. For example, a flagless regex cannot be
+ followed by a string, number or name, but all of those three can be the
+ denominator of a division.
+- Generally, if what looks like a regex literal is followed by an operator, the
+ regex literal is treated as division instead. This is because regexes are
+ seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division
+ could likely be part of such an expression.
+
+Please consult the regex source and the test cases for precise information on
+when regex or division is matched (should you need to know). In short, you
+could sum it up as:
+
+If the end of a statement looks like a regex literal (even if it isn’t), it
+will be treated as one. Otherwise it should work as expected (if you write sane
+code).
+
+
+License
+=======
+
+[The X11 (“MIT”) License](LICENSE).
diff --git a/tools/eslint/node_modules/js-yaml/dist/js-yaml.js b/tools/eslint/node_modules/js-yaml/dist/js-yaml.js
index f7e893e4f2..49cb23c959 100644
--- a/tools/eslint/node_modules/js-yaml/dist/js-yaml.js
+++ b/tools/eslint/node_modules/js-yaml/dist/js-yaml.js
@@ -1,4 +1,4 @@
-/* js-yaml 3.6.1 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+/* js-yaml 3.7.0 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
@@ -174,8 +174,7 @@ function compileStyleMap(schema, map) {
if (tag.slice(0, 2) === '!!') {
tag = 'tag:yaml.org,2002:' + tag.slice(2);
}
-
- type = schema.compiledTypeMap[tag];
+ type = schema.compiledTypeMap['fallback'][tag];
if (type && _hasOwnProperty.call(type.styleAliases, style)) {
style = type.styleAliases[style];
@@ -1484,8 +1483,9 @@ function readSingleQuotedScalar(state, nodeIndent) {
ch = state.input.charCodeAt(++state.position);
if (ch === 0x27/* ' */) {
- captureStart = captureEnd = state.position;
+ captureStart = state.position;
state.position++;
+ captureEnd = state.position;
} else {
return true;
}
@@ -2330,8 +2330,8 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact
break;
}
}
- } else if (_hasOwnProperty.call(state.typeMap, state.tag)) {
- type = state.typeMap[state.tag];
+ } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
+ type = state.typeMap[state.kind || 'fallback'][state.tag];
if (state.result !== null && type.kind !== state.kind) {
throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
@@ -2634,7 +2634,7 @@ function compileList(schema, name, result) {
schema[name].forEach(function (currentType) {
result.forEach(function (previousType, previousIndex) {
- if (previousType.tag === currentType.tag) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {
exclude.push(previousIndex);
}
});
@@ -2649,16 +2649,20 @@ function compileList(schema, name, result) {
function compileMap(/* lists... */) {
- var result = {}, index, length;
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {}
+ }, index, length;
function collectType(type) {
- result[type.tag] = type;
+ result[type.kind][type.tag] = result['fallback'][type.tag] = type;
}
for (index = 0, length = arguments.length; index < length; index += 1) {
arguments[index].forEach(collectType);
}
-
return result;
}
diff --git a/tools/eslint/node_modules/js-yaml/dist/js-yaml.min.js b/tools/eslint/node_modules/js-yaml/dist/js-yaml.min.js
index 3f2f2a1d45..211c64ce36 100644
--- a/tools/eslint/node_modules/js-yaml/dist/js-yaml.min.js
+++ b/tools/eslint/node_modules/js-yaml/dist/js-yaml.min.js
@@ -1,3 +1,3 @@
-/* js-yaml 3.6.1 https://github.com/nodeca/js-yaml */
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.jsyaml=e()}}(function(){return function e(t,n,i){function r(a,s){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return r(n?n:e)},l,l.exports,e,t,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){"use strict";function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var r=e("./js-yaml/loader"),o=e("./js-yaml/dumper");t.exports.Type=e("./js-yaml/type"),t.exports.Schema=e("./js-yaml/schema"),t.exports.FAILSAFE_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.JSON_SCHEMA=e("./js-yaml/schema/json"),t.exports.CORE_SCHEMA=e("./js-yaml/schema/core"),t.exports.DEFAULT_SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_FULL_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.load=r.load,t.exports.loadAll=r.loadAll,t.exports.safeLoad=r.safeLoad,t.exports.safeLoadAll=r.safeLoadAll,t.exports.dump=o.dump,t.exports.safeDump=o.safeDump,t.exports.YAMLException=e("./js-yaml/exception"),t.exports.MINIMAL_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.scan=i("scan"),t.exports.parse=i("parse"),t.exports.compose=i("compose"),t.exports.addConstructor=i("addConstructor")},{"./js-yaml/dumper":3,"./js-yaml/exception":4,"./js-yaml/loader":5,"./js-yaml/schema":7,"./js-yaml/schema/core":8,"./js-yaml/schema/default_full":9,"./js-yaml/schema/default_safe":10,"./js-yaml/schema/failsafe":11,"./js-yaml/schema/json":12,"./js-yaml/type":13}],2:[function(e,t,n){"use strict";function i(e){return"undefined"==typeof e||null===e}function r(e){return"object"==typeof e&&null!==e}function o(e){return Array.isArray(e)?e:i(e)?[]:[e]}function a(e,t){var n,i,r,o;if(t)for(o=Object.keys(t),n=0,i=o.length;i>n;n+=1)r=o[n],e[r]=t[r];return e}function s(e,t){var n,i="";for(n=0;t>n;n+=1)i+=e;return i}function c(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}t.exports.isNothing=i,t.exports.isObject=r,t.exports.toArray=o,t.exports.repeat=s,t.exports.isNegativeZero=c,t.exports.extend=a},{}],3:[function(e,t,n){"use strict";function i(e,t){var n,i,r,o,a,s,c;if(null===t)return{};for(n={},i=Object.keys(t),r=0,o=i.length;o>r;r+=1)a=i[r],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),c=e.compiledTypeMap[a],c&&L.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[a]=s;return n}function r(e){var t,n,i;if(t=e.toString(16).toUpperCase(),255>=e)n="x",i=2;else if(65535>=e)n="u",i=4;else{if(!(4294967295>=e))throw new N("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+F.repeat("0",i-t.length)+t}function o(e){this.schema=e.schema||M,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=F.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=i(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function a(e,t){for(var n,i=F.repeat(" ",t),r=0,o=-1,a="",s=e.length;s>r;)o=e.indexOf("\n",r),-1===o?(n=e.slice(r),r=s):(n=e.slice(r,o+1),r=o+1),n.length&&"\n"!==n&&(a+=i),a+=n;return a}function s(e,t){return"\n"+F.repeat(" ",e.indent*t)}function c(e,t){var n,i,r;for(n=0,i=e.implicitTypes.length;i>n;n+=1)if(r=e.implicitTypes[n],r.resolve(t))return!0;return!1}function u(e){return e===q||e===D}function l(e){return e>=32&&126>=e||e>=161&&55295>=e&&8232!==e&&8233!==e||e>=57344&&65533>=e&&65279!==e||e>=65536&&1114111>=e}function p(e){return l(e)&&65279!==e&&e!==H&&e!==Q&&e!==X&&e!==te&&e!==ie&&e!==V&&e!==B}function f(e){return l(e)&&65279!==e&&!u(e)&&e!==G&&e!==z&&e!==V&&e!==H&&e!==Q&&e!==X&&e!==te&&e!==ie&&e!==B&&e!==W&&e!==$&&e!==Y&&e!==ne&&e!==Z&&e!==K&&e!==R&&e!==P&&e!==J&&e!==ee}function d(e,t,n,i,r){var o,a,s=!1,c=!1,d=-1!==i,h=-1,m=f(e.charCodeAt(0))&&!u(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),!l(a))return le;m=m&&p(a)}else{for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),a===U)s=!0,d&&(c=c||o-h-1>i&&" "!==e[h+1],h=o);else if(!l(a))return le;m=m&&p(a)}c=c||d&&o-h-1>i&&" "!==e[h+1]}return s||c?" "===e[0]&&n>9?le:c?ue:ce:m&&!r(e)?ae:se}function h(e,t,n,i){e.dump=function(){function r(t){return c(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&-1!==oe.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,n),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),u=i||e.flowLevel>-1&&n>=e.flowLevel;switch(d(t,u,e.indent,s,r)){case ae:return t;case se:return"'"+t.replace(/'/g,"''")+"'";case ce:return"|"+m(t,e.indent)+g(a(t,o));case ue:return">"+m(t,e.indent)+g(a(y(t,s),o));case le:return'"'+v(t,s)+'"';default:throw new N("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",i="\n"===e[e.length-1],r=i&&("\n"===e[e.length-2]||"\n"===e),o=r?"+":i?"":"-";return n+o+"\n"}function g(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function y(e,t){for(var n,i,r=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=-1!==n?n:e.length,r.lastIndex=n,x(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0];i=r.exec(e);){var s=i[1],c=i[2];n=" "===c[0],o+=s+(a||n||""===c?"":"\n")+x(c,t),a=n}return o}function x(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,s=0,c="";n=r.exec(e);)s=n.index,s-o>t&&(i=a>o?a:s,c+="\n"+e.slice(o,i),o=i+1),a=s;return c+="\n",c+=e.length-o>t&&a>o?e.slice(o,a)+"\n"+e.slice(a+1):e.slice(o),c.slice(1)}function v(e){for(var t,n,i="",o=0;o<e.length;o++)t=e.charCodeAt(o),n=re[t],i+=!n&&l(t)?e[o]:n||r(t);return i}function A(e,t,n){var i,r,o="",a=e.tag;for(i=0,r=n.length;r>i;i+=1)j(e,t,n[i],!1,!1)&&(0!==i&&(o+=", "),o+=e.dump);e.tag=a,e.dump="["+o+"]"}function b(e,t,n,i){var r,o,a="",c=e.tag;for(r=0,o=n.length;o>r;r+=1)j(e,t+1,n[r],!0,!0)&&(i&&0===r||(a+=s(e,t)),a+="- "+e.dump);e.tag=c,e.dump=a||"[]"}function w(e,t,n){var i,r,o,a,s,c="",u=e.tag,l=Object.keys(n);for(i=0,r=l.length;r>i;i+=1)s="",0!==i&&(s+=", "),o=l[i],a=n[o],j(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",j(e,t,a,!1,!1)&&(s+=e.dump,c+=s));e.tag=u,e.dump="{"+c+"}"}function C(e,t,n,i){var r,o,a,c,u,l,p="",f=e.tag,d=Object.keys(n);if(e.sortKeys===!0)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new N("sortKeys must be a boolean or a function");for(r=0,o=d.length;o>r;r+=1)l="",i&&0===r||(l+=s(e,t)),a=d[r],c=n[a],j(e,t+1,a,!0,!0,!0)&&(u=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,u&&(l+=e.dump&&U===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,u&&(l+=s(e,t)),j(e,t+1,c,!0,u)&&(l+=e.dump&&U===e.dump.charCodeAt(0)?":":": ",l+=e.dump,p+=l));e.tag=f,e.dump=p||"{}"}function k(e,t,n){var i,r,o,a,s,c;for(r=n?e.explicitTypes:e.implicitTypes,o=0,a=r.length;a>o;o+=1)if(s=r[o],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===T.call(s.represent))i=s.represent(t,c);else{if(!L.call(s.represent,c))throw new N("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function j(e,t,n,i,r,o){e.tag=null,e.dump=n,k(e,n,!1)||k(e,n,!0);var a=T.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(s=e.duplicates.indexOf(n),c=-1!==s),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(u&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)i&&0!==Object.keys(e.dump).length?(C(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(w(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a)i&&0!==e.dump.length?(b(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(A(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new N("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&h(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function I(e,t){var n,i,r=[],o=[];for(S(e,r,o),n=0,i=o.length;i>n;n+=1)t.duplicates.push(r[o[n]]);t.usedDuplicates=new Array(i)}function S(e,t,n){var i,r,o;if(null!==e&&"object"==typeof e)if(r=t.indexOf(e),-1!==r)-1===n.indexOf(r)&&n.push(r);else if(t.push(e),Array.isArray(e))for(r=0,o=e.length;o>r;r+=1)S(e[r],t,n);else for(i=Object.keys(e),r=0,o=i.length;o>r;r+=1)S(e[i[r]],t,n)}function O(e,t){t=t||{};var n=new o(t);return n.noRefs||I(e,n),j(n,0,e,!0,!0)?n.dump+"\n":""}function E(e,t){return O(e,F.extend({schema:_},t))}var F=e("./common"),N=e("./exception"),M=e("./schema/default_full"),_=e("./schema/default_safe"),T=Object.prototype.toString,L=Object.prototype.hasOwnProperty,D=9,U=10,q=32,Y=33,R=34,B=35,P=37,W=38,K=39,$=42,H=44,G=45,V=58,Z=62,z=63,J=64,Q=91,X=93,ee=96,te=123,ne=124,ie=125,re={};re[0]="\\0",re[7]="\\a",re[8]="\\b",re[9]="\\t",re[10]="\\n",re[11]="\\v",re[12]="\\f",re[13]="\\r",re[27]="\\e",re[34]='\\"',re[92]="\\\\",re[133]="\\N",re[160]="\\_",re[8232]="\\L",re[8233]="\\P";var oe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ae=1,se=2,ce=3,ue=4,le=5;t.exports.dump=O,t.exports.safeDump=E},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(e,t,n){"use strict";function i(e,t){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},t.exports=i},{}],5:[function(e,t,n){"use strict";function i(e){return 10===e||13===e}function r(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function a(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return e>=48&&57>=e?e-48:(t=32|e,t>=97&&102>=t?t-97+10:-1)}function c(e){return 120===e?2:117===e?4:85===e?8:0}function u(e){return e>=48&&57>=e?e-48:-1}function l(e){return 48===e?"\x00":97===e?"":98===e?"\b":116===e?" ":9===e?" ":110===e?"\n":118===e?"\x0B":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function p(e){return 65535>=e?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function f(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function d(e,t){return new B(t,new P(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function h(e,t){throw d(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,d(e,t))}function g(e,t,n,i){var r,o,a,s;if(n>t){if(s=e.input.slice(t,n),i)for(r=0,o=s.length;o>r;r+=1)a=s.charCodeAt(r),9===a||a>=32&&1114111>=a||h(e,"expected valid JSON character");else X.test(s)&&h(e,"the stream contains non-printable characters");e.result+=s}}function y(e,t,n,i){var r,o,a,s;for(R.isObject(n)||h(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(n),a=0,s=r.length;s>a;a+=1)o=r[a],$.call(t,o)||(t[o]=n[o],i[o]=!0)}function x(e,t,n,i,r,o){var a,s;if(r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(o))for(a=0,s=o.length;s>a;a+=1)y(e,t,o[a],n);else y(e,t,o,n);else e.json||$.call(n,r)||!$.call(t,r)||h(e,"duplicated mapping key"),t[r]=o,delete n[r];return t}function v(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):h(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function A(e,t,n){for(var o=0,a=e.input.charCodeAt(e.position);0!==a;){for(;r(a);)a=e.input.charCodeAt(++e.position);if(t&&35===a)do a=e.input.charCodeAt(++e.position);while(10!==a&&13!==a&&0!==a);if(!i(a))break;for(v(e),a=e.input.charCodeAt(e.position),o++,e.lineIndent=0;32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position)}return-1!==n&&0!==o&&e.lineIndent<n&&m(e,"deficient indentation"),o}function b(e){var t,n=e.position;return t=e.input.charCodeAt(n),(45===t||46===t)&&t===e.input.charCodeAt(n+1)&&t===e.input.charCodeAt(n+2)&&(n+=3,t=e.input.charCodeAt(n),0===t||o(t))}function w(e,t){1===t?e.result+=" ":t>1&&(e.result+=R.repeat("\n",t-1))}function C(e,t,n){var s,c,u,l,p,f,d,h,m,y=e.kind,x=e.result;if(m=e.input.charCodeAt(e.position),o(m)||a(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(c=e.input.charCodeAt(e.position+1),o(c)||n&&a(c)))return!1;for(e.kind="scalar",e.result="",u=l=e.position,p=!1;0!==m;){if(58===m){if(c=e.input.charCodeAt(e.position+1),o(c)||n&&a(c))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),o(s))break}else{if(e.position===e.lineStart&&b(e)||n&&a(m))break;if(i(m)){if(f=e.line,d=e.lineStart,h=e.lineIndent,A(e,!1,-1),e.lineIndent>=t){p=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=f,e.lineStart=d,e.lineIndent=h;break}}p&&(g(e,u,l,!1),w(e,e.line-f),u=l=e.position,p=!1),r(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,u,l,!1),e.result?!0:(e.kind=y,e.result=x,!1)}function k(e,t){var n,r,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;r=o=e.position,e.position++}else i(n)?(g(e,r,o,!0),w(e,A(e,!1,t)),r=o=e.position):e.position===e.lineStart&&b(e)?h(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);h(e,"unexpected end of the stream within a single quoted scalar")}function j(e,t){var n,r,o,a,u,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return g(e,n,e.position,!0),e.position++,!0;if(92===l){if(g(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),i(l))A(e,!1,t);else if(256>l&&re[l])e.result+=oe[l],e.position++;else if((u=c(l))>0){for(o=u,a=0;o>0;o--)l=e.input.charCodeAt(++e.position),(u=s(l))>=0?a=(a<<4)+u:h(e,"expected hexadecimal character");e.result+=p(a),e.position++}else h(e,"unknown escape sequence");n=r=e.position}else i(l)?(g(e,n,r,!0),w(e,A(e,!1,t)),n=r=e.position):e.position===e.lineStart&&b(e)?h(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}h(e,"unexpected end of the stream within a double quoted scalar")}function I(e,t){var n,i,r,a,s,c,u,l,p,f,d,m=!0,g=e.tag,y=e.anchor,v={};if(d=e.input.charCodeAt(e.position),91===d)a=93,u=!1,i=[];else{if(123!==d)return!1;a=125,u=!0,i={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),d=e.input.charCodeAt(++e.position);0!==d;){if(A(e,!0,t),d=e.input.charCodeAt(e.position),d===a)return e.position++,e.tag=g,e.anchor=y,e.kind=u?"mapping":"sequence",e.result=i,!0;m||h(e,"missed comma between flow collection entries"),p=l=f=null,s=c=!1,63===d&&(r=e.input.charCodeAt(e.position+1),o(r)&&(s=c=!0,e.position++,A(e,!0,t))),n=e.line,_(e,t,H,!1,!0),p=e.tag,l=e.result,A(e,!0,t),d=e.input.charCodeAt(e.position),!c&&e.line!==n||58!==d||(s=!0,d=e.input.charCodeAt(++e.position),A(e,!0,t),_(e,t,H,!1,!0),f=e.result),u?x(e,i,v,p,l,f):s?i.push(x(e,null,v,p,l,f)):i.push(l),A(e,!0,t),d=e.input.charCodeAt(e.position),44===d?(m=!0,d=e.input.charCodeAt(++e.position)):m=!1}h(e,"unexpected end of the stream within a flow collection")}function S(e,t){var n,o,a,s,c=z,l=!1,p=!1,f=t,d=0,m=!1;if(s=e.input.charCodeAt(e.position),124===s)o=!1;else{if(62!==s)return!1;o=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)z===c?c=43===s?Q:J:h(e,"repeat of a chomping mode identifier");else{if(!((a=u(s))>=0))break;0===a?h(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):p?h(e,"repeat of an indentation width identifier"):(f=t+a-1,p=!0)}if(r(s)){do s=e.input.charCodeAt(++e.position);while(r(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!i(s)&&0!==s)}for(;0!==s;){for(v(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!p||e.lineIndent<f)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!p&&e.lineIndent>f&&(f=e.lineIndent),i(s))d++;else{if(e.lineIndent<f){c===Q?e.result+=R.repeat("\n",l?1+d:d):c===z&&l&&(e.result+="\n");break}for(o?r(s)?(m=!0,e.result+=R.repeat("\n",l?1+d:d)):m?(m=!1,e.result+=R.repeat("\n",d+1)):0===d?l&&(e.result+=" "):e.result+=R.repeat("\n",d):e.result+=R.repeat("\n",l?1+d:d),l=!0,p=!0,d=0,n=e.position;!i(s)&&0!==s;)s=e.input.charCodeAt(++e.position);g(e,n,e.position,!1)}}return!0}function O(e,t){var n,i,r,a=e.tag,s=e.anchor,c=[],u=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=c),r=e.input.charCodeAt(e.position);0!==r&&45===r&&(i=e.input.charCodeAt(e.position+1),o(i));)if(u=!0,e.position++,A(e,!0,-1)&&e.lineIndent<=t)c.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,_(e,t,V,!1,!0),c.push(e.result),A(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)h(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return u?(e.tag=a,e.anchor=s,e.kind="sequence",e.result=c,!0):!1}function E(e,t,n){var i,a,s,c,u=e.tag,l=e.anchor,p={},f={},d=null,m=null,g=null,y=!1,v=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),c=e.input.charCodeAt(e.position);0!==c;){if(i=e.input.charCodeAt(e.position+1),s=e.line,63!==c&&58!==c||!o(i)){if(!_(e,n,G,!1,!0))break;if(e.line===s){for(c=e.input.charCodeAt(e.position);r(c);)c=e.input.charCodeAt(++e.position);if(58===c)c=e.input.charCodeAt(++e.position),o(c)||h(e,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(x(e,p,f,d,m,null),d=m=g=null),v=!0,y=!1,a=!1,d=e.tag,m=e.result;else{if(!v)return e.tag=u,e.anchor=l,!0;h(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!v)return e.tag=u,e.anchor=l,!0;h(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(y&&(x(e,p,f,d,m,null),d=m=g=null),v=!0,y=!0,a=!0):y?(y=!1,a=!0):h(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,c=i;if((e.line===s||e.lineIndent>t)&&(_(e,t,Z,!0,a)&&(y?m=e.result:g=e.result),y||(x(e,p,f,d,m,g),d=m=g=null),A(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)h(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return y&&x(e,p,f,d,m,null),v&&(e.tag=u,e.anchor=l,e.kind="mapping",e.result=p),v}function F(e){var t,n,i,r,a=!1,s=!1;if(r=e.input.charCodeAt(e.position),33!==r)return!1;if(null!==e.tag&&h(e,"duplication of a tag property"),r=e.input.charCodeAt(++e.position),60===r?(a=!0,r=e.input.charCodeAt(++e.position)):33===r?(s=!0,n="!!",r=e.input.charCodeAt(++e.position)):n="!",t=e.position,a){do r=e.input.charCodeAt(++e.position);while(0!==r&&62!==r);e.position<e.length?(i=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):h(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!o(r);)33===r&&(s?h(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),ne.test(n)||h(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);i=e.input.slice(t,e.position),te.test(i)&&h(e,"tag suffix cannot contain flow indicator characters")}return i&&!ie.test(i)&&h(e,"tag name cannot contain such characters: "+i),a?e.tag=i:$.call(e.tagMap,n)?e.tag=e.tagMap[n]+i:"!"===n?e.tag="!"+i:"!!"===n?e.tag="tag:yaml.org,2002:"+i:h(e,'undeclared tag handle "'+n+'"'),!0}function N(e){var t,n;if(n=e.input.charCodeAt(e.position),38!==n)return!1;for(null!==e.anchor&&h(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!o(n)&&!a(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&h(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function M(e){var t,n,i;if(i=e.input.charCodeAt(e.position),42!==i)return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!o(i)&&!a(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&h(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||h(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],A(e,!0,-1),!0}function _(e,t,n,i,r){var o,a,s,c,u,l,p,f,d=1,m=!1,g=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=Z===n||V===n,i&&A(e,!0,-1)&&(m=!0,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)),1===d)for(;F(e)||N(e);)A(e,!0,-1)?(m=!0,s=o,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)):s=!1;if(s&&(s=m||r),1!==d&&Z!==n||(p=H===n||G===n?t:t+1,f=e.position-e.lineStart,1===d?s&&(O(e,f)||E(e,f,p))||I(e,p)?g=!0:(a&&S(e,p)||k(e,p)||j(e,p)?g=!0:M(e)?(g=!0,null===e.tag&&null===e.anchor||h(e,"alias node should not have any properties")):C(e,p,H===n)&&(g=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(g=s&&O(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;u>c;c+=1)if(l=e.implicitTypes[c],l.resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else $.call(e.typeMap,e.tag)?(l=e.typeMap[e.tag],null!==e.result&&l.kind!==e.kind&&h(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):h(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):h(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||g}function T(e){var t,n,a,s,c=e.position,u=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(A(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(u=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&h(e,"directive name must not be less than one character in length");0!==s;){for(;r(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!i(s));break}if(i(s))break;for(t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==s&&v(e),$.call(se,n)?se[n](e,n,a):m(e,'unknown document directive "'+n+'"')}return A(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,A(e,!0,-1)):u&&h(e,"directives end mark is expected"),_(e,e.lineIndent-1,Z,!1,!0),A(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(c,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&b(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,A(e,!0,-1))):void(e.position<e.length-1&&h(e,"end of the stream or a document separator is expected"))}function L(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new f(e,t);for(n.input+="\x00";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)T(n);return n.documents}function D(e,t,n){var i,r,o=L(e,n);for(i=0,r=o.length;r>i;i+=1)t(o[i])}function U(e,t){var n=L(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new B("expected a single document in the stream, but found more")}}function q(e,t,n){D(e,t,R.extend({schema:W},n))}function Y(e,t){return U(e,R.extend({schema:W},t))}for(var R=e("./common"),B=e("./exception"),P=e("./mark"),W=e("./schema/default_safe"),K=e("./schema/default_full"),$=Object.prototype.hasOwnProperty,H=1,G=2,V=3,Z=4,z=1,J=2,Q=3,X=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,ie=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,re=new Array(256),oe=new Array(256),ae=0;256>ae;ae++)re[ae]=l(ae)?1:0,oe[ae]=l(ae);var se={YAML:function(e,t,n){var i,r,o;null!==e.version&&h(e,"duplication of %YAML directive"),1!==n.length&&h(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===i&&h(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&h(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=2>o,1!==o&&2!==o&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&h(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],ne.test(i)||h(e,"ill-formed tag handle (first argument) of the TAG directive"),$.call(e.tagMap,i)&&h(e,'there is a previously declared suffix for "'+i+'" tag handle'),ie.test(r)||h(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=r}};t.exports.loadAll=D,t.exports.load=U,t.exports.safeLoadAll=q,t.exports.safeLoad=Y},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(e,t,n){"use strict";function i(e,t,n,i,r){this.name=e,this.buffer=t,this.position=n,this.line=i,this.column=r}var r=e("./common");i.prototype.getSnippet=function(e,t){var n,i,o,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",i=this.position;i>0&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){n=" ... ",i+=5;break}for(o="",a=this.position;a<this.buffer.length&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(a));)if(a+=1,a-this.position>t/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(i,a),r.repeat(" ",e)+n+s+o+"\n"+r.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";function i(e,t,n){var r=[];return e.include.forEach(function(e){n=i(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&r.push(n)}),n.push(e)}),n.filter(function(e,t){return-1===r.indexOf(t)})}function r(){function e(e){i[e.tag]=e}var t,n,i={};for(t=0,n=arguments.length;n>t;t+=1)arguments[t].forEach(e);return i}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=i(this,"implicit",[]),this.compiledExplicit=i(this,"explicit",[]),this.compiledTypeMap=r(this.compiledImplicit,this.compiledExplicit)}var a=e("./common"),s=e("./exception"),c=e("./type");o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new s("Wrong number of arguments for Schema.create function")}if(e=a.toArray(e),t=a.toArray(t),!e.every(function(e){return e instanceof o}))throw new s("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof c}))throw new s("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},t.exports=o},{"./common":2,"./exception":4,"./type":13}],8:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./json")]})},{"../schema":7,"./json":12}],9:[function(e,t,n){"use strict";var i=e("../schema");t.exports=i.DEFAULT=new i({include:[e("./default_safe")],explicit:[e("../type/js/undefined"),e("../type/js/regexp"),e("../type/js/function")]})},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./core")],implicit:[e("../type/timestamp"),e("../type/merge")],explicit:[e("../type/binary"),e("../type/omap"),e("../type/pairs"),e("../type/set")]})},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({explicit:[e("../type/str"),e("../type/seq"),e("../type/map")]})},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./failsafe")],implicit:[e("../type/null"),e("../type/bool"),e("../type/int"),e("../type/float")]})},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(e,t,n){"use strict";function i(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function r(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===a.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=i(t.styleAliases||null),-1===s.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var o=e("./exception"),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];t.exports=r},{"./exception":4}],14:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=p;for(n=0;r>n;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(0>t)return!1;i+=6}return i%8===0}function r(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=p,a=0,c=[];for(t=0;r>t;t++)t%4===0&&t&&(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return n=r%4*6,0===n?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===n?(c.push(a>>10&255),c.push(a>>2&255)):12===n&&c.push(a>>4&255),s?new s(c):c}function o(e){var t,n,i="",r=0,o=e.length,a=p;for(t=0;o>t;t++)t%3===0&&t&&(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return n=o%3,0===n?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}function a(e){return s&&s.isBuffer(e)}var s;try{var c=e;s=c("buffer").Buffer;
-}catch(u){}var l=e("../type"),p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new l("tag:yaml.org,2002:binary",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../type":13}],15:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function r(e){return"true"===e||"True"===e||"TRUE"===e}function o(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var a=e("../type");t.exports=new a("tag:yaml.org,2002:bool",{kind:"scalar",resolve:i,construct:r,predicate:o,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";function i(e){return null===e?!1:!!u.test(e)}function r(e){var t,n,i,r;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function a(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||s.isNegativeZero(e))}var s=e("../common"),c=e("../type"),u=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;t.exports=new c("tag:yaml.org,2002:float",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o,defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";function i(e){return e>=48&&57>=e||e>=65&&70>=e||e>=97&&102>=e}function r(e){return e>=48&&55>=e}function o(e){return e>=48&&57>=e}function a(e){if(null===e)return!1;var t,n=e.length,a=0,s=!1;if(!n)return!1;if(t=e[a],"-"!==t&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===n)return!0;if(t=e[++a],"b"===t){for(a++;n>a;a++)if(t=e[a],"_"!==t){if("0"!==t&&"1"!==t)return!1;s=!0}return s}if("x"===t){for(a++;n>a;a++)if(t=e[a],"_"!==t){if(!i(e.charCodeAt(a)))return!1;s=!0}return s}for(;n>a;a++)if(t=e[a],"_"!==t){if(!r(e.charCodeAt(a)))return!1;s=!0}return s}for(;n>a;a++)if(t=e[a],"_"!==t){if(":"===t)break;if(!o(e.charCodeAt(a)))return!1;s=!0}return s?":"!==t?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(a)):!1}function s(e){var t,n,i=e,r=1,o=[];return-1!==i.indexOf("_")&&(i=i.replace(/_/g,"")),t=i[0],"-"!==t&&"+"!==t||("-"===t&&(r=-1),i=i.slice(1),t=i[0]),"0"===i?0:"0"===t?"b"===i[1]?r*parseInt(i.slice(2),2):"x"===i[1]?r*parseInt(i,16):r*parseInt(i,8):-1!==i.indexOf(":")?(i.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),i=0,n=1,o.forEach(function(e){i+=e*n,n*=60}),r*i):r*parseInt(i,10)}function c(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1===0&&!u.isNegativeZero(e)}var u=e("../common"),l=e("../type");t.exports=new l("tag:yaml.org,2002:int",{kind:"scalar",resolve:a,construct:s,predicate:c,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":2,"../type":13}],18:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(i){return!1}}function r(e){var t,n="("+e+")",i=s.parse(n,{range:!0}),r=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach(function(e){r.push(e.name)}),t=i.body[0].expression.body.range,new Function(r,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function a(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{var c=e;s=c("esprima")}catch(u){"undefined"!=typeof window&&(s=window.esprima)}var l=e("../../type");t.exports=new l("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],19:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),i="";if("/"===t[0]){if(n&&(i=n[1]),i.length>3)return!1;if("/"!==t[t.length-i.length-1])return!1}return!0}function r(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return"/"===t[0]&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function a(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],20:[function(e,t,n){"use strict";function i(){return!0}function r(){}function o(){return""}function a(e){return"undefined"==typeof e}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],21:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},{"../type":13}],22:[function(e,t,n){"use strict";function i(e){return"<<"===e||null===e}var r=e("../type");t.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:i})},{"../type":13}],23:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function r(){return null}function o(e){return null===e}var a=e("../type");t.exports=new a("tag:yaml.org,2002:null",{kind:"scalar",resolve:i,construct:r,predicate:o,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":13}],24:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n,i,r,o,c=[],u=e;for(t=0,n=u.length;n>t;t+=1){if(i=u[t],o=!1,"[object Object]"!==s.call(i))return!1;for(r in i)if(a.call(i,r)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==c.indexOf(r))return!1;c.push(r)}return!0}function r(e){return null!==e?e:[]}var o=e("../type"),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:i,construct:r})},{"../type":13}],25:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n,i,r,o,s=e;for(o=new Array(s.length),t=0,n=s.length;n>t;t+=1){if(i=s[t],"[object Object]"!==a.call(i))return!1;if(r=Object.keys(i),1!==r.length)return!1;o[t]=[r[0],i[r[0]]]}return!0}function r(e){if(null===e)return[];var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;n>t;t+=1)i=a[t],r=Object.keys(i),o[t]=[r[0],i[r[0]]];return o}var o=e("../type"),a=Object.prototype.toString;t.exports=new o("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:i,construct:r})},{"../type":13}],26:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},{"../type":13}],27:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n=e;for(t in n)if(a.call(n,t)&&null!==n[t])return!1;return!0}function r(e){return null!==e?e:{}}var o=e("../type"),a=Object.prototype.hasOwnProperty;t.exports=new o("tag:yaml.org,2002:set",{kind:"mapping",resolve:i,construct:r})},{"../type":13}],28:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},{"../type":13}],29:[function(e,t,n){"use strict";function i(e){return null===e?!1:null!==s.exec(e)?!0:null!==c.exec(e)}function r(e){var t,n,i,r,o,a,u,l,p,f,d=0,h=null;if(t=s.exec(e),null===t&&(t=c.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],u=+t[6],t[7]){for(d=t[7].slice(0,3);d.length<3;)d+="0";d=+d}return t[9]&&(l=+t[10],p=+(t[11]||0),h=6e4*(60*l+p),"-"===t[9]&&(h=-h)),f=new Date(Date.UTC(n,i,r,o,a,u,d)),h&&f.setTime(f.getTime()-h),f}function o(e){return e.toISOString()}var a=e("../type"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),c=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:i,construct:r,instanceOf:Date,represent:o})},{"../type":13}],"/":[function(e,t,n){"use strict";var i=e("./lib/js-yaml.js");t.exports=i},{"./lib/js-yaml.js":1}]},{},[])("/")});
+/* js-yaml 3.7.0 https://github.com/nodeca/js-yaml */
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.jsyaml=e()}}(function(){return function e(t,n,i){function r(a,s){if(!n[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return r(n?n:e)},l,l.exports,e,t,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){"use strict";function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var r=e("./js-yaml/loader"),o=e("./js-yaml/dumper");t.exports.Type=e("./js-yaml/type"),t.exports.Schema=e("./js-yaml/schema"),t.exports.FAILSAFE_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.JSON_SCHEMA=e("./js-yaml/schema/json"),t.exports.CORE_SCHEMA=e("./js-yaml/schema/core"),t.exports.DEFAULT_SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_FULL_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.load=r.load,t.exports.loadAll=r.loadAll,t.exports.safeLoad=r.safeLoad,t.exports.safeLoadAll=r.safeLoadAll,t.exports.dump=o.dump,t.exports.safeDump=o.safeDump,t.exports.YAMLException=e("./js-yaml/exception"),t.exports.MINIMAL_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.scan=i("scan"),t.exports.parse=i("parse"),t.exports.compose=i("compose"),t.exports.addConstructor=i("addConstructor")},{"./js-yaml/dumper":3,"./js-yaml/exception":4,"./js-yaml/loader":5,"./js-yaml/schema":7,"./js-yaml/schema/core":8,"./js-yaml/schema/default_full":9,"./js-yaml/schema/default_safe":10,"./js-yaml/schema/failsafe":11,"./js-yaml/schema/json":12,"./js-yaml/type":13}],2:[function(e,t,n){"use strict";function i(e){return"undefined"==typeof e||null===e}function r(e){return"object"==typeof e&&null!==e}function o(e){return Array.isArray(e)?e:i(e)?[]:[e]}function a(e,t){var n,i,r,o;if(t)for(o=Object.keys(t),n=0,i=o.length;n<i;n+=1)r=o[n],e[r]=t[r];return e}function s(e,t){var n,i="";for(n=0;n<t;n+=1)i+=e;return i}function c(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}t.exports.isNothing=i,t.exports.isObject=r,t.exports.toArray=o,t.exports.repeat=s,t.exports.isNegativeZero=c,t.exports.extend=a},{}],3:[function(e,t,n){"use strict";function i(e,t){var n,i,r,o,a,s,c;if(null===t)return{};for(n={},i=Object.keys(t),r=0,o=i.length;r<o;r+=1)a=i[r],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),c=e.compiledTypeMap.fallback[a],c&&L.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[a]=s;return n}function r(e){var t,n,i;if(t=e.toString(16).toUpperCase(),e<=255)n="x",i=2;else if(e<=65535)n="u",i=4;else{if(!(e<=4294967295))throw new N("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+F.repeat("0",i-t.length)+t}function o(e){this.schema=e.schema||M,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=F.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=i(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function a(e,t){for(var n,i=F.repeat(" ",t),r=0,o=-1,a="",s=e.length;r<s;)o=e.indexOf("\n",r),o===-1?(n=e.slice(r),r=s):(n=e.slice(r,o+1),r=o+1),n.length&&"\n"!==n&&(a+=i),a+=n;return a}function s(e,t){return"\n"+F.repeat(" ",e.indent*t)}function c(e,t){var n,i,r;for(n=0,i=e.implicitTypes.length;n<i;n+=1)if(r=e.implicitTypes[n],r.resolve(t))return!0;return!1}function u(e){return e===q||e===D}function l(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function p(e){return l(e)&&65279!==e&&e!==H&&e!==Q&&e!==X&&e!==te&&e!==ie&&e!==V&&e!==P}function f(e){return l(e)&&65279!==e&&!u(e)&&e!==G&&e!==z&&e!==V&&e!==H&&e!==Q&&e!==X&&e!==te&&e!==ie&&e!==P&&e!==B&&e!==$&&e!==Y&&e!==ne&&e!==Z&&e!==K&&e!==R&&e!==W&&e!==J&&e!==ee}function d(e,t,n,i,r){var o,a,s=!1,c=!1,d=i!==-1,h=-1,m=f(e.charCodeAt(0))&&!u(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),!l(a))return le;m=m&&p(a)}else{for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),a===U)s=!0,d&&(c=c||o-h-1>i&&" "!==e[h+1],h=o);else if(!l(a))return le;m=m&&p(a)}c=c||d&&o-h-1>i&&" "!==e[h+1]}return s||c?" "===e[0]&&n>9?le:c?ue:ce:m&&!r(e)?ae:se}function h(e,t,n,i){e.dump=function(){function r(t){return c(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&oe.indexOf(t)!==-1)return"'"+t+"'";var o=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),u=i||e.flowLevel>-1&&n>=e.flowLevel;switch(d(t,u,e.indent,s,r)){case ae:return t;case se:return"'"+t.replace(/'/g,"''")+"'";case ce:return"|"+m(t,e.indent)+g(a(t,o));case ue:return">"+m(t,e.indent)+g(a(y(t,s),o));case le:return'"'+v(t,s)+'"';default:throw new N("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",i="\n"===e[e.length-1],r=i&&("\n"===e[e.length-2]||"\n"===e),o=r?"+":i?"":"-";return n+o+"\n"}function g(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function y(e,t){for(var n,i,r=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=n!==-1?n:e.length,r.lastIndex=n,x(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0];i=r.exec(e);){var s=i[1],c=i[2];n=" "===c[0],o+=s+(a||n||""===c?"":"\n")+x(c,t),a=n}return o}function x(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,s=0,c="";n=r.exec(e);)s=n.index,s-o>t&&(i=a>o?a:s,c+="\n"+e.slice(o,i),o=i+1),a=s;return c+="\n",c+=e.length-o>t&&a>o?e.slice(o,a)+"\n"+e.slice(a+1):e.slice(o),c.slice(1)}function v(e){for(var t,n,i="",o=0;o<e.length;o++)t=e.charCodeAt(o),n=re[t],i+=!n&&l(t)?e[o]:n||r(t);return i}function A(e,t,n){var i,r,o="",a=e.tag;for(i=0,r=n.length;i<r;i+=1)j(e,t,n[i],!1,!1)&&(0!==i&&(o+=", "),o+=e.dump);e.tag=a,e.dump="["+o+"]"}function b(e,t,n,i){var r,o,a="",c=e.tag;for(r=0,o=n.length;r<o;r+=1)j(e,t+1,n[r],!0,!0)&&(i&&0===r||(a+=s(e,t)),a+="- "+e.dump);e.tag=c,e.dump=a||"[]"}function w(e,t,n){var i,r,o,a,s,c="",u=e.tag,l=Object.keys(n);for(i=0,r=l.length;i<r;i+=1)s="",0!==i&&(s+=", "),o=l[i],a=n[o],j(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",j(e,t,a,!1,!1)&&(s+=e.dump,c+=s));e.tag=u,e.dump="{"+c+"}"}function C(e,t,n,i){var r,o,a,c,u,l,p="",f=e.tag,d=Object.keys(n);if(e.sortKeys===!0)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new N("sortKeys must be a boolean or a function");for(r=0,o=d.length;r<o;r+=1)l="",i&&0===r||(l+=s(e,t)),a=d[r],c=n[a],j(e,t+1,a,!0,!0,!0)&&(u=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,u&&(l+=e.dump&&U===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,u&&(l+=s(e,t)),j(e,t+1,c,!0,u)&&(l+=e.dump&&U===e.dump.charCodeAt(0)?":":": ",l+=e.dump,p+=l));e.tag=f,e.dump=p||"{}"}function k(e,t,n){var i,r,o,a,s,c;for(r=n?e.explicitTypes:e.implicitTypes,o=0,a=r.length;o<a;o+=1)if(s=r[o],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===T.call(s.represent))i=s.represent(t,c);else{if(!L.call(s.represent,c))throw new N("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function j(e,t,n,i,r,o){e.tag=null,e.dump=n,k(e,n,!1)||k(e,n,!0);var a=T.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(s=e.duplicates.indexOf(n),c=s!==-1),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(u&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)i&&0!==Object.keys(e.dump).length?(C(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(w(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a)i&&0!==e.dump.length?(b(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(A(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new N("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&h(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function I(e,t){var n,i,r=[],o=[];for(S(e,r,o),n=0,i=o.length;n<i;n+=1)t.duplicates.push(r[o[n]]);t.usedDuplicates=new Array(i)}function S(e,t,n){var i,r,o;if(null!==e&&"object"==typeof e)if(r=t.indexOf(e),r!==-1)n.indexOf(r)===-1&&n.push(r);else if(t.push(e),Array.isArray(e))for(r=0,o=e.length;r<o;r+=1)S(e[r],t,n);else for(i=Object.keys(e),r=0,o=i.length;r<o;r+=1)S(e[i[r]],t,n)}function O(e,t){t=t||{};var n=new o(t);return n.noRefs||I(e,n),j(n,0,e,!0,!0)?n.dump+"\n":""}function E(e,t){return O(e,F.extend({schema:_},t))}var F=e("./common"),N=e("./exception"),M=e("./schema/default_full"),_=e("./schema/default_safe"),T=Object.prototype.toString,L=Object.prototype.hasOwnProperty,D=9,U=10,q=32,Y=33,R=34,P=35,W=37,B=38,K=39,$=42,H=44,G=45,V=58,Z=62,z=63,J=64,Q=91,X=93,ee=96,te=123,ne=124,ie=125,re={};re[0]="\\0",re[7]="\\a",re[8]="\\b",re[9]="\\t",re[10]="\\n",re[11]="\\v",re[12]="\\f",re[13]="\\r",re[27]="\\e",re[34]='\\"',re[92]="\\\\",re[133]="\\N",re[160]="\\_",re[8232]="\\L",re[8233]="\\P";var oe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ae=1,se=2,ce=3,ue=4,le=5;t.exports.dump=O,t.exports.safeDump=E},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(e,t,n){"use strict";function i(e,t){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,i.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},t.exports=i},{}],5:[function(e,t,n){"use strict";function i(e){return 10===e||13===e}function r(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function a(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return 48<=e&&e<=57?e-48:(t=32|e,97<=t&&t<=102?t-97+10:-1)}function c(e){return 120===e?2:117===e?4:85===e?8:0}function u(e){return 48<=e&&e<=57?e-48:-1}function l(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function f(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function d(e,t){return new P(t,new W(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function h(e,t){throw d(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,d(e,t))}function g(e,t,n,i){var r,o,a,s;if(t<n){if(s=e.input.slice(t,n),i)for(r=0,o=s.length;r<o;r+=1)a=s.charCodeAt(r),9===a||32<=a&&a<=1114111||h(e,"expected valid JSON character");else X.test(s)&&h(e,"the stream contains non-printable characters");e.result+=s}}function y(e,t,n,i){var r,o,a,s;for(R.isObject(n)||h(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(n),a=0,s=r.length;a<s;a+=1)o=r[a],$.call(t,o)||(t[o]=n[o],i[o]=!0)}function x(e,t,n,i,r,o){var a,s;if(r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(o))for(a=0,s=o.length;a<s;a+=1)y(e,t,o[a],n);else y(e,t,o,n);else e.json||$.call(n,r)||!$.call(t,r)||h(e,"duplicated mapping key"),t[r]=o,delete n[r];return t}function v(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):h(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function A(e,t,n){for(var o=0,a=e.input.charCodeAt(e.position);0!==a;){for(;r(a);)a=e.input.charCodeAt(++e.position);if(t&&35===a)do a=e.input.charCodeAt(++e.position);while(10!==a&&13!==a&&0!==a);if(!i(a))break;for(v(e),a=e.input.charCodeAt(e.position),o++,e.lineIndent=0;32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position)}return n!==-1&&0!==o&&e.lineIndent<n&&m(e,"deficient indentation"),o}function b(e){var t,n=e.position;return t=e.input.charCodeAt(n),!(45!==t&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,t=e.input.charCodeAt(n),0!==t&&!o(t)))}function w(e,t){1===t?e.result+=" ":t>1&&(e.result+=R.repeat("\n",t-1))}function C(e,t,n){var s,c,u,l,p,f,d,h,m,y=e.kind,x=e.result;if(m=e.input.charCodeAt(e.position),o(m)||a(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(c=e.input.charCodeAt(e.position+1),o(c)||n&&a(c)))return!1;for(e.kind="scalar",e.result="",u=l=e.position,p=!1;0!==m;){if(58===m){if(c=e.input.charCodeAt(e.position+1),o(c)||n&&a(c))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),o(s))break}else{if(e.position===e.lineStart&&b(e)||n&&a(m))break;if(i(m)){if(f=e.line,d=e.lineStart,h=e.lineIndent,A(e,!1,-1),e.lineIndent>=t){p=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=f,e.lineStart=d,e.lineIndent=h;break}}p&&(g(e,u,l,!1),w(e,e.line-f),u=l=e.position,p=!1),r(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,u,l,!1),!!e.result||(e.kind=y,e.result=x,!1)}function k(e,t){var n,r,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,r,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;r=e.position,e.position++,o=e.position}else i(n)?(g(e,r,o,!0),w(e,A(e,!1,t)),r=o=e.position):e.position===e.lineStart&&b(e)?h(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);h(e,"unexpected end of the stream within a single quoted scalar")}function j(e,t){var n,r,o,a,u,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return g(e,n,e.position,!0),e.position++,!0;if(92===l){if(g(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),i(l))A(e,!1,t);else if(l<256&&re[l])e.result+=oe[l],e.position++;else if((u=c(l))>0){for(o=u,a=0;o>0;o--)l=e.input.charCodeAt(++e.position),(u=s(l))>=0?a=(a<<4)+u:h(e,"expected hexadecimal character");e.result+=p(a),e.position++}else h(e,"unknown escape sequence");n=r=e.position}else i(l)?(g(e,n,r,!0),w(e,A(e,!1,t)),n=r=e.position):e.position===e.lineStart&&b(e)?h(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}h(e,"unexpected end of the stream within a double quoted scalar")}function I(e,t){var n,i,r,a,s,c,u,l,p,f,d,m=!0,g=e.tag,y=e.anchor,v={};if(d=e.input.charCodeAt(e.position),91===d)a=93,u=!1,i=[];else{if(123!==d)return!1;a=125,u=!0,i={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),d=e.input.charCodeAt(++e.position);0!==d;){if(A(e,!0,t),d=e.input.charCodeAt(e.position),d===a)return e.position++,e.tag=g,e.anchor=y,e.kind=u?"mapping":"sequence",e.result=i,!0;m||h(e,"missed comma between flow collection entries"),p=l=f=null,s=c=!1,63===d&&(r=e.input.charCodeAt(e.position+1),o(r)&&(s=c=!0,e.position++,A(e,!0,t))),n=e.line,_(e,t,H,!1,!0),p=e.tag,l=e.result,A(e,!0,t),d=e.input.charCodeAt(e.position),!c&&e.line!==n||58!==d||(s=!0,d=e.input.charCodeAt(++e.position),A(e,!0,t),_(e,t,H,!1,!0),f=e.result),u?x(e,i,v,p,l,f):s?i.push(x(e,null,v,p,l,f)):i.push(l),A(e,!0,t),d=e.input.charCodeAt(e.position),44===d?(m=!0,d=e.input.charCodeAt(++e.position)):m=!1}h(e,"unexpected end of the stream within a flow collection")}function S(e,t){var n,o,a,s,c=z,l=!1,p=!1,f=t,d=0,m=!1;if(s=e.input.charCodeAt(e.position),124===s)o=!1;else{if(62!==s)return!1;o=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)z===c?c=43===s?Q:J:h(e,"repeat of a chomping mode identifier");else{if(!((a=u(s))>=0))break;0===a?h(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):p?h(e,"repeat of an indentation width identifier"):(f=t+a-1,p=!0)}if(r(s)){do s=e.input.charCodeAt(++e.position);while(r(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!i(s)&&0!==s)}for(;0!==s;){for(v(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!p||e.lineIndent<f)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!p&&e.lineIndent>f&&(f=e.lineIndent),i(s))d++;else{if(e.lineIndent<f){c===Q?e.result+=R.repeat("\n",l?1+d:d):c===z&&l&&(e.result+="\n");break}for(o?r(s)?(m=!0,e.result+=R.repeat("\n",l?1+d:d)):m?(m=!1,e.result+=R.repeat("\n",d+1)):0===d?l&&(e.result+=" "):e.result+=R.repeat("\n",d):e.result+=R.repeat("\n",l?1+d:d),l=!0,p=!0,d=0,n=e.position;!i(s)&&0!==s;)s=e.input.charCodeAt(++e.position);g(e,n,e.position,!1)}}return!0}function O(e,t){var n,i,r,a=e.tag,s=e.anchor,c=[],u=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=c),r=e.input.charCodeAt(e.position);0!==r&&45===r&&(i=e.input.charCodeAt(e.position+1),o(i));)if(u=!0,e.position++,A(e,!0,-1)&&e.lineIndent<=t)c.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,_(e,t,V,!1,!0),c.push(e.result),A(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)h(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!u&&(e.tag=a,e.anchor=s,e.kind="sequence",e.result=c,!0)}function E(e,t,n){var i,a,s,c,u=e.tag,l=e.anchor,p={},f={},d=null,m=null,g=null,y=!1,v=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),c=e.input.charCodeAt(e.position);0!==c;){if(i=e.input.charCodeAt(e.position+1),s=e.line,63!==c&&58!==c||!o(i)){if(!_(e,n,G,!1,!0))break;if(e.line===s){for(c=e.input.charCodeAt(e.position);r(c);)c=e.input.charCodeAt(++e.position);if(58===c)c=e.input.charCodeAt(++e.position),o(c)||h(e,"a whitespace character is expected after the key-value separator within a block mapping"),y&&(x(e,p,f,d,m,null),d=m=g=null),v=!0,y=!1,a=!1,d=e.tag,m=e.result;else{if(!v)return e.tag=u,e.anchor=l,!0;h(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!v)return e.tag=u,e.anchor=l,!0;h(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(y&&(x(e,p,f,d,m,null),d=m=g=null),v=!0,y=!0,a=!0):y?(y=!1,a=!0):h(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,c=i;if((e.line===s||e.lineIndent>t)&&(_(e,t,Z,!0,a)&&(y?m=e.result:g=e.result),y||(x(e,p,f,d,m,g),d=m=g=null),A(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)h(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return y&&x(e,p,f,d,m,null),v&&(e.tag=u,e.anchor=l,e.kind="mapping",e.result=p),v}function F(e){var t,n,i,r,a=!1,s=!1;if(r=e.input.charCodeAt(e.position),33!==r)return!1;if(null!==e.tag&&h(e,"duplication of a tag property"),r=e.input.charCodeAt(++e.position),60===r?(a=!0,r=e.input.charCodeAt(++e.position)):33===r?(s=!0,n="!!",r=e.input.charCodeAt(++e.position)):n="!",t=e.position,a){do r=e.input.charCodeAt(++e.position);while(0!==r&&62!==r);e.position<e.length?(i=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):h(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!o(r);)33===r&&(s?h(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),ne.test(n)||h(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);i=e.input.slice(t,e.position),te.test(i)&&h(e,"tag suffix cannot contain flow indicator characters")}return i&&!ie.test(i)&&h(e,"tag name cannot contain such characters: "+i),a?e.tag=i:$.call(e.tagMap,n)?e.tag=e.tagMap[n]+i:"!"===n?e.tag="!"+i:"!!"===n?e.tag="tag:yaml.org,2002:"+i:h(e,'undeclared tag handle "'+n+'"'),!0}function N(e){var t,n;if(n=e.input.charCodeAt(e.position),38!==n)return!1;for(null!==e.anchor&&h(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!o(n)&&!a(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&h(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function M(e){var t,n,i;if(i=e.input.charCodeAt(e.position),42!==i)return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!o(i)&&!a(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&h(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||h(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],A(e,!0,-1),!0}function _(e,t,n,i,r){var o,a,s,c,u,l,p,f,d=1,m=!1,g=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=Z===n||V===n,i&&A(e,!0,-1)&&(m=!0,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)),1===d)for(;F(e)||N(e);)A(e,!0,-1)?(m=!0,s=o,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)):s=!1;if(s&&(s=m||r),1!==d&&Z!==n||(p=H===n||G===n?t:t+1,f=e.position-e.lineStart,1===d?s&&(O(e,f)||E(e,f,p))||I(e,p)?g=!0:(a&&S(e,p)||k(e,p)||j(e,p)?g=!0:M(e)?(g=!0,null===e.tag&&null===e.anchor||h(e,"alias node should not have any properties")):C(e,p,H===n)&&(g=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(g=s&&O(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;c<u;c+=1)if(l=e.implicitTypes[c],l.resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else $.call(e.typeMap[e.kind||"fallback"],e.tag)?(l=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&l.kind!==e.kind&&h(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):h(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):h(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||g}function T(e){var t,n,a,s,c=e.position,u=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(A(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(u=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&h(e,"directive name must not be less than one character in length");0!==s;){for(;r(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!i(s));break}if(i(s))break;for(t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==s&&v(e),$.call(se,n)?se[n](e,n,a):m(e,'unknown document directive "'+n+'"')}return A(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,A(e,!0,-1)):u&&h(e,"directives end mark is expected"),_(e,e.lineIndent-1,Z,!1,!0),A(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(c,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&b(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,A(e,!0,-1))):void(e.position<e.length-1&&h(e,"end of the stream or a document separator is expected"))}function L(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new f(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)T(n);return n.documents}function D(e,t,n){var i,r,o=L(e,n);for(i=0,r=o.length;i<r;i+=1)t(o[i])}function U(e,t){var n=L(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new P("expected a single document in the stream, but found more")}}function q(e,t,n){D(e,t,R.extend({schema:B},n))}function Y(e,t){return U(e,R.extend({schema:B},t))}for(var R=e("./common"),P=e("./exception"),W=e("./mark"),B=e("./schema/default_safe"),K=e("./schema/default_full"),$=Object.prototype.hasOwnProperty,H=1,G=2,V=3,Z=4,z=1,J=2,Q=3,X=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,ie=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,re=new Array(256),oe=new Array(256),ae=0;ae<256;ae++)re[ae]=l(ae)?1:0,oe[ae]=l(ae);var se={YAML:function(e,t,n){var i,r,o;null!==e.version&&h(e,"duplication of %YAML directive"),1!==n.length&&h(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===i&&h(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&h(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&h(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],ne.test(i)||h(e,"ill-formed tag handle (first argument) of the TAG directive"),$.call(e.tagMap,i)&&h(e,'there is a previously declared suffix for "'+i+'" tag handle'),ie.test(r)||h(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=r}};t.exports.loadAll=D,t.exports.load=U,t.exports.safeLoadAll=q,t.exports.safeLoad=Y},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(e,t,n){"use strict";function i(e,t,n,i,r){this.name=e,this.buffer=t,this.position=n,this.line=i,this.column=r}var r=e("./common");i.prototype.getSnippet=function(e,t){var n,i,o,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",i=this.position;i>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1))===-1;)if(i-=1,this.position-i>t/2-1){n=" ... ",i+=5;break}for(o="",a=this.position;a<this.buffer.length&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(a))===-1;)if(a+=1,a-this.position>t/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(i,a),r.repeat(" ",e)+n+s+o+"\n"+r.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";function i(e,t,n){var r=[];return e.include.forEach(function(e){n=i(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&r.push(n)}),n.push(e)}),n.filter(function(e,t){return r.indexOf(t)===-1})}function r(){function e(e){i[e.kind][e.tag]=i.fallback[e.tag]=e}var t,n,i={scalar:{},sequence:{},mapping:{},fallback:{}};for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(e);return i}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=i(this,"implicit",[]),this.compiledExplicit=i(this,"explicit",[]),this.compiledTypeMap=r(this.compiledImplicit,this.compiledExplicit)}var a=e("./common"),s=e("./exception"),c=e("./type");o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new s("Wrong number of arguments for Schema.create function")}if(e=a.toArray(e),t=a.toArray(t),!e.every(function(e){return e instanceof o}))throw new s("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof c}))throw new s("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},t.exports=o},{"./common":2,"./exception":4,"./type":13}],8:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./json")]})},{"../schema":7,"./json":12}],9:[function(e,t,n){"use strict";var i=e("../schema");t.exports=i.DEFAULT=new i({include:[e("./default_safe")],explicit:[e("../type/js/undefined"),e("../type/js/regexp"),e("../type/js/function")]})},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./core")],implicit:[e("../type/timestamp"),e("../type/merge")],explicit:[e("../type/binary"),e("../type/omap"),e("../type/pairs"),e("../type/set")]})},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({explicit:[e("../type/str"),e("../type/seq"),e("../type/map")]})},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./failsafe")],implicit:[e("../type/null"),e("../type/bool"),e("../type/int"),e("../type/float")]})},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(e,t,n){"use strict";function i(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function r(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(a.indexOf(t)===-1)throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=i(t.styleAliases||null),s.indexOf(this.kind)===-1)throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var o=e("./exception"),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];t.exports=r},{"./exception":4}],14:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=l;for(n=0;n<r;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;i+=6}return i%8===0}function r(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=l,a=0,c=[];for(t=0;t<r;t++)t%4===0&&t&&(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return n=r%4*6,0===n?(c.push(a>>16&255),c.push(a>>8&255),c.push(255&a)):18===n?(c.push(a>>10&255),c.push(a>>2&255)):12===n&&c.push(a>>4&255),s?new s(c):c}function o(e){var t,n,i="",r=0,o=e.length,a=l;for(t=0;t<o;t++)t%3===0&&t&&(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return n=o%3,0===n?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2===n?(i+=a[r>>10&63],i+=a[r>>4&63],
+i+=a[r<<2&63],i+=a[64]):1===n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}function a(e){return s&&s.isBuffer(e)}var s;try{var c=e;s=c("buffer").Buffer}catch(e){}var u=e("../type"),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../type":13}],15:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function r(e){return"true"===e||"True"===e||"TRUE"===e}function o(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var a=e("../type");t.exports=new a("tag:yaml.org,2002:bool",{kind:"scalar",resolve:i,construct:r,predicate:o,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";function i(e){return null!==e&&!!u.test(e)}function r(e){var t,n,i,r;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function a(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||s.isNegativeZero(e))}var s=e("../common"),c=e("../type"),u=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;t.exports=new c("tag:yaml.org,2002:float",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o,defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";function i(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function r(e){return 48<=e&&e<=55}function o(e){return 48<=e&&e<=57}function a(e){if(null===e)return!1;var t,n=e.length,a=0,s=!1;if(!n)return!1;if(t=e[a],"-"!==t&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===n)return!0;if(t=e[++a],"b"===t){for(a++;a<n;a++)if(t=e[a],"_"!==t){if("0"!==t&&"1"!==t)return!1;s=!0}return s}if("x"===t){for(a++;a<n;a++)if(t=e[a],"_"!==t){if(!i(e.charCodeAt(a)))return!1;s=!0}return s}for(;a<n;a++)if(t=e[a],"_"!==t){if(!r(e.charCodeAt(a)))return!1;s=!0}return s}for(;a<n;a++)if(t=e[a],"_"!==t){if(":"===t)break;if(!o(e.charCodeAt(a)))return!1;s=!0}return!!s&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(a)))}function s(e){var t,n,i=e,r=1,o=[];return i.indexOf("_")!==-1&&(i=i.replace(/_/g,"")),t=i[0],"-"!==t&&"+"!==t||("-"===t&&(r=-1),i=i.slice(1),t=i[0]),"0"===i?0:"0"===t?"b"===i[1]?r*parseInt(i.slice(2),2):"x"===i[1]?r*parseInt(i,16):r*parseInt(i,8):i.indexOf(":")!==-1?(i.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),i=0,n=1,o.forEach(function(e){i+=e*n,n*=60}),r*i):r*parseInt(i,10)}function c(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1===0&&!u.isNegativeZero(e)}var u=e("../common"),l=e("../type");t.exports=new l("tag:yaml.org,2002:int",{kind:"scalar",resolve:a,construct:s,predicate:c,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":2,"../type":13}],18:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(e){return!1}}function r(e){var t,n="("+e+")",i=s.parse(n,{range:!0}),r=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach(function(e){r.push(e.name)}),t=i.body[0].expression.body.range,new Function(r,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function a(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{var c=e;s=c("esprima")}catch(e){"undefined"!=typeof window&&(s=window.esprima)}var u=e("../../type");t.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],19:[function(e,t,n){"use strict";function i(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),i="";if("/"===t[0]){if(n&&(i=n[1]),i.length>3)return!1;if("/"!==t[t.length-i.length-1])return!1}return!0}function r(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return"/"===t[0]&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function a(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],20:[function(e,t,n){"use strict";function i(){return!0}function r(){}function o(){return""}function a(e){return"undefined"==typeof e}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:i,construct:r,predicate:a,represent:o})},{"../../type":13}],21:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},{"../type":13}],22:[function(e,t,n){"use strict";function i(e){return"<<"===e||null===e}var r=e("../type");t.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:i})},{"../type":13}],23:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function r(){return null}function o(e){return null===e}var a=e("../type");t.exports=new a("tag:yaml.org,2002:null",{kind:"scalar",resolve:i,construct:r,predicate:o,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":13}],24:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n,i,r,o,c=[],u=e;for(t=0,n=u.length;t<n;t+=1){if(i=u[t],o=!1,"[object Object]"!==s.call(i))return!1;for(r in i)if(a.call(i,r)){if(o)return!1;o=!0}if(!o)return!1;if(c.indexOf(r)!==-1)return!1;c.push(r)}return!0}function r(e){return null!==e?e:[]}var o=e("../type"),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:i,construct:r})},{"../type":13}],25:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n,i,r,o,s=e;for(o=new Array(s.length),t=0,n=s.length;t<n;t+=1){if(i=s[t],"[object Object]"!==a.call(i))return!1;if(r=Object.keys(i),1!==r.length)return!1;o[t]=[r[0],i[r[0]]]}return!0}function r(e){if(null===e)return[];var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1)i=a[t],r=Object.keys(i),o[t]=[r[0],i[r[0]]];return o}var o=e("../type"),a=Object.prototype.toString;t.exports=new o("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:i,construct:r})},{"../type":13}],26:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},{"../type":13}],27:[function(e,t,n){"use strict";function i(e){if(null===e)return!0;var t,n=e;for(t in n)if(a.call(n,t)&&null!==n[t])return!1;return!0}function r(e){return null!==e?e:{}}var o=e("../type"),a=Object.prototype.hasOwnProperty;t.exports=new o("tag:yaml.org,2002:set",{kind:"mapping",resolve:i,construct:r})},{"../type":13}],28:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},{"../type":13}],29:[function(e,t,n){"use strict";function i(e){return null!==e&&(null!==s.exec(e)||null!==c.exec(e))}function r(e){var t,n,i,r,o,a,u,l,p,f,d=0,h=null;if(t=s.exec(e),null===t&&(t=c.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],u=+t[6],t[7]){for(d=t[7].slice(0,3);d.length<3;)d+="0";d=+d}return t[9]&&(l=+t[10],p=+(t[11]||0),h=6e4*(60*l+p),"-"===t[9]&&(h=-h)),f=new Date(Date.UTC(n,i,r,o,a,u,d)),h&&f.setTime(f.getTime()-h),f}function o(e){return e.toISOString()}var a=e("../type"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),c=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:i,construct:r,instanceOf:Date,represent:o})},{"../type":13}],"/":[function(e,t,n){"use strict";var i=e("./lib/js-yaml.js");t.exports=i},{"./lib/js-yaml.js":1}]},{},[])("/")});
diff --git a/tools/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js b/tools/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js
index 41d3d457fd..203f436b2d 100644
--- a/tools/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js
+++ b/tools/eslint/node_modules/js-yaml/lib/js-yaml/dumper.js
@@ -71,8 +71,7 @@ function compileStyleMap(schema, map) {
if (tag.slice(0, 2) === '!!') {
tag = 'tag:yaml.org,2002:' + tag.slice(2);
}
-
- type = schema.compiledTypeMap[tag];
+ type = schema.compiledTypeMap['fallback'][tag];
if (type && _hasOwnProperty.call(type.styleAliases, style)) {
style = type.styleAliases[style];
diff --git a/tools/eslint/node_modules/js-yaml/lib/js-yaml/loader.js b/tools/eslint/node_modules/js-yaml/lib/js-yaml/loader.js
index 8966d6bda4..70e1a565d0 100644
--- a/tools/eslint/node_modules/js-yaml/lib/js-yaml/loader.js
+++ b/tools/eslint/node_modules/js-yaml/lib/js-yaml/loader.js
@@ -532,8 +532,9 @@ function readSingleQuotedScalar(state, nodeIndent) {
ch = state.input.charCodeAt(++state.position);
if (ch === 0x27/* ' */) {
- captureStart = captureEnd = state.position;
+ captureStart = state.position;
state.position++;
+ captureEnd = state.position;
} else {
return true;
}
@@ -1378,8 +1379,8 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact
break;
}
}
- } else if (_hasOwnProperty.call(state.typeMap, state.tag)) {
- type = state.typeMap[state.tag];
+ } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
+ type = state.typeMap[state.kind || 'fallback'][state.tag];
if (state.result !== null && type.kind !== state.kind) {
throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
diff --git a/tools/eslint/node_modules/js-yaml/lib/js-yaml/schema.js b/tools/eslint/node_modules/js-yaml/lib/js-yaml/schema.js
index 32803ff14c..ca7cf47e70 100644
--- a/tools/eslint/node_modules/js-yaml/lib/js-yaml/schema.js
+++ b/tools/eslint/node_modules/js-yaml/lib/js-yaml/schema.js
@@ -16,7 +16,7 @@ function compileList(schema, name, result) {
schema[name].forEach(function (currentType) {
result.forEach(function (previousType, previousIndex) {
- if (previousType.tag === currentType.tag) {
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {
exclude.push(previousIndex);
}
});
@@ -31,16 +31,20 @@ function compileList(schema, name, result) {
function compileMap(/* lists... */) {
- var result = {}, index, length;
+ var result = {
+ scalar: {},
+ sequence: {},
+ mapping: {},
+ fallback: {}
+ }, index, length;
function collectType(type) {
- result[type.tag] = type;
+ result[type.kind][type.tag] = result['fallback'][type.tag] = type;
}
for (index = 0, length = arguments.length; index < length; index += 1) {
arguments[index].forEach(collectType);
}
-
return result;
}
diff --git a/tools/eslint/node_modules/js-yaml/package.json b/tools/eslint/node_modules/js-yaml/package.json
index 911c06383b..821fe0b261 100644
--- a/tools/eslint/node_modules/js-yaml/package.json
+++ b/tools/eslint/node_modules/js-yaml/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "js-yaml@>=3.5.1 <4.0.0",
- "_id": "js-yaml@3.6.1",
+ "_id": "js-yaml@3.7.0",
"_inCache": true,
"_location": "/js-yaml",
- "_nodeVersion": "4.4.3",
+ "_nodeVersion": "6.8.1",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/js-yaml-3.6.1.tgz_1462995636349_0.2209061929024756"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/js-yaml-3.7.0.tgz_1478914323559_0.38230896391905844"
},
"_npmUser": {
"name": "vitaly",
"email": "vitaly@rcdesign.ru"
},
- "_npmVersion": "2.15.1",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "js-yaml@^3.5.1",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
- "_shasum": "6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30",
+ "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "_shasum": "5c967ddd837a9bfdca5f2de84253abe8a1c03b80",
"_shrinkwrap": null,
"_spec": "js-yaml@^3.5.1",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
@@ -89,8 +89,8 @@
},
"directories": {},
"dist": {
- "shasum": "6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30",
- "tarball": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz"
+ "shasum": "5c967ddd837a9bfdca5f2de84253abe8a1c03b80",
+ "tarball": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz"
},
"files": [
"index.js",
@@ -98,7 +98,7 @@
"bin/",
"dist/"
],
- "gitHead": "c76b837cacc69de6b86a0781db31a9bb7a193875",
+ "gitHead": "279655fa5ad46d17117f60680fa3b46a0b5391c5",
"homepage": "https://github.com/nodeca/js-yaml",
"keywords": [
"yaml",
@@ -123,5 +123,5 @@
"scripts": {
"test": "make test"
},
- "version": "3.6.1"
+ "version": "3.7.0"
}
diff --git a/tools/eslint/node_modules/jsonpointer/README.md b/tools/eslint/node_modules/jsonpointer/README.md
index bc7aa153dd..0267790534 100644
--- a/tools/eslint/node_modules/jsonpointer/README.md
+++ b/tools/eslint/node_modules/jsonpointer/README.md
@@ -12,7 +12,7 @@ jsonpointer.get(obj, '/bar/baz'); // returns 2
jsonpointer.get(obj, '/qux/0'); // returns 3
jsonpointer.get(obj, '/qux/1'); // returns 4
jsonpointer.get(obj, '/qux/2'); // returns 5
-jsonpointer.get(obj, '/quo'); // returns null
+jsonpointer.get(obj, '/quo'); // returns undefined
jsonpointer.set(obj, '/foo', 6); // sets obj.foo = 6;
jsonpointer.set(obj, '/qux/-', 6) // sets obj.qux = [3, 4, 5, 6]
diff --git a/tools/eslint/node_modules/jsonpointer/benchmark.js b/tools/eslint/node_modules/jsonpointer/benchmark.js
deleted file mode 100644
index 8a95636dee..0000000000
--- a/tools/eslint/node_modules/jsonpointer/benchmark.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var jsonpointer = require('./')
-
-var i
-var obj = {
- a: 1,
- b: {
- c: 2
- },
- d: {
- e: [{ a: 3 }, { b: 4 }, { c: 5 }]
- }
-}
-
-// Get
-console.time('get first level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.get(obj, '/a')
-}
-console.timeEnd('get first level property')
-
-console.time('get second level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.get(obj, '/d/e')
-}
-console.timeEnd('get second level property')
-
-console.time('get third level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.get(obj, '/d/e/0')
-}
-console.timeEnd('get third level property')
-
-// Set
-console.time('set first level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.set(obj, '/a', 'bla')
-}
-console.timeEnd('set first level property')
-
-console.time('set second level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.set(obj, '/d/e', 'bla')
-}
-console.timeEnd('set second level property')
-
-console.time('set third level property')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.set(obj, '/d/e/0', 'bla')
-}
-console.timeEnd('set third level property')
-
-console.time('push property into array')
-for (i = 0; i < 1e6; i++) {
- jsonpointer.set(obj, '/d/e/-', 'bla')
-}
-console.timeEnd('push property into array')
diff --git a/tools/eslint/node_modules/jsonpointer/package.json b/tools/eslint/node_modules/jsonpointer/package.json
index f1d6d2a7fb..566c953a69 100644
--- a/tools/eslint/node_modules/jsonpointer/package.json
+++ b/tools/eslint/node_modules/jsonpointer/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "jsonpointer@>=4.0.0 <5.0.0",
- "_id": "jsonpointer@4.0.0",
+ "_id": "jsonpointer@4.0.1",
"_inCache": true,
"_location": "/jsonpointer",
- "_nodeVersion": "6.1.0",
+ "_nodeVersion": "6.9.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/jsonpointer-4.0.0.tgz_1463651460494_0.02921536797657609"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/jsonpointer-4.0.1.tgz_1482326391770_0.6748844815883785"
},
"_npmUser": {
"name": "marcbachmann",
"email": "marc.brookman@gmail.com"
},
- "_npmVersion": "3.8.6",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "jsonpointer@^4.0.0",
@@ -40,8 +40,8 @@
"_requiredBy": [
"/is-my-json-valid"
],
- "_resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz",
- "_shasum": "6661e161d2fc445f19f98430231343722e1fcbd5",
+ "_resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "_shasum": "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9",
"_shrinkwrap": null,
"_spec": "jsonpointer@^4.0.0",
"_where": "/Users/trott/io.js/tools/node_modules/is-my-json-valid",
@@ -69,13 +69,16 @@
},
"directories": {},
"dist": {
- "shasum": "6661e161d2fc445f19f98430231343722e1fcbd5",
- "tarball": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz"
+ "shasum": "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9",
+ "tarball": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz"
},
"engines": {
"node": ">=0.10.0"
},
- "gitHead": "2d46030ba6df41b566934c7202e31fb65058de71",
+ "files": [
+ "jsonpointer.js"
+ ],
+ "gitHead": "37c73aecd5f192a00cd79c0ebbbb2034b91bcfd0",
"homepage": "https://github.com/janl/node-jsonpointer#readme",
"license": "MIT",
"main": "./jsonpointer",
@@ -105,5 +108,5 @@
"util",
"utility"
],
- "version": "4.0.0"
+ "version": "4.0.1"
}
diff --git a/tools/eslint/node_modules/lodash/LICENSE b/tools/eslint/node_modules/lodash/LICENSE
index e0c69d5603..c6f2f6145e 100644
--- a/tools/eslint/node_modules/lodash/LICENSE
+++ b/tools/eslint/node_modules/lodash/LICENSE
@@ -1,4 +1,4 @@
-Copyright jQuery Foundation and other contributors <https://jquery.org/>
+Copyright JS Foundation and other contributors <https://js.foundation/>
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
diff --git a/tools/eslint/node_modules/lodash/README.md b/tools/eslint/node_modules/lodash/README.md
index 72b66b2b48..acdd128cd7 100644
--- a/tools/eslint/node_modules/lodash/README.md
+++ b/tools/eslint/node_modules/lodash/README.md
@@ -1,4 +1,4 @@
-# lodash v4.16.4
+# lodash v4.17.4
The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
@@ -28,12 +28,12 @@ var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');
```
-See the [package source](https://github.com/lodash/lodash/tree/4.16.4-npm) for more details.
+See the [package source](https://github.com/lodash/lodash/tree/4.17.4-npm) for more details.
**Note:**<br>
Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL.
## Support
-Tested in Chrome 52-53, Firefox 48-49, IE 11, Edge 14, Safari 9-10, Node.js 4-6, & PhantomJS 2.1.1.<br>
+Tested in Chrome 54-55, Firefox 49-50, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.<br>
Automated [browser](https://saucelabs.com/u/lodash) & [CI](https://travis-ci.org/lodash/lodash/) test runs are available.
diff --git a/tools/eslint/node_modules/lodash/_Hash.js b/tools/eslint/node_modules/lodash/_Hash.js
index 667d5ab5ad..b504fe3407 100644
--- a/tools/eslint/node_modules/lodash/_Hash.js
+++ b/tools/eslint/node_modules/lodash/_Hash.js
@@ -13,7 +13,7 @@ var hashClear = require('./_hashClear'),
*/
function Hash(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/_ListCache.js b/tools/eslint/node_modules/lodash/_ListCache.js
index 73f46450b9..26895c3a8d 100644
--- a/tools/eslint/node_modules/lodash/_ListCache.js
+++ b/tools/eslint/node_modules/lodash/_ListCache.js
@@ -13,7 +13,7 @@ var listCacheClear = require('./_listCacheClear'),
*/
function ListCache(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/_MapCache.js b/tools/eslint/node_modules/lodash/_MapCache.js
index 69f03a4a4f..4a4eea7bf9 100644
--- a/tools/eslint/node_modules/lodash/_MapCache.js
+++ b/tools/eslint/node_modules/lodash/_MapCache.js
@@ -13,7 +13,7 @@ var mapCacheClear = require('./_mapCacheClear'),
*/
function MapCache(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/_SetCache.js b/tools/eslint/node_modules/lodash/_SetCache.js
index a80efd5824..6468b0647f 100644
--- a/tools/eslint/node_modules/lodash/_SetCache.js
+++ b/tools/eslint/node_modules/lodash/_SetCache.js
@@ -12,7 +12,7 @@ var MapCache = require('./_MapCache'),
*/
function SetCache(values) {
var index = -1,
- length = values ? values.length : 0;
+ length = values == null ? 0 : values.length;
this.__data__ = new MapCache;
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/_arrayAggregator.js b/tools/eslint/node_modules/lodash/_arrayAggregator.js
index 7ca498a865..d96c3ca47c 100644
--- a/tools/eslint/node_modules/lodash/_arrayAggregator.js
+++ b/tools/eslint/node_modules/lodash/_arrayAggregator.js
@@ -10,7 +10,7 @@
*/
function arrayAggregator(array, setter, iteratee, accumulator) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
var value = array[index];
diff --git a/tools/eslint/node_modules/lodash/_arrayEach.js b/tools/eslint/node_modules/lodash/_arrayEach.js
index 5f770bcbe6..2c5f579688 100644
--- a/tools/eslint/node_modules/lodash/_arrayEach.js
+++ b/tools/eslint/node_modules/lodash/_arrayEach.js
@@ -9,7 +9,7 @@
*/
function arrayEach(array, iteratee) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (iteratee(array[index], index, array) === false) {
diff --git a/tools/eslint/node_modules/lodash/_arrayEachRight.js b/tools/eslint/node_modules/lodash/_arrayEachRight.js
index 72e780ca07..976ca5c29b 100644
--- a/tools/eslint/node_modules/lodash/_arrayEachRight.js
+++ b/tools/eslint/node_modules/lodash/_arrayEachRight.js
@@ -8,7 +8,7 @@
* @returns {Array} Returns `array`.
*/
function arrayEachRight(array, iteratee) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
while (length--) {
if (iteratee(array[length], length, array) === false) {
diff --git a/tools/eslint/node_modules/lodash/_arrayEvery.js b/tools/eslint/node_modules/lodash/_arrayEvery.js
index f4fb4254dc..e26a918450 100644
--- a/tools/eslint/node_modules/lodash/_arrayEvery.js
+++ b/tools/eslint/node_modules/lodash/_arrayEvery.js
@@ -10,7 +10,7 @@
*/
function arrayEvery(array, predicate) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (!predicate(array[index], index, array)) {
diff --git a/tools/eslint/node_modules/lodash/_arrayFilter.js b/tools/eslint/node_modules/lodash/_arrayFilter.js
index b904fda628..75ea254459 100644
--- a/tools/eslint/node_modules/lodash/_arrayFilter.js
+++ b/tools/eslint/node_modules/lodash/_arrayFilter.js
@@ -9,7 +9,7 @@
*/
function arrayFilter(array, predicate) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
resIndex = 0,
result = [];
diff --git a/tools/eslint/node_modules/lodash/_arrayIncludes.js b/tools/eslint/node_modules/lodash/_arrayIncludes.js
index be53e60dc7..3737a6d9eb 100644
--- a/tools/eslint/node_modules/lodash/_arrayIncludes.js
+++ b/tools/eslint/node_modules/lodash/_arrayIncludes.js
@@ -10,7 +10,7 @@ var baseIndexOf = require('./_baseIndexOf');
* @returns {boolean} Returns `true` if `target` is found, else `false`.
*/
function arrayIncludes(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return !!length && baseIndexOf(array, value, 0) > -1;
}
diff --git a/tools/eslint/node_modules/lodash/_arrayIncludesWith.js b/tools/eslint/node_modules/lodash/_arrayIncludesWith.js
index 72ff0c8eda..235fd97580 100644
--- a/tools/eslint/node_modules/lodash/_arrayIncludesWith.js
+++ b/tools/eslint/node_modules/lodash/_arrayIncludesWith.js
@@ -9,7 +9,7 @@
*/
function arrayIncludesWith(array, value, comparator) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (comparator(value, array[index])) {
diff --git a/tools/eslint/node_modules/lodash/_arrayMap.js b/tools/eslint/node_modules/lodash/_arrayMap.js
index 748bdbe6d5..22b22464e2 100644
--- a/tools/eslint/node_modules/lodash/_arrayMap.js
+++ b/tools/eslint/node_modules/lodash/_arrayMap.js
@@ -9,7 +9,7 @@
*/
function arrayMap(array, iteratee) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
result = Array(length);
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/_arrayReduce.js b/tools/eslint/node_modules/lodash/_arrayReduce.js
index 57c8727ab4..de8b79b287 100644
--- a/tools/eslint/node_modules/lodash/_arrayReduce.js
+++ b/tools/eslint/node_modules/lodash/_arrayReduce.js
@@ -12,7 +12,7 @@
*/
function arrayReduce(array, iteratee, accumulator, initAccum) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[++index];
diff --git a/tools/eslint/node_modules/lodash/_arrayReduceRight.js b/tools/eslint/node_modules/lodash/_arrayReduceRight.js
index 4c85ee6300..22d8976deb 100644
--- a/tools/eslint/node_modules/lodash/_arrayReduceRight.js
+++ b/tools/eslint/node_modules/lodash/_arrayReduceRight.js
@@ -11,7 +11,7 @@
* @returns {*} Returns the accumulated value.
*/
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[--length];
}
diff --git a/tools/eslint/node_modules/lodash/_arraySome.js b/tools/eslint/node_modules/lodash/_arraySome.js
index 9b6e5d17c0..6fd02fd4ae 100644
--- a/tools/eslint/node_modules/lodash/_arraySome.js
+++ b/tools/eslint/node_modules/lodash/_arraySome.js
@@ -10,7 +10,7 @@
*/
function arraySome(array, predicate) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (predicate(array[index], index, array)) {
diff --git a/tools/eslint/node_modules/lodash/_baseAssignIn.js b/tools/eslint/node_modules/lodash/_baseAssignIn.js
new file mode 100644
index 0000000000..6624f90067
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/_baseAssignIn.js
@@ -0,0 +1,17 @@
+var copyObject = require('./_copyObject'),
+ keysIn = require('./keysIn');
+
+/**
+ * The base implementation of `_.assignIn` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+function baseAssignIn(object, source) {
+ return object && copyObject(source, keysIn(source), object);
+}
+
+module.exports = baseAssignIn;
diff --git a/tools/eslint/node_modules/lodash/_baseAt.js b/tools/eslint/node_modules/lodash/_baseAt.js
index ed67d9bd30..90e4237a06 100644
--- a/tools/eslint/node_modules/lodash/_baseAt.js
+++ b/tools/eslint/node_modules/lodash/_baseAt.js
@@ -5,17 +5,17 @@ var get = require('./get');
*
* @private
* @param {Object} object The object to iterate over.
- * @param {string[]} paths The property paths of elements to pick.
+ * @param {string[]} paths The property paths to pick.
* @returns {Array} Returns the picked elements.
*/
function baseAt(object, paths) {
var index = -1,
- isNil = object == null,
length = paths.length,
- result = Array(length);
+ result = Array(length),
+ skip = object == null;
while (++index < length) {
- result[index] = isNil ? undefined : get(object, paths[index]);
+ result[index] = skip ? undefined : get(object, paths[index]);
}
return result;
}
diff --git a/tools/eslint/node_modules/lodash/_baseClone.js b/tools/eslint/node_modules/lodash/_baseClone.js
index 22ff841ec8..7c27a37d32 100644
--- a/tools/eslint/node_modules/lodash/_baseClone.js
+++ b/tools/eslint/node_modules/lodash/_baseClone.js
@@ -2,10 +2,13 @@ var Stack = require('./_Stack'),
arrayEach = require('./_arrayEach'),
assignValue = require('./_assignValue'),
baseAssign = require('./_baseAssign'),
+ baseAssignIn = require('./_baseAssignIn'),
cloneBuffer = require('./_cloneBuffer'),
copyArray = require('./_copyArray'),
copySymbols = require('./_copySymbols'),
+ copySymbolsIn = require('./_copySymbolsIn'),
getAllKeys = require('./_getAllKeys'),
+ getAllKeysIn = require('./_getAllKeysIn'),
getTag = require('./_getTag'),
initCloneArray = require('./_initCloneArray'),
initCloneByTag = require('./_initCloneByTag'),
@@ -15,6 +18,11 @@ var Stack = require('./_Stack'),
isObject = require('./isObject'),
keys = require('./keys');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1,
+ CLONE_FLAT_FLAG = 2,
+ CLONE_SYMBOLS_FLAG = 4;
+
/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
arrayTag = '[object Array]',
@@ -66,16 +74,22 @@ cloneableTags[weakMapTag] = false;
*
* @private
* @param {*} value The value to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @param {boolean} [isFull] Specify a clone including symbols.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Deep clone
+ * 2 - Flatten inherited properties
+ * 4 - Clone symbols
* @param {Function} [customizer] The function to customize cloning.
* @param {string} [key] The key of `value`.
* @param {Object} [object] The parent object of `value`.
* @param {Object} [stack] Tracks traversed objects and their clone counterparts.
* @returns {*} Returns the cloned value.
*/
-function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
- var result;
+function baseClone(value, bitmask, customizer, key, object, stack) {
+ var result,
+ isDeep = bitmask & CLONE_DEEP_FLAG,
+ isFlat = bitmask & CLONE_FLAT_FLAG,
+ isFull = bitmask & CLONE_SYMBOLS_FLAG;
+
if (customizer) {
result = object ? customizer(value, key, object, stack) : customizer(value);
}
@@ -99,9 +113,11 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
return cloneBuffer(value, isDeep);
}
if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
- result = initCloneObject(isFunc ? {} : value);
+ result = (isFlat || isFunc) ? {} : initCloneObject(value);
if (!isDeep) {
- return copySymbols(value, baseAssign(result, value));
+ return isFlat
+ ? copySymbolsIn(value, baseAssignIn(result, value))
+ : copySymbols(value, baseAssign(result, value));
}
} else {
if (!cloneableTags[tag]) {
@@ -118,14 +134,18 @@ function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
}
stack.set(value, result);
- var props = isArr ? undefined : (isFull ? getAllKeys : keys)(value);
+ var keysFunc = isFull
+ ? (isFlat ? getAllKeysIn : getAllKeys)
+ : (isFlat ? keysIn : keys);
+
+ var props = isArr ? undefined : keysFunc(value);
arrayEach(props || value, function(subValue, key) {
if (props) {
key = subValue;
subValue = value[key];
}
// Recursively populate clone (susceptible to call stack limits).
- assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
+ assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
});
return result;
}
diff --git a/tools/eslint/node_modules/lodash/_baseDifference.js b/tools/eslint/node_modules/lodash/_baseDifference.js
index dcccad3356..343ac19f02 100644
--- a/tools/eslint/node_modules/lodash/_baseDifference.js
+++ b/tools/eslint/node_modules/lodash/_baseDifference.js
@@ -45,7 +45,7 @@ function baseDifference(array, values, iteratee, comparator) {
outer:
while (++index < length) {
var value = array[index],
- computed = iteratee ? iteratee(value) : value;
+ computed = iteratee == null ? value : iteratee(value);
value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) {
diff --git a/tools/eslint/node_modules/lodash/_baseGet.js b/tools/eslint/node_modules/lodash/_baseGet.js
index 886720bb53..a194913d21 100644
--- a/tools/eslint/node_modules/lodash/_baseGet.js
+++ b/tools/eslint/node_modules/lodash/_baseGet.js
@@ -1,5 +1,4 @@
var castPath = require('./_castPath'),
- isKey = require('./_isKey'),
toKey = require('./_toKey');
/**
@@ -11,7 +10,7 @@ var castPath = require('./_castPath'),
* @returns {*} Returns the resolved value.
*/
function baseGet(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = 0,
length = path.length;
diff --git a/tools/eslint/node_modules/lodash/_baseGetTag.js b/tools/eslint/node_modules/lodash/_baseGetTag.js
index c8b9e394f3..b927ccc172 100644
--- a/tools/eslint/node_modules/lodash/_baseGetTag.js
+++ b/tools/eslint/node_modules/lodash/_baseGetTag.js
@@ -1,22 +1,28 @@
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
+var Symbol = require('./_Symbol'),
+ getRawTag = require('./_getRawTag'),
+ objectToString = require('./_objectToString');
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
+/** `Object#toString` result references. */
+var nullTag = '[object Null]',
+ undefinedTag = '[object Undefined]';
+
+/** Built-in value references. */
+var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/**
- * The base implementation of `getTag`.
+ * The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
- return objectToString.call(value);
+ if (value == null) {
+ return value === undefined ? undefinedTag : nullTag;
+ }
+ return (symToStringTag && symToStringTag in Object(value))
+ ? getRawTag(value)
+ : objectToString(value);
}
module.exports = baseGetTag;
diff --git a/tools/eslint/node_modules/lodash/_baseInvoke.js b/tools/eslint/node_modules/lodash/_baseInvoke.js
index 3d6bca5db0..49bcf3c353 100644
--- a/tools/eslint/node_modules/lodash/_baseInvoke.js
+++ b/tools/eslint/node_modules/lodash/_baseInvoke.js
@@ -1,6 +1,5 @@
var apply = require('./_apply'),
castPath = require('./_castPath'),
- isKey = require('./_isKey'),
last = require('./last'),
parent = require('./_parent'),
toKey = require('./_toKey');
@@ -16,12 +15,9 @@ var apply = require('./_apply'),
* @returns {*} Returns the result of the invoked method.
*/
function baseInvoke(object, path, args) {
- if (!isKey(path, object)) {
- path = castPath(path);
- object = parent(object, path);
- path = last(path);
- }
- var func = object == null ? object : object[toKey(path)];
+ path = castPath(path, object);
+ object = parent(object, path);
+ var func = object == null ? object : object[toKey(last(path))];
return func == null ? undefined : apply(func, object, args);
}
diff --git a/tools/eslint/node_modules/lodash/_baseIsArguments.js b/tools/eslint/node_modules/lodash/_baseIsArguments.js
index a176e18a0c..b3562cca2c 100644
--- a/tools/eslint/node_modules/lodash/_baseIsArguments.js
+++ b/tools/eslint/node_modules/lodash/_baseIsArguments.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var argsTag = '[object Arguments]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* The base implementation of `_.isArguments`.
*
@@ -21,7 +12,7 @@ var objectToString = objectProto.toString;
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
*/
function baseIsArguments(value) {
- return isObjectLike(value) && objectToString.call(value) == argsTag;
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
}
module.exports = baseIsArguments;
diff --git a/tools/eslint/node_modules/lodash/_baseIsArrayBuffer.js b/tools/eslint/node_modules/lodash/_baseIsArrayBuffer.js
index 024ec8514c..a2c4f30a82 100644
--- a/tools/eslint/node_modules/lodash/_baseIsArrayBuffer.js
+++ b/tools/eslint/node_modules/lodash/_baseIsArrayBuffer.js
@@ -1,17 +1,8 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
var arrayBufferTag = '[object ArrayBuffer]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* The base implementation of `_.isArrayBuffer` without Node.js optimizations.
*
@@ -20,7 +11,7 @@ var objectToString = objectProto.toString;
* @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
*/
function baseIsArrayBuffer(value) {
- return isObjectLike(value) && objectToString.call(value) == arrayBufferTag;
+ return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
}
module.exports = baseIsArrayBuffer;
diff --git a/tools/eslint/node_modules/lodash/_baseIsDate.js b/tools/eslint/node_modules/lodash/_baseIsDate.js
index 9dacf9b154..ba67c7857f 100644
--- a/tools/eslint/node_modules/lodash/_baseIsDate.js
+++ b/tools/eslint/node_modules/lodash/_baseIsDate.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var dateTag = '[object Date]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* The base implementation of `_.isDate` without Node.js optimizations.
*
@@ -21,7 +12,7 @@ var objectToString = objectProto.toString;
* @returns {boolean} Returns `true` if `value` is a date object, else `false`.
*/
function baseIsDate(value) {
- return isObjectLike(value) && objectToString.call(value) == dateTag;
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
}
module.exports = baseIsDate;
diff --git a/tools/eslint/node_modules/lodash/_baseIsEqual.js b/tools/eslint/node_modules/lodash/_baseIsEqual.js
index 3772dab0d8..00a68a4f51 100644
--- a/tools/eslint/node_modules/lodash/_baseIsEqual.js
+++ b/tools/eslint/node_modules/lodash/_baseIsEqual.js
@@ -1,5 +1,4 @@
var baseIsEqualDeep = require('./_baseIsEqualDeep'),
- isObject = require('./isObject'),
isObjectLike = require('./isObjectLike');
/**
@@ -9,22 +8,21 @@ var baseIsEqualDeep = require('./_baseIsEqualDeep'),
* @private
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Unordered comparison
+ * 2 - Partial comparison
* @param {Function} [customizer] The function to customize comparisons.
- * @param {boolean} [bitmask] The bitmask of comparison flags.
- * The bitmask may be composed of the following flags:
- * 1 - Unordered comparison
- * 2 - Partial comparison
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
*/
-function baseIsEqual(value, other, customizer, bitmask, stack) {
+function baseIsEqual(value, other, bitmask, customizer, stack) {
if (value === other) {
return true;
}
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
return value !== value && other !== other;
}
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
module.exports = baseIsEqual;
diff --git a/tools/eslint/node_modules/lodash/_baseIsEqualDeep.js b/tools/eslint/node_modules/lodash/_baseIsEqualDeep.js
index 42dc03d0f3..e3cfd6a8d0 100644
--- a/tools/eslint/node_modules/lodash/_baseIsEqualDeep.js
+++ b/tools/eslint/node_modules/lodash/_baseIsEqualDeep.js
@@ -7,8 +7,8 @@ var Stack = require('./_Stack'),
isBuffer = require('./isBuffer'),
isTypedArray = require('./isTypedArray');
-/** Used to compose bitmasks for comparison styles. */
-var PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1;
/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
@@ -29,27 +29,21 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
* @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
-function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
+function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
var objIsArr = isArray(object),
othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
+ objTag = objIsArr ? arrayTag : getTag(object),
+ othTag = othIsArr ? arrayTag : getTag(other);
+
+ objTag = objTag == argsTag ? objectTag : objTag;
+ othTag = othTag == argsTag ? objectTag : othTag;
- if (!objIsArr) {
- objTag = getTag(object);
- objTag = objTag == argsTag ? objectTag : objTag;
- }
- if (!othIsArr) {
- othTag = getTag(other);
- othTag = othTag == argsTag ? objectTag : othTag;
- }
var objIsObj = objTag == objectTag,
othIsObj = othTag == objectTag,
isSameTag = objTag == othTag;
@@ -64,10 +58,10 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
if (isSameTag && !objIsObj) {
stack || (stack = new Stack);
return (objIsArr || isTypedArray(object))
- ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
- : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
}
- if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
@@ -76,14 +70,14 @@ function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
othUnwrapped = othIsWrapped ? other.value() : other;
stack || (stack = new Stack);
- return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
}
}
if (!isSameTag) {
return false;
}
stack || (stack = new Stack);
- return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}
module.exports = baseIsEqualDeep;
diff --git a/tools/eslint/node_modules/lodash/_baseIsMatch.js b/tools/eslint/node_modules/lodash/_baseIsMatch.js
index d36c878519..72494bed40 100644
--- a/tools/eslint/node_modules/lodash/_baseIsMatch.js
+++ b/tools/eslint/node_modules/lodash/_baseIsMatch.js
@@ -1,9 +1,9 @@
var Stack = require('./_Stack'),
baseIsEqual = require('./_baseIsEqual');
-/** Used to compose bitmasks for comparison styles. */
-var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
/**
* The base implementation of `_.isMatch` without support for iteratee shorthands.
@@ -49,7 +49,7 @@ function baseIsMatch(object, source, matchData, customizer) {
var result = customizer(objValue, srcValue, key, object, source, stack);
}
if (!(result === undefined
- ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)
+ ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
: result
)) {
return false;
diff --git a/tools/eslint/node_modules/lodash/_baseIsRegExp.js b/tools/eslint/node_modules/lodash/_baseIsRegExp.js
index 926fbb3bd4..6cd7c1aee7 100644
--- a/tools/eslint/node_modules/lodash/_baseIsRegExp.js
+++ b/tools/eslint/node_modules/lodash/_baseIsRegExp.js
@@ -1,18 +1,9 @@
-var isObject = require('./isObject');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var regexpTag = '[object RegExp]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* The base implementation of `_.isRegExp` without Node.js optimizations.
*
@@ -21,7 +12,7 @@ var objectToString = objectProto.toString;
* @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
*/
function baseIsRegExp(value) {
- return isObject(value) && objectToString.call(value) == regexpTag;
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
}
module.exports = baseIsRegExp;
diff --git a/tools/eslint/node_modules/lodash/_baseIsTypedArray.js b/tools/eslint/node_modules/lodash/_baseIsTypedArray.js
index 9e92756cbe..1edb32ff3f 100644
--- a/tools/eslint/node_modules/lodash/_baseIsTypedArray.js
+++ b/tools/eslint/node_modules/lodash/_baseIsTypedArray.js
@@ -1,4 +1,5 @@
-var isLength = require('./isLength'),
+var baseGetTag = require('./_baseGetTag'),
+ isLength = require('./isLength'),
isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
@@ -44,16 +45,6 @@ typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
typedArrayTags[setTag] = typedArrayTags[stringTag] =
typedArrayTags[weakMapTag] = false;
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* The base implementation of `_.isTypedArray` without Node.js optimizations.
*
@@ -63,7 +54,7 @@ var objectToString = objectProto.toString;
*/
function baseIsTypedArray(value) {
return isObjectLike(value) &&
- isLength(value.length) && !!typedArrayTags[objectToString.call(value)];
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
module.exports = baseIsTypedArray;
diff --git a/tools/eslint/node_modules/lodash/_baseMatchesProperty.js b/tools/eslint/node_modules/lodash/_baseMatchesProperty.js
index 3968081bc2..24afd893d2 100644
--- a/tools/eslint/node_modules/lodash/_baseMatchesProperty.js
+++ b/tools/eslint/node_modules/lodash/_baseMatchesProperty.js
@@ -6,9 +6,9 @@ var baseIsEqual = require('./_baseIsEqual'),
matchesStrictComparable = require('./_matchesStrictComparable'),
toKey = require('./_toKey');
-/** Used to compose bitmasks for comparison styles. */
-var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
/**
* The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
@@ -26,7 +26,7 @@ function baseMatchesProperty(path, srcValue) {
var objValue = get(object, path);
return (objValue === undefined && objValue === srcValue)
? hasIn(object, path)
- : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);
+ : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
diff --git a/tools/eslint/node_modules/lodash/_baseMean.js b/tools/eslint/node_modules/lodash/_baseMean.js
index ac99a42317..fa9e00a0a2 100644
--- a/tools/eslint/node_modules/lodash/_baseMean.js
+++ b/tools/eslint/node_modules/lodash/_baseMean.js
@@ -13,7 +13,7 @@ var NAN = 0 / 0;
* @returns {number} Returns the mean.
*/
function baseMean(array, iteratee) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? (baseSum(array, iteratee) / length) : NAN;
}
diff --git a/tools/eslint/node_modules/lodash/_basePick.js b/tools/eslint/node_modules/lodash/_basePick.js
index add3600206..09b458a600 100644
--- a/tools/eslint/node_modules/lodash/_basePick.js
+++ b/tools/eslint/node_modules/lodash/_basePick.js
@@ -1,4 +1,5 @@
-var basePickBy = require('./_basePickBy');
+var basePickBy = require('./_basePickBy'),
+ hasIn = require('./hasIn');
/**
* The base implementation of `_.pick` without support for individual
@@ -6,13 +7,12 @@ var basePickBy = require('./_basePickBy');
*
* @private
* @param {Object} object The source object.
- * @param {string[]} props The property identifiers to pick.
+ * @param {string[]} paths The property paths to pick.
* @returns {Object} Returns the new object.
*/
-function basePick(object, props) {
- object = Object(object);
- return basePickBy(object, props, function(value, key) {
- return key in object;
+function basePick(object, paths) {
+ return basePickBy(object, paths, function(value, path) {
+ return hasIn(object, path);
});
}
diff --git a/tools/eslint/node_modules/lodash/_basePickBy.js b/tools/eslint/node_modules/lodash/_basePickBy.js
index dc9b342e87..85be68c84f 100644
--- a/tools/eslint/node_modules/lodash/_basePickBy.js
+++ b/tools/eslint/node_modules/lodash/_basePickBy.js
@@ -1,25 +1,27 @@
-var baseAssignValue = require('./_baseAssignValue');
+var baseGet = require('./_baseGet'),
+ baseSet = require('./_baseSet'),
+ castPath = require('./_castPath');
/**
* The base implementation of `_.pickBy` without support for iteratee shorthands.
*
* @private
* @param {Object} object The source object.
- * @param {string[]} props The property identifiers to pick from.
+ * @param {string[]} paths The property paths to pick.
* @param {Function} predicate The function invoked per property.
* @returns {Object} Returns the new object.
*/
-function basePickBy(object, props, predicate) {
+function basePickBy(object, paths, predicate) {
var index = -1,
- length = props.length,
+ length = paths.length,
result = {};
while (++index < length) {
- var key = props[index],
- value = object[key];
+ var path = paths[index],
+ value = baseGet(object, path);
- if (predicate(value, key)) {
- baseAssignValue(result, key, value);
+ if (predicate(value, path)) {
+ baseSet(result, castPath(path, object), value);
}
}
return result;
diff --git a/tools/eslint/node_modules/lodash/_basePullAt.js b/tools/eslint/node_modules/lodash/_basePullAt.js
index 0dd1478d71..c3e9e71023 100644
--- a/tools/eslint/node_modules/lodash/_basePullAt.js
+++ b/tools/eslint/node_modules/lodash/_basePullAt.js
@@ -1,9 +1,5 @@
-var castPath = require('./_castPath'),
- isIndex = require('./_isIndex'),
- isKey = require('./_isKey'),
- last = require('./last'),
- parent = require('./_parent'),
- toKey = require('./_toKey');
+var baseUnset = require('./_baseUnset'),
+ isIndex = require('./_isIndex');
/** Used for built-in method references. */
var arrayProto = Array.prototype;
@@ -30,17 +26,8 @@ function basePullAt(array, indexes) {
var previous = index;
if (isIndex(index)) {
splice.call(array, index, 1);
- }
- else if (!isKey(index, array)) {
- var path = castPath(index),
- object = parent(array, path);
-
- if (object != null) {
- delete object[toKey(last(path))];
- }
- }
- else {
- delete array[toKey(index)];
+ } else {
+ baseUnset(array, index);
}
}
}
diff --git a/tools/eslint/node_modules/lodash/_baseSet.js b/tools/eslint/node_modules/lodash/_baseSet.js
index 2be04d5f2a..612a24cc85 100644
--- a/tools/eslint/node_modules/lodash/_baseSet.js
+++ b/tools/eslint/node_modules/lodash/_baseSet.js
@@ -1,7 +1,6 @@
var assignValue = require('./_assignValue'),
castPath = require('./_castPath'),
isIndex = require('./_isIndex'),
- isKey = require('./_isKey'),
isObject = require('./isObject'),
toKey = require('./_toKey');
@@ -19,7 +18,7 @@ function baseSet(object, path, value, customizer) {
if (!isObject(object)) {
return object;
}
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length,
diff --git a/tools/eslint/node_modules/lodash/_baseSortedIndex.js b/tools/eslint/node_modules/lodash/_baseSortedIndex.js
index 0e82dc7d9b..638c366c77 100644
--- a/tools/eslint/node_modules/lodash/_baseSortedIndex.js
+++ b/tools/eslint/node_modules/lodash/_baseSortedIndex.js
@@ -20,7 +20,7 @@ var MAX_ARRAY_LENGTH = 4294967295,
*/
function baseSortedIndex(array, value, retHighest) {
var low = 0,
- high = array ? array.length : low;
+ high = array == null ? low : array.length;
if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
while (low < high) {
diff --git a/tools/eslint/node_modules/lodash/_baseSortedIndexBy.js b/tools/eslint/node_modules/lodash/_baseSortedIndexBy.js
index fde79285ed..bb22e36dcd 100644
--- a/tools/eslint/node_modules/lodash/_baseSortedIndexBy.js
+++ b/tools/eslint/node_modules/lodash/_baseSortedIndexBy.js
@@ -25,7 +25,7 @@ function baseSortedIndexBy(array, value, iteratee, retHighest) {
value = iteratee(value);
var low = 0,
- high = array ? array.length : 0,
+ high = array == null ? 0 : array.length,
valIsNaN = value !== value,
valIsNull = value === null,
valIsSymbol = isSymbol(value),
diff --git a/tools/eslint/node_modules/lodash/_baseUnset.js b/tools/eslint/node_modules/lodash/_baseUnset.js
index dda80fc196..eefc6e37d3 100644
--- a/tools/eslint/node_modules/lodash/_baseUnset.js
+++ b/tools/eslint/node_modules/lodash/_baseUnset.js
@@ -1,29 +1,20 @@
var castPath = require('./_castPath'),
- isKey = require('./_isKey'),
last = require('./last'),
parent = require('./_parent'),
toKey = require('./_toKey');
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
/**
* The base implementation of `_.unset`.
*
* @private
* @param {Object} object The object to modify.
- * @param {Array|string} path The path of the property to unset.
+ * @param {Array|string} path The property path to unset.
* @returns {boolean} Returns `true` if the property is deleted, else `false`.
*/
function baseUnset(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
object = parent(object, path);
-
- var key = toKey(last(path));
- return !(object != null && hasOwnProperty.call(object, key)) || delete object[key];
+ return object == null || delete object[toKey(last(path))];
}
module.exports = baseUnset;
diff --git a/tools/eslint/node_modules/lodash/_baseXor.js b/tools/eslint/node_modules/lodash/_baseXor.js
index 7e62d1b248..8e69338bf9 100644
--- a/tools/eslint/node_modules/lodash/_baseXor.js
+++ b/tools/eslint/node_modules/lodash/_baseXor.js
@@ -1,5 +1,5 @@
-var arrayPush = require('./_arrayPush'),
- baseDifference = require('./_baseDifference'),
+var baseDifference = require('./_baseDifference'),
+ baseFlatten = require('./_baseFlatten'),
baseUniq = require('./_baseUniq');
/**
@@ -13,18 +13,24 @@ var arrayPush = require('./_arrayPush'),
* @returns {Array} Returns the new array of values.
*/
function baseXor(arrays, iteratee, comparator) {
+ var length = arrays.length;
+ if (length < 2) {
+ return length ? baseUniq(arrays[0]) : [];
+ }
var index = -1,
- length = arrays.length;
+ result = Array(length);
while (++index < length) {
- var result = result
- ? arrayPush(
- baseDifference(result, arrays[index], iteratee, comparator),
- baseDifference(arrays[index], result, iteratee, comparator)
- )
- : arrays[index];
+ var array = arrays[index],
+ othIndex = -1;
+
+ while (++othIndex < length) {
+ if (othIndex != index) {
+ result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
+ }
+ }
}
- return (result && result.length) ? baseUniq(result, iteratee, comparator) : [];
+ return baseUniq(baseFlatten(result, 1), iteratee, comparator);
}
module.exports = baseXor;
diff --git a/tools/eslint/node_modules/lodash/_castPath.js b/tools/eslint/node_modules/lodash/_castPath.js
index 4f38f95d39..017e4c1b45 100644
--- a/tools/eslint/node_modules/lodash/_castPath.js
+++ b/tools/eslint/node_modules/lodash/_castPath.js
@@ -1,15 +1,21 @@
var isArray = require('./isArray'),
- stringToPath = require('./_stringToPath');
+ isKey = require('./_isKey'),
+ stringToPath = require('./_stringToPath'),
+ toString = require('./toString');
/**
* Casts `value` to a path array if it's not one.
*
* @private
* @param {*} value The value to inspect.
+ * @param {Object} [object] The object to query keys on.
* @returns {Array} Returns the cast property path array.
*/
-function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
+function castPath(value, object) {
+ if (isArray(value)) {
+ return value;
+ }
+ return isKey(value, object) ? [value] : stringToPath(toString(value));
}
module.exports = castPath;
diff --git a/tools/eslint/node_modules/lodash/_cloneMap.js b/tools/eslint/node_modules/lodash/_cloneMap.js
index b51983d24c..334b73e986 100644
--- a/tools/eslint/node_modules/lodash/_cloneMap.js
+++ b/tools/eslint/node_modules/lodash/_cloneMap.js
@@ -2,6 +2,9 @@ var addMapEntry = require('./_addMapEntry'),
arrayReduce = require('./_arrayReduce'),
mapToArray = require('./_mapToArray');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a clone of `map`.
*
@@ -12,7 +15,7 @@ var addMapEntry = require('./_addMapEntry'),
* @returns {Object} Returns the cloned map.
*/
function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
+ var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map);
return arrayReduce(array, addMapEntry, new map.constructor);
}
diff --git a/tools/eslint/node_modules/lodash/_cloneSet.js b/tools/eslint/node_modules/lodash/_cloneSet.js
index dc1db95c61..713a2f76b0 100644
--- a/tools/eslint/node_modules/lodash/_cloneSet.js
+++ b/tools/eslint/node_modules/lodash/_cloneSet.js
@@ -2,6 +2,9 @@ var addSetEntry = require('./_addSetEntry'),
arrayReduce = require('./_arrayReduce'),
setToArray = require('./_setToArray');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a clone of `set`.
*
@@ -12,7 +15,7 @@ var addSetEntry = require('./_addSetEntry'),
* @returns {Object} Returns the cloned set.
*/
function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
+ var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set);
return arrayReduce(array, addSetEntry, new set.constructor);
}
diff --git a/tools/eslint/node_modules/lodash/_copySymbols.js b/tools/eslint/node_modules/lodash/_copySymbols.js
index 1fac3c8a68..c35944ab5e 100644
--- a/tools/eslint/node_modules/lodash/_copySymbols.js
+++ b/tools/eslint/node_modules/lodash/_copySymbols.js
@@ -2,7 +2,7 @@ var copyObject = require('./_copyObject'),
getSymbols = require('./_getSymbols');
/**
- * Copies own symbol properties of `source` to `object`.
+ * Copies own symbols of `source` to `object`.
*
* @private
* @param {Object} source The object to copy symbols from.
diff --git a/tools/eslint/node_modules/lodash/_copySymbolsIn.js b/tools/eslint/node_modules/lodash/_copySymbolsIn.js
new file mode 100644
index 0000000000..fdf20a73c2
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/_copySymbolsIn.js
@@ -0,0 +1,16 @@
+var copyObject = require('./_copyObject'),
+ getSymbolsIn = require('./_getSymbolsIn');
+
+/**
+ * Copies own and inherited symbols of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+function copySymbolsIn(source, object) {
+ return copyObject(source, getSymbolsIn(source), object);
+}
+
+module.exports = copySymbolsIn;
diff --git a/tools/eslint/node_modules/lodash/_createBind.js b/tools/eslint/node_modules/lodash/_createBind.js
index aadc94380b..07cb99f4db 100644
--- a/tools/eslint/node_modules/lodash/_createBind.js
+++ b/tools/eslint/node_modules/lodash/_createBind.js
@@ -2,7 +2,7 @@ var createCtor = require('./_createCtor'),
root = require('./_root');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1;
+var WRAP_BIND_FLAG = 1;
/**
* Creates a function that wraps `func` to invoke it with the optional `this`
@@ -15,7 +15,7 @@ var BIND_FLAG = 1;
* @returns {Function} Returns the new wrapped function.
*/
function createBind(func, bitmask, thisArg) {
- var isBind = bitmask & BIND_FLAG,
+ var isBind = bitmask & WRAP_BIND_FLAG,
Ctor = createCtor(func);
function wrapper() {
diff --git a/tools/eslint/node_modules/lodash/_createFlow.js b/tools/eslint/node_modules/lodash/_createFlow.js
index b70d1df690..baaddbf5e8 100644
--- a/tools/eslint/node_modules/lodash/_createFlow.js
+++ b/tools/eslint/node_modules/lodash/_createFlow.js
@@ -5,17 +5,14 @@ var LodashWrapper = require('./_LodashWrapper'),
isArray = require('./isArray'),
isLaziable = require('./_isLaziable');
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';
/** Used to compose bitmasks for function metadata. */
-var CURRY_FLAG = 8,
- PARTIAL_FLAG = 32,
- ARY_FLAG = 128,
- REARG_FLAG = 256;
+var WRAP_CURRY_FLAG = 8,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_ARY_FLAG = 128,
+ WRAP_REARG_FLAG = 256;
/**
* Creates a `_.flow` or `_.flowRight` function.
@@ -50,7 +47,7 @@ function createFlow(fromRight) {
data = funcName == 'wrapper' ? getData(func) : undefined;
if (data && isLaziable(data[0]) &&
- data[1] == (ARY_FLAG | CURRY_FLAG | PARTIAL_FLAG | REARG_FLAG) &&
+ data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
!data[4].length && data[9] == 1
) {
wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
@@ -64,8 +61,7 @@ function createFlow(fromRight) {
var args = arguments,
value = args[0];
- if (wrapper && args.length == 1 &&
- isArray(value) && value.length >= LARGE_ARRAY_SIZE) {
+ if (wrapper && args.length == 1 && isArray(value)) {
return wrapper.plant(value).value();
}
var index = 0,
diff --git a/tools/eslint/node_modules/lodash/_createHybrid.js b/tools/eslint/node_modules/lodash/_createHybrid.js
index 1594b886cb..b671bd11f6 100644
--- a/tools/eslint/node_modules/lodash/_createHybrid.js
+++ b/tools/eslint/node_modules/lodash/_createHybrid.js
@@ -9,12 +9,12 @@ var composeArgs = require('./_composeArgs'),
root = require('./_root');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_FLAG = 8,
- CURRY_RIGHT_FLAG = 16,
- ARY_FLAG = 128,
- FLIP_FLAG = 512;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_CURRY_RIGHT_FLAG = 16,
+ WRAP_ARY_FLAG = 128,
+ WRAP_FLIP_FLAG = 512;
/**
* Creates a function that wraps `func` to invoke it with optional `this`
@@ -36,11 +36,11 @@ var BIND_FLAG = 1,
* @returns {Function} Returns the new wrapped function.
*/
function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
- var isAry = bitmask & ARY_FLAG,
- isBind = bitmask & BIND_FLAG,
- isBindKey = bitmask & BIND_KEY_FLAG,
- isCurried = bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG),
- isFlip = bitmask & FLIP_FLAG,
+ var isAry = bitmask & WRAP_ARY_FLAG,
+ isBind = bitmask & WRAP_BIND_FLAG,
+ isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
+ isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
+ isFlip = bitmask & WRAP_FLIP_FLAG,
Ctor = isBindKey ? undefined : createCtor(func);
function wrapper() {
diff --git a/tools/eslint/node_modules/lodash/_createPartial.js b/tools/eslint/node_modules/lodash/_createPartial.js
index fc2bf8be23..e16c248b5e 100644
--- a/tools/eslint/node_modules/lodash/_createPartial.js
+++ b/tools/eslint/node_modules/lodash/_createPartial.js
@@ -3,7 +3,7 @@ var apply = require('./_apply'),
root = require('./_root');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1;
+var WRAP_BIND_FLAG = 1;
/**
* Creates a function that wraps `func` to invoke it with the `this` binding
@@ -18,7 +18,7 @@ var BIND_FLAG = 1;
* @returns {Function} Returns the new wrapped function.
*/
function createPartial(func, bitmask, thisArg, partials) {
- var isBind = bitmask & BIND_FLAG,
+ var isBind = bitmask & WRAP_BIND_FLAG,
Ctor = createCtor(func);
function wrapper() {
diff --git a/tools/eslint/node_modules/lodash/_createRecurry.js b/tools/eslint/node_modules/lodash/_createRecurry.js
index 35a22e586f..eb29fb24c0 100644
--- a/tools/eslint/node_modules/lodash/_createRecurry.js
+++ b/tools/eslint/node_modules/lodash/_createRecurry.js
@@ -3,12 +3,12 @@ var isLaziable = require('./_isLaziable'),
setWrapToString = require('./_setWrapToString');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_BOUND_FLAG = 4,
- CURRY_FLAG = 8,
- PARTIAL_FLAG = 32,
- PARTIAL_RIGHT_FLAG = 64;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_BOUND_FLAG = 4,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_PARTIAL_RIGHT_FLAG = 64;
/**
* Creates a function that wraps `func` to continue currying.
@@ -28,17 +28,17 @@ var BIND_FLAG = 1,
* @returns {Function} Returns the new wrapped function.
*/
function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
- var isCurry = bitmask & CURRY_FLAG,
+ var isCurry = bitmask & WRAP_CURRY_FLAG,
newHolders = isCurry ? holders : undefined,
newHoldersRight = isCurry ? undefined : holders,
newPartials = isCurry ? partials : undefined,
newPartialsRight = isCurry ? undefined : partials;
- bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG);
- bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG);
+ bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
+ bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
- if (!(bitmask & CURRY_BOUND_FLAG)) {
- bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
+ if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
+ bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
}
var newData = [
func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
diff --git a/tools/eslint/node_modules/lodash/_createRound.js b/tools/eslint/node_modules/lodash/_createRound.js
index 74b20d4081..bf9b713fcb 100644
--- a/tools/eslint/node_modules/lodash/_createRound.js
+++ b/tools/eslint/node_modules/lodash/_createRound.js
@@ -16,7 +16,7 @@ function createRound(methodName) {
var func = Math[methodName];
return function(number, precision) {
number = toNumber(number);
- precision = nativeMin(toInteger(precision), 292);
+ precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
if (precision) {
// Shift with exponential notation to avoid floating-point issues.
// See [MDN](https://mdn.io/round#Examples) for more details.
diff --git a/tools/eslint/node_modules/lodash/_createWrap.js b/tools/eslint/node_modules/lodash/_createWrap.js
index 09dac309f7..33f0633e40 100644
--- a/tools/eslint/node_modules/lodash/_createWrap.js
+++ b/tools/eslint/node_modules/lodash/_createWrap.js
@@ -13,12 +13,12 @@ var baseSetData = require('./_baseSetData'),
var FUNC_ERROR_TEXT = 'Expected a function';
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_FLAG = 8,
- CURRY_RIGHT_FLAG = 16,
- PARTIAL_FLAG = 32,
- PARTIAL_RIGHT_FLAG = 64;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_CURRY_RIGHT_FLAG = 16,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_PARTIAL_RIGHT_FLAG = 64;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math.max;
@@ -30,17 +30,16 @@ var nativeMax = Math.max;
* @private
* @param {Function|string} func The function or method name to wrap.
* @param {number} bitmask The bitmask flags.
- * The bitmask may be composed of the following flags:
- * 1 - `_.bind`
- * 2 - `_.bindKey`
- * 4 - `_.curry` or `_.curryRight` of a bound function
- * 8 - `_.curry`
- * 16 - `_.curryRight`
- * 32 - `_.partial`
- * 64 - `_.partialRight`
- * 128 - `_.rearg`
- * 256 - `_.ary`
- * 512 - `_.flip`
+ * 1 - `_.bind`
+ * 2 - `_.bindKey`
+ * 4 - `_.curry` or `_.curryRight` of a bound function
+ * 8 - `_.curry`
+ * 16 - `_.curryRight`
+ * 32 - `_.partial`
+ * 64 - `_.partialRight`
+ * 128 - `_.rearg`
+ * 256 - `_.ary`
+ * 512 - `_.flip`
* @param {*} [thisArg] The `this` binding of `func`.
* @param {Array} [partials] The arguments to be partially applied.
* @param {Array} [holders] The `partials` placeholder indexes.
@@ -50,20 +49,20 @@ var nativeMax = Math.max;
* @returns {Function} Returns the new wrapped function.
*/
function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
- var isBindKey = bitmask & BIND_KEY_FLAG;
+ var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
if (!isBindKey && typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
var length = partials ? partials.length : 0;
if (!length) {
- bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG);
+ bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
partials = holders = undefined;
}
ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
arity = arity === undefined ? arity : toInteger(arity);
length -= holders ? holders.length : 0;
- if (bitmask & PARTIAL_RIGHT_FLAG) {
+ if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
var partialsRight = partials,
holdersRight = holders;
@@ -84,18 +83,18 @@ function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arit
thisArg = newData[2];
partials = newData[3];
holders = newData[4];
- arity = newData[9] = newData[9] == null
+ arity = newData[9] = newData[9] === undefined
? (isBindKey ? 0 : func.length)
: nativeMax(newData[9] - length, 0);
- if (!arity && bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG)) {
- bitmask &= ~(CURRY_FLAG | CURRY_RIGHT_FLAG);
+ if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
+ bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
}
- if (!bitmask || bitmask == BIND_FLAG) {
+ if (!bitmask || bitmask == WRAP_BIND_FLAG) {
var result = createBind(func, bitmask, thisArg);
- } else if (bitmask == CURRY_FLAG || bitmask == CURRY_RIGHT_FLAG) {
+ } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
result = createCurry(func, bitmask, arity);
- } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !holders.length) {
+ } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
result = createPartial(func, bitmask, thisArg, partials);
} else {
result = createHybrid.apply(undefined, newData);
diff --git a/tools/eslint/node_modules/lodash/_assignInDefaults.js b/tools/eslint/node_modules/lodash/_customDefaultsAssignIn.js
index ea6b0e358e..1f49e6fc4f 100644
--- a/tools/eslint/node_modules/lodash/_assignInDefaults.js
+++ b/tools/eslint/node_modules/lodash/_customDefaultsAssignIn.js
@@ -7,7 +7,9 @@ var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
/**
- * Used by `_.defaults` to customize its `_.assignIn` use.
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
+ * of source objects to the destination object for all destination properties
+ * that resolve to `undefined`.
*
* @private
* @param {*} objValue The destination value.
@@ -16,7 +18,7 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* @param {Object} object The parent object of `objValue`.
* @returns {*} Returns the value to assign.
*/
-function assignInDefaults(objValue, srcValue, key, object) {
+function customDefaultsAssignIn(objValue, srcValue, key, object) {
if (objValue === undefined ||
(eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
return srcValue;
@@ -24,4 +26,4 @@ function assignInDefaults(objValue, srcValue, key, object) {
return objValue;
}
-module.exports = assignInDefaults;
+module.exports = customDefaultsAssignIn;
diff --git a/tools/eslint/node_modules/lodash/_mergeDefaults.js b/tools/eslint/node_modules/lodash/_customDefaultsMerge.js
index 9888f0e761..4cab31751b 100644
--- a/tools/eslint/node_modules/lodash/_mergeDefaults.js
+++ b/tools/eslint/node_modules/lodash/_customDefaultsMerge.js
@@ -2,7 +2,8 @@ var baseMerge = require('./_baseMerge'),
isObject = require('./isObject');
/**
- * Used by `_.defaultsDeep` to customize its `_.merge` use.
+ * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
+ * objects into destination objects that are passed thru.
*
* @private
* @param {*} objValue The destination value.
@@ -14,14 +15,14 @@ var baseMerge = require('./_baseMerge'),
* counterparts.
* @returns {*} Returns the value to assign.
*/
-function mergeDefaults(objValue, srcValue, key, object, source, stack) {
+function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
if (isObject(objValue) && isObject(srcValue)) {
// Recursively merge objects and arrays (susceptible to call stack limits).
stack.set(srcValue, objValue);
- baseMerge(objValue, srcValue, undefined, mergeDefaults, stack);
+ baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
stack['delete'](srcValue);
}
return objValue;
}
-module.exports = mergeDefaults;
+module.exports = customDefaultsMerge;
diff --git a/tools/eslint/node_modules/lodash/_customOmitClone.js b/tools/eslint/node_modules/lodash/_customOmitClone.js
new file mode 100644
index 0000000000..968db2ef3e
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/_customOmitClone.js
@@ -0,0 +1,16 @@
+var isPlainObject = require('./isPlainObject');
+
+/**
+ * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
+ * objects.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {string} key The key of the property to inspect.
+ * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
+ */
+function customOmitClone(value) {
+ return isPlainObject(value) ? undefined : value;
+}
+
+module.exports = customOmitClone;
diff --git a/tools/eslint/node_modules/lodash/_equalArrays.js b/tools/eslint/node_modules/lodash/_equalArrays.js
index 178dcedf25..f6a3b7c9f2 100644
--- a/tools/eslint/node_modules/lodash/_equalArrays.js
+++ b/tools/eslint/node_modules/lodash/_equalArrays.js
@@ -2,9 +2,9 @@ var SetCache = require('./_SetCache'),
arraySome = require('./_arraySome'),
cacheHas = require('./_cacheHas');
-/** Used to compose bitmasks for comparison styles. */
-var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
/**
* A specialized version of `baseIsEqualDeep` for arrays with support for
@@ -13,15 +13,14 @@ var UNORDERED_COMPARE_FLAG = 1,
* @private
* @param {Array} array The array to compare.
* @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `array` and `other` objects.
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
*/
-function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
+function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
arrLength = array.length,
othLength = other.length;
@@ -35,7 +34,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
var index = -1,
result = true,
- seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;
+ seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
stack.set(array, other);
stack.set(other, array);
@@ -61,7 +60,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
if (seen) {
if (!arraySome(other, function(othValue, othIndex) {
if (!cacheHas(seen, othIndex) &&
- (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
return seen.push(othIndex);
}
})) {
@@ -70,7 +69,7 @@ function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
}
} else if (!(
arrValue === othValue ||
- equalFunc(arrValue, othValue, customizer, bitmask, stack)
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
)) {
result = false;
break;
diff --git a/tools/eslint/node_modules/lodash/_equalByTag.js b/tools/eslint/node_modules/lodash/_equalByTag.js
index 07d8c8c00f..71919e8673 100644
--- a/tools/eslint/node_modules/lodash/_equalByTag.js
+++ b/tools/eslint/node_modules/lodash/_equalByTag.js
@@ -5,9 +5,9 @@ var Symbol = require('./_Symbol'),
mapToArray = require('./_mapToArray'),
setToArray = require('./_setToArray');
-/** Used to compose bitmasks for comparison styles. */
-var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
/** `Object#toString` result references. */
var boolTag = '[object Boolean]',
@@ -38,14 +38,13 @@ var symbolProto = Symbol ? Symbol.prototype : undefined,
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
* @param {string} tag The `toStringTag` of the objects to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
-function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
+function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
switch (tag) {
case dataViewTag:
if ((object.byteLength != other.byteLength) ||
@@ -83,7 +82,7 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
var convert = mapToArray;
case setTag:
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
convert || (convert = setToArray);
if (object.size != other.size && !isPartial) {
@@ -94,11 +93,11 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
if (stacked) {
return stacked == other;
}
- bitmask |= UNORDERED_COMPARE_FLAG;
+ bitmask |= COMPARE_UNORDERED_FLAG;
// Recursively compare objects (susceptible to call stack limits).
stack.set(object, other);
- var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
stack['delete'](object);
return result;
diff --git a/tools/eslint/node_modules/lodash/_equalObjects.js b/tools/eslint/node_modules/lodash/_equalObjects.js
index 092cb3ff96..17421f374c 100644
--- a/tools/eslint/node_modules/lodash/_equalObjects.js
+++ b/tools/eslint/node_modules/lodash/_equalObjects.js
@@ -1,7 +1,7 @@
-var keys = require('./keys');
+var getAllKeys = require('./_getAllKeys');
-/** Used to compose bitmasks for comparison styles. */
-var PARTIAL_COMPARE_FLAG = 2;
+/** Used to compose bitmasks for value comparisons. */
+var COMPARE_PARTIAL_FLAG = 1;
/** Used for built-in method references. */
var objectProto = Object.prototype;
@@ -16,18 +16,17 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
-function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- objProps = keys(object),
+function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
+ objProps = getAllKeys(object),
objLength = objProps.length,
- othProps = keys(other),
+ othProps = getAllKeys(other),
othLength = othProps.length;
if (objLength != othLength && !isPartial) {
@@ -62,7 +61,7 @@ function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
}
// Recursively compare objects (susceptible to call stack limits).
if (!(compared === undefined
- ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
: compared
)) {
result = false;
diff --git a/tools/eslint/node_modules/lodash/_getRawTag.js b/tools/eslint/node_modules/lodash/_getRawTag.js
new file mode 100644
index 0000000000..49a95c9c65
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/_getRawTag.js
@@ -0,0 +1,46 @@
+var Symbol = require('./_Symbol');
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var nativeObjectToString = objectProto.toString;
+
+/** Built-in value references. */
+var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
+
+/**
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the raw `toStringTag`.
+ */
+function getRawTag(value) {
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
+ tag = value[symToStringTag];
+
+ try {
+ value[symToStringTag] = undefined;
+ var unmasked = true;
+ } catch (e) {}
+
+ var result = nativeObjectToString.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag] = tag;
+ } else {
+ delete value[symToStringTag];
+ }
+ }
+ return result;
+}
+
+module.exports = getRawTag;
diff --git a/tools/eslint/node_modules/lodash/_getSymbols.js b/tools/eslint/node_modules/lodash/_getSymbols.js
index e41dad1d52..7d6eafebb3 100644
--- a/tools/eslint/node_modules/lodash/_getSymbols.js
+++ b/tools/eslint/node_modules/lodash/_getSymbols.js
@@ -1,16 +1,30 @@
-var overArg = require('./_overArg'),
+var arrayFilter = require('./_arrayFilter'),
stubArray = require('./stubArray');
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Built-in value references. */
+var propertyIsEnumerable = objectProto.propertyIsEnumerable;
+
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object.getOwnPropertySymbols;
/**
- * Creates an array of the own enumerable symbol properties of `object`.
+ * Creates an array of the own enumerable symbols of `object`.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of symbols.
*/
-var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
+var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
+ if (object == null) {
+ return [];
+ }
+ object = Object(object);
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
+ return propertyIsEnumerable.call(object, symbol);
+ });
+};
module.exports = getSymbols;
diff --git a/tools/eslint/node_modules/lodash/_getSymbolsIn.js b/tools/eslint/node_modules/lodash/_getSymbolsIn.js
index 221277e843..cec0855a4a 100644
--- a/tools/eslint/node_modules/lodash/_getSymbolsIn.js
+++ b/tools/eslint/node_modules/lodash/_getSymbolsIn.js
@@ -7,8 +7,7 @@ var arrayPush = require('./_arrayPush'),
var nativeGetSymbols = Object.getOwnPropertySymbols;
/**
- * Creates an array of the own and inherited enumerable symbol properties
- * of `object`.
+ * Creates an array of the own and inherited enumerable symbols of `object`.
*
* @private
* @param {Object} object The object to query.
diff --git a/tools/eslint/node_modules/lodash/_getTag.js b/tools/eslint/node_modules/lodash/_getTag.js
index 6954db1b6d..deaf89d582 100644
--- a/tools/eslint/node_modules/lodash/_getTag.js
+++ b/tools/eslint/node_modules/lodash/_getTag.js
@@ -15,16 +15,6 @@ var mapTag = '[object Map]',
var dataViewTag = '[object DataView]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = toSource(DataView),
mapCtorString = toSource(Map),
@@ -48,9 +38,9 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
(Set && getTag(new Set) != setTag) ||
(WeakMap && getTag(new WeakMap) != weakMapTag)) {
getTag = function(value) {
- var result = objectToString.call(value),
+ var result = baseGetTag(value),
Ctor = result == objectTag ? value.constructor : undefined,
- ctorString = Ctor ? toSource(Ctor) : undefined;
+ ctorString = Ctor ? toSource(Ctor) : '';
if (ctorString) {
switch (ctorString) {
diff --git a/tools/eslint/node_modules/lodash/_hasPath.js b/tools/eslint/node_modules/lodash/_hasPath.js
index 770be4b889..93dbde152e 100644
--- a/tools/eslint/node_modules/lodash/_hasPath.js
+++ b/tools/eslint/node_modules/lodash/_hasPath.js
@@ -2,7 +2,6 @@ var castPath = require('./_castPath'),
isArguments = require('./isArguments'),
isArray = require('./isArray'),
isIndex = require('./_isIndex'),
- isKey = require('./_isKey'),
isLength = require('./isLength'),
toKey = require('./_toKey');
@@ -16,7 +15,7 @@ var castPath = require('./_castPath'),
* @returns {boolean} Returns `true` if `path` exists, else `false`.
*/
function hasPath(object, path, hasFunc) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length,
@@ -32,7 +31,7 @@ function hasPath(object, path, hasFunc) {
if (result || ++index != length) {
return result;
}
- length = object ? object.length : 0;
+ length = object == null ? 0 : object.length;
return !!length && isLength(length) && isIndex(key, length) &&
(isArray(object) || isArguments(object));
}
diff --git a/tools/eslint/node_modules/lodash/_hasUnicode.js b/tools/eslint/node_modules/lodash/_hasUnicode.js
index 085161a3d2..cb6ca15f66 100644
--- a/tools/eslint/node_modules/lodash/_hasUnicode.js
+++ b/tools/eslint/node_modules/lodash/_hasUnicode.js
@@ -1,14 +1,16 @@
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
rsVarRange = '\\ufe0e\\ufe0f';
/** Used to compose unicode capture groups. */
var rsZWJ = '\\u200d';
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
-var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
/**
* Checks if `string` contains Unicode symbols.
diff --git a/tools/eslint/node_modules/lodash/_hashHas.js b/tools/eslint/node_modules/lodash/_hashHas.js
index f30aac384f..281a5517c6 100644
--- a/tools/eslint/node_modules/lodash/_hashHas.js
+++ b/tools/eslint/node_modules/lodash/_hashHas.js
@@ -17,7 +17,7 @@ var hasOwnProperty = objectProto.hasOwnProperty;
*/
function hashHas(key) {
var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}
module.exports = hashHas;
diff --git a/tools/eslint/node_modules/lodash/_lazyValue.js b/tools/eslint/node_modules/lodash/_lazyValue.js
index 09bf14b43a..371ca8d223 100644
--- a/tools/eslint/node_modules/lodash/_lazyValue.js
+++ b/tools/eslint/node_modules/lodash/_lazyValue.js
@@ -2,9 +2,6 @@ var baseWrapperValue = require('./_baseWrapperValue'),
getView = require('./_getView'),
isArray = require('./isArray');
-/** Used as the size to enable large array optimizations. */
-var LARGE_ARRAY_SIZE = 200;
-
/** Used to indicate the type of lazy iteratees. */
var LAZY_FILTER_FLAG = 1,
LAZY_MAP_FLAG = 2;
@@ -36,8 +33,7 @@ function lazyValue() {
resIndex = 0,
takeCount = nativeMin(length, this.__takeCount__);
- if (!isArr || arrLength < LARGE_ARRAY_SIZE ||
- (arrLength == length && takeCount == length)) {
+ if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
return baseWrapperValue(array, this.__actions__);
}
var result = [];
diff --git a/tools/eslint/node_modules/lodash/_mergeData.js b/tools/eslint/node_modules/lodash/_mergeData.js
index 5aa1f1ff15..cb570f9767 100644
--- a/tools/eslint/node_modules/lodash/_mergeData.js
+++ b/tools/eslint/node_modules/lodash/_mergeData.js
@@ -6,12 +6,12 @@ var composeArgs = require('./_composeArgs'),
var PLACEHOLDER = '__lodash_placeholder__';
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_BOUND_FLAG = 4,
- CURRY_FLAG = 8,
- ARY_FLAG = 128,
- REARG_FLAG = 256;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_BOUND_FLAG = 4,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_ARY_FLAG = 128,
+ WRAP_REARG_FLAG = 256;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMin = Math.min;
@@ -36,22 +36,22 @@ function mergeData(data, source) {
var bitmask = data[1],
srcBitmask = source[1],
newBitmask = bitmask | srcBitmask,
- isCommon = newBitmask < (BIND_FLAG | BIND_KEY_FLAG | ARY_FLAG);
+ isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
var isCombo =
- ((srcBitmask == ARY_FLAG) && (bitmask == CURRY_FLAG)) ||
- ((srcBitmask == ARY_FLAG) && (bitmask == REARG_FLAG) && (data[7].length <= source[8])) ||
- ((srcBitmask == (ARY_FLAG | REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == CURRY_FLAG));
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
+ ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
// Exit early if metadata can't be merged.
if (!(isCommon || isCombo)) {
return data;
}
// Use source `thisArg` if available.
- if (srcBitmask & BIND_FLAG) {
+ if (srcBitmask & WRAP_BIND_FLAG) {
data[2] = source[2];
// Set when currying a bound function.
- newBitmask |= bitmask & BIND_FLAG ? 0 : CURRY_BOUND_FLAG;
+ newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
}
// Compose partial arguments.
var value = source[3];
@@ -73,7 +73,7 @@ function mergeData(data, source) {
data[7] = value;
}
// Use source `ary` if it's smaller.
- if (srcBitmask & ARY_FLAG) {
+ if (srcBitmask & WRAP_ARY_FLAG) {
data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
}
// Use source `arity` if one is not provided.
diff --git a/tools/eslint/node_modules/lodash/_nodeUtil.js b/tools/eslint/node_modules/lodash/_nodeUtil.js
index b8e48e3d76..14e179fe1c 100644
--- a/tools/eslint/node_modules/lodash/_nodeUtil.js
+++ b/tools/eslint/node_modules/lodash/_nodeUtil.js
@@ -15,7 +15,7 @@ var freeProcess = moduleExports && freeGlobal.process;
/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
try {
- return freeProcess && freeProcess.binding('util');
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
} catch (e) {}
}());
diff --git a/tools/eslint/node_modules/lodash/_objectToString.js b/tools/eslint/node_modules/lodash/_objectToString.js
new file mode 100644
index 0000000000..c614ec09b3
--- /dev/null
+++ b/tools/eslint/node_modules/lodash/_objectToString.js
@@ -0,0 +1,22 @@
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var nativeObjectToString = objectProto.toString;
+
+/**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+function objectToString(value) {
+ return nativeObjectToString.call(value);
+}
+
+module.exports = objectToString;
diff --git a/tools/eslint/node_modules/lodash/_parent.js b/tools/eslint/node_modules/lodash/_parent.js
index 81d94d0de0..f174328fcf 100644
--- a/tools/eslint/node_modules/lodash/_parent.js
+++ b/tools/eslint/node_modules/lodash/_parent.js
@@ -10,7 +10,7 @@ var baseGet = require('./_baseGet'),
* @returns {*} Returns the parent value.
*/
function parent(object, path) {
- return path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
+ return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
}
module.exports = parent;
diff --git a/tools/eslint/node_modules/lodash/_shortOut.js b/tools/eslint/node_modules/lodash/_shortOut.js
index a4e6507fb1..3300a07969 100644
--- a/tools/eslint/node_modules/lodash/_shortOut.js
+++ b/tools/eslint/node_modules/lodash/_shortOut.js
@@ -1,5 +1,5 @@
/** Used to detect hot functions by number of calls within a span of milliseconds. */
-var HOT_COUNT = 500,
+var HOT_COUNT = 800,
HOT_SPAN = 16;
/* Built-in method references for those with the same name as other `lodash` methods. */
diff --git a/tools/eslint/node_modules/lodash/_stringToPath.js b/tools/eslint/node_modules/lodash/_stringToPath.js
index 8bb78e53ff..db7b0f7dba 100644
--- a/tools/eslint/node_modules/lodash/_stringToPath.js
+++ b/tools/eslint/node_modules/lodash/_stringToPath.js
@@ -1,5 +1,4 @@
-var memoizeCapped = require('./_memoizeCapped'),
- toString = require('./toString');
+var memoizeCapped = require('./_memoizeCapped');
/** Used to match property names within property paths. */
var reLeadingDot = /^\./,
@@ -16,8 +15,6 @@ var reEscapeChar = /\\(\\)?/g;
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoizeCapped(function(string) {
- string = toString(string);
-
var result = [];
if (reLeadingDot.test(string)) {
result.push('');
diff --git a/tools/eslint/node_modules/lodash/_toSource.js b/tools/eslint/node_modules/lodash/_toSource.js
index 00ac454857..a020b386ca 100644
--- a/tools/eslint/node_modules/lodash/_toSource.js
+++ b/tools/eslint/node_modules/lodash/_toSource.js
@@ -8,7 +8,7 @@ var funcToString = funcProto.toString;
* Converts `func` to its source code.
*
* @private
- * @param {Function} func The function to process.
+ * @param {Function} func The function to convert.
* @returns {string} Returns the source code.
*/
function toSource(func) {
diff --git a/tools/eslint/node_modules/lodash/_unicodeSize.js b/tools/eslint/node_modules/lodash/_unicodeSize.js
index 26cd257038..68137ec2c5 100644
--- a/tools/eslint/node_modules/lodash/_unicodeSize.js
+++ b/tools/eslint/node_modules/lodash/_unicodeSize.js
@@ -1,12 +1,14 @@
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
rsVarRange = '\\ufe0e\\ufe0f';
/** Used to compose unicode capture groups. */
var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsCombo = '[' + rsComboRange + ']',
rsFitz = '\\ud83c[\\udffb-\\udfff]',
rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
rsNonAstral = '[^' + rsAstralRange + ']',
diff --git a/tools/eslint/node_modules/lodash/_unicodeToArray.js b/tools/eslint/node_modules/lodash/_unicodeToArray.js
index 11ac76311e..2a725c062e 100644
--- a/tools/eslint/node_modules/lodash/_unicodeToArray.js
+++ b/tools/eslint/node_modules/lodash/_unicodeToArray.js
@@ -1,12 +1,14 @@
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
rsVarRange = '\\ufe0e\\ufe0f';
/** Used to compose unicode capture groups. */
var rsAstral = '[' + rsAstralRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsCombo = '[' + rsComboRange + ']',
rsFitz = '\\ud83c[\\udffb-\\udfff]',
rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
rsNonAstral = '[^' + rsAstralRange + ']',
diff --git a/tools/eslint/node_modules/lodash/_unicodeWords.js b/tools/eslint/node_modules/lodash/_unicodeWords.js
index a02e93074a..d8b822ada9 100644
--- a/tools/eslint/node_modules/lodash/_unicodeWords.js
+++ b/tools/eslint/node_modules/lodash/_unicodeWords.js
@@ -1,7 +1,9 @@
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
rsDingbatRange = '\\u2700-\\u27bf',
rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
@@ -15,7 +17,7 @@ var rsAstralRange = '\\ud800-\\udfff',
/** Used to compose unicode capture groups. */
var rsApos = "['\u2019]",
rsBreak = '[' + rsBreakRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsCombo = '[' + rsComboRange + ']',
rsDigits = '\\d+',
rsDingbat = '[' + rsDingbatRange + ']',
rsLower = '[' + rsLowerRange + ']',
@@ -29,22 +31,26 @@ var rsApos = "['\u2019]",
rsZWJ = '\\u200d';
/** Used to compose unicode regexes. */
-var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',
- rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',
- rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
- rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
+var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
+ rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
+ rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
+ rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
reOptMod = rsModifier + '?',
rsOptVar = '[' + rsVarRange + ']?',
rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)',
+ rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)',
rsSeq = rsOptVar + reOptMod + rsOptJoin,
rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;
/** Used to match complex or compound words. */
var reUnicodeWord = RegExp([
- rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
- rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',
- rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,
- rsUpper + '+' + rsOptUpperContr,
+ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
+ rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
+ rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
+ rsUpper + '+' + rsOptContrUpper,
+ rsOrdUpper,
+ rsOrdLower,
rsDigits,
rsEmoji
].join('|'), 'g');
diff --git a/tools/eslint/node_modules/lodash/_updateWrapDetails.js b/tools/eslint/node_modules/lodash/_updateWrapDetails.js
index 128b1b46d6..8759fbdf79 100644
--- a/tools/eslint/node_modules/lodash/_updateWrapDetails.js
+++ b/tools/eslint/node_modules/lodash/_updateWrapDetails.js
@@ -2,27 +2,27 @@ var arrayEach = require('./_arrayEach'),
arrayIncludes = require('./_arrayIncludes');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_FLAG = 8,
- CURRY_RIGHT_FLAG = 16,
- PARTIAL_FLAG = 32,
- PARTIAL_RIGHT_FLAG = 64,
- ARY_FLAG = 128,
- REARG_FLAG = 256,
- FLIP_FLAG = 512;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_CURRY_RIGHT_FLAG = 16,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_PARTIAL_RIGHT_FLAG = 64,
+ WRAP_ARY_FLAG = 128,
+ WRAP_REARG_FLAG = 256,
+ WRAP_FLIP_FLAG = 512;
/** Used to associate wrap methods with their bit flags. */
var wrapFlags = [
- ['ary', ARY_FLAG],
- ['bind', BIND_FLAG],
- ['bindKey', BIND_KEY_FLAG],
- ['curry', CURRY_FLAG],
- ['curryRight', CURRY_RIGHT_FLAG],
- ['flip', FLIP_FLAG],
- ['partial', PARTIAL_FLAG],
- ['partialRight', PARTIAL_RIGHT_FLAG],
- ['rearg', REARG_FLAG]
+ ['ary', WRAP_ARY_FLAG],
+ ['bind', WRAP_BIND_FLAG],
+ ['bindKey', WRAP_BIND_KEY_FLAG],
+ ['curry', WRAP_CURRY_FLAG],
+ ['curryRight', WRAP_CURRY_RIGHT_FLAG],
+ ['flip', WRAP_FLIP_FLAG],
+ ['partial', WRAP_PARTIAL_FLAG],
+ ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
+ ['rearg', WRAP_REARG_FLAG]
];
/**
diff --git a/tools/eslint/node_modules/lodash/ary.js b/tools/eslint/node_modules/lodash/ary.js
index c743b06a1f..70c87d094c 100644
--- a/tools/eslint/node_modules/lodash/ary.js
+++ b/tools/eslint/node_modules/lodash/ary.js
@@ -1,7 +1,7 @@
var createWrap = require('./_createWrap');
/** Used to compose bitmasks for function metadata. */
-var ARY_FLAG = 128;
+var WRAP_ARY_FLAG = 128;
/**
* Creates a function that invokes `func`, with up to `n` arguments,
@@ -23,7 +23,7 @@ var ARY_FLAG = 128;
function ary(func, n, guard) {
n = guard ? undefined : n;
n = (func && n == null) ? func.length : n;
- return createWrap(func, ARY_FLAG, undefined, undefined, undefined, undefined, n);
+ return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
}
module.exports = ary;
diff --git a/tools/eslint/node_modules/lodash/at.js b/tools/eslint/node_modules/lodash/at.js
index 05e948254a..781ee9e5f1 100644
--- a/tools/eslint/node_modules/lodash/at.js
+++ b/tools/eslint/node_modules/lodash/at.js
@@ -9,7 +9,7 @@ var baseAt = require('./_baseAt'),
* @since 1.0.0
* @category Object
* @param {Object} object The object to iterate over.
- * @param {...(string|string[])} [paths] The property paths of elements to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Array} Returns the picked values.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/bind.js b/tools/eslint/node_modules/lodash/bind.js
index eac913bf61..b1076e93e6 100644
--- a/tools/eslint/node_modules/lodash/bind.js
+++ b/tools/eslint/node_modules/lodash/bind.js
@@ -4,8 +4,8 @@ var baseRest = require('./_baseRest'),
replaceHolders = require('./_replaceHolders');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- PARTIAL_FLAG = 32;
+var WRAP_BIND_FLAG = 1,
+ WRAP_PARTIAL_FLAG = 32;
/**
* Creates a function that invokes `func` with the `this` binding of `thisArg`
@@ -43,10 +43,10 @@ var BIND_FLAG = 1,
* // => 'hi fred!'
*/
var bind = baseRest(function(func, thisArg, partials) {
- var bitmask = BIND_FLAG;
+ var bitmask = WRAP_BIND_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bind));
- bitmask |= PARTIAL_FLAG;
+ bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(func, bitmask, thisArg, partials, holders);
});
diff --git a/tools/eslint/node_modules/lodash/bindKey.js b/tools/eslint/node_modules/lodash/bindKey.js
index 8824440849..f7fd64cd4e 100644
--- a/tools/eslint/node_modules/lodash/bindKey.js
+++ b/tools/eslint/node_modules/lodash/bindKey.js
@@ -4,9 +4,9 @@ var baseRest = require('./_baseRest'),
replaceHolders = require('./_replaceHolders');
/** Used to compose bitmasks for function metadata. */
-var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- PARTIAL_FLAG = 32;
+var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_PARTIAL_FLAG = 32;
/**
* Creates a function that invokes the method at `object[key]` with `partials`
@@ -54,10 +54,10 @@ var BIND_FLAG = 1,
* // => 'hiya fred!'
*/
var bindKey = baseRest(function(object, key, partials) {
- var bitmask = BIND_FLAG | BIND_KEY_FLAG;
+ var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bindKey));
- bitmask |= PARTIAL_FLAG;
+ bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(key, bitmask, object, partials, holders);
});
diff --git a/tools/eslint/node_modules/lodash/chunk.js b/tools/eslint/node_modules/lodash/chunk.js
index 356510f539..5b562fef3c 100644
--- a/tools/eslint/node_modules/lodash/chunk.js
+++ b/tools/eslint/node_modules/lodash/chunk.js
@@ -33,7 +33,7 @@ function chunk(array, size, guard) {
} else {
size = nativeMax(toInteger(size), 0);
}
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length || size < 1) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/clone.js b/tools/eslint/node_modules/lodash/clone.js
index d02395ea42..dd439d6396 100644
--- a/tools/eslint/node_modules/lodash/clone.js
+++ b/tools/eslint/node_modules/lodash/clone.js
@@ -1,5 +1,8 @@
var baseClone = require('./_baseClone');
+/** Used to compose bitmasks for cloning. */
+var CLONE_SYMBOLS_FLAG = 4;
+
/**
* Creates a shallow clone of `value`.
*
@@ -27,7 +30,7 @@ var baseClone = require('./_baseClone');
* // => true
*/
function clone(value) {
- return baseClone(value, false, true);
+ return baseClone(value, CLONE_SYMBOLS_FLAG);
}
module.exports = clone;
diff --git a/tools/eslint/node_modules/lodash/cloneDeep.js b/tools/eslint/node_modules/lodash/cloneDeep.js
index 94efce1233..4425fbe8b9 100644
--- a/tools/eslint/node_modules/lodash/cloneDeep.js
+++ b/tools/eslint/node_modules/lodash/cloneDeep.js
@@ -1,5 +1,9 @@
var baseClone = require('./_baseClone');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1,
+ CLONE_SYMBOLS_FLAG = 4;
+
/**
* This method is like `_.clone` except that it recursively clones `value`.
*
@@ -19,7 +23,7 @@ var baseClone = require('./_baseClone');
* // => false
*/
function cloneDeep(value) {
- return baseClone(value, true, true);
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
module.exports = cloneDeep;
diff --git a/tools/eslint/node_modules/lodash/cloneDeepWith.js b/tools/eslint/node_modules/lodash/cloneDeepWith.js
index 4a345fb2d3..fd9c6c050c 100644
--- a/tools/eslint/node_modules/lodash/cloneDeepWith.js
+++ b/tools/eslint/node_modules/lodash/cloneDeepWith.js
@@ -1,5 +1,9 @@
var baseClone = require('./_baseClone');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1,
+ CLONE_SYMBOLS_FLAG = 4;
+
/**
* This method is like `_.cloneWith` except that it recursively clones `value`.
*
@@ -29,7 +33,8 @@ var baseClone = require('./_baseClone');
* // => 20
*/
function cloneDeepWith(value, customizer) {
- return baseClone(value, true, true, customizer);
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
}
module.exports = cloneDeepWith;
diff --git a/tools/eslint/node_modules/lodash/cloneWith.js b/tools/eslint/node_modules/lodash/cloneWith.js
index c85f573f18..d2f4e756d5 100644
--- a/tools/eslint/node_modules/lodash/cloneWith.js
+++ b/tools/eslint/node_modules/lodash/cloneWith.js
@@ -1,5 +1,8 @@
var baseClone = require('./_baseClone');
+/** Used to compose bitmasks for cloning. */
+var CLONE_SYMBOLS_FLAG = 4;
+
/**
* This method is like `_.clone` except that it accepts `customizer` which
* is invoked to produce the cloned value. If `customizer` returns `undefined`,
@@ -32,7 +35,8 @@ var baseClone = require('./_baseClone');
* // => 0
*/
function cloneWith(value, customizer) {
- return baseClone(value, false, true, customizer);
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
}
module.exports = cloneWith;
diff --git a/tools/eslint/node_modules/lodash/compact.js b/tools/eslint/node_modules/lodash/compact.js
index 790f31199b..031fab4e6d 100644
--- a/tools/eslint/node_modules/lodash/compact.js
+++ b/tools/eslint/node_modules/lodash/compact.js
@@ -15,7 +15,7 @@
*/
function compact(array) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
resIndex = 0,
result = [];
diff --git a/tools/eslint/node_modules/lodash/cond.js b/tools/eslint/node_modules/lodash/cond.js
index 91515c1676..64555986aa 100644
--- a/tools/eslint/node_modules/lodash/cond.js
+++ b/tools/eslint/node_modules/lodash/cond.js
@@ -36,7 +36,7 @@ var FUNC_ERROR_TEXT = 'Expected a function';
* // => 'no match'
*/
function cond(pairs) {
- var length = pairs ? pairs.length : 0,
+ var length = pairs == null ? 0 : pairs.length,
toIteratee = baseIteratee;
pairs = !length ? [] : arrayMap(pairs, function(pair) {
diff --git a/tools/eslint/node_modules/lodash/conforms.js b/tools/eslint/node_modules/lodash/conforms.js
index e4c537e929..5501a949a9 100644
--- a/tools/eslint/node_modules/lodash/conforms.js
+++ b/tools/eslint/node_modules/lodash/conforms.js
@@ -1,6 +1,9 @@
var baseClone = require('./_baseClone'),
baseConforms = require('./_baseConforms');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a function that invokes the predicate properties of `source` with
* the corresponding property values of a given object, returning `true` if
@@ -26,7 +29,7 @@ var baseClone = require('./_baseClone'),
* // => [{ 'a': 1, 'b': 2 }]
*/
function conforms(source) {
- return baseConforms(baseClone(source, true));
+ return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
}
module.exports = conforms;
diff --git a/tools/eslint/node_modules/lodash/core.js b/tools/eslint/node_modules/lodash/core.js
index c891e78445..88c263f86d 100644
--- a/tools/eslint/node_modules/lodash/core.js
+++ b/tools/eslint/node_modules/lodash/core.js
@@ -1,8 +1,8 @@
/**
* @license
- * lodash (Custom Build) <https://lodash.com/>
+ * Lodash (Custom Build) <https://lodash.com/>
* Build: `lodash core -o ./dist/lodash.core.js`
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Copyright JS Foundation and other contributors <https://js.foundation/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
@@ -13,18 +13,18 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '4.16.4';
+ var VERSION = '4.17.4';
/** Error message constants. */
var FUNC_ERROR_TEXT = 'Expected a function';
- /** Used to compose bitmasks for function metadata. */
- var BIND_FLAG = 1,
- PARTIAL_FLAG = 32;
+ /** Used to compose bitmasks for value comparisons. */
+ var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
- /** Used to compose bitmasks for comparison styles. */
- var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+ /** Used to compose bitmasks for function metadata. */
+ var WRAP_BIND_FLAG = 1,
+ WRAP_PARTIAL_FLAG = 32;
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
@@ -33,6 +33,7 @@
/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
arrayTag = '[object Array]',
+ asyncTag = '[object AsyncFunction]',
boolTag = '[object Boolean]',
dateTag = '[object Date]',
errorTag = '[object Error]',
@@ -214,7 +215,7 @@
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
- var objectToString = objectProto.toString;
+ var nativeObjectToString = objectProto.toString;
/** Used to restore the original `_` reference in `_.noConflict`. */
var oldDash = root._;
@@ -248,9 +249,9 @@
* Shortcut fusion is an optimization to merge iteratee calls; this avoids
* the creation of intermediate arrays and can greatly reduce the number of
* iteratee executions. Sections of a chain sequence qualify for shortcut
- * fusion if the section is applied to an array of at least `200` elements
- * and any iteratees accept only one argument. The heuristic for whether a
- * section qualifies for shortcut fusion is subject to change.
+ * fusion if the section is applied to an array and iteratees accept only
+ * one argument. The heuristic for whether a section qualifies for shortcut
+ * fusion is subject to change.
*
* Chaining is supported in custom builds as long as the `_#value` method is
* directly or indirectly included in the build.
@@ -396,24 +397,6 @@
/*------------------------------------------------------------------------*/
/**
- * Used by `_.defaults` to customize its `_.assignIn` use.
- *
- * @private
- * @param {*} objValue The destination value.
- * @param {*} srcValue The source value.
- * @param {string} key The key of the property to assign.
- * @param {Object} object The parent object of `objValue`.
- * @returns {*} Returns the value to assign.
- */
- function assignInDefaults(objValue, srcValue, key, object) {
- if (objValue === undefined ||
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
- return srcValue;
- }
- return objValue;
- }
-
- /**
* Assigns `value` to `key` of `object` if the existing value is not equivalent
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons.
@@ -611,6 +594,17 @@
}
/**
+ * The base implementation of `getTag` without fallbacks for buggy environments.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the `toStringTag`.
+ */
+ function baseGetTag(value) {
+ return objectToString(value);
+ }
+
+ /**
* The base implementation of `_.gt` which doesn't coerce arguments.
*
* @private
@@ -640,7 +634,7 @@
* @returns {boolean} Returns `true` if `value` is a date object, else `false`.
*/
function baseIsDate(value) {
- return isObjectLike(value) && objectToString.call(value) == dateTag;
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
}
/**
@@ -650,22 +644,21 @@
* @private
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Unordered comparison
+ * 2 - Partial comparison
* @param {Function} [customizer] The function to customize comparisons.
- * @param {boolean} [bitmask] The bitmask of comparison flags.
- * The bitmask may be composed of the following flags:
- * 1 - Unordered comparison
- * 2 - Partial comparison
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
*/
- function baseIsEqual(value, other, customizer, bitmask, stack) {
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
if (value === other) {
return true;
}
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
return value !== value && other !== other;
}
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
/**
@@ -676,27 +669,21 @@
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
* @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
var objIsArr = isArray(object),
othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
+ objTag = objIsArr ? arrayTag : baseGetTag(object),
+ othTag = othIsArr ? arrayTag : baseGetTag(other);
+
+ objTag = objTag == argsTag ? objectTag : objTag;
+ othTag = othTag == argsTag ? objectTag : othTag;
- if (!objIsArr) {
- objTag = objectToString.call(object);
- objTag = objTag == argsTag ? objectTag : objTag;
- }
- if (!othIsArr) {
- othTag = objectToString.call(other);
- othTag = othTag == argsTag ? objectTag : othTag;
- }
var objIsObj = objTag == objectTag,
othIsObj = othTag == objectTag,
isSameTag = objTag == othTag;
@@ -715,12 +702,12 @@
stack.push([other, object]);
if (isSameTag && !objIsObj) {
var result = (objIsArr)
- ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
- : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
stack.pop();
return result;
}
- if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
@@ -728,7 +715,7 @@
var objUnwrapped = objIsWrapped ? object.value() : object,
othUnwrapped = othIsWrapped ? other.value() : other;
- var result = equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);
+ var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
stack.pop();
return result;
}
@@ -736,7 +723,7 @@
if (!isSameTag) {
return false;
}
- var result = equalObjects(object, other, equalFunc, customizer, bitmask, stack);
+ var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack);
stack.pop();
return result;
}
@@ -749,7 +736,7 @@
* @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
*/
function baseIsRegExp(value) {
- return isObject(value) && objectToString.call(value) == regexpTag;
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
}
/**
@@ -818,7 +805,7 @@
while (length--) {
var key = props[length];
if (!(key in object &&
- baseIsEqual(source[key], object[key], undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG)
+ baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG)
)) {
return false;
}
@@ -833,7 +820,7 @@
*
* @private
* @param {Object} object The source object.
- * @param {string[]} props The property identifiers to pick.
+ * @param {string[]} paths The property paths to pick.
* @returns {Object} Returns the new object.
*/
function basePick(object, props) {
@@ -1150,7 +1137,7 @@
if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
- var isBind = bitmask & BIND_FLAG,
+ var isBind = bitmask & WRAP_BIND_FLAG,
Ctor = createCtor(func);
function wrapper() {
@@ -1173,21 +1160,40 @@
}
/**
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
+ * of source objects to the destination object for all destination properties
+ * that resolve to `undefined`.
+ *
+ * @private
+ * @param {*} objValue The destination value.
+ * @param {*} srcValue The source value.
+ * @param {string} key The key of the property to assign.
+ * @param {Object} object The parent object of `objValue`.
+ * @returns {*} Returns the value to assign.
+ */
+ function customDefaultsAssignIn(objValue, srcValue, key, object) {
+ if (objValue === undefined ||
+ (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
+ return srcValue;
+ }
+ return objValue;
+ }
+
+ /**
* A specialized version of `baseIsEqualDeep` for arrays with support for
* partial deep comparisons.
*
* @private
* @param {Array} array The array to compare.
* @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `array` and `other` objects.
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
*/
- function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
+ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
arrLength = array.length,
othLength = other.length;
@@ -1196,7 +1202,7 @@
}
var index = -1,
result = true,
- seen = (bitmask & UNORDERED_COMPARE_FLAG) ? [] : undefined;
+ seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined;
// Ignore non-index properties.
while (++index < arrLength) {
@@ -1215,7 +1221,7 @@
if (seen) {
if (!baseSome(other, function(othValue, othIndex) {
if (!indexOf(seen, othIndex) &&
- (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
return seen.push(othIndex);
}
})) {
@@ -1224,7 +1230,7 @@
}
} else if (!(
arrValue === othValue ||
- equalFunc(arrValue, othValue, customizer, bitmask, stack)
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
)) {
result = false;
break;
@@ -1244,14 +1250,13 @@
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
* @param {string} tag The `toStringTag` of the objects to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
+ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
switch (tag) {
case boolTag:
@@ -1282,15 +1287,14 @@
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
+ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
objProps = keys(object),
objLength = objProps.length,
othProps = keys(other),
@@ -1317,7 +1321,7 @@
var compared;
// Recursively compare objects (susceptible to call stack limits).
if (!(compared === undefined
- ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
: compared
)) {
result = false;
@@ -1382,6 +1386,17 @@
}
/**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+ function objectToString(value) {
+ return nativeObjectToString.call(value);
+ }
+
+ /**
* A specialized version of `baseRest` which transforms the rest array.
*
* @private
@@ -1421,15 +1436,6 @@
*/
var setToString = identity;
- /**
- * Converts `value` to a string key if it's not a string or symbol.
- *
- * @private
- * @param {*} value The value to inspect.
- * @returns {string|symbol} Returns the key.
- */
- var toKey = String;
-
/*------------------------------------------------------------------------*/
/**
@@ -1497,8 +1503,7 @@
* @since 1.1.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {number} Returns the index of the found element, else `-1`.
* @example
@@ -1525,7 +1530,7 @@
* // => 2
*/
function findIndex(array, predicate, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
@@ -1551,7 +1556,7 @@
* // => [1, 2, [3, [4]], 5]
*/
function flatten(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, 1) : [];
}
@@ -1570,7 +1575,7 @@
* // => [1, 2, 3, 4, 5]
*/
function flattenDeep(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, INFINITY) : [];
}
@@ -1620,7 +1625,7 @@
* // => 3
*/
function indexOf(array, value, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (typeof fromIndex == 'number') {
fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex;
} else {
@@ -1653,7 +1658,7 @@
* // => 3
*/
function last(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? array[length - 1] : undefined;
}
@@ -1674,7 +1679,7 @@
* @returns {Array} Returns the slice of `array`.
*/
function slice(array, start, end) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
start = start == null ? 0 : +start;
end = end === undefined ? length : +end;
return length ? baseSlice(array, start, end) : [];
@@ -1838,8 +1843,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
* @returns {boolean} Returns `true` if all elements pass the predicate check,
* else `false`.
@@ -1882,8 +1886,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
* @see _.reject
* @example
@@ -1922,8 +1925,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {*} Returns the matched element, else `undefined`.
* @example
@@ -2254,7 +2256,7 @@
* // => 'hi fred!'
*/
var bind = baseRest(function(func, thisArg, partials) {
- return createPartial(func, BIND_FLAG | PARTIAL_FLAG, thisArg, partials);
+ return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials);
});
/**
@@ -2521,7 +2523,7 @@
*/
function isBoolean(value) {
return value === true || value === false ||
- (isObjectLike(value) && objectToString.call(value) == boolTag);
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
}
/**
@@ -2593,7 +2595,7 @@
* date objects, error objects, maps, numbers, `Object` objects, regexes,
* sets, strings, symbols, and typed arrays. `Object` objects are compared
* by their own, not inherited, enumerable properties. Functions and DOM
- * nodes are **not** supported.
+ * nodes are compared by strict equality, i.e. `===`.
*
* @static
* @memberOf _
@@ -2665,10 +2667,13 @@
* // => false
*/
function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag || tag == proxyTag;
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
/**
@@ -2844,7 +2849,7 @@
*/
function isNumber(value) {
return typeof value == 'number' ||
- (isObjectLike(value) && objectToString.call(value) == numberTag);
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
}
/**
@@ -2885,7 +2890,7 @@
*/
function isString(value) {
return typeof value == 'string' ||
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
}
/**
@@ -3162,7 +3167,7 @@
*/
function create(prototype, properties) {
var result = baseCreate(prototype);
- return properties ? assign(result, properties) : result;
+ return properties == null ? result : assign(result, properties);
}
/**
@@ -3187,7 +3192,7 @@
* // => { 'a': 1, 'b': 2 }
*/
var defaults = baseRest(function(args) {
- args.push(undefined, assignInDefaults);
+ args.push(undefined, customDefaultsAssignIn);
return assignInWith.apply(undefined, args);
});
@@ -3285,7 +3290,7 @@
* @memberOf _
* @category Object
* @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property identifiers to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Object} Returns the new object.
* @example
*
@@ -3294,8 +3299,8 @@
* _.pick(object, ['a', 'c']);
* // => { 'a': 1, 'c': 3 }
*/
- var pick = flatRest(function(object, props) {
- return object == null ? {} : basePick(object, baseMap(props, toKey));
+ var pick = flatRest(function(object, paths) {
+ return object == null ? {} : basePick(object, paths);
});
/**
@@ -3362,7 +3367,7 @@
* // => ['h', 'i']
*/
function values(object) {
- return object ? baseValues(object, keys(object)) : [];
+ return object == null ? [] : baseValues(object, keys(object));
}
/*------------------------------------------------------------------------*/
diff --git a/tools/eslint/node_modules/lodash/core.min.js b/tools/eslint/node_modules/lodash/core.min.js
index c1fb1cd187..b909d31c75 100644
--- a/tools/eslint/node_modules/lodash/core.min.js
+++ b/tools/eslint/node_modules/lodash/core.min.js
@@ -1,29 +1,29 @@
/**
* @license
- * lodash (Custom Build) /license | Underscore.js 1.8.3 underscorejs.org/LICENSE
+ * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
* Build: `lodash core -o ./dist/lodash.core.js`
*/
-;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return d(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r,e){return n===nn||M(n,ln[r])&&!pn.call(e,r)?t:n}function f(n,t,r){
-if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(nn,r)},t)}function a(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function l(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===nn?i===i:r(i,c)))var c=i,f=o}return f}function p(n,t){var r=[];return mn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function s(n,r,e,u,o){var i=-1,c=n.length;for(e||(e=D),o||(o=[]);++i<c;){var f=n[i];0<r&&e(f)?1<r?s(f,r-1,e,u,o):t(o,f):u||(o[o.length]=f);
-}return o}function h(n,t){return n&&On(n,t,qn)}function v(n,t){return p(t,function(t){return V(n[t])})}function y(n,t){return n>t}function b(n,t,r,e,u){return n===t||(null==n||null==t||!H(n)&&!K(t)?n!==n&&t!==t:g(n,t,b,r,e,u))}function g(n,t,r,e,u,o){var i=Sn(n),c=Sn(t),f="[object Array]",a="[object Array]";i||(f=hn.call(n),f="[object Arguments]"==f?"[object Object]":f),c||(a=hn.call(t),a="[object Arguments]"==a?"[object Object]":a);var l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);
-var p=En(o,function(t){return t[0]==n}),s=En(o,function(n){return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 2&u||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),
-o.pop(),r):(i=i?n.value():n,f=f?t.value():t,r=r(i,f,e,u,o),o.pop(),r)}function _(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?m:r)(n)}function j(n,t){return n<t}function d(n,t){var r=-1,e=U(n)?Array(n.length):[];return mn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function m(n){var t=_n(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&b(n[u],r[u],nn,3)))return false}return true}}function O(n,t){return n=Object(n),G(t,function(t,r){return r in n&&(t[r]=n[r]),
-t},{})}function x(n){return xn(q(n,void 0,Y),n+"")}function A(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function E(n){return A(n,0,n.length)}function w(n,t){var r;return mn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function k(n,r){return G(r,function(n,r){return r.func.apply(r.thisArg,t([n],r.args))},n)}function N(n,t,r,e){var u=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var c=t[o],f=e?e(r[c],n[c],c,r,n):nn;
-if(f===nn&&(f=n[c]),u)r[c]=f;else{var a=r,l=a[c];pn.call(a,c)&&M(l,f)&&(f!==nn||c in a)||(a[c]=f)}}return r}function S(n){return x(function(t,r){var e=-1,u=r.length,o=1<u?r[u-1]:nn,o=3<n.length&&typeof o=="function"?(u--,o):nn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function T(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function F(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==on&&this instanceof e?u:n;++c<f;)a[c]=r[c];
-for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=T(n);return e}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(2&u&&c>i))return false;for(var c=-1,f=true,a=1&u?[]:nn;++c<i;){var l=n[c],p=t[c];if(void 0!==nn){f=false;break}if(a){if(!w(t,function(n,t){if(!z(a,t)&&(l===n||r(l,n,e,u,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!r(l,p,e,u,o)){f=false;break}}return f}function R(n,t,r,e,u,o){var i=2&u,c=qn(n),f=c.length,a=qn(t).length;
-if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:pn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==nn||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function D(t){return Sn(t)||n(t)}function I(n){var t=[];if(null!=n)for(var r in Object(n))t.push(r);return t}function q(n,t,r){
-return t=jn(t===nn?n.length-1:t,0),function(){for(var e=arguments,u=-1,o=jn(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];for(u=-1,o=Array(t+1);++u<t;)o[u]=e[u];return o[t]=r(i),n.apply(this,o)}}function $(n){return n&&n.length?s(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function C(n,t){return mn(n,_(t))}function G(n,t,r){return e(n,_(t),r,3>arguments.length,mn);
-}function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Tn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t),t&&!V(n)}function V(n){return n=H(n)?hn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n||"[object Proxy]"==n}function H(n){var t=typeof n;return null!=n&&("object"==t||"function"==t);
-}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Sn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return n?u(n,qn(n)):[]}function Y(n){return n}function Z(n,r,e){var u=qn(r),o=v(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=v(r,qn(r)));var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);return mn(o,function(e){
-var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=E(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
+;(function(){function n(n){return K(n)&&pn.call(n,"callee")&&!bn.call(n,"callee")}function t(n,t){return n.push.apply(n,t),n}function r(n){return function(t){return null==t?nn:t[n]}}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return j(t,function(t){return n[t]})}function o(n){return n instanceof i?n:new i(n)}function i(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function c(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");
+return setTimeout(function(){n.apply(nn,r)},t)}function f(n,t){var r=true;return mn(n,function(n,e,u){return r=!!t(n,e,u)}),r}function a(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===nn?i===i:r(i,c)))var c=i,f=o}return f}function l(n,t){var r=[];return mn(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function p(n,r,e,u,o){var i=-1,c=n.length;for(e||(e=D),o||(o=[]);++i<c;){var f=n[i];0<r&&e(f)?1<r?p(f,r-1,e,u,o):t(o,f):u||(o[o.length]=f)}return o}function s(n,t){return n&&On(n,t,In);
+}function h(n,t){return l(t,function(t){return V(n[t])})}function v(n,t){return n>t}function y(n,t,r,e,u){return n===t||(null==n||null==t||!K(n)&&!K(t)?n!==n&&t!==t:b(n,t,r,e,y,u))}function b(n,t,r,e,u,o){var i=Nn(n),c=Nn(t),f=i?"[object Array]":hn.call(n),a=c?"[object Array]":hn.call(t),f="[object Arguments]"==f?"[object Object]":f,a="[object Arguments]"==a?"[object Object]":a,l="[object Object]"==f,c="[object Object]"==a,a=f==a;o||(o=[]);var p=An(o,function(t){return t[0]==n}),s=An(o,function(n){
+return n[0]==t});if(p&&s)return p[1]==t;if(o.push([n,t]),o.push([t,n]),a&&!l){if(i)r=B(n,t,r,e,u,o);else n:{switch(f){case"[object Boolean]":case"[object Date]":case"[object Number]":r=M(+n,+t);break n;case"[object Error]":r=n.name==t.name&&n.message==t.message;break n;case"[object RegExp]":case"[object String]":r=n==t+"";break n}r=false}return o.pop(),r}return 1&r||(i=l&&pn.call(n,"__wrapped__"),f=c&&pn.call(t,"__wrapped__"),!i&&!f)?!!a&&(r=R(n,t,r,e,u,o),o.pop(),r):(i=i?n.value():n,f=f?t.value():t,
+r=u(i,f,r,e,o),o.pop(),r)}function g(n){return typeof n=="function"?n:null==n?Y:(typeof n=="object"?d:r)(n)}function _(n,t){return n<t}function j(n,t){var r=-1,e=U(n)?Array(n.length):[];return mn(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function d(n){var t=_n(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&y(n[u],r[u],3)))return false}return true}}function m(n,t){return n=Object(n),G(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function O(n){return xn(q(n,void 0,Y),n+"");
+}function x(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function A(n){return x(n,0,n.length)}function E(n,t){var r;return mn(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function w(n,r){return G(r,function(n,r){return r.func.apply(r.thisArg,t([n],r.args))},n)}function k(n,t,r,e){var u=!r;r||(r={});for(var o=-1,i=t.length;++o<i;){var c=t[o],f=e?e(r[c],n[c],c,r,n):nn;if(f===nn&&(f=n[c]),u)r[c]=f;else{var a=r,l=a[c];
+pn.call(a,c)&&M(l,f)&&(f!==nn||c in a)||(a[c]=f)}}return r}function N(n){return O(function(t,r){var e=-1,u=r.length,o=1<u?r[u-1]:nn,o=3<n.length&&typeof o=="function"?(u--,o):nn;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function F(n){return function(){var t=arguments,r=dn(n.prototype),t=n.apply(r,t);return H(t)?t:r}}function S(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==on&&this instanceof e?u:n;++c<f;)a[c]=r[c];for(;i--;)a[c++]=arguments[++o];
+return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=F(n);return e}function T(n,t,r,e){return n===nn||M(n,ln[r])&&!pn.call(e,r)?t:n}function B(n,t,r,e,u,o){var i=n.length,c=t.length;if(i!=c&&!(1&r&&c>i))return false;for(var c=-1,f=true,a=2&r?[]:nn;++c<i;){var l=n[c],p=t[c];if(void 0!==nn){f=false;break}if(a){if(!E(t,function(n,t){if(!z(a,t)&&(l===n||u(l,n,r,e,o)))return a.push(t)})){f=false;break}}else if(l!==p&&!u(l,p,r,e,o)){f=false;break}}return f}function R(n,t,r,e,u,o){
+var i=1&r,c=In(n),f=c.length,a=In(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:pn.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==nn||s!==h&&!u(s,h,r,e,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function D(t){return Nn(t)||n(t)}function I(n){var t=[];if(null!=n)for(var r in Object(n))t.push(r);
+return t}function q(n,t,r){return t=jn(t===nn?n.length-1:t,0),function(){for(var e=arguments,u=-1,o=jn(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];for(u=-1,o=Array(t+1);++u<t;)o[u]=e[u];return o[t]=r(i),n.apply(this,o)}}function $(n){return(null==n?0:n.length)?p(n,1):[]}function P(n){return n&&n.length?n[0]:nn}function z(n,t,r){var e=null==n?0:n.length;r=typeof r=="number"?0>r?jn(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1}function C(n,t){return mn(n,g(t));
+}function G(n,t,r){return e(n,g(t),r,3>arguments.length,mn)}function J(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Fn(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=nn),r}}function M(n,t){return n===t||n!==n&&t!==t}function U(n){var t;return(t=null!=n)&&(t=n.length,t=typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t),t&&!V(n)}function V(n){return!!H(n)&&(n=hn.call(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n);
+}function H(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function K(n){return null!=n&&typeof n=="object"}function L(n){return typeof n=="number"||K(n)&&"[object Number]"==hn.call(n)}function Q(n){return typeof n=="string"||!Nn(n)&&K(n)&&"[object String]"==hn.call(n)}function W(n){return typeof n=="string"?n:null==n?"":n+""}function X(n){return null==n?[]:u(n,In(n))}function Y(n){return n}function Z(n,r,e){var u=In(r),o=h(r,u);null!=e||H(r)&&(o.length||!u.length)||(e=r,r=n,n=this,o=h(r,In(r)));
+var i=!(H(e)&&"chain"in e&&!e.chain),c=V(n);return mn(o,function(e){var u=r[e];n[e]=u,c&&(n.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=n(this.__wrapped__);return(e.__actions__=A(this.__actions__)).push({func:u,args:arguments,thisArg:n}),e.__chain__=r,e}return u.apply(n,t([this.value()],arguments))})}),n}var nn,tn=1/0,rn=/[&<>"']/g,en=RegExp(rn.source),un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=function(n){
return function(t){return null==n?nn:n[t]}}({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,yn=Object.create,bn=ln.propertyIsEnumerable,gn=on.isFinite,_n=function(n,t){return function(r){return n(t(r))}}(Object.keys,Object),jn=Math.max,dn=function(){function n(){}return function(t){return H(t)?yn?yn(t):(n.prototype=t,t=new n,n.prototype=nn,t):{}}}();i.prototype=dn(o.prototype),i.prototype.constructor=i;
-var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(h),On=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}(),xn=Y,An=String,En=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=_(r);t=qn(t),r=function(n){return o(u[n],n,u)}}return r=n(t,r,e),-1<r?u[o?t[r]:r]:nn}}(function(n,t,r){
-var e=n?n.length:0;if(!e)return-1;r=null==r?0:Tn(r),0>r&&(r=jn(e+r,0));n:{for(t=_(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),wn=x(function(n,t,r){return F(n,t,r)}),kn=x(function(n,t){return f(n,1,t)}),Nn=x(function(n,t,r){return f(n,Fn(t)||0,r)}),Sn=Array.isArray,Tn=Number,Fn=Number,Bn=S(function(n,t){N(t,_n(t),n)}),Rn=S(function(n,t){N(t,I(t),n)}),Dn=S(function(n,t,r,e){N(t,$n(t),n,e)}),In=x(function(n){return n.push(nn,c),Dn.apply(nn,n)}),qn=_n,$n=I,Pn=function(n){return xn(q(n,nn,$),n+"");
-}(function(n,t){return null==n?{}:O(n,d(t,An))});o.assignIn=Rn,o.before=J,o.bind=wn,o.chain=function(n){return n=o(n),n.__chain__=true,n},o.compact=function(n){return p(n,Boolean)},o.concat=function(){var n=arguments.length;if(!n)return[];for(var r=Array(n-1),e=arguments[0];n--;)r[n-1]=arguments[n];return t(Sn(e)?E(e):[e],s(r,1))},o.create=function(n,t){var r=dn(n);return t?Bn(r,t):r},o.defaults=In,o.defer=kn,o.delay=Nn,o.filter=function(n,t){return p(n,_(t))},o.flatten=$,o.flattenDeep=function(n){
-return n&&n.length?s(n,tn):[]},o.iteratee=_,o.keys=qn,o.map=function(n,t){return d(n,_(t))},o.matches=function(n){return m(Bn({},n))},o.mixin=Z,o.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},o.once=function(n){return J(2,n)},o.pick=Pn,o.slice=function(n,t,r){var e=n?n.length:0;return r=r===nn?e:+r,e?A(n,null==t?0:+t,r):[]},o.sortBy=function(n,t){var e=0;return t=_(t),d(d(n,function(n,r,u){return{value:n,index:e++,
-criteria:t(n,r,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==nn,o=null===r,i=r===r,c=e!==nn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r<e||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),r("value"))},o.tap=function(n,t){return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return U(n)?n.length?E(n):[]:X(n)},o.values=X,o.extend=Rn,Z(o,o),o.clone=function(n){return H(n)?Sn(n)?E(n):N(n,_n(n)):n},o.escape=function(n){
-return(n=W(n))&&en.test(n)?n.replace(rn,fn):n},o.every=function(n,t,r){return t=r?nn:t,a(n,_(t))},o.find=En,o.forEach=C,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=P,o.identity=Y,o.indexOf=z,o.isArguments=n,o.isArray=Sn,o.isBoolean=function(n){return true===n||false===n||K(n)&&"[object Boolean]"==hn.call(n)},o.isDate=function(n){return K(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return U(t)&&(Sn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){return b(n,t);
-},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=V,o.isNaN=function(n){return L(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=L,o.isObject=H,o.isRegExp=function(n){return H(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=n?n.length:0;return t?n[t-1]:nn},o.max=function(n){return n&&n.length?l(n,Y,y):nn},o.min=function(n){return n&&n.length?l(n,Y,j):nn},o.noConflict=function(){return on._===this&&(on._=vn),
-this},o.noop=function(){},o.reduce=G,o.result=function(n,t,r){return t=null==n?nn:n[t],t===nn&&(t=r),V(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=U(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?nn:t,w(n,_(t))},o.uniqueId=function(n){var t=++sn;return W(n)+t},o.each=C,o.first=P,Z(o,function(){var n={};return h(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.16.4",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
-var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Sn(u)?u:[],n)}return this[r](function(r){return t.apply(Sn(r)?r:[],n)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return k(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,
+var mn=function(n,t){return function(r,e){if(null==r)return r;if(!U(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(s),On=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}(),xn=Y,An=function(n){return function(t,r,e){var u=Object(t);if(!U(t)){var o=g(r);t=In(t),r=function(n){return o(u[n],n,u)}}return r=n(t,r,e),-1<r?u[o?t[r]:r]:nn}}(function(n,t,r){var e=null==n?0:n.length;
+if(!e)return-1;r=null==r?0:Fn(r),0>r&&(r=jn(e+r,0));n:{for(t=g(t),e=n.length,r+=-1;++r<e;)if(t(n[r],r,n)){n=r;break n}n=-1}return n}),En=O(function(n,t,r){return S(n,t,r)}),wn=O(function(n,t){return c(n,1,t)}),kn=O(function(n,t,r){return c(n,Sn(t)||0,r)}),Nn=Array.isArray,Fn=Number,Sn=Number,Tn=N(function(n,t){k(t,_n(t),n)}),Bn=N(function(n,t){k(t,I(t),n)}),Rn=N(function(n,t,r,e){k(t,qn(t),n,e)}),Dn=O(function(n){return n.push(nn,T),Rn.apply(nn,n)}),In=_n,qn=I,$n=function(n){return xn(q(n,nn,$),n+"");
+}(function(n,t){return null==n?{}:m(n,t)});o.assignIn=Bn,o.before=J,o.bind=En,o.chain=function(n){return n=o(n),n.__chain__=true,n},o.compact=function(n){return l(n,Boolean)},o.concat=function(){var n=arguments.length;if(!n)return[];for(var r=Array(n-1),e=arguments[0];n--;)r[n-1]=arguments[n];return t(Nn(e)?A(e):[e],p(r,1))},o.create=function(n,t){var r=dn(n);return null==t?r:Tn(r,t)},o.defaults=Dn,o.defer=wn,o.delay=kn,o.filter=function(n,t){return l(n,g(t))},o.flatten=$,o.flattenDeep=function(n){
+return(null==n?0:n.length)?p(n,tn):[]},o.iteratee=g,o.keys=In,o.map=function(n,t){return j(n,g(t))},o.matches=function(n){return d(Tn({},n))},o.mixin=Z,o.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");return function(){return!n.apply(this,arguments)}},o.once=function(n){return J(2,n)},o.pick=$n,o.slice=function(n,t,r){var e=null==n?0:n.length;return r=r===nn?e:+r,e?x(n,null==t?0:+t,r):[]},o.sortBy=function(n,t){var e=0;return t=g(t),j(j(n,function(n,r,u){return{
+value:n,index:e++,criteria:t(n,r,u)}}).sort(function(n,t){var r;n:{r=n.criteria;var e=t.criteria;if(r!==e){var u=r!==nn,o=null===r,i=r===r,c=e!==nn,f=null===e,a=e===e;if(!f&&r>e||o&&c&&a||!u&&a||!i){r=1;break n}if(!o&&r<e||f&&u&&i||!c&&i||!a){r=-1;break n}}r=0}return r||n.index-t.index}),r("value"))},o.tap=function(n,t){return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return U(n)?n.length?A(n):[]:X(n)},o.values=X,o.extend=Bn,Z(o,o),o.clone=function(n){return H(n)?Nn(n)?A(n):k(n,_n(n)):n;
+},o.escape=function(n){return(n=W(n))&&en.test(n)?n.replace(rn,fn):n},o.every=function(n,t,r){return t=r?nn:t,f(n,g(t))},o.find=An,o.forEach=C,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=P,o.identity=Y,o.indexOf=z,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n){return true===n||false===n||K(n)&&"[object Boolean]"==hn.call(n)},o.isDate=function(n){return K(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return U(t)&&(Nn(t)||Q(t)||V(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){
+return y(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=V,o.isNaN=function(n){return L(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=L,o.isObject=H,o.isRegExp=function(n){return K(n)&&"[object RegExp]"==hn.call(n)},o.isString=Q,o.isUndefined=function(n){return n===nn},o.last=function(n){var t=null==n?0:n.length;return t?n[t-1]:nn},o.max=function(n){return n&&n.length?a(n,Y,v):nn},o.min=function(n){return n&&n.length?a(n,Y,_):nn},o.noConflict=function(){return on._===this&&(on._=vn),
+this},o.noop=function(){},o.reduce=G,o.result=function(n,t,r){return t=null==n?nn:n[t],t===nn&&(t=r),V(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=U(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?nn:t,E(n,g(t))},o.uniqueId=function(n){var t=++sn;return W(n)+t},o.each=C,o.first=P,Z(o,function(){var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.4",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
+var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,
define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this); \ No newline at end of file
diff --git a/tools/eslint/node_modules/lodash/countBy.js b/tools/eslint/node_modules/lodash/countBy.js
index 15aafbdd5b..0e88abc276 100644
--- a/tools/eslint/node_modules/lodash/countBy.js
+++ b/tools/eslint/node_modules/lodash/countBy.js
@@ -18,8 +18,7 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* @since 0.5.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/create.js b/tools/eslint/node_modules/lodash/create.js
index a99067ff49..919edb850f 100644
--- a/tools/eslint/node_modules/lodash/create.js
+++ b/tools/eslint/node_modules/lodash/create.js
@@ -37,7 +37,7 @@ var baseAssign = require('./_baseAssign'),
*/
function create(prototype, properties) {
var result = baseCreate(prototype);
- return properties ? baseAssign(result, properties) : result;
+ return properties == null ? result : baseAssign(result, properties);
}
module.exports = create;
diff --git a/tools/eslint/node_modules/lodash/curry.js b/tools/eslint/node_modules/lodash/curry.js
index ce3910bc60..918db1a4a7 100644
--- a/tools/eslint/node_modules/lodash/curry.js
+++ b/tools/eslint/node_modules/lodash/curry.js
@@ -1,7 +1,7 @@
var createWrap = require('./_createWrap');
/** Used to compose bitmasks for function metadata. */
-var CURRY_FLAG = 8;
+var WRAP_CURRY_FLAG = 8;
/**
* Creates a function that accepts arguments of `func` and either invokes
@@ -46,7 +46,7 @@ var CURRY_FLAG = 8;
*/
function curry(func, arity, guard) {
arity = guard ? undefined : arity;
- var result = createWrap(func, CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
result.placeholder = curry.placeholder;
return result;
}
diff --git a/tools/eslint/node_modules/lodash/curryRight.js b/tools/eslint/node_modules/lodash/curryRight.js
index 2b7691fa6e..c85b6f339b 100644
--- a/tools/eslint/node_modules/lodash/curryRight.js
+++ b/tools/eslint/node_modules/lodash/curryRight.js
@@ -1,7 +1,7 @@
var createWrap = require('./_createWrap');
/** Used to compose bitmasks for function metadata. */
-var CURRY_RIGHT_FLAG = 16;
+var WRAP_CURRY_RIGHT_FLAG = 16;
/**
* This method is like `_.curry` except that arguments are applied to `func`
@@ -43,7 +43,7 @@ var CURRY_RIGHT_FLAG = 16;
*/
function curryRight(func, arity, guard) {
arity = guard ? undefined : arity;
- var result = createWrap(func, CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
result.placeholder = curryRight.placeholder;
return result;
}
diff --git a/tools/eslint/node_modules/lodash/deburr.js b/tools/eslint/node_modules/lodash/deburr.js
index bc08b05d5a..f85e314a0c 100644
--- a/tools/eslint/node_modules/lodash/deburr.js
+++ b/tools/eslint/node_modules/lodash/deburr.js
@@ -5,11 +5,13 @@ var deburrLetter = require('./_deburrLetter'),
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
/** Used to compose unicode character classes. */
-var rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0';
+var rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
/** Used to compose unicode capture groups. */
-var rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']';
+var rsCombo = '[' + rsComboRange + ']';
/**
* Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
diff --git a/tools/eslint/node_modules/lodash/defaults.js b/tools/eslint/node_modules/lodash/defaults.js
index 5333b42561..6b75ee08ce 100644
--- a/tools/eslint/node_modules/lodash/defaults.js
+++ b/tools/eslint/node_modules/lodash/defaults.js
@@ -1,7 +1,7 @@
var apply = require('./_apply'),
- assignInDefaults = require('./_assignInDefaults'),
assignInWith = require('./assignInWith'),
- baseRest = require('./_baseRest');
+ baseRest = require('./_baseRest'),
+ customDefaultsAssignIn = require('./_customDefaultsAssignIn');
/**
* Assigns own and inherited enumerable string keyed properties of source
@@ -25,7 +25,7 @@ var apply = require('./_apply'),
* // => { 'a': 1, 'b': 2 }
*/
var defaults = baseRest(function(args) {
- args.push(undefined, assignInDefaults);
+ args.push(undefined, customDefaultsAssignIn);
return apply(assignInWith, undefined, args);
});
diff --git a/tools/eslint/node_modules/lodash/defaultsDeep.js b/tools/eslint/node_modules/lodash/defaultsDeep.js
index 41680ed2d6..9b5fa3ee22 100644
--- a/tools/eslint/node_modules/lodash/defaultsDeep.js
+++ b/tools/eslint/node_modules/lodash/defaultsDeep.js
@@ -1,6 +1,6 @@
var apply = require('./_apply'),
baseRest = require('./_baseRest'),
- mergeDefaults = require('./_mergeDefaults'),
+ customDefaultsMerge = require('./_customDefaultsMerge'),
mergeWith = require('./mergeWith');
/**
@@ -23,7 +23,7 @@ var apply = require('./_apply'),
* // => { 'a': { 'b': 2, 'c': 3 } }
*/
var defaultsDeep = baseRest(function(args) {
- args.push(undefined, mergeDefaults);
+ args.push(undefined, customDefaultsMerge);
return apply(mergeWith, undefined, args);
});
diff --git a/tools/eslint/node_modules/lodash/drop.js b/tools/eslint/node_modules/lodash/drop.js
index 6124ef7693..d5c3cbaa4e 100644
--- a/tools/eslint/node_modules/lodash/drop.js
+++ b/tools/eslint/node_modules/lodash/drop.js
@@ -27,7 +27,7 @@ var baseSlice = require('./_baseSlice'),
* // => [1, 2, 3]
*/
function drop(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/dropRight.js b/tools/eslint/node_modules/lodash/dropRight.js
index 8aa3576e3f..441fe99681 100644
--- a/tools/eslint/node_modules/lodash/dropRight.js
+++ b/tools/eslint/node_modules/lodash/dropRight.js
@@ -27,7 +27,7 @@ var baseSlice = require('./_baseSlice'),
* // => [1, 2, 3]
*/
function dropRight(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/dropWhile.js b/tools/eslint/node_modules/lodash/dropWhile.js
index f89444ed4c..903ef568c9 100644
--- a/tools/eslint/node_modules/lodash/dropWhile.js
+++ b/tools/eslint/node_modules/lodash/dropWhile.js
@@ -11,8 +11,7 @@ var baseIteratee = require('./_baseIteratee'),
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/every.js b/tools/eslint/node_modules/lodash/every.js
index 114f40f1ab..25080dac49 100644
--- a/tools/eslint/node_modules/lodash/every.js
+++ b/tools/eslint/node_modules/lodash/every.js
@@ -19,8 +19,7 @@ var arrayEvery = require('./_arrayEvery'),
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
* @returns {boolean} Returns `true` if all elements pass the predicate check,
* else `false`.
diff --git a/tools/eslint/node_modules/lodash/fill.js b/tools/eslint/node_modules/lodash/fill.js
index 5730b7d129..ae13aa1c99 100644
--- a/tools/eslint/node_modules/lodash/fill.js
+++ b/tools/eslint/node_modules/lodash/fill.js
@@ -31,7 +31,7 @@ var baseFill = require('./_baseFill'),
* // => [4, '*', '*', 10]
*/
function fill(array, value, start, end) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/filter.js b/tools/eslint/node_modules/lodash/filter.js
index 3df977bb08..52616be8b0 100644
--- a/tools/eslint/node_modules/lodash/filter.js
+++ b/tools/eslint/node_modules/lodash/filter.js
@@ -15,8 +15,7 @@ var arrayFilter = require('./_arrayFilter'),
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
* @see _.reject
* @example
diff --git a/tools/eslint/node_modules/lodash/find.js b/tools/eslint/node_modules/lodash/find.js
index b6d0950d89..de732ccb49 100644
--- a/tools/eslint/node_modules/lodash/find.js
+++ b/tools/eslint/node_modules/lodash/find.js
@@ -11,8 +11,7 @@ var createFind = require('./_createFind'),
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {*} Returns the matched element, else `undefined`.
* @example
diff --git a/tools/eslint/node_modules/lodash/findIndex.js b/tools/eslint/node_modules/lodash/findIndex.js
index 0b11d9315c..4689069f81 100644
--- a/tools/eslint/node_modules/lodash/findIndex.js
+++ b/tools/eslint/node_modules/lodash/findIndex.js
@@ -14,8 +14,7 @@ var nativeMax = Math.max;
* @since 1.1.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {number} Returns the index of the found element, else `-1`.
* @example
@@ -42,7 +41,7 @@ var nativeMax = Math.max;
* // => 2
*/
function findIndex(array, predicate, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
diff --git a/tools/eslint/node_modules/lodash/findLast.js b/tools/eslint/node_modules/lodash/findLast.js
index 3ce09f47ec..70b4271dc3 100644
--- a/tools/eslint/node_modules/lodash/findLast.js
+++ b/tools/eslint/node_modules/lodash/findLast.js
@@ -10,8 +10,7 @@ var createFind = require('./_createFind'),
* @since 2.0.0
* @category Collection
* @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=collection.length-1] The index to search from.
* @returns {*} Returns the matched element, else `undefined`.
* @example
diff --git a/tools/eslint/node_modules/lodash/findLastIndex.js b/tools/eslint/node_modules/lodash/findLastIndex.js
index 63e8770442..7da3431f6d 100644
--- a/tools/eslint/node_modules/lodash/findLastIndex.js
+++ b/tools/eslint/node_modules/lodash/findLastIndex.js
@@ -15,8 +15,7 @@ var nativeMax = Math.max,
* @since 2.0.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=array.length-1] The index to search from.
* @returns {number} Returns the index of the found element, else `-1`.
* @example
@@ -43,7 +42,7 @@ var nativeMax = Math.max,
* // => 0
*/
function findLastIndex(array, predicate, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
diff --git a/tools/eslint/node_modules/lodash/flatMap.js b/tools/eslint/node_modules/lodash/flatMap.js
index 8c5d83281b..e6685068f5 100644
--- a/tools/eslint/node_modules/lodash/flatMap.js
+++ b/tools/eslint/node_modules/lodash/flatMap.js
@@ -11,8 +11,7 @@ var baseFlatten = require('./_baseFlatten'),
* @since 4.0.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new flattened array.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/flatMapDeep.js b/tools/eslint/node_modules/lodash/flatMapDeep.js
index 9359882ff0..4653d60333 100644
--- a/tools/eslint/node_modules/lodash/flatMapDeep.js
+++ b/tools/eslint/node_modules/lodash/flatMapDeep.js
@@ -13,8 +13,7 @@ var INFINITY = 1 / 0;
* @since 4.7.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new flattened array.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/flatMapDepth.js b/tools/eslint/node_modules/lodash/flatMapDepth.js
index 2182bed67d..6d72005c97 100644
--- a/tools/eslint/node_modules/lodash/flatMapDepth.js
+++ b/tools/eslint/node_modules/lodash/flatMapDepth.js
@@ -11,8 +11,7 @@ var baseFlatten = require('./_baseFlatten'),
* @since 4.7.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @param {number} [depth=1] The maximum recursion depth.
* @returns {Array} Returns the new flattened array.
* @example
diff --git a/tools/eslint/node_modules/lodash/flatten.js b/tools/eslint/node_modules/lodash/flatten.js
index bd4f439789..3f09f7f770 100644
--- a/tools/eslint/node_modules/lodash/flatten.js
+++ b/tools/eslint/node_modules/lodash/flatten.js
@@ -15,7 +15,7 @@ var baseFlatten = require('./_baseFlatten');
* // => [1, 2, [3, [4]], 5]
*/
function flatten(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, 1) : [];
}
diff --git a/tools/eslint/node_modules/lodash/flattenDeep.js b/tools/eslint/node_modules/lodash/flattenDeep.js
index c20c781a84..8ad585cf49 100644
--- a/tools/eslint/node_modules/lodash/flattenDeep.js
+++ b/tools/eslint/node_modules/lodash/flattenDeep.js
@@ -18,7 +18,7 @@ var INFINITY = 1 / 0;
* // => [1, 2, 3, 4, 5]
*/
function flattenDeep(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, INFINITY) : [];
}
diff --git a/tools/eslint/node_modules/lodash/flattenDepth.js b/tools/eslint/node_modules/lodash/flattenDepth.js
index a0f4b5259a..441fdcc224 100644
--- a/tools/eslint/node_modules/lodash/flattenDepth.js
+++ b/tools/eslint/node_modules/lodash/flattenDepth.js
@@ -22,7 +22,7 @@ var baseFlatten = require('./_baseFlatten'),
* // => [1, 2, 3, [4], 5]
*/
function flattenDepth(array, depth) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/flip.js b/tools/eslint/node_modules/lodash/flip.js
index 02e3fc27ef..c28dd7896f 100644
--- a/tools/eslint/node_modules/lodash/flip.js
+++ b/tools/eslint/node_modules/lodash/flip.js
@@ -1,7 +1,7 @@
var createWrap = require('./_createWrap');
/** Used to compose bitmasks for function metadata. */
-var FLIP_FLAG = 512;
+var WRAP_FLIP_FLAG = 512;
/**
* Creates a function that invokes `func` with arguments reversed.
@@ -22,7 +22,7 @@ var FLIP_FLAG = 512;
* // => ['d', 'c', 'b', 'a']
*/
function flip(func) {
- return createWrap(func, FLIP_FLAG);
+ return createWrap(func, WRAP_FLIP_FLAG);
}
module.exports = flip;
diff --git a/tools/eslint/node_modules/lodash/forEach.js b/tools/eslint/node_modules/lodash/forEach.js
index 0ce879f934..c64eaa73f1 100644
--- a/tools/eslint/node_modules/lodash/forEach.js
+++ b/tools/eslint/node_modules/lodash/forEach.js
@@ -1,6 +1,6 @@
var arrayEach = require('./_arrayEach'),
baseEach = require('./_baseEach'),
- baseIteratee = require('./_baseIteratee'),
+ castFunction = require('./_castFunction'),
isArray = require('./isArray');
/**
@@ -35,7 +35,7 @@ var arrayEach = require('./_arrayEach'),
*/
function forEach(collection, iteratee) {
var func = isArray(collection) ? arrayEach : baseEach;
- return func(collection, baseIteratee(iteratee, 3));
+ return func(collection, castFunction(iteratee));
}
module.exports = forEach;
diff --git a/tools/eslint/node_modules/lodash/forEachRight.js b/tools/eslint/node_modules/lodash/forEachRight.js
index c5d6e06dc1..7390ebaf85 100644
--- a/tools/eslint/node_modules/lodash/forEachRight.js
+++ b/tools/eslint/node_modules/lodash/forEachRight.js
@@ -1,6 +1,6 @@
var arrayEachRight = require('./_arrayEachRight'),
baseEachRight = require('./_baseEachRight'),
- baseIteratee = require('./_baseIteratee'),
+ castFunction = require('./_castFunction'),
isArray = require('./isArray');
/**
@@ -25,7 +25,7 @@ var arrayEachRight = require('./_arrayEachRight'),
*/
function forEachRight(collection, iteratee) {
var func = isArray(collection) ? arrayEachRight : baseEachRight;
- return func(collection, baseIteratee(iteratee, 3));
+ return func(collection, castFunction(iteratee));
}
module.exports = forEachRight;
diff --git a/tools/eslint/node_modules/lodash/forIn.js b/tools/eslint/node_modules/lodash/forIn.js
index 2e757da449..583a59638f 100644
--- a/tools/eslint/node_modules/lodash/forIn.js
+++ b/tools/eslint/node_modules/lodash/forIn.js
@@ -1,5 +1,5 @@
var baseFor = require('./_baseFor'),
- baseIteratee = require('./_baseIteratee'),
+ castFunction = require('./_castFunction'),
keysIn = require('./keysIn');
/**
@@ -33,7 +33,7 @@ var baseFor = require('./_baseFor'),
function forIn(object, iteratee) {
return object == null
? object
- : baseFor(object, baseIteratee(iteratee, 3), keysIn);
+ : baseFor(object, castFunction(iteratee), keysIn);
}
module.exports = forIn;
diff --git a/tools/eslint/node_modules/lodash/forInRight.js b/tools/eslint/node_modules/lodash/forInRight.js
index a47d6bb43f..4aedf58af5 100644
--- a/tools/eslint/node_modules/lodash/forInRight.js
+++ b/tools/eslint/node_modules/lodash/forInRight.js
@@ -1,5 +1,5 @@
var baseForRight = require('./_baseForRight'),
- baseIteratee = require('./_baseIteratee'),
+ castFunction = require('./_castFunction'),
keysIn = require('./keysIn');
/**
@@ -31,7 +31,7 @@ var baseForRight = require('./_baseForRight'),
function forInRight(object, iteratee) {
return object == null
? object
- : baseForRight(object, baseIteratee(iteratee, 3), keysIn);
+ : baseForRight(object, castFunction(iteratee), keysIn);
}
module.exports = forInRight;
diff --git a/tools/eslint/node_modules/lodash/forOwn.js b/tools/eslint/node_modules/lodash/forOwn.js
index 034c30b125..94eed8402a 100644
--- a/tools/eslint/node_modules/lodash/forOwn.js
+++ b/tools/eslint/node_modules/lodash/forOwn.js
@@ -1,5 +1,5 @@
var baseForOwn = require('./_baseForOwn'),
- baseIteratee = require('./_baseIteratee');
+ castFunction = require('./_castFunction');
/**
* Iterates over own enumerable string keyed properties of an object and
@@ -30,7 +30,7 @@ var baseForOwn = require('./_baseForOwn'),
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
*/
function forOwn(object, iteratee) {
- return object && baseForOwn(object, baseIteratee(iteratee, 3));
+ return object && baseForOwn(object, castFunction(iteratee));
}
module.exports = forOwn;
diff --git a/tools/eslint/node_modules/lodash/forOwnRight.js b/tools/eslint/node_modules/lodash/forOwnRight.js
index 0f7aab85df..86f338f032 100644
--- a/tools/eslint/node_modules/lodash/forOwnRight.js
+++ b/tools/eslint/node_modules/lodash/forOwnRight.js
@@ -1,5 +1,5 @@
var baseForOwnRight = require('./_baseForOwnRight'),
- baseIteratee = require('./_baseIteratee');
+ castFunction = require('./_castFunction');
/**
* This method is like `_.forOwn` except that it iterates over properties of
@@ -28,7 +28,7 @@ var baseForOwnRight = require('./_baseForOwnRight'),
* // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
*/
function forOwnRight(object, iteratee) {
- return object && baseForOwnRight(object, baseIteratee(iteratee, 3));
+ return object && baseForOwnRight(object, castFunction(iteratee));
}
module.exports = forOwnRight;
diff --git a/tools/eslint/node_modules/lodash/fp/_baseConvert.js b/tools/eslint/node_modules/lodash/fp/_baseConvert.js
index 0def5f67cb..7af27655bc 100644
--- a/tools/eslint/node_modules/lodash/fp/_baseConvert.js
+++ b/tools/eslint/node_modules/lodash/fp/_baseConvert.js
@@ -1,7 +1,9 @@
var mapping = require('./_mapping'),
- mutateMap = mapping.mutate,
fallbackHolder = require('./placeholder');
+/** Built-in value reference. */
+var push = Array.prototype.push;
+
/**
* Creates a function, with an arity of `n`, that invokes `func` with the
* arguments it receives.
@@ -63,6 +65,37 @@ function createCloner(func) {
}
/**
+ * A specialized version of `_.spread` which flattens the spread array into
+ * the arguments of the invoked `func`.
+ *
+ * @private
+ * @param {Function} func The function to spread arguments over.
+ * @param {number} start The start position of the spread.
+ * @returns {Function} Returns the new function.
+ */
+function flatSpread(func, start) {
+ return function() {
+ var length = arguments.length,
+ lastIndex = length - 1,
+ args = Array(length);
+
+ while (length--) {
+ args[length] = arguments[length];
+ }
+ var array = args[start],
+ otherArgs = args.slice(0, start);
+
+ if (array) {
+ push.apply(otherArgs, array);
+ }
+ if (start != lastIndex) {
+ push.apply(otherArgs, args.slice(start + 1));
+ }
+ return func.apply(this, otherArgs);
+ };
+}
+
+/**
* Creates a function that wraps `func` and uses `cloner` to clone the first
* argument it receives.
*
@@ -142,7 +175,6 @@ function baseConvert(util, name, func, options) {
'iteratee': util.iteratee,
'keys': util.keys,
'rearg': util.rearg,
- 'spread': util.spread,
'toInteger': util.toInteger,
'toPath': util.toPath
};
@@ -156,7 +188,6 @@ function baseConvert(util, name, func, options) {
isFunction = helpers.isFunction,
keys = helpers.keys,
rearg = helpers.rearg,
- spread = helpers.spread,
toInteger = helpers.toInteger,
toPath = helpers.toPath;
@@ -283,7 +314,7 @@ function baseConvert(util, name, func, options) {
var data = mapping.methodSpread[name],
start = data && data.start;
- return start === undefined ? ary(func, n) : spread(func, start);
+ return start === undefined ? ary(func, n) : flatSpread(func, start);
}
return func;
}
@@ -351,13 +382,16 @@ function baseConvert(util, name, func, options) {
* @returns {Function} Returns the new converter function.
*/
function createConverter(name, func) {
- var oldOptions = options;
+ var realName = mapping.aliasToReal[name] || name,
+ methodName = mapping.remap[realName] || realName,
+ oldOptions = options;
+
return function(options) {
var newUtil = isLib ? pristine : helpers,
- newFunc = isLib ? pristine[name] : func,
+ newFunc = isLib ? pristine[methodName] : func,
newOptions = assign(assign({}, oldOptions), options);
- return baseConvert(newUtil, name, newFunc, newOptions);
+ return baseConvert(newUtil, realName, newFunc, newOptions);
};
}
@@ -428,38 +462,37 @@ function baseConvert(util, name, func, options) {
* @returns {Function} Returns the converted function.
*/
function wrap(name, func) {
- name = mapping.aliasToReal[name] || name;
-
var result,
+ realName = mapping.aliasToReal[name] || name,
wrapped = func,
- wrapper = wrappers[name];
+ wrapper = wrappers[realName];
if (wrapper) {
wrapped = wrapper(func);
}
else if (config.immutable) {
- if (mutateMap.array[name]) {
+ if (mapping.mutate.array[realName]) {
wrapped = wrapImmutable(func, cloneArray);
}
- else if (mutateMap.object[name]) {
+ else if (mapping.mutate.object[realName]) {
wrapped = wrapImmutable(func, createCloner(func));
}
- else if (mutateMap.set[name]) {
+ else if (mapping.mutate.set[realName]) {
wrapped = wrapImmutable(func, cloneByPath);
}
}
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(otherName) {
- if (name == otherName) {
- var spreadData = mapping.methodSpread[name],
- afterRearg = spreadData && spreadData.afterRearg;
+ if (realName == otherName) {
+ var data = mapping.methodSpread[realName],
+ afterRearg = data && data.afterRearg;
result = afterRearg
- ? castFixed(name, castRearg(name, wrapped, aryKey), aryKey)
- : castRearg(name, castFixed(name, wrapped, aryKey), aryKey);
+ ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)
+ : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);
- result = castCap(name, result);
- result = castCurry(name, result, aryKey);
+ result = castCap(realName, result);
+ result = castCurry(realName, result, aryKey);
return false;
}
});
@@ -472,8 +505,8 @@ function baseConvert(util, name, func, options) {
return func.apply(this, arguments);
};
}
- result.convert = createConverter(name, func);
- if (mapping.placeholder[name]) {
+ result.convert = createConverter(realName, func);
+ if (mapping.placeholder[realName]) {
setPlaceholder = true;
result.placeholder = func.placeholder = placeholder;
}
diff --git a/tools/eslint/node_modules/lodash/fp/_mapping.js b/tools/eslint/node_modules/lodash/fp/_mapping.js
index 7fa8e672e0..8f5ddf2d09 100644
--- a/tools/eslint/node_modules/lodash/fp/_mapping.js
+++ b/tools/eslint/node_modules/lodash/fp/_mapping.js
@@ -167,14 +167,15 @@ exports.iterateeAry = {
/** Used to map method names to iteratee rearg configs. */
exports.iterateeRearg = {
- 'mapKeys': [1]
+ 'mapKeys': [1],
+ 'reduceRight': [1, 0]
};
/** Used to map method names to rearg configs. */
exports.methodRearg = {
- 'assignInAllWith': [1, 2, 0],
+ 'assignInAllWith': [1, 0],
'assignInWith': [1, 2, 0],
- 'assignAllWith': [1, 2, 0],
+ 'assignAllWith': [1, 0],
'assignWith': [1, 2, 0],
'differenceBy': [1, 2, 0],
'differenceWith': [1, 2, 0],
@@ -183,7 +184,7 @@ exports.methodRearg = {
'intersectionWith': [1, 2, 0],
'isEqualWith': [1, 2, 0],
'isMatchWith': [2, 1, 0],
- 'mergeAllWith': [1, 2, 0],
+ 'mergeAllWith': [1, 0],
'mergeWith': [1, 2, 0],
'padChars': [2, 1, 0],
'padCharsEnd': [2, 1, 0],
@@ -206,15 +207,15 @@ exports.methodRearg = {
/** Used to map method names to spread configs. */
exports.methodSpread = {
'assignAll': { 'start': 0 },
- 'assignAllWith': { 'afterRearg': true, 'start': 1 },
+ 'assignAllWith': { 'start': 0 },
'assignInAll': { 'start': 0 },
- 'assignInAllWith': { 'afterRearg': true, 'start': 1 },
+ 'assignInAllWith': { 'start': 0 },
'defaultsAll': { 'start': 0 },
'defaultsDeepAll': { 'start': 0 },
'invokeArgs': { 'start': 2 },
'invokeArgsMap': { 'start': 2 },
'mergeAll': { 'start': 0 },
- 'mergeAllWith': { 'afterRearg': true, 'start': 1 },
+ 'mergeAllWith': { 'start': 0 },
'partial': { 'start': 1 },
'partialRight': { 'start': 1 },
'without': { 'start': 1 },
diff --git a/tools/eslint/node_modules/lodash/fp/_util.js b/tools/eslint/node_modules/lodash/fp/_util.js
index f8148129eb..7084463026 100644
--- a/tools/eslint/node_modules/lodash/fp/_util.js
+++ b/tools/eslint/node_modules/lodash/fp/_util.js
@@ -9,7 +9,6 @@ module.exports = {
'iteratee': require('../iteratee'),
'keys': require('../_baseKeys'),
'rearg': require('../rearg'),
- 'spread': require('../spread'),
'toInteger': require('../toInteger'),
'toPath': require('../toPath')
};
diff --git a/tools/eslint/node_modules/lodash/fromPairs.js b/tools/eslint/node_modules/lodash/fromPairs.js
index 39f5fb3429..ee7940d240 100644
--- a/tools/eslint/node_modules/lodash/fromPairs.js
+++ b/tools/eslint/node_modules/lodash/fromPairs.js
@@ -15,7 +15,7 @@
*/
function fromPairs(pairs) {
var index = -1,
- length = pairs ? pairs.length : 0,
+ length = pairs == null ? 0 : pairs.length,
result = {};
while (++index < length) {
diff --git a/tools/eslint/node_modules/lodash/groupBy.js b/tools/eslint/node_modules/lodash/groupBy.js
index 5b73b41043..babf4f6baa 100644
--- a/tools/eslint/node_modules/lodash/groupBy.js
+++ b/tools/eslint/node_modules/lodash/groupBy.js
@@ -19,8 +19,7 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/indexOf.js b/tools/eslint/node_modules/lodash/indexOf.js
index 8c9b86dc6a..3c644af2ef 100644
--- a/tools/eslint/node_modules/lodash/indexOf.js
+++ b/tools/eslint/node_modules/lodash/indexOf.js
@@ -28,7 +28,7 @@ var nativeMax = Math.max;
* // => 3
*/
function indexOf(array, value, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
diff --git a/tools/eslint/node_modules/lodash/initial.js b/tools/eslint/node_modules/lodash/initial.js
index 63e0c93ec9..f47fc50928 100644
--- a/tools/eslint/node_modules/lodash/initial.js
+++ b/tools/eslint/node_modules/lodash/initial.js
@@ -15,7 +15,7 @@ var baseSlice = require('./_baseSlice');
* // => [1, 2]
*/
function initial(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 0, -1) : [];
}
diff --git a/tools/eslint/node_modules/lodash/intersectionWith.js b/tools/eslint/node_modules/lodash/intersectionWith.js
index 0ba2f9a61e..63cabfaa40 100644
--- a/tools/eslint/node_modules/lodash/intersectionWith.js
+++ b/tools/eslint/node_modules/lodash/intersectionWith.js
@@ -29,9 +29,8 @@ var intersectionWith = baseRest(function(arrays) {
var comparator = last(arrays),
mapped = arrayMap(arrays, castArrayLikeObject);
- if (comparator === last(mapped)) {
- comparator = undefined;
- } else {
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ if (comparator) {
mapped.pop();
}
return (mapped.length && mapped[0] === arrays[0])
diff --git a/tools/eslint/node_modules/lodash/invokeMap.js b/tools/eslint/node_modules/lodash/invokeMap.js
index f3302db86a..8da5126c61 100644
--- a/tools/eslint/node_modules/lodash/invokeMap.js
+++ b/tools/eslint/node_modules/lodash/invokeMap.js
@@ -2,8 +2,7 @@ var apply = require('./_apply'),
baseEach = require('./_baseEach'),
baseInvoke = require('./_baseInvoke'),
baseRest = require('./_baseRest'),
- isArrayLike = require('./isArrayLike'),
- isKey = require('./_isKey');
+ isArrayLike = require('./isArrayLike');
/**
* Invokes the method at `path` of each element in `collection`, returning
@@ -31,12 +30,10 @@ var apply = require('./_apply'),
var invokeMap = baseRest(function(collection, path, args) {
var index = -1,
isFunc = typeof path == 'function',
- isProp = isKey(path),
result = isArrayLike(collection) ? Array(collection.length) : [];
baseEach(collection, function(value) {
- var func = isFunc ? path : ((isProp && value != null) ? value[path] : undefined);
- result[++index] = func ? apply(func, value, args) : baseInvoke(value, path, args);
+ result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
});
return result;
});
diff --git a/tools/eslint/node_modules/lodash/isBoolean.js b/tools/eslint/node_modules/lodash/isBoolean.js
index 45cbdc1ce8..a43ed4b8fc 100644
--- a/tools/eslint/node_modules/lodash/isBoolean.js
+++ b/tools/eslint/node_modules/lodash/isBoolean.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var boolTag = '[object Boolean]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a boolean primitive or object.
*
@@ -32,7 +23,7 @@ var objectToString = objectProto.toString;
*/
function isBoolean(value) {
return value === true || value === false ||
- (isObjectLike(value) && objectToString.call(value) == boolTag);
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
}
module.exports = isBoolean;
diff --git a/tools/eslint/node_modules/lodash/isElement.js b/tools/eslint/node_modules/lodash/isElement.js
index 0c151a4759..76ae29c3bf 100644
--- a/tools/eslint/node_modules/lodash/isElement.js
+++ b/tools/eslint/node_modules/lodash/isElement.js
@@ -19,7 +19,7 @@ var isObjectLike = require('./isObjectLike'),
* // => false
*/
function isElement(value) {
- return value != null && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value);
+ return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
}
module.exports = isElement;
diff --git a/tools/eslint/node_modules/lodash/isEmpty.js b/tools/eslint/node_modules/lodash/isEmpty.js
index e190425701..3597294a47 100644
--- a/tools/eslint/node_modules/lodash/isEmpty.js
+++ b/tools/eslint/node_modules/lodash/isEmpty.js
@@ -51,6 +51,9 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* // => false
*/
function isEmpty(value) {
+ if (value == null) {
+ return true;
+ }
if (isArrayLike(value) &&
(isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
isBuffer(value) || isTypedArray(value) || isArguments(value))) {
diff --git a/tools/eslint/node_modules/lodash/isEqual.js b/tools/eslint/node_modules/lodash/isEqual.js
index 8a54126215..5e23e76c94 100644
--- a/tools/eslint/node_modules/lodash/isEqual.js
+++ b/tools/eslint/node_modules/lodash/isEqual.js
@@ -8,7 +8,7 @@ var baseIsEqual = require('./_baseIsEqual');
* date objects, error objects, maps, numbers, `Object` objects, regexes,
* sets, strings, symbols, and typed arrays. `Object` objects are compared
* by their own, not inherited, enumerable properties. Functions and DOM
- * nodes are **not** supported.
+ * nodes are compared by strict equality, i.e. `===`.
*
* @static
* @memberOf _
diff --git a/tools/eslint/node_modules/lodash/isEqualWith.js b/tools/eslint/node_modules/lodash/isEqualWith.js
index fb83d5010a..21bdc7ffe3 100644
--- a/tools/eslint/node_modules/lodash/isEqualWith.js
+++ b/tools/eslint/node_modules/lodash/isEqualWith.js
@@ -35,7 +35,7 @@ var baseIsEqual = require('./_baseIsEqual');
function isEqualWith(value, other, customizer) {
customizer = typeof customizer == 'function' ? customizer : undefined;
var result = customizer ? customizer(value, other) : undefined;
- return result === undefined ? baseIsEqual(value, other, customizer) : !!result;
+ return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
}
module.exports = isEqualWith;
diff --git a/tools/eslint/node_modules/lodash/isError.js b/tools/eslint/node_modules/lodash/isError.js
index 85884b5202..b4f41e000d 100644
--- a/tools/eslint/node_modules/lodash/isError.js
+++ b/tools/eslint/node_modules/lodash/isError.js
@@ -1,17 +1,10 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike'),
+ isPlainObject = require('./isPlainObject');
/** `Object#toString` result references. */
-var errorTag = '[object Error]';
-
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
+var domExcTag = '[object DOMException]',
+ errorTag = '[object Error]';
/**
* Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
@@ -35,8 +28,9 @@ function isError(value) {
if (!isObjectLike(value)) {
return false;
}
- return (objectToString.call(value) == errorTag) ||
- (typeof value.message == 'string' && typeof value.name == 'string');
+ var tag = baseGetTag(value);
+ return tag == errorTag || tag == domExcTag ||
+ (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
}
module.exports = isError;
diff --git a/tools/eslint/node_modules/lodash/isFunction.js b/tools/eslint/node_modules/lodash/isFunction.js
index 17ccf32391..907a8cd8bf 100644
--- a/tools/eslint/node_modules/lodash/isFunction.js
+++ b/tools/eslint/node_modules/lodash/isFunction.js
@@ -1,20 +1,12 @@
-var isObject = require('./isObject');
+var baseGetTag = require('./_baseGetTag'),
+ isObject = require('./isObject');
/** `Object#toString` result references. */
-var funcTag = '[object Function]',
+var asyncTag = '[object AsyncFunction]',
+ funcTag = '[object Function]',
genTag = '[object GeneratorFunction]',
proxyTag = '[object Proxy]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -33,10 +25,13 @@ var objectToString = objectProto.toString;
* // => false
*/
function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag || tag == proxyTag;
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
module.exports = isFunction;
diff --git a/tools/eslint/node_modules/lodash/isNative.js b/tools/eslint/node_modules/lodash/isNative.js
index 310b39d2bc..f0cb8d5800 100644
--- a/tools/eslint/node_modules/lodash/isNative.js
+++ b/tools/eslint/node_modules/lodash/isNative.js
@@ -2,7 +2,7 @@ var baseIsNative = require('./_baseIsNative'),
isMaskable = require('./_isMaskable');
/** Error message constants. */
-var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://github.com/es-shims.';
+var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';
/**
* Checks if `value` is a pristine native function.
diff --git a/tools/eslint/node_modules/lodash/isNumber.js b/tools/eslint/node_modules/lodash/isNumber.js
index b8662920e7..cd34ee4641 100644
--- a/tools/eslint/node_modules/lodash/isNumber.js
+++ b/tools/eslint/node_modules/lodash/isNumber.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var numberTag = '[object Number]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a `Number` primitive or object.
*
@@ -41,7 +32,7 @@ var objectToString = objectProto.toString;
*/
function isNumber(value) {
return typeof value == 'number' ||
- (isObjectLike(value) && objectToString.call(value) == numberTag);
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
}
module.exports = isNumber;
diff --git a/tools/eslint/node_modules/lodash/isPlainObject.js b/tools/eslint/node_modules/lodash/isPlainObject.js
index 035fbb2a12..238737313f 100644
--- a/tools/eslint/node_modules/lodash/isPlainObject.js
+++ b/tools/eslint/node_modules/lodash/isPlainObject.js
@@ -1,4 +1,5 @@
-var getPrototype = require('./_getPrototype'),
+var baseGetTag = require('./_baseGetTag'),
+ getPrototype = require('./_getPrototype'),
isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
@@ -18,13 +19,6 @@ var hasOwnProperty = objectProto.hasOwnProperty;
var objectCtorString = funcToString.call(Object);
/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
-/**
* Checks if `value` is a plain object, that is, an object created by the
* `Object` constructor or one with a `[[Prototype]]` of `null`.
*
@@ -53,7 +47,7 @@ var objectToString = objectProto.toString;
* // => true
*/
function isPlainObject(value) {
- if (!isObjectLike(value) || objectToString.call(value) != objectTag) {
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
return false;
}
var proto = getPrototype(value);
@@ -61,8 +55,8 @@ function isPlainObject(value) {
return true;
}
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
- return (typeof Ctor == 'function' &&
- Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
+ funcToString.call(Ctor) == objectCtorString;
}
module.exports = isPlainObject;
diff --git a/tools/eslint/node_modules/lodash/isString.js b/tools/eslint/node_modules/lodash/isString.js
index 7b8be86ced..627eb9c384 100644
--- a/tools/eslint/node_modules/lodash/isString.js
+++ b/tools/eslint/node_modules/lodash/isString.js
@@ -1,19 +1,10 @@
-var isArray = require('./isArray'),
+var baseGetTag = require('./_baseGetTag'),
+ isArray = require('./isArray'),
isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var stringTag = '[object String]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a `String` primitive or object.
*
@@ -33,7 +24,7 @@ var objectToString = objectProto.toString;
*/
function isString(value) {
return typeof value == 'string' ||
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
}
module.exports = isString;
diff --git a/tools/eslint/node_modules/lodash/isSymbol.js b/tools/eslint/node_modules/lodash/isSymbol.js
index aef51150f5..dfb60b97f6 100644
--- a/tools/eslint/node_modules/lodash/isSymbol.js
+++ b/tools/eslint/node_modules/lodash/isSymbol.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a `Symbol` primitive or object.
*
@@ -32,7 +23,7 @@ var objectToString = objectProto.toString;
*/
function isSymbol(value) {
return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
}
module.exports = isSymbol;
diff --git a/tools/eslint/node_modules/lodash/isWeakSet.js b/tools/eslint/node_modules/lodash/isWeakSet.js
index 290164b4b5..e628b261cf 100644
--- a/tools/eslint/node_modules/lodash/isWeakSet.js
+++ b/tools/eslint/node_modules/lodash/isWeakSet.js
@@ -1,18 +1,9 @@
-var isObjectLike = require('./isObjectLike');
+var baseGetTag = require('./_baseGetTag'),
+ isObjectLike = require('./isObjectLike');
/** `Object#toString` result references. */
var weakSetTag = '[object WeakSet]';
-/** Used for built-in method references. */
-var objectProto = Object.prototype;
-
-/**
- * Used to resolve the
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
- * of values.
- */
-var objectToString = objectProto.toString;
-
/**
* Checks if `value` is classified as a `WeakSet` object.
*
@@ -31,7 +22,7 @@ var objectToString = objectProto.toString;
* // => false
*/
function isWeakSet(value) {
- return isObjectLike(value) && objectToString.call(value) == weakSetTag;
+ return isObjectLike(value) && baseGetTag(value) == weakSetTag;
}
module.exports = isWeakSet;
diff --git a/tools/eslint/node_modules/lodash/iteratee.js b/tools/eslint/node_modules/lodash/iteratee.js
index 8ec0588767..61b73a8c05 100644
--- a/tools/eslint/node_modules/lodash/iteratee.js
+++ b/tools/eslint/node_modules/lodash/iteratee.js
@@ -1,6 +1,9 @@
var baseClone = require('./_baseClone'),
baseIteratee = require('./_baseIteratee');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a function that invokes `func` with the arguments of the created
* function. If `func` is a property name, the created function returns the
@@ -44,7 +47,7 @@ var baseClone = require('./_baseClone'),
* // => ['def']
*/
function iteratee(func) {
- return baseIteratee(typeof func == 'function' ? func : baseClone(func, true));
+ return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
}
module.exports = iteratee;
diff --git a/tools/eslint/node_modules/lodash/join.js b/tools/eslint/node_modules/lodash/join.js
index fe31067664..45de079ff2 100644
--- a/tools/eslint/node_modules/lodash/join.js
+++ b/tools/eslint/node_modules/lodash/join.js
@@ -20,7 +20,7 @@ var nativeJoin = arrayProto.join;
* // => 'a~b~c'
*/
function join(array, separator) {
- return array ? nativeJoin.call(array, separator) : '';
+ return array == null ? '' : nativeJoin.call(array, separator);
}
module.exports = join;
diff --git a/tools/eslint/node_modules/lodash/keyBy.js b/tools/eslint/node_modules/lodash/keyBy.js
index d0047a5f28..acc007a0ab 100644
--- a/tools/eslint/node_modules/lodash/keyBy.js
+++ b/tools/eslint/node_modules/lodash/keyBy.js
@@ -12,8 +12,7 @@ var baseAssignValue = require('./_baseAssignValue'),
* @since 4.0.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/last.js b/tools/eslint/node_modules/lodash/last.js
index 6402a4c33a..cad1eafafa 100644
--- a/tools/eslint/node_modules/lodash/last.js
+++ b/tools/eslint/node_modules/lodash/last.js
@@ -13,7 +13,7 @@
* // => 3
*/
function last(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? array[length - 1] : undefined;
}
diff --git a/tools/eslint/node_modules/lodash/lastIndexOf.js b/tools/eslint/node_modules/lodash/lastIndexOf.js
index 9201cb9a28..dabfb613a5 100644
--- a/tools/eslint/node_modules/lodash/lastIndexOf.js
+++ b/tools/eslint/node_modules/lodash/lastIndexOf.js
@@ -29,7 +29,7 @@ var nativeMax = Math.max,
* // => 1
*/
function lastIndexOf(array, value, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
diff --git a/tools/eslint/node_modules/lodash/lodash.js b/tools/eslint/node_modules/lodash/lodash.js
index 361e74d900..b39ddce69b 100644
--- a/tools/eslint/node_modules/lodash/lodash.js
+++ b/tools/eslint/node_modules/lodash/lodash.js
@@ -1,7 +1,7 @@
/**
* @license
- * lodash <https://lodash.com/>
- * Copyright jQuery Foundation and other contributors <https://jquery.org/>
+ * Lodash <https://lodash.com/>
+ * Copyright JS Foundation and other contributors <https://js.foundation/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
@@ -12,13 +12,13 @@
var undefined;
/** Used as the semantic version number. */
- var VERSION = '4.16.4';
+ var VERSION = '4.17.4';
/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
/** Error message constants. */
- var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://github.com/es-shims.',
+ var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
FUNC_ERROR_TEXT = 'Expected a function';
/** Used to stand-in for `undefined` hash values. */
@@ -30,28 +30,33 @@
/** Used as the internal argument placeholder. */
var PLACEHOLDER = '__lodash_placeholder__';
+ /** Used to compose bitmasks for cloning. */
+ var CLONE_DEEP_FLAG = 1,
+ CLONE_FLAT_FLAG = 2,
+ CLONE_SYMBOLS_FLAG = 4;
+
+ /** Used to compose bitmasks for value comparisons. */
+ var COMPARE_PARTIAL_FLAG = 1,
+ COMPARE_UNORDERED_FLAG = 2;
+
/** Used to compose bitmasks for function metadata. */
- var BIND_FLAG = 1,
- BIND_KEY_FLAG = 2,
- CURRY_BOUND_FLAG = 4,
- CURRY_FLAG = 8,
- CURRY_RIGHT_FLAG = 16,
- PARTIAL_FLAG = 32,
- PARTIAL_RIGHT_FLAG = 64,
- ARY_FLAG = 128,
- REARG_FLAG = 256,
- FLIP_FLAG = 512;
-
- /** Used to compose bitmasks for comparison styles. */
- var UNORDERED_COMPARE_FLAG = 1,
- PARTIAL_COMPARE_FLAG = 2;
+ var WRAP_BIND_FLAG = 1,
+ WRAP_BIND_KEY_FLAG = 2,
+ WRAP_CURRY_BOUND_FLAG = 4,
+ WRAP_CURRY_FLAG = 8,
+ WRAP_CURRY_RIGHT_FLAG = 16,
+ WRAP_PARTIAL_FLAG = 32,
+ WRAP_PARTIAL_RIGHT_FLAG = 64,
+ WRAP_ARY_FLAG = 128,
+ WRAP_REARG_FLAG = 256,
+ WRAP_FLIP_FLAG = 512;
/** Used as default options for `_.truncate`. */
var DEFAULT_TRUNC_LENGTH = 30,
DEFAULT_TRUNC_OMISSION = '...';
/** Used to detect hot functions by number of calls within a span of milliseconds. */
- var HOT_COUNT = 500,
+ var HOT_COUNT = 800,
HOT_SPAN = 16;
/** Used to indicate the type of lazy iteratees. */
@@ -72,27 +77,30 @@
/** Used to associate wrap methods with their bit flags. */
var wrapFlags = [
- ['ary', ARY_FLAG],
- ['bind', BIND_FLAG],
- ['bindKey', BIND_KEY_FLAG],
- ['curry', CURRY_FLAG],
- ['curryRight', CURRY_RIGHT_FLAG],
- ['flip', FLIP_FLAG],
- ['partial', PARTIAL_FLAG],
- ['partialRight', PARTIAL_RIGHT_FLAG],
- ['rearg', REARG_FLAG]
+ ['ary', WRAP_ARY_FLAG],
+ ['bind', WRAP_BIND_FLAG],
+ ['bindKey', WRAP_BIND_KEY_FLAG],
+ ['curry', WRAP_CURRY_FLAG],
+ ['curryRight', WRAP_CURRY_RIGHT_FLAG],
+ ['flip', WRAP_FLIP_FLAG],
+ ['partial', WRAP_PARTIAL_FLAG],
+ ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
+ ['rearg', WRAP_REARG_FLAG]
];
/** `Object#toString` result references. */
var argsTag = '[object Arguments]',
arrayTag = '[object Array]',
+ asyncTag = '[object AsyncFunction]',
boolTag = '[object Boolean]',
dateTag = '[object Date]',
+ domExcTag = '[object DOMException]',
errorTag = '[object Error]',
funcTag = '[object Function]',
genTag = '[object GeneratorFunction]',
mapTag = '[object Map]',
numberTag = '[object Number]',
+ nullTag = '[object Null]',
objectTag = '[object Object]',
promiseTag = '[object Promise]',
proxyTag = '[object Proxy]',
@@ -100,6 +108,7 @@
setTag = '[object Set]',
stringTag = '[object String]',
symbolTag = '[object Symbol]',
+ undefinedTag = '[object Undefined]',
weakMapTag = '[object WeakMap]',
weakSetTag = '[object WeakSet]';
@@ -195,8 +204,10 @@
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff',
- rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
- rsComboSymbolsRange = '\\u20d0-\\u20f0',
+ rsComboMarksRange = '\\u0300-\\u036f',
+ reComboHalfMarksRange = '\\ufe20-\\ufe2f',
+ rsComboSymbolsRange = '\\u20d0-\\u20ff',
+ rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
rsDingbatRange = '\\u2700-\\u27bf',
rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
@@ -211,7 +222,7 @@
var rsApos = "['\u2019]",
rsAstral = '[' + rsAstralRange + ']',
rsBreak = '[' + rsBreakRange + ']',
- rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
+ rsCombo = '[' + rsComboRange + ']',
rsDigits = '\\d+',
rsDingbat = '[' + rsDingbatRange + ']',
rsLower = '[' + rsLowerRange + ']',
@@ -225,13 +236,15 @@
rsZWJ = '\\u200d';
/** Used to compose unicode regexes. */
- var rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',
- rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',
- rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
- rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
+ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
+ rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
+ rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
+ rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
reOptMod = rsModifier + '?',
rsOptVar = '[' + rsVarRange + ']?',
rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
+ rsOrdLower = '\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)',
+ rsOrdUpper = '\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)',
rsSeq = rsOptVar + reOptMod + rsOptJoin,
rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
@@ -250,16 +263,18 @@
/** Used to match complex or compound words. */
var reUnicodeWord = RegExp([
- rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
- rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',
- rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,
- rsUpper + '+' + rsOptUpperContr,
+ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
+ rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
+ rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
+ rsUpper + '+' + rsOptContrUpper,
+ rsOrdUpper,
+ rsOrdLower,
rsDigits,
rsEmoji
].join('|'), 'g');
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
- var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
+ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
/** Used to detect strings that need a more robust regexp to match words. */
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
@@ -422,7 +437,7 @@
/** Used to access faster Node.js helpers. */
var nodeUtil = (function() {
try {
- return freeProcess && freeProcess.binding('util');
+ return freeProcess && freeProcess.binding && freeProcess.binding('util');
} catch (e) {}
}());
@@ -496,7 +511,7 @@
*/
function arrayAggregator(array, setter, iteratee, accumulator) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
var value = array[index];
@@ -516,7 +531,7 @@
*/
function arrayEach(array, iteratee) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (iteratee(array[index], index, array) === false) {
@@ -536,7 +551,7 @@
* @returns {Array} Returns `array`.
*/
function arrayEachRight(array, iteratee) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
while (length--) {
if (iteratee(array[length], length, array) === false) {
@@ -558,7 +573,7 @@
*/
function arrayEvery(array, predicate) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (!predicate(array[index], index, array)) {
@@ -579,7 +594,7 @@
*/
function arrayFilter(array, predicate) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
resIndex = 0,
result = [];
@@ -602,7 +617,7 @@
* @returns {boolean} Returns `true` if `target` is found, else `false`.
*/
function arrayIncludes(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return !!length && baseIndexOf(array, value, 0) > -1;
}
@@ -617,7 +632,7 @@
*/
function arrayIncludesWith(array, value, comparator) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (comparator(value, array[index])) {
@@ -638,7 +653,7 @@
*/
function arrayMap(array, iteratee) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
result = Array(length);
while (++index < length) {
@@ -680,7 +695,7 @@
*/
function arrayReduce(array, iteratee, accumulator, initAccum) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[++index];
@@ -704,7 +719,7 @@
* @returns {*} Returns the accumulated value.
*/
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (initAccum && length) {
accumulator = array[--length];
}
@@ -726,7 +741,7 @@
*/
function arraySome(array, predicate) {
var index = -1,
- length = array ? array.length : 0;
+ length = array == null ? 0 : array.length;
while (++index < length) {
if (predicate(array[index], index, array)) {
@@ -870,7 +885,7 @@
* @returns {number} Returns the mean.
*/
function baseMean(array, iteratee) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? (baseSum(array, iteratee) / length) : NAN;
}
@@ -1410,7 +1425,7 @@
* var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
*/
var runInContext = (function runInContext(context) {
- context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root;
+ context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
/** Built-in constructor references. */
var Array = context.Array,
@@ -1431,12 +1446,6 @@
/** Used to detect overreaching core-js shims. */
var coreJsData = context['__core-js_shared__'];
- /** Used to detect methods masquerading as native. */
- var maskSrcKey = (function() {
- var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
- return uid ? ('Symbol(src)_1.' + uid) : '';
- }());
-
/** Used to resolve the decompiled source of functions. */
var funcToString = funcProto.toString;
@@ -1446,15 +1455,21 @@
/** Used to generate unique IDs. */
var idCounter = 0;
- /** Used to infer the `Object` constructor. */
- var objectCtorString = funcToString.call(Object);
+ /** Used to detect methods masquerading as native. */
+ var maskSrcKey = (function() {
+ var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
+ return uid ? ('Symbol(src)_1.' + uid) : '';
+ }());
/**
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
* of values.
*/
- var objectToString = objectProto.toString;
+ var nativeObjectToString = objectProto.toString;
+
+ /** Used to infer the `Object` constructor. */
+ var objectCtorString = funcToString.call(Object);
/** Used to restore the original `_` reference in `_.noConflict`. */
var oldDash = root._;
@@ -1471,11 +1486,12 @@
Uint8Array = context.Uint8Array,
allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
getPrototype = overArg(Object.getPrototypeOf, Object),
- iteratorSymbol = Symbol ? Symbol.iterator : undefined,
objectCreate = Object.create,
propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice,
- spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
+ spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
+ symIterator = Symbol ? Symbol.iterator : undefined,
+ symToStringTag = Symbol ? Symbol.toStringTag : undefined;
var defineProperty = (function() {
try {
@@ -1551,9 +1567,9 @@
* Shortcut fusion is an optimization to merge iteratee calls; this avoids
* the creation of intermediate arrays and can greatly reduce the number of
* iteratee executions. Sections of a chain sequence qualify for shortcut
- * fusion if the section is applied to an array of at least `200` elements
- * and any iteratees accept only one argument. The heuristic for whether a
- * section qualifies for shortcut fusion is subject to change.
+ * fusion if the section is applied to an array and iteratees accept only
+ * one argument. The heuristic for whether a section qualifies for shortcut
+ * fusion is subject to change.
*
* Chaining is supported in custom builds as long as the `_#value` method is
* directly or indirectly included in the build.
@@ -1712,8 +1728,8 @@
/**
* By default, the template delimiters used by lodash are like those in
- * embedded Ruby (ERB). Change the following template settings to use
- * alternative delimiters.
+ * embedded Ruby (ERB) as well as ES2015 template strings. Change the
+ * following template settings to use alternative delimiters.
*
* @static
* @memberOf _
@@ -1860,8 +1876,7 @@
resIndex = 0,
takeCount = nativeMin(length, this.__takeCount__);
- if (!isArr || arrLength < LARGE_ARRAY_SIZE ||
- (arrLength == length && takeCount == length)) {
+ if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
return baseWrapperValue(array, this.__actions__);
}
var result = [];
@@ -1909,7 +1924,7 @@
*/
function Hash(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
@@ -1975,7 +1990,7 @@
*/
function hashHas(key) {
var data = this.__data__;
- return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
+ return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
}
/**
@@ -2013,7 +2028,7 @@
*/
function ListCache(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
@@ -2130,7 +2145,7 @@
*/
function MapCache(entries) {
var index = -1,
- length = entries ? entries.length : 0;
+ length = entries == null ? 0 : entries.length;
this.clear();
while (++index < length) {
@@ -2234,7 +2249,7 @@
*/
function SetCache(values) {
var index = -1,
- length = values ? values.length : 0;
+ length = values == null ? 0 : values.length;
this.__data__ = new MapCache;
while (++index < length) {
@@ -2449,24 +2464,6 @@
}
/**
- * Used by `_.defaults` to customize its `_.assignIn` use.
- *
- * @private
- * @param {*} objValue The destination value.
- * @param {*} srcValue The source value.
- * @param {string} key The key of the property to assign.
- * @param {Object} object The parent object of `objValue`.
- * @returns {*} Returns the value to assign.
- */
- function assignInDefaults(objValue, srcValue, key, object) {
- if (objValue === undefined ||
- (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
- return srcValue;
- }
- return objValue;
- }
-
- /**
* This function is like `assignValue` except that it doesn't assign
* `undefined` values.
*
@@ -2550,6 +2547,19 @@
}
/**
+ * The base implementation of `_.assignIn` without support for multiple sources
+ * or `customizer` functions.
+ *
+ * @private
+ * @param {Object} object The destination object.
+ * @param {Object} source The source object.
+ * @returns {Object} Returns `object`.
+ */
+ function baseAssignIn(object, source) {
+ return object && copyObject(source, keysIn(source), object);
+ }
+
+ /**
* The base implementation of `assignValue` and `assignMergeValue` without
* value checks.
*
@@ -2576,17 +2586,17 @@
*
* @private
* @param {Object} object The object to iterate over.
- * @param {string[]} paths The property paths of elements to pick.
+ * @param {string[]} paths The property paths to pick.
* @returns {Array} Returns the picked elements.
*/
function baseAt(object, paths) {
var index = -1,
- isNil = object == null,
length = paths.length,
- result = Array(length);
+ result = Array(length),
+ skip = object == null;
while (++index < length) {
- result[index] = isNil ? undefined : get(object, paths[index]);
+ result[index] = skip ? undefined : get(object, paths[index]);
}
return result;
}
@@ -2618,16 +2628,22 @@
*
* @private
* @param {*} value The value to clone.
- * @param {boolean} [isDeep] Specify a deep clone.
- * @param {boolean} [isFull] Specify a clone including symbols.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Deep clone
+ * 2 - Flatten inherited properties
+ * 4 - Clone symbols
* @param {Function} [customizer] The function to customize cloning.
* @param {string} [key] The key of `value`.
* @param {Object} [object] The parent object of `value`.
* @param {Object} [stack] Tracks traversed objects and their clone counterparts.
* @returns {*} Returns the cloned value.
*/
- function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
- var result;
+ function baseClone(value, bitmask, customizer, key, object, stack) {
+ var result,
+ isDeep = bitmask & CLONE_DEEP_FLAG,
+ isFlat = bitmask & CLONE_FLAT_FLAG,
+ isFull = bitmask & CLONE_SYMBOLS_FLAG;
+
if (customizer) {
result = object ? customizer(value, key, object, stack) : customizer(value);
}
@@ -2651,9 +2667,11 @@
return cloneBuffer(value, isDeep);
}
if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
- result = initCloneObject(isFunc ? {} : value);
+ result = (isFlat || isFunc) ? {} : initCloneObject(value);
if (!isDeep) {
- return copySymbols(value, baseAssign(result, value));
+ return isFlat
+ ? copySymbolsIn(value, baseAssignIn(result, value))
+ : copySymbols(value, baseAssign(result, value));
}
} else {
if (!cloneableTags[tag]) {
@@ -2670,14 +2688,18 @@
}
stack.set(value, result);
- var props = isArr ? undefined : (isFull ? getAllKeys : keys)(value);
+ var keysFunc = isFull
+ ? (isFlat ? getAllKeysIn : getAllKeys)
+ : (isFlat ? keysIn : keys);
+
+ var props = isArr ? undefined : keysFunc(value);
arrayEach(props || value, function(subValue, key) {
if (props) {
key = subValue;
subValue = value[key];
}
// Recursively populate clone (susceptible to call stack limits).
- assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
+ assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
});
return result;
}
@@ -2776,7 +2798,7 @@
outer:
while (++index < length) {
var value = array[index],
- computed = iteratee ? iteratee(value) : value;
+ computed = iteratee == null ? value : iteratee(value);
value = (comparator || value !== 0) ? value : 0;
if (isCommon && computed === computed) {
@@ -3015,7 +3037,7 @@
* @returns {*} Returns the resolved value.
*/
function baseGet(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = 0,
length = path.length;
@@ -3043,14 +3065,19 @@
}
/**
- * The base implementation of `getTag`.
+ * The base implementation of `getTag` without fallbacks for buggy environments.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
function baseGetTag(value) {
- return objectToString.call(value);
+ if (value == null) {
+ return value === undefined ? undefinedTag : nullTag;
+ }
+ return (symToStringTag && symToStringTag in Object(value))
+ ? getRawTag(value)
+ : objectToString(value);
}
/**
@@ -3195,12 +3222,9 @@
* @returns {*} Returns the result of the invoked method.
*/
function baseInvoke(object, path, args) {
- if (!isKey(path, object)) {
- path = castPath(path);
- object = parent(object, path);
- path = last(path);
- }
- var func = object == null ? object : object[toKey(path)];
+ path = castPath(path, object);
+ object = parent(object, path);
+ var func = object == null ? object : object[toKey(last(path))];
return func == null ? undefined : apply(func, object, args);
}
@@ -3212,7 +3236,7 @@
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
*/
function baseIsArguments(value) {
- return isObjectLike(value) && objectToString.call(value) == argsTag;
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
}
/**
@@ -3223,7 +3247,7 @@
* @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
*/
function baseIsArrayBuffer(value) {
- return isObjectLike(value) && objectToString.call(value) == arrayBufferTag;
+ return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
}
/**
@@ -3234,7 +3258,7 @@
* @returns {boolean} Returns `true` if `value` is a date object, else `false`.
*/
function baseIsDate(value) {
- return isObjectLike(value) && objectToString.call(value) == dateTag;
+ return isObjectLike(value) && baseGetTag(value) == dateTag;
}
/**
@@ -3244,22 +3268,21 @@
* @private
* @param {*} value The value to compare.
* @param {*} other The other value to compare.
+ * @param {boolean} bitmask The bitmask flags.
+ * 1 - Unordered comparison
+ * 2 - Partial comparison
* @param {Function} [customizer] The function to customize comparisons.
- * @param {boolean} [bitmask] The bitmask of comparison flags.
- * The bitmask may be composed of the following flags:
- * 1 - Unordered comparison
- * 2 - Partial comparison
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
*/
- function baseIsEqual(value, other, customizer, bitmask, stack) {
+ function baseIsEqual(value, other, bitmask, customizer, stack) {
if (value === other) {
return true;
}
- if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
+ if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
return value !== value && other !== other;
}
- return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);
+ return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
/**
@@ -3270,27 +3293,21 @@
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
+ * @param {Function} customizer The function to customize comparisons.
* @param {Function} equalFunc The function to determine equivalents of values.
- * @param {Function} [customizer] The function to customize comparisons.
- * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
* @param {Object} [stack] Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {
+ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
var objIsArr = isArray(object),
othIsArr = isArray(other),
- objTag = arrayTag,
- othTag = arrayTag;
+ objTag = objIsArr ? arrayTag : getTag(object),
+ othTag = othIsArr ? arrayTag : getTag(other);
+
+ objTag = objTag == argsTag ? objectTag : objTag;
+ othTag = othTag == argsTag ? objectTag : othTag;
- if (!objIsArr) {
- objTag = getTag(object);
- objTag = objTag == argsTag ? objectTag : objTag;
- }
- if (!othIsArr) {
- othTag = getTag(other);
- othTag = othTag == argsTag ? objectTag : othTag;
- }
var objIsObj = objTag == objectTag,
othIsObj = othTag == objectTag,
isSameTag = objTag == othTag;
@@ -3305,10 +3322,10 @@
if (isSameTag && !objIsObj) {
stack || (stack = new Stack);
return (objIsArr || isTypedArray(object))
- ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
- : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
+ ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
+ : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
}
- if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
+ if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
@@ -3317,14 +3334,14 @@
othUnwrapped = othIsWrapped ? other.value() : other;
stack || (stack = new Stack);
- return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);
+ return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
}
}
if (!isSameTag) {
return false;
}
stack || (stack = new Stack);
- return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
+ return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}
/**
@@ -3382,7 +3399,7 @@
var result = customizer(objValue, srcValue, key, object, source, stack);
}
if (!(result === undefined
- ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)
+ ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
: result
)) {
return false;
@@ -3416,7 +3433,7 @@
* @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
*/
function baseIsRegExp(value) {
- return isObject(value) && objectToString.call(value) == regexpTag;
+ return isObjectLike(value) && baseGetTag(value) == regexpTag;
}
/**
@@ -3439,7 +3456,7 @@
*/
function baseIsTypedArray(value) {
return isObjectLike(value) &&
- isLength(value.length) && !!typedArrayTags[objectToString.call(value)];
+ isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
/**
@@ -3572,7 +3589,7 @@
var objValue = get(object, path);
return (objValue === undefined && objValue === srcValue)
? hasIn(object, path)
- : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);
+ : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
};
}
@@ -3734,13 +3751,12 @@
*
* @private
* @param {Object} object The source object.
- * @param {string[]} props The property identifiers to pick.
+ * @param {string[]} paths The property paths to pick.
* @returns {Object} Returns the new object.
*/
- function basePick(object, props) {
- object = Object(object);
- return basePickBy(object, props, function(value, key) {
- return key in object;
+ function basePick(object, paths) {
+ return basePickBy(object, paths, function(value, path) {
+ return hasIn(object, path);
});
}
@@ -3749,21 +3765,21 @@
*
* @private
* @param {Object} object The source object.
- * @param {string[]} props The property identifiers to pick from.
+ * @param {string[]} paths The property paths to pick.
* @param {Function} predicate The function invoked per property.
* @returns {Object} Returns the new object.
*/
- function basePickBy(object, props, predicate) {
+ function basePickBy(object, paths, predicate) {
var index = -1,
- length = props.length,
+ length = paths.length,
result = {};
while (++index < length) {
- var key = props[index],
- value = object[key];
+ var path = paths[index],
+ value = baseGet(object, path);
- if (predicate(value, key)) {
- baseAssignValue(result, key, value);
+ if (predicate(value, path)) {
+ baseSet(result, castPath(path, object), value);
}
}
return result;
@@ -3839,17 +3855,8 @@
var previous = index;
if (isIndex(index)) {
splice.call(array, index, 1);
- }
- else if (!isKey(index, array)) {
- var path = castPath(index),
- object = parent(array, path);
-
- if (object != null) {
- delete object[toKey(last(path))];
- }
- }
- else {
- delete array[toKey(index)];
+ } else {
+ baseUnset(array, index);
}
}
}
@@ -3970,7 +3977,7 @@
if (!isObject(object)) {
return object;
}
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length,
@@ -4100,7 +4107,7 @@
*/
function baseSortedIndex(array, value, retHighest) {
var low = 0,
- high = array ? array.length : low;
+ high = array == null ? low : array.length;
if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
while (low < high) {
@@ -4136,7 +4143,7 @@
value = iteratee(value);
var low = 0,
- high = array ? array.length : 0,
+ high = array == null ? 0 : array.length,
valIsNaN = value !== value,
valIsNull = value === null,
valIsSymbol = isSymbol(value),
@@ -4307,15 +4314,13 @@
*
* @private
* @param {Object} object The object to modify.
- * @param {Array|string} path The path of the property to unset.
+ * @param {Array|string} path The property path to unset.
* @returns {boolean} Returns `true` if the property is deleted, else `false`.
*/
function baseUnset(object, path) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
object = parent(object, path);
-
- var key = toKey(last(path));
- return !(object != null && hasOwnProperty.call(object, key)) || delete object[key];
+ return object == null || delete object[toKey(last(path))];
}
/**
@@ -4386,18 +4391,24 @@
* @returns {Array} Returns the new array of values.
*/
function baseXor(arrays, iteratee, comparator) {
+ var length = arrays.length;
+ if (length < 2) {
+ return length ? baseUniq(arrays[0]) : [];
+ }
var index = -1,
- length = arrays.length;
+ result = Array(length);
while (++index < length) {
- var result = result
- ? arrayPush(
- baseDifference(result, arrays[index], iteratee, comparator),
- baseDifference(arrays[index], result, iteratee, comparator)
- )
- : arrays[index];
+ var array = arrays[index],
+ othIndex = -1;
+
+ while (++othIndex < length) {
+ if (othIndex != index) {
+ result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
+ }
+ }
}
- return (result && result.length) ? baseUniq(result, iteratee, comparator) : [];
+ return baseUniq(baseFlatten(result, 1), iteratee, comparator);
}
/**
@@ -4449,10 +4460,14 @@
*
* @private
* @param {*} value The value to inspect.
+ * @param {Object} [object] The object to query keys on.
* @returns {Array} Returns the cast property path array.
*/
- function castPath(value) {
- return isArray(value) ? value : stringToPath(value);
+ function castPath(value, object) {
+ if (isArray(value)) {
+ return value;
+ }
+ return isKey(value, object) ? [value] : stringToPath(toString(value));
}
/**
@@ -4546,7 +4561,7 @@
* @returns {Object} Returns the cloned map.
*/
function cloneMap(map, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
+ var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map);
return arrayReduce(array, addMapEntry, new map.constructor);
}
@@ -4573,7 +4588,7 @@
* @returns {Object} Returns the cloned set.
*/
function cloneSet(set, isDeep, cloneFunc) {
- var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
+ var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set);
return arrayReduce(array, addSetEntry, new set.constructor);
}
@@ -4808,7 +4823,7 @@
}
/**
- * Copies own symbol properties of `source` to `object`.
+ * Copies own symbols of `source` to `object`.
*
* @private
* @param {Object} source The object to copy symbols from.
@@ -4820,6 +4835,18 @@
}
/**
+ * Copies own and inherited symbols of `source` to `object`.
+ *
+ * @private
+ * @param {Object} source The object to copy symbols from.
+ * @param {Object} [object={}] The object to copy symbols to.
+ * @returns {Object} Returns `object`.
+ */
+ function copySymbolsIn(source, object) {
+ return copyObject(source, getSymbolsIn(source), object);
+ }
+
+ /**
* Creates a function like `_.groupBy`.
*
* @private
@@ -4933,7 +4960,7 @@
* @returns {Function} Returns the new wrapped function.
*/
function createBind(func, bitmask, thisArg) {
- var isBind = bitmask & BIND_FLAG,
+ var isBind = bitmask & WRAP_BIND_FLAG,
Ctor = createCtor(func);
function wrapper() {
@@ -5106,7 +5133,7 @@
data = funcName == 'wrapper' ? getData(func) : undefined;
if (data && isLaziable(data[0]) &&
- data[1] == (ARY_FLAG | CURRY_FLAG | PARTIAL_FLAG | REARG_FLAG) &&
+ data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
!data[4].length && data[9] == 1
) {
wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
@@ -5120,8 +5147,7 @@
var args = arguments,
value = args[0];
- if (wrapper && args.length == 1 &&
- isArray(value) && value.length >= LARGE_ARRAY_SIZE) {
+ if (wrapper && args.length == 1 && isArray(value)) {
return wrapper.plant(value).value();
}
var index = 0,
@@ -5155,11 +5181,11 @@
* @returns {Function} Returns the new wrapped function.
*/
function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
- var isAry = bitmask & ARY_FLAG,
- isBind = bitmask & BIND_FLAG,
- isBindKey = bitmask & BIND_KEY_FLAG,
- isCurried = bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG),
- isFlip = bitmask & FLIP_FLAG,
+ var isAry = bitmask & WRAP_ARY_FLAG,
+ isBind = bitmask & WRAP_BIND_FLAG,
+ isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
+ isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
+ isFlip = bitmask & WRAP_FLIP_FLAG,
Ctor = isBindKey ? undefined : createCtor(func);
function wrapper() {
@@ -5310,7 +5336,7 @@
* @returns {Function} Returns the new wrapped function.
*/
function createPartial(func, bitmask, thisArg, partials) {
- var isBind = bitmask & BIND_FLAG,
+ var isBind = bitmask & WRAP_BIND_FLAG,
Ctor = createCtor(func);
function wrapper() {
@@ -5392,17 +5418,17 @@
* @returns {Function} Returns the new wrapped function.
*/
function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
- var isCurry = bitmask & CURRY_FLAG,
+ var isCurry = bitmask & WRAP_CURRY_FLAG,
newHolders = isCurry ? holders : undefined,
newHoldersRight = isCurry ? undefined : holders,
newPartials = isCurry ? partials : undefined,
newPartialsRight = isCurry ? undefined : partials;
- bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG);
- bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG);
+ bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
+ bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
- if (!(bitmask & CURRY_BOUND_FLAG)) {
- bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG);
+ if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
+ bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
}
var newData = [
func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
@@ -5428,7 +5454,7 @@
var func = Math[methodName];
return function(number, precision) {
number = toNumber(number);
- precision = nativeMin(toInteger(precision), 292);
+ precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
if (precision) {
// Shift with exponential notation to avoid floating-point issues.
// See [MDN](https://mdn.io/round#Examples) for more details.
@@ -5480,17 +5506,16 @@
* @private
* @param {Function|string} func The function or method name to wrap.
* @param {number} bitmask The bitmask flags.
- * The bitmask may be composed of the following flags:
- * 1 - `_.bind`
- * 2 - `_.bindKey`
- * 4 - `_.curry` or `_.curryRight` of a bound function
- * 8 - `_.curry`
- * 16 - `_.curryRight`
- * 32 - `_.partial`
- * 64 - `_.partialRight`
- * 128 - `_.rearg`
- * 256 - `_.ary`
- * 512 - `_.flip`
+ * 1 - `_.bind`
+ * 2 - `_.bindKey`
+ * 4 - `_.curry` or `_.curryRight` of a bound function
+ * 8 - `_.curry`
+ * 16 - `_.curryRight`
+ * 32 - `_.partial`
+ * 64 - `_.partialRight`
+ * 128 - `_.rearg`
+ * 256 - `_.ary`
+ * 512 - `_.flip`
* @param {*} [thisArg] The `this` binding of `func`.
* @param {Array} [partials] The arguments to be partially applied.
* @param {Array} [holders] The `partials` placeholder indexes.
@@ -5500,20 +5525,20 @@
* @returns {Function} Returns the new wrapped function.
*/
function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
- var isBindKey = bitmask & BIND_KEY_FLAG;
+ var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
if (!isBindKey && typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
var length = partials ? partials.length : 0;
if (!length) {
- bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG);
+ bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
partials = holders = undefined;
}
ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
arity = arity === undefined ? arity : toInteger(arity);
length -= holders ? holders.length : 0;
- if (bitmask & PARTIAL_RIGHT_FLAG) {
+ if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
var partialsRight = partials,
holdersRight = holders;
@@ -5534,18 +5559,18 @@
thisArg = newData[2];
partials = newData[3];
holders = newData[4];
- arity = newData[9] = newData[9] == null
+ arity = newData[9] = newData[9] === undefined
? (isBindKey ? 0 : func.length)
: nativeMax(newData[9] - length, 0);
- if (!arity && bitmask & (CURRY_FLAG | CURRY_RIGHT_FLAG)) {
- bitmask &= ~(CURRY_FLAG | CURRY_RIGHT_FLAG);
+ if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
+ bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
}
- if (!bitmask || bitmask == BIND_FLAG) {
+ if (!bitmask || bitmask == WRAP_BIND_FLAG) {
var result = createBind(func, bitmask, thisArg);
- } else if (bitmask == CURRY_FLAG || bitmask == CURRY_RIGHT_FLAG) {
+ } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
result = createCurry(func, bitmask, arity);
- } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !holders.length) {
+ } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
result = createPartial(func, bitmask, thisArg, partials);
} else {
result = createHybrid.apply(undefined, newData);
@@ -5555,21 +5580,77 @@
}
/**
+ * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
+ * of source objects to the destination object for all destination properties
+ * that resolve to `undefined`.
+ *
+ * @private
+ * @param {*} objValue The destination value.
+ * @param {*} srcValue The source value.
+ * @param {string} key The key of the property to assign.
+ * @param {Object} object The parent object of `objValue`.
+ * @returns {*} Returns the value to assign.
+ */
+ function customDefaultsAssignIn(objValue, srcValue, key, object) {
+ if (objValue === undefined ||
+ (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
+ return srcValue;
+ }
+ return objValue;
+ }
+
+ /**
+ * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
+ * objects into destination objects that are passed thru.
+ *
+ * @private
+ * @param {*} objValue The destination value.
+ * @param {*} srcValue The source value.
+ * @param {string} key The key of the property to merge.
+ * @param {Object} object The parent object of `objValue`.
+ * @param {Object} source The parent object of `srcValue`.
+ * @param {Object} [stack] Tracks traversed source values and their merged
+ * counterparts.
+ * @returns {*} Returns the value to assign.
+ */
+ function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
+ if (isObject(objValue) && isObject(srcValue)) {
+ // Recursively merge objects and arrays (susceptible to call stack limits).
+ stack.set(srcValue, objValue);
+ baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
+ stack['delete'](srcValue);
+ }
+ return objValue;
+ }
+
+ /**
+ * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
+ * objects.
+ *
+ * @private
+ * @param {*} value The value to inspect.
+ * @param {string} key The key of the property to inspect.
+ * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
+ */
+ function customOmitClone(value) {
+ return isPlainObject(value) ? undefined : value;
+ }
+
+ /**
* A specialized version of `baseIsEqualDeep` for arrays with support for
* partial deep comparisons.
*
* @private
* @param {Array} array The array to compare.
* @param {Array} other The other array to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `array` and `other` objects.
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
*/
- function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
+ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
arrLength = array.length,
othLength = other.length;
@@ -5583,7 +5664,7 @@
}
var index = -1,
result = true,
- seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;
+ seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
stack.set(array, other);
stack.set(other, array);
@@ -5609,7 +5690,7 @@
if (seen) {
if (!arraySome(other, function(othValue, othIndex) {
if (!cacheHas(seen, othIndex) &&
- (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {
+ (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
return seen.push(othIndex);
}
})) {
@@ -5618,7 +5699,7 @@
}
} else if (!(
arrValue === othValue ||
- equalFunc(arrValue, othValue, customizer, bitmask, stack)
+ equalFunc(arrValue, othValue, bitmask, customizer, stack)
)) {
result = false;
break;
@@ -5640,14 +5721,13 @@
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
* @param {string} tag The `toStringTag` of the objects to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
+ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
switch (tag) {
case dataViewTag:
if ((object.byteLength != other.byteLength) ||
@@ -5685,7 +5765,7 @@
var convert = mapToArray;
case setTag:
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
convert || (convert = setToArray);
if (object.size != other.size && !isPartial) {
@@ -5696,11 +5776,11 @@
if (stacked) {
return stacked == other;
}
- bitmask |= UNORDERED_COMPARE_FLAG;
+ bitmask |= COMPARE_UNORDERED_FLAG;
// Recursively compare objects (susceptible to call stack limits).
stack.set(object, other);
- var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);
+ var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
stack['delete'](object);
return result;
@@ -5719,18 +5799,17 @@
* @private
* @param {Object} object The object to compare.
* @param {Object} other The other object to compare.
- * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
* @param {Function} customizer The function to customize comparisons.
- * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`
- * for more details.
+ * @param {Function} equalFunc The function to determine equivalents of values.
* @param {Object} stack Tracks traversed `object` and `other` objects.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
*/
- function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
- var isPartial = bitmask & PARTIAL_COMPARE_FLAG,
- objProps = keys(object),
+ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
+ var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
+ objProps = getAllKeys(object),
objLength = objProps.length,
- othProps = keys(other),
+ othProps = getAllKeys(other),
othLength = othProps.length;
if (objLength != othLength && !isPartial) {
@@ -5765,7 +5844,7 @@
}
// Recursively compare objects (susceptible to call stack limits).
if (!(compared === undefined
- ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))
+ ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
: compared
)) {
result = false;
@@ -5935,17 +6014,51 @@
}
/**
- * Creates an array of the own enumerable symbol properties of `object`.
+ * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
+ *
+ * @private
+ * @param {*} value The value to query.
+ * @returns {string} Returns the raw `toStringTag`.
+ */
+ function getRawTag(value) {
+ var isOwn = hasOwnProperty.call(value, symToStringTag),
+ tag = value[symToStringTag];
+
+ try {
+ value[symToStringTag] = undefined;
+ var unmasked = true;
+ } catch (e) {}
+
+ var result = nativeObjectToString.call(value);
+ if (unmasked) {
+ if (isOwn) {
+ value[symToStringTag] = tag;
+ } else {
+ delete value[symToStringTag];
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Creates an array of the own enumerable symbols of `object`.
*
* @private
* @param {Object} object The object to query.
* @returns {Array} Returns the array of symbols.
*/
- var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
+ var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
+ if (object == null) {
+ return [];
+ }
+ object = Object(object);
+ return arrayFilter(nativeGetSymbols(object), function(symbol) {
+ return propertyIsEnumerable.call(object, symbol);
+ });
+ };
/**
- * Creates an array of the own and inherited enumerable symbol properties
- * of `object`.
+ * Creates an array of the own and inherited enumerable symbols of `object`.
*
* @private
* @param {Object} object The object to query.
@@ -5976,9 +6089,9 @@
(Set && getTag(new Set) != setTag) ||
(WeakMap && getTag(new WeakMap) != weakMapTag)) {
getTag = function(value) {
- var result = objectToString.call(value),
+ var result = baseGetTag(value),
Ctor = result == objectTag ? value.constructor : undefined,
- ctorString = Ctor ? toSource(Ctor) : undefined;
+ ctorString = Ctor ? toSource(Ctor) : '';
if (ctorString) {
switch (ctorString) {
@@ -6043,7 +6156,7 @@
* @returns {boolean} Returns `true` if `path` exists, else `false`.
*/
function hasPath(object, path, hasFunc) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length,
@@ -6059,7 +6172,7 @@
if (result || ++index != length) {
return result;
}
- length = object ? object.length : 0;
+ length = object == null ? 0 : object.length;
return !!length && isLength(length) && isIndex(key, length) &&
(isArray(object) || isArguments(object));
}
@@ -6377,22 +6490,22 @@
var bitmask = data[1],
srcBitmask = source[1],
newBitmask = bitmask | srcBitmask,
- isCommon = newBitmask < (BIND_FLAG | BIND_KEY_FLAG | ARY_FLAG);
+ isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
var isCombo =
- ((srcBitmask == ARY_FLAG) && (bitmask == CURRY_FLAG)) ||
- ((srcBitmask == ARY_FLAG) && (bitmask == REARG_FLAG) && (data[7].length <= source[8])) ||
- ((srcBitmask == (ARY_FLAG | REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == CURRY_FLAG));
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
+ ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
+ ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
// Exit early if metadata can't be merged.
if (!(isCommon || isCombo)) {
return data;
}
// Use source `thisArg` if available.
- if (srcBitmask & BIND_FLAG) {
+ if (srcBitmask & WRAP_BIND_FLAG) {
data[2] = source[2];
// Set when currying a bound function.
- newBitmask |= bitmask & BIND_FLAG ? 0 : CURRY_BOUND_FLAG;
+ newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
}
// Compose partial arguments.
var value = source[3];
@@ -6414,7 +6527,7 @@
data[7] = value;
}
// Use source `ary` if it's smaller.
- if (srcBitmask & ARY_FLAG) {
+ if (srcBitmask & WRAP_ARY_FLAG) {
data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
}
// Use source `arity` if one is not provided.
@@ -6429,29 +6542,6 @@
}
/**
- * Used by `_.defaultsDeep` to customize its `_.merge` use.
- *
- * @private
- * @param {*} objValue The destination value.
- * @param {*} srcValue The source value.
- * @param {string} key The key of the property to merge.
- * @param {Object} object The parent object of `objValue`.
- * @param {Object} source The parent object of `srcValue`.
- * @param {Object} [stack] Tracks traversed source values and their merged
- * counterparts.
- * @returns {*} Returns the value to assign.
- */
- function mergeDefaults(objValue, srcValue, key, object, source, stack) {
- if (isObject(objValue) && isObject(srcValue)) {
- // Recursively merge objects and arrays (susceptible to call stack limits).
- stack.set(srcValue, objValue);
- baseMerge(objValue, srcValue, undefined, mergeDefaults, stack);
- stack['delete'](srcValue);
- }
- return objValue;
- }
-
- /**
* This function is like
* [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
* except that it includes inherited enumerable properties.
@@ -6471,6 +6561,17 @@
}
/**
+ * Converts `value` to a string using `Object.prototype.toString`.
+ *
+ * @private
+ * @param {*} value The value to convert.
+ * @returns {string} Returns the converted string.
+ */
+ function objectToString(value) {
+ return nativeObjectToString.call(value);
+ }
+
+ /**
* A specialized version of `baseRest` which transforms the rest array.
*
* @private
@@ -6509,7 +6610,7 @@
* @returns {*} Returns the parent value.
*/
function parent(object, path) {
- return path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
+ return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
}
/**
@@ -6649,8 +6750,6 @@
* @returns {Array} Returns the property path array.
*/
var stringToPath = memoizeCapped(function(string) {
- string = toString(string);
-
var result = [];
if (reLeadingDot.test(string)) {
result.push('');
@@ -6680,7 +6779,7 @@
* Converts `func` to its source code.
*
* @private
- * @param {Function} func The function to process.
+ * @param {Function} func The function to convert.
* @returns {string} Returns the source code.
*/
function toSource(func) {
@@ -6760,7 +6859,7 @@
} else {
size = nativeMax(toInteger(size), 0);
}
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length || size < 1) {
return [];
}
@@ -6791,7 +6890,7 @@
*/
function compact(array) {
var index = -1,
- length = array ? array.length : 0,
+ length = array == null ? 0 : array.length,
resIndex = 0,
result = [];
@@ -6963,7 +7062,7 @@
* // => [1, 2, 3]
*/
function drop(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -6997,7 +7096,7 @@
* // => [1, 2, 3]
*/
function dropRight(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -7057,8 +7156,7 @@
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
@@ -7119,7 +7217,7 @@
* // => [4, '*', '*', 10]
*/
function fill(array, value, start, end) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -7139,8 +7237,7 @@
* @since 1.1.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {number} Returns the index of the found element, else `-1`.
* @example
@@ -7167,7 +7264,7 @@
* // => 2
*/
function findIndex(array, predicate, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
@@ -7187,8 +7284,7 @@
* @since 2.0.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=array.length-1] The index to search from.
* @returns {number} Returns the index of the found element, else `-1`.
* @example
@@ -7215,7 +7311,7 @@
* // => 0
*/
function findLastIndex(array, predicate, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
@@ -7244,7 +7340,7 @@
* // => [1, 2, [3, [4]], 5]
*/
function flatten(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, 1) : [];
}
@@ -7263,7 +7359,7 @@
* // => [1, 2, 3, 4, 5]
*/
function flattenDeep(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseFlatten(array, INFINITY) : [];
}
@@ -7288,7 +7384,7 @@
* // => [1, 2, 3, [4], 5]
*/
function flattenDepth(array, depth) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -7313,7 +7409,7 @@
*/
function fromPairs(pairs) {
var index = -1,
- length = pairs ? pairs.length : 0,
+ length = pairs == null ? 0 : pairs.length,
result = {};
while (++index < length) {
@@ -7369,7 +7465,7 @@
* // => 3
*/
function indexOf(array, value, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
@@ -7395,7 +7491,7 @@
* // => [1, 2]
*/
function initial(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 0, -1) : [];
}
@@ -7485,9 +7581,8 @@
var comparator = last(arrays),
mapped = arrayMap(arrays, castArrayLikeObject);
- if (comparator === last(mapped)) {
- comparator = undefined;
- } else {
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ if (comparator) {
mapped.pop();
}
return (mapped.length && mapped[0] === arrays[0])
@@ -7511,7 +7606,7 @@
* // => 'a~b~c'
*/
function join(array, separator) {
- return array ? nativeJoin.call(array, separator) : '';
+ return array == null ? '' : nativeJoin.call(array, separator);
}
/**
@@ -7529,7 +7624,7 @@
* // => 3
*/
function last(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? array[length - 1] : undefined;
}
@@ -7555,7 +7650,7 @@
* // => 1
*/
function lastIndexOf(array, value, fromIndex) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return -1;
}
@@ -7658,8 +7753,7 @@
* @category Array
* @param {Array} array The array to modify.
* @param {Array} values The values to remove.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns `array`.
* @example
*
@@ -7729,7 +7823,7 @@
* // => ['b', 'd']
*/
var pullAt = flatRest(function(array, indexes) {
- var length = array ? array.length : 0,
+ var length = array == null ? 0 : array.length,
result = baseAt(array, indexes);
basePullAt(array, arrayMap(indexes, function(index) {
@@ -7752,8 +7846,7 @@
* @since 2.0.0
* @category Array
* @param {Array} array The array to modify.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new array of removed elements.
* @example
*
@@ -7813,7 +7906,7 @@
* // => [3, 2, 1]
*/
function reverse(array) {
- return array ? nativeReverse.call(array) : array;
+ return array == null ? array : nativeReverse.call(array);
}
/**
@@ -7833,7 +7926,7 @@
* @returns {Array} Returns the slice of `array`.
*/
function slice(array, start, end) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -7880,8 +7973,7 @@
* @category Array
* @param {Array} array The sorted array to inspect.
* @param {*} value The value to evaluate.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {number} Returns the index at which `value` should be inserted
* into `array`.
* @example
@@ -7916,7 +8008,7 @@
* // => 1
*/
function sortedIndexOf(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value);
if (index < length && eq(array[index], value)) {
@@ -7959,8 +8051,7 @@
* @category Array
* @param {Array} array The sorted array to inspect.
* @param {*} value The value to evaluate.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {number} Returns the index at which `value` should be inserted
* into `array`.
* @example
@@ -7995,7 +8086,7 @@
* // => 3
*/
function sortedLastIndexOf(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value, true) - 1;
if (eq(array[index], value)) {
@@ -8063,7 +8154,7 @@
* // => [2, 3]
*/
function tail(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 1, length) : [];
}
@@ -8126,7 +8217,7 @@
* // => []
*/
function takeRight(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
@@ -8145,8 +8236,7 @@
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
@@ -8187,14 +8277,13 @@
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
* var users = [
* { 'user': 'barney', 'active': false },
- * { 'user': 'fred', 'active': false},
+ * { 'user': 'fred', 'active': false },
* { 'user': 'pebbles', 'active': true }
* ];
*
@@ -8251,8 +8340,7 @@
* @since 4.0.0
* @category Array
* @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new array of combined values.
* @example
*
@@ -8294,9 +8382,7 @@
*/
var unionWith = baseRest(function(arrays) {
var comparator = last(arrays);
- if (isArrayLikeObject(comparator)) {
- comparator = undefined;
- }
+ comparator = typeof comparator == 'function' ? comparator : undefined;
return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
});
@@ -8319,9 +8405,7 @@
* // => [2, 1]
*/
function uniq(array) {
- return (array && array.length)
- ? baseUniq(array)
- : [];
+ return (array && array.length) ? baseUniq(array) : [];
}
/**
@@ -8336,8 +8420,7 @@
* @since 4.0.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new duplicate free array.
* @example
*
@@ -8349,9 +8432,7 @@
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
function uniqBy(array, iteratee) {
- return (array && array.length)
- ? baseUniq(array, getIteratee(iteratee, 2))
- : [];
+ return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
}
/**
@@ -8375,9 +8456,8 @@
* // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
*/
function uniqWith(array, comparator) {
- return (array && array.length)
- ? baseUniq(array, undefined, comparator)
- : [];
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
}
/**
@@ -8509,8 +8589,7 @@
* @since 4.0.0
* @category Array
* @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new array of filtered values.
* @example
*
@@ -8552,9 +8631,7 @@
*/
var xorWith = baseRest(function(arrays) {
var comparator = last(arrays);
- if (isArrayLikeObject(comparator)) {
- comparator = undefined;
- }
+ comparator = typeof comparator == 'function' ? comparator : undefined;
return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
});
@@ -8625,7 +8702,8 @@
* @since 3.8.0
* @category Array
* @param {...Array} [arrays] The arrays to process.
- * @param {Function} [iteratee=_.identity] The function to combine grouped values.
+ * @param {Function} [iteratee=_.identity] The function to combine
+ * grouped values.
* @returns {Array} Returns the new array of grouped elements.
* @example
*
@@ -8741,7 +8819,7 @@
* @memberOf _
* @since 1.0.0
* @category Seq
- * @param {...(string|string[])} [paths] The property paths of elements to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Object} Returns the new `lodash` wrapper instance.
* @example
*
@@ -9002,8 +9080,7 @@
* @since 0.5.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
@@ -9037,8 +9114,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
* @returns {boolean} Returns `true` if all elements pass the predicate check,
* else `false`.
@@ -9084,8 +9160,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
* @see _.reject
* @example
@@ -9125,8 +9200,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=0] The index to search from.
* @returns {*} Returns the matched element, else `undefined`.
* @example
@@ -9163,8 +9237,7 @@
* @since 2.0.0
* @category Collection
* @param {Array|Object} collection The collection to inspect.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @param {number} [fromIndex=collection.length-1] The index to search from.
* @returns {*} Returns the matched element, else `undefined`.
* @example
@@ -9186,8 +9259,7 @@
* @since 4.0.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new flattened array.
* @example
*
@@ -9211,8 +9283,7 @@
* @since 4.7.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new flattened array.
* @example
*
@@ -9236,8 +9307,7 @@
* @since 4.7.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [iteratee=_.identity] The function invoked per iteration.
* @param {number} [depth=1] The maximum recursion depth.
* @returns {Array} Returns the new flattened array.
* @example
@@ -9326,8 +9396,7 @@
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
@@ -9415,12 +9484,10 @@
var invokeMap = baseRest(function(collection, path, args) {
var index = -1,
isFunc = typeof path == 'function',
- isProp = isKey(path),
result = isArrayLike(collection) ? Array(collection.length) : [];
baseEach(collection, function(value) {
- var func = isFunc ? path : ((isProp && value != null) ? value[path] : undefined);
- result[++index] = func ? apply(func, value, args) : baseInvoke(value, path, args);
+ result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
});
return result;
});
@@ -9436,8 +9503,7 @@
* @since 4.0.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
- * @param {Function} [iteratee=_.identity]
- * The iteratee to transform keys.
+ * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
@@ -9970,7 +10036,7 @@
function ary(func, n, guard) {
n = guard ? undefined : n;
n = (func && n == null) ? func.length : n;
- return createWrap(func, ARY_FLAG, undefined, undefined, undefined, undefined, n);
+ return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
}
/**
@@ -10043,10 +10109,10 @@
* // => 'hi fred!'
*/
var bind = baseRest(function(func, thisArg, partials) {
- var bitmask = BIND_FLAG;
+ var bitmask = WRAP_BIND_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bind));
- bitmask |= PARTIAL_FLAG;
+ bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(func, bitmask, thisArg, partials, holders);
});
@@ -10097,10 +10163,10 @@
* // => 'hiya fred!'
*/
var bindKey = baseRest(function(object, key, partials) {
- var bitmask = BIND_FLAG | BIND_KEY_FLAG;
+ var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
if (partials.length) {
var holders = replaceHolders(partials, getHolder(bindKey));
- bitmask |= PARTIAL_FLAG;
+ bitmask |= WRAP_PARTIAL_FLAG;
}
return createWrap(key, bitmask, object, partials, holders);
});
@@ -10148,7 +10214,7 @@
*/
function curry(func, arity, guard) {
arity = guard ? undefined : arity;
- var result = createWrap(func, CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
result.placeholder = curry.placeholder;
return result;
}
@@ -10193,7 +10259,7 @@
*/
function curryRight(func, arity, guard) {
arity = guard ? undefined : arity;
- var result = createWrap(func, CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
+ var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
result.placeholder = curryRight.placeholder;
return result;
}
@@ -10438,7 +10504,7 @@
* // => ['d', 'c', 'b', 'a']
*/
function flip(func) {
- return createWrap(func, FLIP_FLAG);
+ return createWrap(func, WRAP_FLIP_FLAG);
}
/**
@@ -10452,7 +10518,7 @@
* function. Its creation may be customized by replacing the `_.memoize.Cache`
* constructor with one whose instances implement the
* [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
- * method interface of `delete`, `get`, `has`, and `set`.
+ * method interface of `clear`, `delete`, `get`, `has`, and `set`.
*
* @static
* @memberOf _
@@ -10486,7 +10552,7 @@
* _.memoize.Cache = WeakMap;
*/
function memoize(func, resolver) {
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
+ if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
throw new TypeError(FUNC_ERROR_TEXT);
}
var memoized = function() {
@@ -10649,7 +10715,7 @@
*/
var partial = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partial));
- return createWrap(func, PARTIAL_FLAG, undefined, partials, holders);
+ return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
});
/**
@@ -10686,7 +10752,7 @@
*/
var partialRight = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partialRight));
- return createWrap(func, PARTIAL_RIGHT_FLAG, undefined, partials, holders);
+ return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
});
/**
@@ -10712,7 +10778,7 @@
* // => ['a', 'b', 'c']
*/
var rearg = flatRest(function(func, indexes) {
- return createWrap(func, REARG_FLAG, undefined, undefined, undefined, indexes);
+ return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
});
/**
@@ -10786,7 +10852,7 @@
if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
- start = start === undefined ? 0 : nativeMax(toInteger(start), 0);
+ start = start == null ? 0 : nativeMax(toInteger(start), 0);
return baseRest(function(args) {
var array = args[start],
otherArgs = castSlice(args, 0, start);
@@ -10902,8 +10968,7 @@
* // => '<p>fred, barney, &amp; pebbles</p>'
*/
function wrap(value, wrapper) {
- wrapper = wrapper == null ? identity : wrapper;
- return partial(wrapper, value);
+ return partial(castFunction(wrapper), value);
}
/*------------------------------------------------------------------------*/
@@ -10976,7 +11041,7 @@
* // => true
*/
function clone(value) {
- return baseClone(value, false, true);
+ return baseClone(value, CLONE_SYMBOLS_FLAG);
}
/**
@@ -11011,7 +11076,8 @@
* // => 0
*/
function cloneWith(value, customizer) {
- return baseClone(value, false, true, customizer);
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
}
/**
@@ -11033,7 +11099,7 @@
* // => false
*/
function cloneDeep(value) {
- return baseClone(value, true, true);
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
/**
@@ -11065,7 +11131,8 @@
* // => 20
*/
function cloneDeepWith(value, customizer) {
- return baseClone(value, true, true, customizer);
+ customizer = typeof customizer == 'function' ? customizer : undefined;
+ return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
}
/**
@@ -11328,7 +11395,7 @@
*/
function isBoolean(value) {
return value === true || value === false ||
- (isObjectLike(value) && objectToString.call(value) == boolTag);
+ (isObjectLike(value) && baseGetTag(value) == boolTag);
}
/**
@@ -11387,7 +11454,7 @@
* // => false
*/
function isElement(value) {
- return value != null && value.nodeType === 1 && isObjectLike(value) && !isPlainObject(value);
+ return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
}
/**
@@ -11424,6 +11491,9 @@
* // => false
*/
function isEmpty(value) {
+ if (value == null) {
+ return true;
+ }
if (isArrayLike(value) &&
(isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
isBuffer(value) || isTypedArray(value) || isArguments(value))) {
@@ -11452,7 +11522,7 @@
* date objects, error objects, maps, numbers, `Object` objects, regexes,
* sets, strings, symbols, and typed arrays. `Object` objects are compared
* by their own, not inherited, enumerable properties. Functions and DOM
- * nodes are **not** supported.
+ * nodes are compared by strict equality, i.e. `===`.
*
* @static
* @memberOf _
@@ -11511,7 +11581,7 @@
function isEqualWith(value, other, customizer) {
customizer = typeof customizer == 'function' ? customizer : undefined;
var result = customizer ? customizer(value, other) : undefined;
- return result === undefined ? baseIsEqual(value, other, customizer) : !!result;
+ return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
}
/**
@@ -11536,8 +11606,9 @@
if (!isObjectLike(value)) {
return false;
}
- return (objectToString.call(value) == errorTag) ||
- (typeof value.message == 'string' && typeof value.name == 'string');
+ var tag = baseGetTag(value);
+ return tag == errorTag || tag == domExcTag ||
+ (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
}
/**
@@ -11588,10 +11659,13 @@
* // => false
*/
function isFunction(value) {
+ if (!isObject(value)) {
+ return false;
+ }
// The use of `Object#toString` avoids issues with the `typeof` operator
- // in Safari 9 which returns 'object' for typed array and other constructors.
- var tag = isObject(value) ? objectToString.call(value) : '';
- return tag == funcTag || tag == genTag || tag == proxyTag;
+ // in Safari 9 which returns 'object' for typed arrays and other constructors.
+ var tag = baseGetTag(value);
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
/**
@@ -11942,7 +12016,7 @@
*/
function isNumber(value) {
return typeof value == 'number' ||
- (isObjectLike(value) && objectToString.call(value) == numberTag);
+ (isObjectLike(value) && baseGetTag(value) == numberTag);
}
/**
@@ -11974,7 +12048,7 @@
* // => true
*/
function isPlainObject(value) {
- if (!isObjectLike(value) || objectToString.call(value) != objectTag) {
+ if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
return false;
}
var proto = getPrototype(value);
@@ -11982,8 +12056,8 @@
return true;
}
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
- return (typeof Ctor == 'function' &&
- Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);
+ return typeof Ctor == 'function' && Ctor instanceof Ctor &&
+ funcToString.call(Ctor) == objectCtorString;
}
/**
@@ -12074,7 +12148,7 @@
*/
function isString(value) {
return typeof value == 'string' ||
- (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);
+ (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
}
/**
@@ -12096,7 +12170,7 @@
*/
function isSymbol(value) {
return typeof value == 'symbol' ||
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
+ (isObjectLike(value) && baseGetTag(value) == symbolTag);
}
/**
@@ -12178,7 +12252,7 @@
* // => false
*/
function isWeakSet(value) {
- return isObjectLike(value) && objectToString.call(value) == weakSetTag;
+ return isObjectLike(value) && baseGetTag(value) == weakSetTag;
}
/**
@@ -12263,8 +12337,8 @@
if (isArrayLike(value)) {
return isString(value) ? stringToArray(value) : copyArray(value);
}
- if (iteratorSymbol && value[iteratorSymbol]) {
- return iteratorToArray(value[iteratorSymbol]());
+ if (symIterator && value[symIterator]) {
+ return iteratorToArray(value[symIterator]());
}
var tag = getTag(value),
func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
@@ -12468,7 +12542,9 @@
* // => 3
*/
function toSafeInteger(value) {
- return baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
+ return value
+ ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
+ : (value === 0 ? value : 0);
}
/**
@@ -12650,7 +12726,7 @@
* @since 1.0.0
* @category Object
* @param {Object} object The object to iterate over.
- * @param {...(string|string[])} [paths] The property paths of elements to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Array} Returns the picked values.
* @example
*
@@ -12697,7 +12773,7 @@
*/
function create(prototype, properties) {
var result = baseCreate(prototype);
- return properties ? baseAssign(result, properties) : result;
+ return properties == null ? result : baseAssign(result, properties);
}
/**
@@ -12722,7 +12798,7 @@
* // => { 'a': 1, 'b': 2 }
*/
var defaults = baseRest(function(args) {
- args.push(undefined, assignInDefaults);
+ args.push(undefined, customDefaultsAssignIn);
return apply(assignInWith, undefined, args);
});
@@ -12746,7 +12822,7 @@
* // => { 'a': { 'b': 2, 'c': 3 } }
*/
var defaultsDeep = baseRest(function(args) {
- args.push(undefined, mergeDefaults);
+ args.push(undefined, customDefaultsMerge);
return apply(mergeWith, undefined, args);
});
@@ -13377,15 +13453,16 @@
/**
* The opposite of `_.pick`; this method creates an object composed of the
- * own and inherited enumerable string keyed properties of `object` that are
- * not omitted.
+ * own and inherited enumerable property paths of `object` that are not omitted.
+ *
+ * **Note:** This method is considerably slower than `_.pick`.
*
* @static
* @since 0.1.0
* @memberOf _
* @category Object
* @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property identifiers to omit.
+ * @param {...(string|string[])} [paths] The property paths to omit.
* @returns {Object} Returns the new object.
* @example
*
@@ -13394,12 +13471,26 @@
* _.omit(object, ['a', 'c']);
* // => { 'b': '2' }
*/
- var omit = flatRest(function(object, props) {
+ var omit = flatRest(function(object, paths) {
+ var result = {};
if (object == null) {
- return {};
+ return result;
+ }
+ var isDeep = false;
+ paths = arrayMap(paths, function(path) {
+ path = castPath(path, object);
+ isDeep || (isDeep = path.length > 1);
+ return path;
+ });
+ copyObject(object, getAllKeysIn(object), result);
+ if (isDeep) {
+ result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
+ }
+ var length = paths.length;
+ while (length--) {
+ baseUnset(result, paths[length]);
}
- props = arrayMap(props, toKey);
- return basePick(object, baseDifference(getAllKeysIn(object), props));
+ return result;
});
/**
@@ -13434,7 +13525,7 @@
* @memberOf _
* @category Object
* @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property identifiers to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Object} Returns the new object.
* @example
*
@@ -13443,8 +13534,8 @@
* _.pick(object, ['a', 'c']);
* // => { 'a': 1, 'c': 3 }
*/
- var pick = flatRest(function(object, props) {
- return object == null ? {} : basePick(object, arrayMap(props, toKey));
+ var pick = flatRest(function(object, paths) {
+ return object == null ? {} : basePick(object, paths);
});
/**
@@ -13466,7 +13557,16 @@
* // => { 'a': 1, 'c': 3 }
*/
function pickBy(object, predicate) {
- return object == null ? {} : basePickBy(object, getAllKeysIn(object), getIteratee(predicate));
+ if (object == null) {
+ return {};
+ }
+ var props = arrayMap(getAllKeysIn(object), function(prop) {
+ return [prop];
+ });
+ predicate = getIteratee(predicate);
+ return basePickBy(object, props, function(value, path) {
+ return predicate(value, path[0]);
+ });
}
/**
@@ -13499,15 +13599,15 @@
* // => 'default'
*/
function result(object, path, defaultValue) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length;
// Ensure the loop is entered when path is empty.
if (!length) {
- object = undefined;
length = 1;
+ object = undefined;
}
while (++index < length) {
var value = object == null ? undefined : object[toKey(path[index])];
@@ -13804,7 +13904,7 @@
* // => ['h', 'i']
*/
function values(object) {
- return object ? baseValues(object, keys(object)) : [];
+ return object == null ? [] : baseValues(object, keys(object));
}
/**
@@ -14533,7 +14633,10 @@
*/
function startsWith(string, target, position) {
string = toString(string);
- position = baseClamp(toInteger(position), 0, string.length);
+ position = position == null
+ ? 0
+ : baseClamp(toInteger(position), 0, string.length);
+
target = baseToString(target);
return string.slice(position, position + target.length) == target;
}
@@ -14652,9 +14755,9 @@
options = undefined;
}
string = toString(string);
- options = assignInWith({}, options, settings, assignInDefaults);
+ options = assignInWith({}, options, settings, customDefaultsAssignIn);
- var imports = assignInWith({}, options.imports, settings.imports, assignInDefaults),
+ var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
importsKeys = keys(imports),
importsValues = baseValues(imports, importsKeys);
@@ -15191,7 +15294,7 @@
* // => 'no match'
*/
function cond(pairs) {
- var length = pairs ? pairs.length : 0,
+ var length = pairs == null ? 0 : pairs.length,
toIteratee = getIteratee();
pairs = !length ? [] : arrayMap(pairs, function(pair) {
@@ -15237,7 +15340,7 @@
* // => [{ 'a': 1, 'b': 2 }]
*/
function conforms(source) {
- return baseConforms(baseClone(source, true));
+ return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
}
/**
@@ -15399,7 +15502,7 @@
* // => ['def']
*/
function iteratee(func) {
- return baseIteratee(typeof func == 'function' ? func : baseClone(func, true));
+ return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
}
/**
@@ -15431,7 +15534,7 @@
* // => [{ 'a': 4, 'b': 5, 'c': 6 }]
*/
function matches(source) {
- return baseMatches(baseClone(source, true));
+ return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
}
/**
@@ -15461,7 +15564,7 @@
* // => { 'a': 4, 'b': 5, 'c': 6 }
*/
function matchesProperty(path, srcValue) {
- return baseMatchesProperty(path, baseClone(srcValue, true));
+ return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
}
/**
@@ -16017,7 +16120,7 @@
if (isArray(value)) {
return arrayMap(value, toKey);
}
- return isSymbol(value) ? [value] : copyArray(stringToPath(value));
+ return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));
}
/**
@@ -16738,14 +16841,13 @@
// Add `LazyWrapper` methods for `_.drop` and `_.take` variants.
arrayEach(['drop', 'take'], function(methodName, index) {
LazyWrapper.prototype[methodName] = function(n) {
- var filtered = this.__filtered__;
- if (filtered && !index) {
- return new LazyWrapper(this);
- }
n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
- var result = this.clone();
- if (filtered) {
+ var result = (this.__filtered__ && !index)
+ ? new LazyWrapper(this)
+ : this.clone();
+
+ if (result.__filtered__) {
result.__takeCount__ = nativeMin(n, result.__takeCount__);
} else {
result.__views__.push({
@@ -16921,7 +17023,7 @@
}
});
- realNames[createHybrid(undefined, BIND_KEY_FLAG).name] = [{
+ realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{
'name': 'wrapper',
'func': undefined
}];
@@ -16943,8 +17045,8 @@
// Add lazy aliases.
lodash.prototype.first = lodash.prototype.head;
- if (iteratorSymbol) {
- lodash.prototype[iteratorSymbol] = wrapperToIterator;
+ if (symIterator) {
+ lodash.prototype[symIterator] = wrapperToIterator;
}
return lodash;
});
diff --git a/tools/eslint/node_modules/lodash/lodash.min.js b/tools/eslint/node_modules/lodash/lodash.min.js
index 4bf932bd97..ca447f4e82 100644
--- a/tools/eslint/node_modules/lodash/lodash.min.js
+++ b/tools/eslint/node_modules/lodash/lodash.min.js
@@ -1,134 +1,136 @@
/**
* @license
- * lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
+ * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
*/
-;(function(){function t(t,n){return t.set(n[0],n[1]),t}function n(t,n){return t.add(n),t}function r(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}function e(t,n,r,e){for(var u=-1,i=t?t.length:0;++u<i;){var o=t[u];n(e,o,r(o),t)}return e}function u(t,n){for(var r=-1,e=t?t.length:0;++r<e&&false!==n(t[r],r,t););return t}function i(t,n){for(var r=t?t.length:0;r--&&false!==n(t[r],r,t););
-return t}function o(t,n){for(var r=-1,e=t?t.length:0;++r<e;)if(!n(t[r],r,t))return false;return true}function f(t,n){for(var r=-1,e=t?t.length:0,u=0,i=[];++r<e;){var o=t[r];n(o,r,t)&&(i[u++]=o)}return i}function c(t,n){return!(!t||!t.length)&&-1<d(t,n,0)}function a(t,n,r){for(var e=-1,u=t?t.length:0;++e<u;)if(r(n,t[e]))return true;return false}function l(t,n){for(var r=-1,e=t?t.length:0,u=Array(e);++r<e;)u[r]=n(t[r],r,t);return u}function s(t,n){for(var r=-1,e=n.length,u=t.length;++r<e;)t[u+r]=n[r];return t}function h(t,n,r,e){
-var u=-1,i=t?t.length:0;for(e&&i&&(r=t[++u]);++u<i;)r=n(r,t[u],u,t);return r}function p(t,n,r,e){var u=t?t.length:0;for(e&&u&&(r=t[--u]);u--;)r=n(r,t[u],u,t);return r}function _(t,n){for(var r=-1,e=t?t.length:0;++r<e;)if(n(t[r],r,t))return true;return false}function v(t,n,r){var e;return r(t,function(t,r,u){if(n(t,r,u))return e=r,false}),e}function g(t,n,r,e){var u=t.length;for(r+=e?1:-1;e?r--:++r<u;)if(n(t[r],r,t))return r;return-1}function d(t,n,r){if(n===n)t:{--r;for(var e=t.length;++r<e;)if(t[r]===n){t=r;
-break t}t=-1}else t=g(t,b,r);return t}function y(t,n,r,e){--r;for(var u=t.length;++r<u;)if(e(t[r],n))return r;return-1}function b(t){return t!==t}function x(t,n){var r=t?t.length:0;return r?k(t,n)/r:P}function j(t){return function(n){return null==n?F:n[t]}}function w(t){return function(n){return null==t?F:t[n]}}function m(t,n,r,e,u){return u(t,function(t,u,i){r=e?(e=false,t):n(r,t,u,i)}),r}function A(t,n){var r=t.length;for(t.sort(n);r--;)t[r]=t[r].c;return t}function k(t,n){for(var r,e=-1,u=t.length;++e<u;){
-var i=n(t[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(t,n){for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);return e}function O(t,n){return l(n,function(n){return[n,t[n]]})}function S(t){return function(n){return t(n)}}function I(t,n){return l(n,function(n){return t[n]})}function R(t,n){return t.has(n)}function z(t,n){for(var r=-1,e=t.length;++r<e&&-1<d(n,t[r],0););return r}function W(t,n){for(var r=t.length;r--&&-1<d(n,t[r],0););return r}function B(t){return"\\"+Dt[t]}function L(t){var n=-1,r=Array(t.size);
-return t.forEach(function(t,e){r[++n]=[e,t]}),r}function U(t,n){return function(r){return t(n(r))}}function C(t,n){for(var r=-1,e=t.length,u=0,i=[];++r<e;){var o=t[r];o!==n&&"__lodash_placeholder__"!==o||(t[r]="__lodash_placeholder__",i[u++]=r)}return i}function M(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=t}),r}function D(t){var n=-1,r=Array(t.size);return t.forEach(function(t){r[++n]=[t,t]}),r}function T(t){if(Wt.test(t)){for(var n=Rt.lastIndex=0;Rt.test(t);)++n;t=n}else t=tn(t);
-return t}function $(t){return Wt.test(t)?t.match(Rt)||[]:t.split("")}var F,N=1/0,P=NaN,Z=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],q=/\b__p\+='';/g,V=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,J=/[&<>"']/g,Y=RegExp(G.source),H=RegExp(J.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,tt=/<%=([\s\S]+?)%>/g,nt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rt=/^\w*$/,et=/^\./,ut=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,it=/[\\^$.*+?()[\]{}|]/g,ot=RegExp(it.source),ft=/^\s+|\s+$/g,ct=/^\s+/,at=/\s+$/,lt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,st=/\{\n\/\* \[wrapped with (.+)\] \*/,ht=/,? & /,pt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,_t=/\\(\\)?/g,vt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,gt=/\w*$/,dt=/^[-+]0x[0-9a-f]+$/i,yt=/^0b[01]+$/i,bt=/^\[object .+?Constructor\]$/,xt=/^0o[0-7]+$/i,jt=/^(?:0|[1-9]\d*)$/,wt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,mt=/($^)/,At=/['\n\r\u2028\u2029\\]/g,kt="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",Et="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+kt,Ot="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",St=RegExp("['\u2019]","g"),It=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),Rt=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Ot+kt,"g"),zt=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d+",Et].join("|"),"g"),Wt=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Bt=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Lt="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Ut={};
-Ut["[object Float32Array]"]=Ut["[object Float64Array]"]=Ut["[object Int8Array]"]=Ut["[object Int16Array]"]=Ut["[object Int32Array]"]=Ut["[object Uint8Array]"]=Ut["[object Uint8ClampedArray]"]=Ut["[object Uint16Array]"]=Ut["[object Uint32Array]"]=true,Ut["[object Arguments]"]=Ut["[object Array]"]=Ut["[object ArrayBuffer]"]=Ut["[object Boolean]"]=Ut["[object DataView]"]=Ut["[object Date]"]=Ut["[object Error]"]=Ut["[object Function]"]=Ut["[object Map]"]=Ut["[object Number]"]=Ut["[object Object]"]=Ut["[object RegExp]"]=Ut["[object Set]"]=Ut["[object String]"]=Ut["[object WeakMap]"]=false;
-var Ct={};Ct["[object Arguments]"]=Ct["[object Array]"]=Ct["[object ArrayBuffer]"]=Ct["[object DataView]"]=Ct["[object Boolean]"]=Ct["[object Date]"]=Ct["[object Float32Array]"]=Ct["[object Float64Array]"]=Ct["[object Int8Array]"]=Ct["[object Int16Array]"]=Ct["[object Int32Array]"]=Ct["[object Map]"]=Ct["[object Number]"]=Ct["[object Object]"]=Ct["[object RegExp]"]=Ct["[object Set]"]=Ct["[object String]"]=Ct["[object Symbol]"]=Ct["[object Uint8Array]"]=Ct["[object Uint8ClampedArray]"]=Ct["[object Uint16Array]"]=Ct["[object Uint32Array]"]=true,
-Ct["[object Error]"]=Ct["[object Function]"]=Ct["[object WeakMap]"]=false;var Mt,Dt={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tt=parseFloat,$t=parseInt,Ft=typeof global=="object"&&global&&global.Object===Object&&global,Nt=typeof self=="object"&&self&&self.Object===Object&&self,Pt=Ft||Nt||Function("return this")(),Zt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,qt=Zt&&typeof module=="object"&&module&&!module.nodeType&&module,Vt=qt&&qt.exports===Zt,Kt=Vt&&Ft.h;
-t:{try{Mt=Kt&&Kt.g("util");break t}catch(t){}Mt=void 0}var Gt=Mt&&Mt.isArrayBuffer,Jt=Mt&&Mt.isDate,Yt=Mt&&Mt.isMap,Ht=Mt&&Mt.isRegExp,Qt=Mt&&Mt.isSet,Xt=Mt&&Mt.isTypedArray,tn=j("length"),nn=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I",
-"\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C",
-"\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i",
-"\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S",
-"\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n",
-"\u017f":"s"}),rn=w({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),en=w({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),un=function w(kt){function Et(t){return fi.call(t)}function Ot(t){if(vu(t)&&!nf(t)&&!(t instanceof Dt)){if(t instanceof Mt)return t;if(ui.call(t,"__wrapped__"))return De(t)}return new Mt(t)}function Rt(){}function Mt(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=F}function Dt(t){this.__wrapped__=t,this.__actions__=[],
-this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Ft(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Nt(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function Zt(t){var n=-1,r=t?t.length:0;for(this.clear();++n<r;){var e=t[n];this.set(e[0],e[1])}}function qt(t){var n=-1,r=t?t.length:0;for(this.__data__=new Zt;++n<r;)this.add(t[n])}function Kt(t){this.size=(this.__data__=new Nt(t)).size;
-}function tn(t,n){var r,e=nf(t),u=!e&&tf(t),i=!e&&!u&&ef(t),o=!e&&!u&&!i&&af(t),u=(e=e||u||i||o)?E(t.length,Hu):[],f=u.length;for(r in t)!n&&!ui.call(t,r)||e&&("length"==r||i&&("offset"==r||"parent"==r)||o&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||me(r,f))||u.push(r);return u}function on(t){var n=t.length;return n?t[cr(0,n-1)]:F}function fn(t,n){return Le(Cr(t),dn(n,0,t.length))}function cn(t){return Le(Cr(t))}function an(t,n,r,e){return t===F||fu(t,ti[r])&&!ui.call(e,r)?n:t}function ln(t,n,r){
-(r===F||fu(t[n],r))&&(r!==F||n in t)||vn(t,n,r)}function sn(t,n,r){var e=t[n];ui.call(t,n)&&fu(e,r)&&(r!==F||n in t)||vn(t,n,r)}function hn(t,n){for(var r=t.length;r--;)if(fu(t[r][0],n))return r;return-1}function pn(t,n,r,e){return to(t,function(t,u,i){n(e,t,r(t),i)}),e}function _n(t,n){return t&&Mr(n,Iu(n),t)}function vn(t,n,r){"__proto__"==n&&xi?xi(t,n,{configurable:true,enumerable:true,value:r,writable:true}):t[n]=r}function gn(t,n){for(var r=-1,e=null==t,u=n.length,i=Zu(u);++r<u;)i[r]=e?F:Ou(t,n[r]);
-return i}function dn(t,n,r){return t===t&&(r!==F&&(t=t<=r?t:r),n!==F&&(t=t>=n?t:n)),t}function yn(t,n,r,e,i,o,f){var c;if(e&&(c=o?e(t,i,o,f):e(t)),c!==F)return c;if(!_u(t))return t;if(i=nf(t)){if(c=be(t),!n)return Cr(t,c)}else{var a=Et(t),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(ef(t))return Rr(t,n);if("[object Object]"==a||"[object Arguments]"==a||l&&!o){if(c=xe(l?{}:t),!n)return Dr(t,_n(c,t))}else{if(!Ct[a])return o?t:{};c=je(t,a,yn,n)}}if(f||(f=new Kt),o=f.get(t))return o;f.set(t,c);
-var s=i?F:(r?se:Iu)(t);return u(s||t,function(u,i){s&&(i=u,u=t[i]),sn(c,i,yn(u,n,r,e,i,t,f))}),c}function bn(t){var n=Iu(t);return function(r){return xn(r,t,n)}}function xn(t,n,r){var e=r.length;if(null==t)return!e;for(t=Ju(t);e--;){var u=r[e],i=n[u],o=t[u];if(o===F&&!(u in t)||!i(o))return false}return true}function jn(t,n,r){if(typeof t!="function")throw new Qu("Expected a function");return po(function(){t.apply(F,r)},n)}function wn(t,n,r,e){var u=-1,i=c,o=true,f=t.length,s=[],h=n.length;if(!f)return s;r&&(n=l(n,S(r))),
-e?(i=a,o=false):200<=n.length&&(i=R,o=false,n=new qt(n));t:for(;++u<f;){var p=t[u],_=r?r(p):p,p=e||0!==p?p:0;if(o&&_===_){for(var v=h;v--;)if(n[v]===_)continue t;s.push(p)}else i(n,_,e)||s.push(p)}return s}function mn(t,n){var r=true;return to(t,function(t,e,u){return r=!!n(t,e,u)}),r}function An(t,n,r){for(var e=-1,u=t.length;++e<u;){var i=t[e],o=n(i);if(null!=o&&(f===F?o===o&&!bu(o):r(o,f)))var f=o,c=i}return c}function kn(t,n){var r=[];return to(t,function(t,e,u){n(t,e,u)&&r.push(t)}),r}function En(t,n,r,e,u){
-var i=-1,o=t.length;for(r||(r=we),u||(u=[]);++i<o;){var f=t[i];0<n&&r(f)?1<n?En(f,n-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function On(t,n){return t&&ro(t,n,Iu)}function Sn(t,n){return t&&eo(t,n,Iu)}function In(t,n){return f(n,function(n){return su(t[n])})}function Rn(t,n){n=ke(n,t)?[n]:Sr(n);for(var r=0,e=n.length;null!=t&&r<e;)t=t[Ue(n[r++])];return r&&r==e?t:F}function zn(t,n,r){return n=n(t),nf(t)?n:s(n,r(t))}function Wn(t,n){return t>n}function Bn(t,n){return null!=t&&ui.call(t,n)}function Ln(t,n){
-return null!=t&&n in Ju(t)}function Un(t,n,r){for(var e=r?a:c,u=t[0].length,i=t.length,o=i,f=Zu(i),s=1/0,h=[];o--;){var p=t[o];o&&n&&(p=l(p,S(n))),s=Wi(p.length,s),f[o]=!r&&(n||120<=u&&120<=p.length)?new qt(o&&p):F}var p=t[0],_=-1,v=f[0];t:for(;++_<u&&h.length<s;){var g=p[_],d=n?n(g):g,g=r||0!==g?g:0;if(v?!R(v,d):!e(h,d,r)){for(o=i;--o;){var y=f[o];if(y?!R(y,d):!e(t[o],d,r))continue t}v&&v.push(d),h.push(g)}}return h}function Cn(t,n,r){var e={};return On(t,function(t,u,i){n(e,r(t),u,i)}),e}function Mn(t,n,e){
-return ke(n,t)||(n=Sr(n),t=ze(t,n),n=Pe(n)),n=null==t?t:t[Ue(n)],null==n?F:r(n,t,e)}function Dn(t){return vu(t)&&"[object Arguments]"==fi.call(t)}function Tn(t){return vu(t)&&"[object ArrayBuffer]"==fi.call(t)}function $n(t){return vu(t)&&"[object Date]"==fi.call(t)}function Fn(t,n,r,e,u){if(t===n)n=true;else if(null==t||null==n||!_u(t)&&!vu(n))n=t!==t&&n!==n;else t:{var i=nf(t),o=nf(n),f="[object Array]",c="[object Array]";i||(f=Et(t),f="[object Arguments]"==f?"[object Object]":f),o||(c=Et(n),c="[object Arguments]"==c?"[object Object]":c);
-var a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&ef(t)){if(!ef(n)){n=false;break t}i=true,a=false}if(c&&!a)u||(u=new Kt),n=i||af(t)?ce(t,n,Fn,r,e,u):ae(t,n,f,Fn,r,e,u);else{if(!(2&e)&&(i=a&&ui.call(t,"__wrapped__"),f=o&&ui.call(n,"__wrapped__"),i||f)){t=i?t.value():t,n=f?n.value():n,u||(u=new Kt),n=Fn(t,n,r,e,u);break t}if(c)n:if(u||(u=new Kt),i=2&e,f=Iu(t),o=f.length,c=Iu(n).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in n:ui.call(n,l))){n=false;break n}}if((c=u.get(t))&&u.get(n))n=c==n;else{
-c=true,u.set(t,n),u.set(n,t);for(var s=i;++a<o;){var l=f[a],h=t[l],p=n[l];if(r)var _=i?r(p,h,l,n,t,u):r(h,p,l,t,n,u);if(_===F?h!==p&&!Fn(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=t.constructor,e=n.constructor,r!=e&&"constructor"in t&&"constructor"in n&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),u.delete(t),u.delete(n),n=c}}else n=false;else n=false}}return n}function Nn(t){return vu(t)&&"[object Map]"==Et(t)}function Pn(t,n,r,e){var u=r.length,i=u,o=!e;
-if(null==t)return!i;for(t=Ju(t);u--;){var f=r[u];if(o&&f[2]?f[1]!==t[f[0]]:!(f[0]in t))return false}for(;++u<i;){var f=r[u],c=f[0],a=t[c],l=f[1];if(o&&f[2]){if(a===F&&!(c in t))return false}else{if(f=new Kt,e)var s=e(a,l,c,t,n,f);if(s===F?!Fn(l,a,e,3,f):!s)return false}}return true}function Zn(t){return!(!_u(t)||ri&&ri in t)&&(su(t)?ai:bt).test(Ce(t))}function qn(t){return _u(t)&&"[object RegExp]"==fi.call(t)}function Vn(t){return vu(t)&&"[object Set]"==Et(t)}function Kn(t){return vu(t)&&pu(t.length)&&!!Ut[fi.call(t)];
-}function Gn(t){return typeof t=="function"?t:null==t?Mu:typeof t=="object"?nf(t)?Xn(t[0],t[1]):Qn(t):Fu(t)}function Jn(t){if(!Oe(t))return Ri(t);var n,r=[];for(n in Ju(t))ui.call(t,n)&&"constructor"!=n&&r.push(n);return r}function Yn(t,n){return t<n}function Hn(t,n){var r=-1,e=cu(t)?Zu(t.length):[];return to(t,function(t,u,i){e[++r]=n(t,u,i)}),e}function Qn(t){var n=ge(t);return 1==n.length&&n[0][2]?Se(n[0][0],n[0][1]):function(r){return r===t||Pn(r,t,n)}}function Xn(t,n){return ke(t)&&n===n&&!_u(n)?Se(Ue(t),n):function(r){
-var e=Ou(r,t);return e===F&&e===n?Su(r,t):Fn(n,e,F,3)}}function tr(t,n,r,e,u){t!==n&&ro(n,function(i,o){if(_u(i)){u||(u=new Kt);var f=u,c=t[o],a=n[o],l=f.get(a);if(l)ln(t,o,l);else{var l=e?e(c,a,o+"",t,n,f):F,s=l===F;if(s){var h=nf(a),p=!h&&ef(a),_=!h&&!p&&af(a),l=a;h||p||_?nf(c)?l=c:au(c)?l=Cr(c):p?(s=false,l=Rr(a,true)):_?(s=false,l=Wr(a,true)):l=[]:du(a)||tf(a)?(l=c,tf(c)?l=ku(c):(!_u(c)||r&&su(c))&&(l=xe(a))):s=false}s&&(f.set(a,l),tr(l,a,r,e,f),f.delete(a)),ln(t,o,l)}}else f=e?e(t[o],i,o+"",t,n,u):F,f===F&&(f=i),
-ln(t,o,f)},Ru)}function nr(t,n){var r=t.length;if(r)return n+=0>n?r:0,me(n,r)?t[n]:F}function rr(t,n,r){var e=-1;return n=l(n.length?n:[Mu],S(_e())),t=Hn(t,function(t){return{a:l(n,function(n){return n(t)}),b:++e,c:t}}),A(t,function(t,n){var e;t:{e=-1;for(var u=t.a,i=n.a,o=u.length,f=r.length;++e<o;){var c=Br(u[e],i[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);break t}}e=t.b-n.b}return e})}function er(t,n){return t=Ju(t),ur(t,n,function(n,r){return r in t})}function ur(t,n,r){for(var e=-1,u=n.length,i={};++e<u;){
-var o=n[e],f=t[o];r(f,o)&&vn(i,o,f)}return i}function ir(t){return function(n){return Rn(n,t)}}function or(t,n,r,e){var u=e?y:d,i=-1,o=n.length,f=t;for(t===n&&(n=Cr(n)),r&&(f=l(t,S(r)));++i<o;)for(var c=0,a=n[i],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==t&&yi.call(f,c,1),yi.call(t,c,1);return t}function fr(t,n){for(var r=t?n.length:0,e=r-1;r--;){var u=n[r];if(r==e||u!==i){var i=u;if(me(u))yi.call(t,u,1);else if(ke(u,t))delete t[Ue(u)];else{var u=Sr(u),o=ze(t,u);null!=o&&delete o[Ue(Pe(u))]}}}}function cr(t,n){
-return t+ki(Ui()*(n-t+1))}function ar(t,n){var r="";if(!t||1>n||9007199254740991<n)return r;do n%2&&(r+=t),(n=ki(n/2))&&(t+=t);while(n);return r}function lr(t,n){return _o(Re(t,n,Mu),t+"")}function sr(t){return on(Wu(t))}function hr(t,n){var r=Wu(t);return Le(r,dn(n,0,r.length))}function pr(t,n,r,e){if(!_u(t))return t;n=ke(n,t)?[n]:Sr(n);for(var u=-1,i=n.length,o=i-1,f=t;null!=f&&++u<i;){var c=Ue(n[u]),a=r;if(u!=o){var l=f[c],a=e?e(l,c,f):F;a===F&&(a=_u(l)?l:me(n[u+1])?[]:{})}sn(f,c,a),f=f[c]}return t;
-}function _r(t){return Le(Wu(t))}function vr(t,n,r){var e=-1,u=t.length;for(0>n&&(n=-n>u?0:u+n),r=r>u?u:r,0>r&&(r+=u),u=n>r?0:r-n>>>0,n>>>=0,r=Zu(u);++e<u;)r[e]=t[e+n];return r}function gr(t,n){var r;return to(t,function(t,e,u){return r=n(t,e,u),!r}),!!r}function dr(t,n,r){var e=0,u=t?t.length:e;if(typeof n=="number"&&n===n&&2147483647>=u){for(;e<u;){var i=e+u>>>1,o=t[i];null!==o&&!bu(o)&&(r?o<=n:o<n)?e=i+1:u=i}return u}return yr(t,n,Mu,r)}function yr(t,n,r,e){n=r(n);for(var u=0,i=t?t.length:0,o=n!==n,f=null===n,c=bu(n),a=n===F;u<i;){
-var l=ki((u+i)/2),s=r(t[l]),h=s!==F,p=null===s,_=s===s,v=bu(s);(o?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?s<=n:s<n)?u=l+1:i=l}return Wi(i,4294967294)}function br(t,n){for(var r=-1,e=t.length,u=0,i=[];++r<e;){var o=t[r],f=n?n(o):o;if(!r||!fu(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function xr(t){return typeof t=="number"?t:bu(t)?P:+t}function jr(t){if(typeof t=="string")return t;if(nf(t))return l(t,jr)+"";if(bu(t))return Qi?Qi.call(t):"";var n=t+"";return"0"==n&&1/t==-N?"-0":n;
-}function wr(t,n,r){var e=-1,u=c,i=t.length,o=true,f=[],l=f;if(r)o=false,u=a;else if(200<=i){if(u=n?null:fo(t))return M(u);o=false,u=R,l=new qt}else l=n?[]:f;t:for(;++e<i;){var s=t[e],h=n?n(s):s,s=r||0!==s?s:0;if(o&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue t;n&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function mr(t,n,r,e){for(var u=t.length,i=e?u:-1;(e?i--:++i<u)&&n(t[i],i,t););return r?vr(t,e?0:i,e?i+1:u):vr(t,e?i+1:0,e?u:i)}function Ar(t,n){var r=t;return r instanceof Dt&&(r=r.value()),
-h(n,function(t,n){return n.func.apply(n.thisArg,s([t],n.args))},r)}function kr(t,n,r){for(var e=-1,u=t.length;++e<u;)var i=i?s(wn(i,t[e],n,r),wn(t[e],i,n,r)):t[e];return i&&i.length?wr(i,n,r):[]}function Er(t,n,r){for(var e=-1,u=t.length,i=n.length,o={};++e<u;)r(o,t[e],e<i?n[e]:F);return o}function Or(t){return au(t)?t:[]}function Sr(t){return nf(t)?t:vo(t)}function Ir(t,n,r){var e=t.length;return r=r===F?e:r,!n&&r>=e?t:vr(t,n,r)}function Rr(t,n){if(n)return t.slice();var r=t.length,r=pi?pi(r):new t.constructor(r);
-return t.copy(r),r}function zr(t){var n=new t.constructor(t.byteLength);return new hi(n).set(new hi(t)),n}function Wr(t,n){return new t.constructor(n?zr(t.buffer):t.buffer,t.byteOffset,t.length)}function Br(t,n){if(t!==n){var r=t!==F,e=null===t,u=t===t,i=bu(t),o=n!==F,f=null===n,c=n===n,a=bu(n);if(!f&&!a&&!i&&t>n||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&t<n||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Lr(t,n,r,e){var u=-1,i=t.length,o=r.length,f=-1,c=n.length,a=zi(i-o,0),l=Zu(c+a);
-for(e=!e;++f<c;)l[f]=n[f];for(;++u<o;)(e||u<i)&&(l[r[u]]=t[u]);for(;a--;)l[f++]=t[u++];return l}function Ur(t,n,r,e){var u=-1,i=t.length,o=-1,f=r.length,c=-1,a=n.length,l=zi(i-f,0),s=Zu(l+a);for(e=!e;++u<l;)s[u]=t[u];for(l=u;++c<a;)s[l+c]=n[c];for(;++o<f;)(e||u<i)&&(s[l+r[o]]=t[u++]);return s}function Cr(t,n){var r=-1,e=t.length;for(n||(n=Zu(e));++r<e;)n[r]=t[r];return n}function Mr(t,n,r,e){var u=!r;r||(r={});for(var i=-1,o=n.length;++i<o;){var f=n[i],c=e?e(r[f],t[f],f,r,t):F;c===F&&(c=t[f]),u?vn(r,f,c):sn(r,f,c);
-}return r}function Dr(t,n){return Mr(t,ao(t),n)}function Tr(t,n){return function(r,u){var i=nf(r)?e:pn,o=n?n():{};return i(r,t,_e(u,2),o)}}function $r(t){return lr(function(n,r){var e=-1,u=r.length,i=1<u?r[u-1]:F,o=2<u?r[2]:F,i=3<t.length&&typeof i=="function"?(u--,i):F;for(o&&Ae(r[0],r[1],o)&&(i=3>u?F:i,u=1),n=Ju(n);++e<u;)(o=r[e])&&t(n,o,e,i);return n})}function Fr(t,n){return function(r,e){if(null==r)return r;if(!cu(r))return t(r,e);for(var u=r.length,i=n?u:-1,o=Ju(r);(n?i--:++i<u)&&false!==e(o[i],i,o););
-return r}}function Nr(t){return function(n,r,e){var u=-1,i=Ju(n);e=e(n);for(var o=e.length;o--;){var f=e[t?o:++u];if(false===r(i[f],f,i))break}return n}}function Pr(t,n,r){function e(){return(this&&this!==Pt&&this instanceof e?i:t).apply(u?r:this,arguments)}var u=1&n,i=Vr(t);return e}function Zr(t){return function(n){n=Eu(n);var r=Wt.test(n)?$(n):F,e=r?r[0]:n.charAt(0);return n=r?Ir(r,1).join(""):n.slice(1),e[t]()+n}}function qr(t){return function(n){return h(Uu(Lu(n).replace(St,"")),t,"")}}function Vr(t){
-return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var r=Xi(t.prototype),n=t.apply(r,n);return _u(n)?n:r}}function Kr(t,n,e){function u(){for(var o=arguments.length,f=Zu(o),c=o,a=pe(u);c--;)f[c]=arguments[c];
-return c=3>o&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,o<e?ue(t,n,Yr,u.placeholder,F,f,c,F,F,e-o):r(this&&this!==Pt&&this instanceof u?i:t,this,f)}var i=Vr(t);return u}function Gr(t){return function(n,r,e){var u=Ju(n);if(!cu(n)){var i=_e(r,3);n=Iu(n),r=function(t){return i(u[t],t,u)}}return r=t(n,r,e),-1<r?u[i?n[r]:r]:F}}function Jr(t){return le(function(n){var r=n.length,e=r,u=Mt.prototype.thru;for(t&&n.reverse();e--;){var i=n[e];if(typeof i!="function")throw new Qu("Expected a function");if(u&&!o&&"wrapper"==he(i))var o=new Mt([],true);
-}for(e=o?e:r;++e<r;)var i=n[e],u=he(i),f="wrapper"==u?co(i):F,o=f&&Ee(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?o[he(f[0])].apply(o,f[3]):1==i.length&&Ee(i)?o[u]():o.thru(i);return function(){var t=arguments,e=t[0];if(o&&1==t.length&&nf(e)&&200<=e.length)return o.plant(e).value();for(var u=0,t=r?n[u].apply(this,t):e;++u<r;)t=n[u].call(this,t);return t}})}function Yr(t,n,r,e,u,i,o,f,c,a){function l(){for(var d=arguments.length,y=Zu(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=pe(l),b=y.length;for(x=0;b--;)y[b]===j&&++x;
-}if(e&&(y=Lr(y,e,u,_)),i&&(y=Ur(y,i,o,_)),d-=x,_&&d<a)return j=C(y,j),ue(t,n,Yr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[t]:t,d=y.length,f){x=y.length;for(var w=Wi(f.length,x),m=Cr(y);w--;){var A=f[w];y[w]=me(A,x)?m[A]:F}}else v&&1<d&&y.reverse();return s&&c<d&&(y.length=c),this&&this!==Pt&&this instanceof l&&(b=g||Vr(b)),b.apply(j,y)}var s=128&n,h=1&n,p=2&n,_=24&n,v=512&n,g=p?F:Vr(t);return l}function Hr(t,n){return function(r,e){return Cn(r,t,n(e))}}function Qr(t,n){return function(r,e){
-var u;if(r===F&&e===F)return n;if(r!==F&&(u=r),e!==F){if(u===F)return e;typeof r=="string"||typeof e=="string"?(r=jr(r),e=jr(e)):(r=xr(r),e=xr(e)),u=t(r,e)}return u}}function Xr(t){return le(function(n){return n=l(n,S(_e())),lr(function(e){var u=this;return t(n,function(t){return r(t,u,e)})})})}function te(t,n){n=n===F?" ":jr(n);var r=n.length;return 2>r?r?ar(n,t):n:(r=ar(n,Ai(t/T(n))),Wt.test(n)?Ir($(r),0,t).join(""):r.slice(0,t))}function ne(t,n,e,u){function i(){for(var n=-1,c=arguments.length,a=-1,l=u.length,s=Zu(l+c),h=this&&this!==Pt&&this instanceof i?f:t;++a<l;)s[a]=u[a];
-for(;c--;)s[a++]=arguments[++n];return r(h,o?e:this,s)}var o=1&n,f=Vr(t);return i}function re(t){return function(n,r,e){e&&typeof e!="number"&&Ae(n,r,e)&&(r=e=F),n=ju(n),r===F?(r=n,n=0):r=ju(r),e=e===F?n<r?1:-1:ju(e);var u=-1;r=zi(Ai((r-n)/(e||1)),0);for(var i=Zu(r);r--;)i[t?r:++u]=n,n+=e;return i}}function ee(t){return function(n,r){return typeof n=="string"&&typeof r=="string"||(n=Au(n),r=Au(r)),t(n,r)}}function ue(t,n,r,e,u,i,o,f,c,a){var l=8&n,s=l?o:F;o=l?F:o;var h=l?i:F;return i=l?F:i,n=(n|(l?32:64))&~(l?64:32),
-4&n||(n&=-4),u=[t,n,u,h,s,i,o,f,c,a],r=r.apply(F,u),Ee(t)&&ho(r,u),r.placeholder=e,We(r,t,n)}function ie(t){var n=Gu[t];return function(t,r){if(t=Au(t),r=Wi(wu(r),292)){var e=(Eu(t)+"e").split("e"),e=n(e[0]+"e"+(+e[1]+r)),e=(Eu(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return n(t)}}function oe(t){return function(n){var r=Et(n);return"[object Map]"==r?L(n):"[object Set]"==r?D(n):O(n,t(n))}}function fe(t,n,r,e,u,i,o,f){var c=2&n;if(!c&&typeof t!="function")throw new Qu("Expected a function");var a=e?e.length:0;
-if(a||(n&=-97,e=u=F),o=o===F?o:zi(wu(o),0),f=f===F?f:wu(f),a-=u?u.length:0,64&n){var l=e,s=u;e=u=F}var h=c?F:co(t);return i=[t,n,r,e,u,l,s,i,o,f],h&&(r=i[1],t=h[1],n=r|t,e=128==t&&8==r||128==t&&256==r&&i[7].length<=h[8]||384==t&&h[7].length<=h[8]&&8==r,131>n||e)&&(1&t&&(i[2]=h[2],n|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Lr(e,r,h[4]):r,i[4]=e?C(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Ur(e,r,h[6]):r,i[6]=e?C(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&t&&(i[8]=null==i[8]?h[8]:Wi(i[8],h[8])),
-null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=n),t=i[0],n=i[1],r=i[2],e=i[3],u=i[4],f=i[9]=null==i[9]?c?0:t.length:zi(i[9]-a,0),!f&&24&n&&(n&=-25),We((h?uo:ho)(n&&1!=n?8==n||16==n?Kr(t,n,f):32!=n&&33!=n||u.length?Yr.apply(F,i):ne(t,n,r,e):Pr(t,n,r),i),t,n)}function ce(t,n,r,e,u,i){var o=2&u,f=t.length,c=n.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(t))&&i.get(n))return c==n;var c=-1,a=true,l=1&u?new qt:F;for(i.set(t,n),i.set(n,t);++c<f;){var s=t[c],h=n[c];if(e)var p=o?e(h,s,c,n,t,i):e(s,h,c,t,n,i);if(p!==F){
-if(p)continue;a=false;break}if(l){if(!_(n,function(t,n){if(!R(l,n)&&(s===t||r(s,t,e,u,i)))return l.push(n)})){a=false;break}}else if(s!==h&&!r(s,h,e,u,i)){a=false;break}}return i.delete(t),i.delete(n),a}function ae(t,n,r,e,u,i,o){switch(r){case"[object DataView]":if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)break;t=t.buffer,n=n.buffer;case"[object ArrayBuffer]":if(t.byteLength!=n.byteLength||!e(new hi(t),new hi(n)))break;return true;case"[object Boolean]":case"[object Date]":case"[object Number]":
-return fu(+t,+n);case"[object Error]":return t.name==n.name&&t.message==n.message;case"[object RegExp]":case"[object String]":return t==n+"";case"[object Map]":var f=L;case"[object Set]":if(f||(f=M),t.size!=n.size&&!(2&i))break;return(r=o.get(t))?r==n:(i|=1,o.set(t,n),n=ce(f(t),f(n),e,u,i,o),o.delete(t),n);case"[object Symbol]":if(Hi)return Hi.call(t)==Hi.call(n)}return false}function le(t){return _o(Re(t,F,Fe),t+"")}function se(t){return zn(t,Iu,ao)}function he(t){for(var n=t.name+"",r=Zi[n],e=ui.call(Zi,n)?r.length:0;e--;){
-var u=r[e],i=u.func;if(null==i||i==t)return u.name}return n}function pe(t){return(ui.call(Ot,"placeholder")?Ot:t).placeholder}function _e(){var t=Ot.iteratee||Du,t=t===Du?Gn:t;return arguments.length?t(arguments[0],arguments[1]):t}function ve(t,n){var r=t.__data__,e=typeof n;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==n:null===n)?r[typeof n=="string"?"string":"hash"]:r.map}function ge(t){for(var n=Iu(t),r=n.length;r--;){var e=n[r],u=t[e];n[r]=[e,u,u===u&&!_u(u)]}return n;
-}function de(t,n){var r=null==t?F:t[n];return Zn(r)?r:F}function ye(t,n,r){n=ke(n,t)?[n]:Sr(n);for(var e=-1,u=n.length,i=false;++e<u;){var o=Ue(n[e]);if(!(i=null!=t&&r(t,o)))break;t=t[o]}return i||++e!=u?i:(u=t?t.length:0,!!u&&pu(u)&&me(o,u)&&(nf(t)||tf(t)))}function be(t){var n=t.length,r=t.constructor(n);return n&&"string"==typeof t[0]&&ui.call(t,"index")&&(r.index=t.index,r.input=t.input),r}function xe(t){return typeof t.constructor!="function"||Oe(t)?{}:Xi(_i(t))}function je(r,e,u,i){var o=r.constructor;
-switch(e){case"[object ArrayBuffer]":return zr(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object DataView]":return e=i?zr(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Wr(r,i);case"[object Map]":return e=i?u(L(r),true):L(r),
-h(e,t,new r.constructor);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return e=new r.constructor(r.source,gt.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=i?u(M(r),true):M(r),h(e,n,new r.constructor);case"[object Symbol]":return Hi?Ju(Hi.call(r)):{}}}function we(t){return nf(t)||tf(t)||!!(bi&&t&&t[bi])}function me(t,n){return n=null==n?9007199254740991:n,!!n&&(typeof t=="number"||jt.test(t))&&-1<t&&0==t%1&&t<n}function Ae(t,n,r){if(!_u(r))return false;
-var e=typeof n;return!!("number"==e?cu(r)&&me(n,r.length):"string"==e&&n in r)&&fu(r[n],t)}function ke(t,n){if(nf(t))return false;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!bu(t))||(rt.test(t)||!nt.test(t)||null!=n&&t in Ju(n))}function Ee(t){var n=he(t),r=Ot[n];return typeof r=="function"&&n in Dt.prototype&&(t===r||(n=co(r),!!n&&t===n[0]))}function Oe(t){var n=t&&t.constructor;return t===(typeof n=="function"&&n.prototype||ti)}function Se(t,n){return function(r){return null!=r&&(r[t]===n&&(n!==F||t in Ju(r)));
-}}function Ie(t,n,r,e,u,i){return _u(t)&&_u(n)&&(i.set(n,t),tr(t,n,F,Ie,i),i.delete(n)),t}function Re(t,n,e){return n=zi(n===F?t.length-1:n,0),function(){for(var u=arguments,i=-1,o=zi(u.length-n,0),f=Zu(o);++i<o;)f[i]=u[n+i];for(i=-1,o=Zu(n+1);++i<n;)o[i]=u[i];return o[n]=e(f),r(t,this,o)}}function ze(t,n){return 1==n.length?t:Rn(t,vr(n,0,-1))}function We(t,n,r){var e=n+"";n=_o;var u,i=Me;return u=(u=e.match(st))?u[1].split(ht):[],r=i(u,r),(i=r.length)&&(u=i-1,r[u]=(1<i?"& ":"")+r[u],r=r.join(2<i?", ":" "),
-e=e.replace(lt,"{\n/* [wrapped with "+r+"] */\n")),n(t,e)}function Be(t){var n=0,r=0;return function(){var e=Bi(),u=16-(e-r);if(r=e,0<u){if(500<=++n)return arguments[0]}else n=0;return t.apply(F,arguments)}}function Le(t,n){var r=-1,e=t.length,u=e-1;for(n=n===F?e:n;++r<n;){var e=cr(r,u),i=t[e];t[e]=t[r],t[r]=i}return t.length=n,t}function Ue(t){if(typeof t=="string"||bu(t))return t;var n=t+"";return"0"==n&&1/t==-N?"-0":n}function Ce(t){if(null!=t){try{return ei.call(t)}catch(t){}return t+""}return"";
-}function Me(t,n){return u(Z,function(r){var e="_."+r[0];n&r[1]&&!c(t,e)&&t.push(e)}),t.sort()}function De(t){if(t instanceof Dt)return t.clone();var n=new Mt(t.__wrapped__,t.__chain__);return n.__actions__=Cr(t.__actions__),n.__index__=t.__index__,n.__values__=t.__values__,n}function Te(t,n,r){var e=t?t.length:0;return e?(r=null==r?0:wu(r),0>r&&(r=zi(e+r,0)),g(t,_e(n,3),r)):-1}function $e(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e-1;return r!==F&&(u=wu(r),u=0>r?zi(e+u,0):Wi(u,e-1)),g(t,_e(n,3),u,true);
-}function Fe(t){return t&&t.length?En(t,1):[]}function Ne(t){return t&&t.length?t[0]:F}function Pe(t){var n=t?t.length:0;return n?t[n-1]:F}function Ze(t,n){return t&&t.length&&n&&n.length?or(t,n):t}function qe(t){return t?Ci.call(t):t}function Ve(t){if(!t||!t.length)return[];var n=0;return t=f(t,function(t){if(au(t))return n=zi(t.length,n),true}),E(n,function(n){return l(t,j(n))})}function Ke(t,n){if(!t||!t.length)return[];var e=Ve(t);return null==n?e:l(e,function(t){return r(n,F,t)})}function Ge(t){
-return t=Ot(t),t.__chain__=true,t}function Je(t,n){return n(t)}function Ye(){return this}function He(t,n){return(nf(t)?u:to)(t,_e(n,3))}function Qe(t,n){return(nf(t)?i:no)(t,_e(n,3))}function Xe(t,n){return(nf(t)?l:Hn)(t,_e(n,3))}function tu(t,n,r){return n=r?F:n,n=t&&null==n?t.length:n,fe(t,128,F,F,F,F,n)}function nu(t,n){var r;if(typeof n!="function")throw new Qu("Expected a function");return t=wu(t),function(){return 0<--t&&(r=n.apply(this,arguments)),1>=t&&(n=F),r}}function ru(t,n,r){return n=r?F:n,
-t=fe(t,8,F,F,F,F,F,n),t.placeholder=ru.placeholder,t}function eu(t,n,r){return n=r?F:n,t=fe(t,16,F,F,F,F,F,n),t.placeholder=eu.placeholder,t}function uu(t,n,r){function e(n){var r=c,e=a;return c=a=F,_=n,s=t.apply(e,r)}function u(t){var r=t-p;return t-=_,p===F||r>=n||0>r||g&&t>=l}function i(){var t=Po();if(u(t))return o(t);var r,e=po;r=t-_,t=n-(t-p),r=g?Wi(t,l-r):t,h=e(i,r)}function o(t){return h=F,d&&c?e(t):(c=a=F,s)}function f(){var t=Po(),r=u(t);if(c=arguments,a=this,p=t,r){if(h===F)return _=t=p,
-h=po(i,n),v?e(t):s;if(g)return h=po(i,n),e(p)}return h===F&&(h=po(i,n)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof t!="function")throw new Qu("Expected a function");return n=Au(n)||0,_u(r)&&(v=!!r.leading,l=(g="maxWait"in r)?zi(Au(r.maxWait)||0,n):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==F&&oo(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Po())},f}function iu(t,n){function r(){var e=arguments,u=n?n.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=t.apply(this,e),
-r.cache=i.set(u,e)||i,e)}if(typeof t!="function"||n&&typeof n!="function")throw new Qu("Expected a function");return r.cache=new(iu.Cache||Zt),r}function ou(t){if(typeof t!="function")throw new Qu("Expected a function");return function(){var n=arguments;switch(n.length){case 0:return!t.call(this);case 1:return!t.call(this,n[0]);case 2:return!t.call(this,n[0],n[1]);case 3:return!t.call(this,n[0],n[1],n[2])}return!t.apply(this,n)}}function fu(t,n){return t===n||t!==t&&n!==n}function cu(t){return null!=t&&pu(t.length)&&!su(t);
-}function au(t){return vu(t)&&cu(t)}function lu(t){return!!vu(t)&&("[object Error]"==fi.call(t)||typeof t.message=="string"&&typeof t.name=="string")}function su(t){return t=_u(t)?fi.call(t):"","[object Function]"==t||"[object GeneratorFunction]"==t||"[object Proxy]"==t}function hu(t){return typeof t=="number"&&t==wu(t)}function pu(t){return typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t}function _u(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}function vu(t){return null!=t&&typeof t=="object";
-}function gu(t){return typeof t=="number"||vu(t)&&"[object Number]"==fi.call(t)}function du(t){return!(!vu(t)||"[object Object]"!=fi.call(t))&&(t=_i(t),null===t||(t=ui.call(t,"constructor")&&t.constructor,typeof t=="function"&&t instanceof t&&ei.call(t)==oi))}function yu(t){return typeof t=="string"||!nf(t)&&vu(t)&&"[object String]"==fi.call(t)}function bu(t){return typeof t=="symbol"||vu(t)&&"[object Symbol]"==fi.call(t)}function xu(t){if(!t)return[];if(cu(t))return yu(t)?$(t):Cr(t);if(vi&&t[vi]){t=t[vi]();
-for(var n,r=[];!(n=t.next()).done;)r.push(n.value);return r}return n=Et(t),("[object Map]"==n?L:"[object Set]"==n?M:Wu)(t)}function ju(t){return t?(t=Au(t),t===N||t===-N?1.7976931348623157e308*(0>t?-1:1):t===t?t:0):0===t?t:0}function wu(t){t=ju(t);var n=t%1;return t===t?n?t-n:t:0}function mu(t){return t?dn(wu(t),0,4294967295):0}function Au(t){if(typeof t=="number")return t;if(bu(t))return P;if(_u(t)&&(t=typeof t.valueOf=="function"?t.valueOf():t,t=_u(t)?t+"":t),typeof t!="string")return 0===t?t:+t;
-t=t.replace(ft,"");var n=yt.test(t);return n||xt.test(t)?$t(t.slice(2),n?2:8):dt.test(t)?P:+t}function ku(t){return Mr(t,Ru(t))}function Eu(t){return null==t?"":jr(t)}function Ou(t,n,r){return t=null==t?F:Rn(t,n),t===F?r:t}function Su(t,n){return null!=t&&ye(t,n,Ln)}function Iu(t){return cu(t)?tn(t):Jn(t)}function Ru(t){if(cu(t))t=tn(t,true);else if(_u(t)){var n,r=Oe(t),e=[];for(n in t)("constructor"!=n||!r&&ui.call(t,n))&&e.push(n);t=e}else{if(n=[],null!=t)for(r in Ju(t))n.push(r);t=n}return t}function zu(t,n){
-return null==t?{}:ur(t,zn(t,Ru,lo),_e(n))}function Wu(t){return t?I(t,Iu(t)):[]}function Bu(t){return Uf(Eu(t).toLowerCase())}function Lu(t){return(t=Eu(t))&&t.replace(wt,nn).replace(It,"")}function Uu(t,n,r){return t=Eu(t),n=r?F:n,n===F?Bt.test(t)?t.match(zt)||[]:t.match(pt)||[]:t.match(n)||[]}function Cu(t){return function(){return t}}function Mu(t){return t}function Du(t){return Gn(typeof t=="function"?t:yn(t,true))}function Tu(t,n,r){var e=Iu(n),i=In(n,e);null!=r||_u(n)&&(i.length||!e.length)||(r=n,
-n=t,t=this,i=In(n,Iu(n)));var o=!(_u(r)&&"chain"in r&&!r.chain),f=su(t);return u(i,function(r){var e=n[r];t[r]=e,f&&(t.prototype[r]=function(){var n=this.__chain__;if(o||n){var r=t(this.__wrapped__);return(r.__actions__=Cr(this.__actions__)).push({func:e,args:arguments,thisArg:t}),r.__chain__=n,r}return e.apply(t,s([this.value()],arguments))})}),t}function $u(){}function Fu(t){return ke(t)?j(Ue(t)):ir(t)}function Nu(){return[]}function Pu(){return false}kt=kt?un.defaults(Pt.Object(),kt,un.pick(Pt,Lt)):Pt;
-var Zu=kt.Array,qu=kt.Date,Vu=kt.Error,Ku=kt.Function,Gu=kt.Math,Ju=kt.Object,Yu=kt.RegExp,Hu=kt.String,Qu=kt.TypeError,Xu=Zu.prototype,ti=Ju.prototype,ni=kt["__core-js_shared__"],ri=function(){var t=/[^.]+$/.exec(ni&&ni.keys&&ni.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),ei=Ku.prototype.toString,ui=ti.hasOwnProperty,ii=0,oi=ei.call(Ju),fi=ti.toString,ci=Pt._,ai=Yu("^"+ei.call(ui).replace(it,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),li=Vt?kt.Buffer:F,si=kt.Symbol,hi=kt.Uint8Array,pi=li?li.f:F,_i=U(Ju.getPrototypeOf,Ju),vi=si?si.iterator:F,gi=Ju.create,di=ti.propertyIsEnumerable,yi=Xu.splice,bi=si?si.isConcatSpreadable:F,xi=function(){
-try{var t=de(Ju,"defineProperty");return t({},"",{}),t}catch(t){}}(),ji=kt.clearTimeout!==Pt.clearTimeout&&kt.clearTimeout,wi=qu&&qu.now!==Pt.Date.now&&qu.now,mi=kt.setTimeout!==Pt.setTimeout&&kt.setTimeout,Ai=Gu.ceil,ki=Gu.floor,Ei=Ju.getOwnPropertySymbols,Oi=li?li.isBuffer:F,Si=kt.isFinite,Ii=Xu.join,Ri=U(Ju.keys,Ju),zi=Gu.max,Wi=Gu.min,Bi=qu.now,Li=kt.parseInt,Ui=Gu.random,Ci=Xu.reverse,Mi=de(kt,"DataView"),Di=de(kt,"Map"),Ti=de(kt,"Promise"),$i=de(kt,"Set"),Fi=de(kt,"WeakMap"),Ni=de(Ju,"create"),Pi=Fi&&new Fi,Zi={},qi=Ce(Mi),Vi=Ce(Di),Ki=Ce(Ti),Gi=Ce($i),Ji=Ce(Fi),Yi=si?si.prototype:F,Hi=Yi?Yi.valueOf:F,Qi=Yi?Yi.toString:F,Xi=function(){
-function t(){}return function(n){return _u(n)?gi?gi(n):(t.prototype=n,n=new t,t.prototype=F,n):{}}}();Ot.templateSettings={escape:Q,evaluate:X,interpolate:tt,variable:"",imports:{_:Ot}},Ot.prototype=Rt.prototype,Ot.prototype.constructor=Ot,Mt.prototype=Xi(Rt.prototype),Mt.prototype.constructor=Mt,Dt.prototype=Xi(Rt.prototype),Dt.prototype.constructor=Dt,Ft.prototype.clear=function(){this.__data__=Ni?Ni(null):{},this.size=0},Ft.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],
-this.size-=t?1:0,t},Ft.prototype.get=function(t){var n=this.__data__;return Ni?(t=n[t],"__lodash_hash_undefined__"===t?F:t):ui.call(n,t)?n[t]:F},Ft.prototype.has=function(t){var n=this.__data__;return Ni?n[t]!==F:ui.call(n,t)},Ft.prototype.set=function(t,n){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Ni&&n===F?"__lodash_hash_undefined__":n,this},Nt.prototype.clear=function(){this.__data__=[],this.size=0},Nt.prototype.delete=function(t){var n=this.__data__;return t=hn(n,t),!(0>t)&&(t==n.length-1?n.pop():yi.call(n,t,1),
---this.size,true)},Nt.prototype.get=function(t){var n=this.__data__;return t=hn(n,t),0>t?F:n[t][1]},Nt.prototype.has=function(t){return-1<hn(this.__data__,t)},Nt.prototype.set=function(t,n){var r=this.__data__,e=hn(r,t);return 0>e?(++this.size,r.push([t,n])):r[e][1]=n,this},Zt.prototype.clear=function(){this.size=0,this.__data__={hash:new Ft,map:new(Di||Nt),string:new Ft}},Zt.prototype.delete=function(t){return t=ve(this,t).delete(t),this.size-=t?1:0,t},Zt.prototype.get=function(t){return ve(this,t).get(t);
-},Zt.prototype.has=function(t){return ve(this,t).has(t)},Zt.prototype.set=function(t,n){var r=ve(this,t),e=r.size;return r.set(t,n),this.size+=r.size==e?0:1,this},qt.prototype.add=qt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},qt.prototype.has=function(t){return this.__data__.has(t)},Kt.prototype.clear=function(){this.__data__=new Nt,this.size=0},Kt.prototype.delete=function(t){var n=this.__data__;return t=n.delete(t),this.size=n.size,t},Kt.prototype.get=function(t){
-return this.__data__.get(t)},Kt.prototype.has=function(t){return this.__data__.has(t)},Kt.prototype.set=function(t,n){var r=this.__data__;if(r instanceof Nt){var e=r.__data__;if(!Di||199>e.length)return e.push([t,n]),this.size=++r.size,this;r=this.__data__=new Zt(e)}return r.set(t,n),this.size=r.size,this};var to=Fr(On),no=Fr(Sn,true),ro=Nr(),eo=Nr(true),uo=Pi?function(t,n){return Pi.set(t,n),t}:Mu,io=xi?function(t,n){return xi(t,"toString",{configurable:true,enumerable:false,value:Cu(n),writable:true})}:Mu,oo=ji||function(t){
-return Pt.clearTimeout(t)},fo=$i&&1/M(new $i([,-0]))[1]==N?function(t){return new $i(t)}:$u,co=Pi?function(t){return Pi.get(t)}:$u,ao=Ei?U(Ei,Ju):Nu,lo=Ei?function(t){for(var n=[];t;)s(n,ao(t)),t=_i(t);return n}:Nu;(Mi&&"[object DataView]"!=Et(new Mi(new ArrayBuffer(1)))||Di&&"[object Map]"!=Et(new Di)||Ti&&"[object Promise]"!=Et(Ti.resolve())||$i&&"[object Set]"!=Et(new $i)||Fi&&"[object WeakMap]"!=Et(new Fi))&&(Et=function(t){var n=fi.call(t);if(t=(t="[object Object]"==n?t.constructor:F)?Ce(t):F)switch(t){
-case qi:return"[object DataView]";case Vi:return"[object Map]";case Ki:return"[object Promise]";case Gi:return"[object Set]";case Ji:return"[object WeakMap]"}return n});var so=ni?su:Pu,ho=Be(uo),po=mi||function(t,n){return Pt.setTimeout(t,n)},_o=Be(io),vo=function(t){t=iu(t,function(t){return 500===n.size&&n.clear(),t});var n=t.cache;return t}(function(t){t=Eu(t);var n=[];return et.test(t)&&n.push(""),t.replace(ut,function(t,r,e,u){n.push(e?u.replace(_t,"$1"):r||t)}),n}),go=lr(function(t,n){return au(t)?wn(t,En(n,1,au,true)):[];
-}),yo=lr(function(t,n){var r=Pe(n);return au(r)&&(r=F),au(t)?wn(t,En(n,1,au,true),_e(r,2)):[]}),bo=lr(function(t,n){var r=Pe(n);return au(r)&&(r=F),au(t)?wn(t,En(n,1,au,true),F,r):[]}),xo=lr(function(t){var n=l(t,Or);return n.length&&n[0]===t[0]?Un(n):[]}),jo=lr(function(t){var n=Pe(t),r=l(t,Or);return n===Pe(r)?n=F:r.pop(),r.length&&r[0]===t[0]?Un(r,_e(n,2)):[]}),wo=lr(function(t){var n=Pe(t),r=l(t,Or);return n===Pe(r)?n=F:r.pop(),r.length&&r[0]===t[0]?Un(r,F,n):[]}),mo=lr(Ze),Ao=le(function(t,n){var r=t?t.length:0,e=gn(t,n);
-return fr(t,l(n,function(t){return me(t,r)?+t:t}).sort(Br)),e}),ko=lr(function(t){return wr(En(t,1,au,true))}),Eo=lr(function(t){var n=Pe(t);return au(n)&&(n=F),wr(En(t,1,au,true),_e(n,2))}),Oo=lr(function(t){var n=Pe(t);return au(n)&&(n=F),wr(En(t,1,au,true),F,n)}),So=lr(function(t,n){return au(t)?wn(t,n):[]}),Io=lr(function(t){return kr(f(t,au))}),Ro=lr(function(t){var n=Pe(t);return au(n)&&(n=F),kr(f(t,au),_e(n,2))}),zo=lr(function(t){var n=Pe(t);return au(n)&&(n=F),kr(f(t,au),F,n)}),Wo=lr(Ve),Bo=lr(function(t){
-var n=t.length,n=1<n?t[n-1]:F,n=typeof n=="function"?(t.pop(),n):F;return Ke(t,n)}),Lo=le(function(t){function n(n){return gn(n,t)}var r=t.length,e=r?t[0]:0,u=this.__wrapped__;return!(1<r||this.__actions__.length)&&u instanceof Dt&&me(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:Je,args:[n],thisArg:F}),new Mt(u,this.__chain__).thru(function(t){return r&&!t.length&&t.push(F),t})):this.thru(n)}),Uo=Tr(function(t,n,r){ui.call(t,r)?++t[r]:vn(t,r,1)}),Co=Gr(Te),Mo=Gr($e),Do=Tr(function(t,n,r){
-ui.call(t,r)?t[r].push(n):vn(t,r,[n])}),To=lr(function(t,n,e){var u=-1,i=typeof n=="function",o=ke(n),f=cu(t)?Zu(t.length):[];return to(t,function(t){var c=i?n:o&&null!=t?t[n]:F;f[++u]=c?r(c,t,e):Mn(t,n,e)}),f}),$o=Tr(function(t,n,r){vn(t,r,n)}),Fo=Tr(function(t,n,r){t[r?0:1].push(n)},function(){return[[],[]]}),No=lr(function(t,n){if(null==t)return[];var r=n.length;return 1<r&&Ae(t,n[0],n[1])?n=[]:2<r&&Ae(n[0],n[1],n[2])&&(n=[n[0]]),rr(t,En(n,1),[])}),Po=wi||function(){return Pt.Date.now()},Zo=lr(function(t,n,r){
-var e=1;if(r.length)var u=C(r,pe(Zo)),e=32|e;return fe(t,e,n,r,u)}),qo=lr(function(t,n,r){var e=3;if(r.length)var u=C(r,pe(qo)),e=32|e;return fe(n,e,t,r,u)}),Vo=lr(function(t,n){return jn(t,1,n)}),Ko=lr(function(t,n,r){return jn(t,Au(n)||0,r)});iu.Cache=Zt;var Go=lr(function(t,n){n=1==n.length&&nf(n[0])?l(n[0],S(_e())):l(En(n,1),S(_e()));var e=n.length;return lr(function(u){for(var i=-1,o=Wi(u.length,e);++i<o;)u[i]=n[i].call(this,u[i]);return r(t,this,u)})}),Jo=lr(function(t,n){return fe(t,32,F,n,C(n,pe(Jo)));
-}),Yo=lr(function(t,n){return fe(t,64,F,n,C(n,pe(Yo)))}),Ho=le(function(t,n){return fe(t,256,F,F,F,n)}),Qo=ee(Wn),Xo=ee(function(t,n){return t>=n}),tf=Dn(function(){return arguments}())?Dn:function(t){return vu(t)&&ui.call(t,"callee")&&!di.call(t,"callee")},nf=Zu.isArray,rf=Gt?S(Gt):Tn,ef=Oi||Pu,uf=Jt?S(Jt):$n,of=Yt?S(Yt):Nn,ff=Ht?S(Ht):qn,cf=Qt?S(Qt):Vn,af=Xt?S(Xt):Kn,lf=ee(Yn),sf=ee(function(t,n){return t<=n}),hf=$r(function(t,n){if(Oe(n)||cu(n))Mr(n,Iu(n),t);else for(var r in n)ui.call(n,r)&&sn(t,r,n[r]);
-}),pf=$r(function(t,n){Mr(n,Ru(n),t)}),_f=$r(function(t,n,r,e){Mr(n,Ru(n),t,e)}),vf=$r(function(t,n,r,e){Mr(n,Iu(n),t,e)}),gf=le(gn),df=lr(function(t){return t.push(F,an),r(_f,F,t)}),yf=lr(function(t){return t.push(F,Ie),r(mf,F,t)}),bf=Hr(function(t,n,r){t[n]=r},Cu(Mu)),xf=Hr(function(t,n,r){ui.call(t,n)?t[n].push(r):t[n]=[r]},_e),jf=lr(Mn),wf=$r(function(t,n,r){tr(t,n,r)}),mf=$r(function(t,n,r,e){tr(t,n,r,e)}),Af=le(function(t,n){return null==t?{}:(n=l(n,Ue),er(t,wn(zn(t,Ru,lo),n)))}),kf=le(function(t,n){
-return null==t?{}:er(t,l(n,Ue))}),Ef=oe(Iu),Of=oe(Ru),Sf=qr(function(t,n,r){return n=n.toLowerCase(),t+(r?Bu(n):n)}),If=qr(function(t,n,r){return t+(r?"-":"")+n.toLowerCase()}),Rf=qr(function(t,n,r){return t+(r?" ":"")+n.toLowerCase()}),zf=Zr("toLowerCase"),Wf=qr(function(t,n,r){return t+(r?"_":"")+n.toLowerCase()}),Bf=qr(function(t,n,r){return t+(r?" ":"")+Uf(n)}),Lf=qr(function(t,n,r){return t+(r?" ":"")+n.toUpperCase()}),Uf=Zr("toUpperCase"),Cf=lr(function(t,n){try{return r(t,F,n)}catch(t){return lu(t)?t:new Vu(t);
-}}),Mf=le(function(t,n){return u(n,function(n){n=Ue(n),vn(t,n,Zo(t[n],t))}),t}),Df=Jr(),Tf=Jr(true),$f=lr(function(t,n){return function(r){return Mn(r,t,n)}}),Ff=lr(function(t,n){return function(r){return Mn(t,r,n)}}),Nf=Xr(l),Pf=Xr(o),Zf=Xr(_),qf=re(),Vf=re(true),Kf=Qr(function(t,n){return t+n},0),Gf=ie("ceil"),Jf=Qr(function(t,n){return t/n},1),Yf=ie("floor"),Hf=Qr(function(t,n){return t*n},1),Qf=ie("round"),Xf=Qr(function(t,n){return t-n},0);return Ot.after=function(t,n){if(typeof n!="function")throw new Qu("Expected a function");
-return t=wu(t),function(){if(1>--t)return n.apply(this,arguments)}},Ot.ary=tu,Ot.assign=hf,Ot.assignIn=pf,Ot.assignInWith=_f,Ot.assignWith=vf,Ot.at=gf,Ot.before=nu,Ot.bind=Zo,Ot.bindAll=Mf,Ot.bindKey=qo,Ot.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return nf(t)?t:[t]},Ot.chain=Ge,Ot.chunk=function(t,n,r){if(n=(r?Ae(t,n,r):n===F)?1:zi(wu(n),0),r=t?t.length:0,!r||1>n)return[];for(var e=0,u=0,i=Zu(Ai(r/n));e<r;)i[u++]=vr(t,e,e+=n);return i},Ot.compact=function(t){for(var n=-1,r=t?t.length:0,e=0,u=[];++n<r;){
-var i=t[n];i&&(u[e++]=i)}return u},Ot.concat=function(){var t=arguments.length;if(!t)return[];for(var n=Zu(t-1),r=arguments[0];t--;)n[t-1]=arguments[t];return s(nf(r)?Cr(r):[r],En(n,1))},Ot.cond=function(t){var n=t?t.length:0,e=_e();return t=n?l(t,function(t){if("function"!=typeof t[1])throw new Qu("Expected a function");return[e(t[0]),t[1]]}):[],lr(function(e){for(var u=-1;++u<n;){var i=t[u];if(r(i[0],this,e))return r(i[1],this,e)}})},Ot.conforms=function(t){return bn(yn(t,true))},Ot.constant=Cu,Ot.countBy=Uo,
-Ot.create=function(t,n){var r=Xi(t);return n?_n(r,n):r},Ot.curry=ru,Ot.curryRight=eu,Ot.debounce=uu,Ot.defaults=df,Ot.defaultsDeep=yf,Ot.defer=Vo,Ot.delay=Ko,Ot.difference=go,Ot.differenceBy=yo,Ot.differenceWith=bo,Ot.drop=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===F?1:wu(n),vr(t,0>n?0:n,e)):[]},Ot.dropRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===F?1:wu(n),n=e-n,vr(t,0,0>n?0:n)):[]},Ot.dropRightWhile=function(t,n){return t&&t.length?mr(t,_e(n,3),true,true):[]},Ot.dropWhile=function(t,n){
-return t&&t.length?mr(t,_e(n,3),true):[]},Ot.fill=function(t,n,r,e){var u=t?t.length:0;if(!u)return[];for(r&&typeof r!="number"&&Ae(t,n,r)&&(r=0,e=u),u=t.length,r=wu(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:wu(e),0>e&&(e+=u),e=r>e?0:mu(e);r<e;)t[r++]=n;return t},Ot.filter=function(t,n){return(nf(t)?f:kn)(t,_e(n,3))},Ot.flatMap=function(t,n){return En(Xe(t,n),1)},Ot.flatMapDeep=function(t,n){return En(Xe(t,n),N)},Ot.flatMapDepth=function(t,n,r){return r=r===F?1:wu(r),En(Xe(t,n),r)},Ot.flatten=Fe,Ot.flattenDeep=function(t){
-return t&&t.length?En(t,N):[]},Ot.flattenDepth=function(t,n){return t&&t.length?(n=n===F?1:wu(n),En(t,n)):[]},Ot.flip=function(t){return fe(t,512)},Ot.flow=Df,Ot.flowRight=Tf,Ot.fromPairs=function(t){for(var n=-1,r=t?t.length:0,e={};++n<r;){var u=t[n];e[u[0]]=u[1]}return e},Ot.functions=function(t){return null==t?[]:In(t,Iu(t))},Ot.functionsIn=function(t){return null==t?[]:In(t,Ru(t))},Ot.groupBy=Do,Ot.initial=function(t){return t&&t.length?vr(t,0,-1):[]},Ot.intersection=xo,Ot.intersectionBy=jo,Ot.intersectionWith=wo,
-Ot.invert=bf,Ot.invertBy=xf,Ot.invokeMap=To,Ot.iteratee=Du,Ot.keyBy=$o,Ot.keys=Iu,Ot.keysIn=Ru,Ot.map=Xe,Ot.mapKeys=function(t,n){var r={};return n=_e(n,3),On(t,function(t,e,u){vn(r,n(t,e,u),t)}),r},Ot.mapValues=function(t,n){var r={};return n=_e(n,3),On(t,function(t,e,u){vn(r,e,n(t,e,u))}),r},Ot.matches=function(t){return Qn(yn(t,true))},Ot.matchesProperty=function(t,n){return Xn(t,yn(n,true))},Ot.memoize=iu,Ot.merge=wf,Ot.mergeWith=mf,Ot.method=$f,Ot.methodOf=Ff,Ot.mixin=Tu,Ot.negate=ou,Ot.nthArg=function(t){
-return t=wu(t),lr(function(n){return nr(n,t)})},Ot.omit=Af,Ot.omitBy=function(t,n){return zu(t,ou(_e(n)))},Ot.once=function(t){return nu(2,t)},Ot.orderBy=function(t,n,r,e){return null==t?[]:(nf(n)||(n=null==n?[]:[n]),r=e?F:r,nf(r)||(r=null==r?[]:[r]),rr(t,n,r))},Ot.over=Nf,Ot.overArgs=Go,Ot.overEvery=Pf,Ot.overSome=Zf,Ot.partial=Jo,Ot.partialRight=Yo,Ot.partition=Fo,Ot.pick=kf,Ot.pickBy=zu,Ot.property=Fu,Ot.propertyOf=function(t){return function(n){return null==t?F:Rn(t,n)}},Ot.pull=mo,Ot.pullAll=Ze,
-Ot.pullAllBy=function(t,n,r){return t&&t.length&&n&&n.length?or(t,n,_e(r,2)):t},Ot.pullAllWith=function(t,n,r){return t&&t.length&&n&&n.length?or(t,n,F,r):t},Ot.pullAt=Ao,Ot.range=qf,Ot.rangeRight=Vf,Ot.rearg=Ho,Ot.reject=function(t,n){return(nf(t)?f:kn)(t,ou(_e(n,3)))},Ot.remove=function(t,n){var r=[];if(!t||!t.length)return r;var e=-1,u=[],i=t.length;for(n=_e(n,3);++e<i;){var o=t[e];n(o,e,t)&&(r.push(o),u.push(e))}return fr(t,u),r},Ot.rest=function(t,n){if(typeof t!="function")throw new Qu("Expected a function");
-return n=n===F?n:wu(n),lr(t,n)},Ot.reverse=qe,Ot.sampleSize=function(t,n,r){return n=(r?Ae(t,n,r):n===F)?1:wu(n),(nf(t)?fn:hr)(t,n)},Ot.set=function(t,n,r){return null==t?t:pr(t,n,r)},Ot.setWith=function(t,n,r,e){return e=typeof e=="function"?e:F,null==t?t:pr(t,n,r,e)},Ot.shuffle=function(t){return(nf(t)?cn:_r)(t)},Ot.slice=function(t,n,r){var e=t?t.length:0;return e?(r&&typeof r!="number"&&Ae(t,n,r)?(n=0,r=e):(n=null==n?0:wu(n),r=r===F?e:wu(r)),vr(t,n,r)):[]},Ot.sortBy=No,Ot.sortedUniq=function(t){
-return t&&t.length?br(t):[]},Ot.sortedUniqBy=function(t,n){return t&&t.length?br(t,_e(n,2)):[]},Ot.split=function(t,n,r){return r&&typeof r!="number"&&Ae(t,n,r)&&(n=r=F),r=r===F?4294967295:r>>>0,r?(t=Eu(t))&&(typeof n=="string"||null!=n&&!ff(n))&&(n=jr(n),!n&&Wt.test(t))?Ir($(t),0,r):t.split(n,r):[]},Ot.spread=function(t,n){if(typeof t!="function")throw new Qu("Expected a function");return n=n===F?0:zi(wu(n),0),lr(function(e){var u=e[n];return e=Ir(e,0,n),u&&s(e,u),r(t,this,e)})},Ot.tail=function(t){
-var n=t?t.length:0;return n?vr(t,1,n):[]},Ot.take=function(t,n,r){return t&&t.length?(n=r||n===F?1:wu(n),vr(t,0,0>n?0:n)):[]},Ot.takeRight=function(t,n,r){var e=t?t.length:0;return e?(n=r||n===F?1:wu(n),n=e-n,vr(t,0>n?0:n,e)):[]},Ot.takeRightWhile=function(t,n){return t&&t.length?mr(t,_e(n,3),false,true):[]},Ot.takeWhile=function(t,n){return t&&t.length?mr(t,_e(n,3)):[]},Ot.tap=function(t,n){return n(t),t},Ot.throttle=function(t,n,r){var e=true,u=true;if(typeof t!="function")throw new Qu("Expected a function");
-return _u(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),uu(t,n,{leading:e,maxWait:n,trailing:u})},Ot.thru=Je,Ot.toArray=xu,Ot.toPairs=Ef,Ot.toPairsIn=Of,Ot.toPath=function(t){return nf(t)?l(t,Ue):bu(t)?[t]:Cr(vo(t))},Ot.toPlainObject=ku,Ot.transform=function(t,n,r){var e=nf(t),i=e||ef(t)||af(t);if(n=_e(n,4),null==r){var o=t&&t.constructor;r=i?e?new o:[]:_u(t)&&su(o)?Xi(_i(t)):{}}return(i?u:On)(t,function(t,e,u){return n(r,t,e,u)}),r},Ot.unary=function(t){return tu(t,1)},Ot.union=ko,
-Ot.unionBy=Eo,Ot.unionWith=Oo,Ot.uniq=function(t){return t&&t.length?wr(t):[]},Ot.uniqBy=function(t,n){return t&&t.length?wr(t,_e(n,2)):[]},Ot.uniqWith=function(t,n){return t&&t.length?wr(t,F,n):[]},Ot.unset=function(t,n){var r;if(null==t)r=true;else{r=t;var e=n,e=ke(e,r)?[e]:Sr(e);r=ze(r,e),e=Ue(Pe(e)),r=!(null!=r&&ui.call(r,e))||delete r[e]}return r},Ot.unzip=Ve,Ot.unzipWith=Ke,Ot.update=function(t,n,r){return null==t?t:pr(t,n,(typeof r=="function"?r:Mu)(Rn(t,n)),void 0)},Ot.updateWith=function(t,n,r,e){
-return e=typeof e=="function"?e:F,null!=t&&(t=pr(t,n,(typeof r=="function"?r:Mu)(Rn(t,n)),e)),t},Ot.values=Wu,Ot.valuesIn=function(t){return null==t?[]:I(t,Ru(t))},Ot.without=So,Ot.words=Uu,Ot.wrap=function(t,n){return n=null==n?Mu:n,Jo(n,t)},Ot.xor=Io,Ot.xorBy=Ro,Ot.xorWith=zo,Ot.zip=Wo,Ot.zipObject=function(t,n){return Er(t||[],n||[],sn)},Ot.zipObjectDeep=function(t,n){return Er(t||[],n||[],pr)},Ot.zipWith=Bo,Ot.entries=Ef,Ot.entriesIn=Of,Ot.extend=pf,Ot.extendWith=_f,Tu(Ot,Ot),Ot.add=Kf,Ot.attempt=Cf,
-Ot.camelCase=Sf,Ot.capitalize=Bu,Ot.ceil=Gf,Ot.clamp=function(t,n,r){return r===F&&(r=n,n=F),r!==F&&(r=Au(r),r=r===r?r:0),n!==F&&(n=Au(n),n=n===n?n:0),dn(Au(t),n,r)},Ot.clone=function(t){return yn(t,false,true)},Ot.cloneDeep=function(t){return yn(t,true,true)},Ot.cloneDeepWith=function(t,n){return yn(t,true,true,n)},Ot.cloneWith=function(t,n){return yn(t,false,true,n)},Ot.conformsTo=function(t,n){return null==n||xn(t,n,Iu(n))},Ot.deburr=Lu,Ot.defaultTo=function(t,n){return null==t||t!==t?n:t},Ot.divide=Jf,Ot.endsWith=function(t,n,r){
-t=Eu(t),n=jr(n);var e=t.length,e=r=r===F?e:dn(wu(r),0,e);return r-=n.length,0<=r&&t.slice(r,e)==n},Ot.eq=fu,Ot.escape=function(t){return(t=Eu(t))&&H.test(t)?t.replace(J,rn):t},Ot.escapeRegExp=function(t){return(t=Eu(t))&&ot.test(t)?t.replace(it,"\\$&"):t},Ot.every=function(t,n,r){var e=nf(t)?o:mn;return r&&Ae(t,n,r)&&(n=F),e(t,_e(n,3))},Ot.find=Co,Ot.findIndex=Te,Ot.findKey=function(t,n){return v(t,_e(n,3),On)},Ot.findLast=Mo,Ot.findLastIndex=$e,Ot.findLastKey=function(t,n){return v(t,_e(n,3),Sn);
-},Ot.floor=Yf,Ot.forEach=He,Ot.forEachRight=Qe,Ot.forIn=function(t,n){return null==t?t:ro(t,_e(n,3),Ru)},Ot.forInRight=function(t,n){return null==t?t:eo(t,_e(n,3),Ru)},Ot.forOwn=function(t,n){return t&&On(t,_e(n,3))},Ot.forOwnRight=function(t,n){return t&&Sn(t,_e(n,3))},Ot.get=Ou,Ot.gt=Qo,Ot.gte=Xo,Ot.has=function(t,n){return null!=t&&ye(t,n,Bn)},Ot.hasIn=Su,Ot.head=Ne,Ot.identity=Mu,Ot.includes=function(t,n,r,e){return t=cu(t)?t:Wu(t),r=r&&!e?wu(r):0,e=t.length,0>r&&(r=zi(e+r,0)),yu(t)?r<=e&&-1<t.indexOf(n,r):!!e&&-1<d(t,n,r);
-},Ot.indexOf=function(t,n,r){var e=t?t.length:0;return e?(r=null==r?0:wu(r),0>r&&(r=zi(e+r,0)),d(t,n,r)):-1},Ot.inRange=function(t,n,r){return n=ju(n),r===F?(r=n,n=0):r=ju(r),t=Au(t),t>=Wi(n,r)&&t<zi(n,r)},Ot.invoke=jf,Ot.isArguments=tf,Ot.isArray=nf,Ot.isArrayBuffer=rf,Ot.isArrayLike=cu,Ot.isArrayLikeObject=au,Ot.isBoolean=function(t){return true===t||false===t||vu(t)&&"[object Boolean]"==fi.call(t)},Ot.isBuffer=ef,Ot.isDate=uf,Ot.isElement=function(t){return null!=t&&1===t.nodeType&&vu(t)&&!du(t)},Ot.isEmpty=function(t){
-if(cu(t)&&(nf(t)||typeof t=="string"||typeof t.splice=="function"||ef(t)||af(t)||tf(t)))return!t.length;var n=Et(t);if("[object Map]"==n||"[object Set]"==n)return!t.size;if(Oe(t))return!Jn(t).length;for(var r in t)if(ui.call(t,r))return false;return true},Ot.isEqual=function(t,n){return Fn(t,n)},Ot.isEqualWith=function(t,n,r){var e=(r=typeof r=="function"?r:F)?r(t,n):F;return e===F?Fn(t,n,r):!!e},Ot.isError=lu,Ot.isFinite=function(t){return typeof t=="number"&&Si(t)},Ot.isFunction=su,Ot.isInteger=hu,Ot.isLength=pu,
-Ot.isMap=of,Ot.isMatch=function(t,n){return t===n||Pn(t,n,ge(n))},Ot.isMatchWith=function(t,n,r){return r=typeof r=="function"?r:F,Pn(t,n,ge(n),r)},Ot.isNaN=function(t){return gu(t)&&t!=+t},Ot.isNative=function(t){if(so(t))throw new Vu("Unsupported core-js use. Try https://github.com/es-shims.");return Zn(t)},Ot.isNil=function(t){return null==t},Ot.isNull=function(t){return null===t},Ot.isNumber=gu,Ot.isObject=_u,Ot.isObjectLike=vu,Ot.isPlainObject=du,Ot.isRegExp=ff,Ot.isSafeInteger=function(t){return hu(t)&&-9007199254740991<=t&&9007199254740991>=t;
-},Ot.isSet=cf,Ot.isString=yu,Ot.isSymbol=bu,Ot.isTypedArray=af,Ot.isUndefined=function(t){return t===F},Ot.isWeakMap=function(t){return vu(t)&&"[object WeakMap]"==Et(t)},Ot.isWeakSet=function(t){return vu(t)&&"[object WeakSet]"==fi.call(t)},Ot.join=function(t,n){return t?Ii.call(t,n):""},Ot.kebabCase=If,Ot.last=Pe,Ot.lastIndexOf=function(t,n,r){var e=t?t.length:0;if(!e)return-1;var u=e;if(r!==F&&(u=wu(r),u=0>u?zi(e+u,0):Wi(u,e-1)),n===n){for(r=u+1;r--&&t[r]!==n;);t=r}else t=g(t,b,u,true);return t},
-Ot.lowerCase=Rf,Ot.lowerFirst=zf,Ot.lt=lf,Ot.lte=sf,Ot.max=function(t){return t&&t.length?An(t,Mu,Wn):F},Ot.maxBy=function(t,n){return t&&t.length?An(t,_e(n,2),Wn):F},Ot.mean=function(t){return x(t,Mu)},Ot.meanBy=function(t,n){return x(t,_e(n,2))},Ot.min=function(t){return t&&t.length?An(t,Mu,Yn):F},Ot.minBy=function(t,n){return t&&t.length?An(t,_e(n,2),Yn):F},Ot.stubArray=Nu,Ot.stubFalse=Pu,Ot.stubObject=function(){return{}},Ot.stubString=function(){return""},Ot.stubTrue=function(){return true},Ot.multiply=Hf,
-Ot.nth=function(t,n){return t&&t.length?nr(t,wu(n)):F},Ot.noConflict=function(){return Pt._===this&&(Pt._=ci),this},Ot.noop=$u,Ot.now=Po,Ot.pad=function(t,n,r){t=Eu(t);var e=(n=wu(n))?T(t):0;return!n||e>=n?t:(n=(n-e)/2,te(ki(n),r)+t+te(Ai(n),r))},Ot.padEnd=function(t,n,r){t=Eu(t);var e=(n=wu(n))?T(t):0;return n&&e<n?t+te(n-e,r):t},Ot.padStart=function(t,n,r){t=Eu(t);var e=(n=wu(n))?T(t):0;return n&&e<n?te(n-e,r)+t:t},Ot.parseInt=function(t,n,r){return r||null==n?n=0:n&&(n=+n),Li(Eu(t).replace(ct,""),n||0);
-},Ot.random=function(t,n,r){if(r&&typeof r!="boolean"&&Ae(t,n,r)&&(n=r=F),r===F&&(typeof n=="boolean"?(r=n,n=F):typeof t=="boolean"&&(r=t,t=F)),t===F&&n===F?(t=0,n=1):(t=ju(t),n===F?(n=t,t=0):n=ju(n)),t>n){var e=t;t=n,n=e}return r||t%1||n%1?(r=Ui(),Wi(t+r*(n-t+Tt("1e-"+((r+"").length-1))),n)):cr(t,n)},Ot.reduce=function(t,n,r){var e=nf(t)?h:m,u=3>arguments.length;return e(t,_e(n,4),r,u,to)},Ot.reduceRight=function(t,n,r){var e=nf(t)?p:m,u=3>arguments.length;return e(t,_e(n,4),r,u,no)},Ot.repeat=function(t,n,r){
-return n=(r?Ae(t,n,r):n===F)?1:wu(n),ar(Eu(t),n)},Ot.replace=function(){var t=arguments,n=Eu(t[0]);return 3>t.length?n:n.replace(t[1],t[2])},Ot.result=function(t,n,r){n=ke(n,t)?[n]:Sr(n);var e=-1,u=n.length;for(u||(t=F,u=1);++e<u;){var i=null==t?F:t[Ue(n[e])];i===F&&(e=u,i=r),t=su(i)?i.call(t):i}return t},Ot.round=Qf,Ot.runInContext=w,Ot.sample=function(t){return(nf(t)?on:sr)(t)},Ot.size=function(t){if(null==t)return 0;if(cu(t))return yu(t)?T(t):t.length;var n=Et(t);return"[object Map]"==n||"[object Set]"==n?t.size:Jn(t).length;
-},Ot.snakeCase=Wf,Ot.some=function(t,n,r){var e=nf(t)?_:gr;return r&&Ae(t,n,r)&&(n=F),e(t,_e(n,3))},Ot.sortedIndex=function(t,n){return dr(t,n)},Ot.sortedIndexBy=function(t,n,r){return yr(t,n,_e(r,2))},Ot.sortedIndexOf=function(t,n){var r=t?t.length:0;if(r){var e=dr(t,n);if(e<r&&fu(t[e],n))return e}return-1},Ot.sortedLastIndex=function(t,n){return dr(t,n,true)},Ot.sortedLastIndexBy=function(t,n,r){return yr(t,n,_e(r,2),true)},Ot.sortedLastIndexOf=function(t,n){if(t&&t.length){var r=dr(t,n,true)-1;if(fu(t[r],n))return r;
-}return-1},Ot.startCase=Bf,Ot.startsWith=function(t,n,r){return t=Eu(t),r=dn(wu(r),0,t.length),n=jr(n),t.slice(r,r+n.length)==n},Ot.subtract=Xf,Ot.sum=function(t){return t&&t.length?k(t,Mu):0},Ot.sumBy=function(t,n){return t&&t.length?k(t,_e(n,2)):0},Ot.template=function(t,n,r){var e=Ot.templateSettings;r&&Ae(t,n,r)&&(n=F),t=Eu(t),n=_f({},n,e,an),r=_f({},n.imports,e.imports,an);var u,i,o=Iu(r),f=I(r,o),c=0;r=n.interpolate||mt;var a="__p+='";r=Yu((n.escape||mt).source+"|"+r.source+"|"+(r===tt?vt:mt).source+"|"+(n.evaluate||mt).source+"|$","g");
-var l="sourceURL"in n?"//# sourceURL="+n.sourceURL+"\n":"";if(t.replace(r,function(n,r,e,o,f,l){return e||(e=o),a+=t.slice(c,l).replace(At,B),r&&(u=true,a+="'+__e("+r+")+'"),f&&(i=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+n.length,n}),a+="';",(n=n.variable)||(a="with(obj){"+a+"}"),a=(i?a.replace(q,""):a).replace(V,"$1").replace(K,"$1;"),a="function("+(n||"obj")+"){"+(n?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",
-n=Cf(function(){return Ku(o,l+"return "+a).apply(F,f)}),n.source=a,lu(n))throw n;return n},Ot.times=function(t,n){if(t=wu(t),1>t||9007199254740991<t)return[];var r=4294967295,e=Wi(t,4294967295);for(n=_e(n),t-=4294967295,e=E(e,n);++r<t;)n(r);return e},Ot.toFinite=ju,Ot.toInteger=wu,Ot.toLength=mu,Ot.toLower=function(t){return Eu(t).toLowerCase()},Ot.toNumber=Au,Ot.toSafeInteger=function(t){return dn(wu(t),-9007199254740991,9007199254740991)},Ot.toString=Eu,Ot.toUpper=function(t){return Eu(t).toUpperCase();
-},Ot.trim=function(t,n,r){return(t=Eu(t))&&(r||n===F)?t.replace(ft,""):t&&(n=jr(n))?(t=$(t),r=$(n),n=z(t,r),r=W(t,r)+1,Ir(t,n,r).join("")):t},Ot.trimEnd=function(t,n,r){return(t=Eu(t))&&(r||n===F)?t.replace(at,""):t&&(n=jr(n))?(t=$(t),n=W(t,$(n))+1,Ir(t,0,n).join("")):t},Ot.trimStart=function(t,n,r){return(t=Eu(t))&&(r||n===F)?t.replace(ct,""):t&&(n=jr(n))?(t=$(t),n=z(t,$(n)),Ir(t,n).join("")):t},Ot.truncate=function(t,n){var r=30,e="...";if(_u(n))var u="separator"in n?n.separator:u,r="length"in n?wu(n.length):r,e="omission"in n?jr(n.omission):e;
-t=Eu(t);var i=t.length;if(Wt.test(t))var o=$(t),i=o.length;if(r>=i)return t;if(i=r-T(e),1>i)return e;if(r=o?Ir(o,0,i).join(""):t.slice(0,i),u===F)return r+e;if(o&&(i+=r.length-i),ff(u)){if(t.slice(i).search(u)){var f=r;for(u.global||(u=Yu(u.source,Eu(gt.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else t.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},Ot.unescape=function(t){return(t=Eu(t))&&Y.test(t)?t.replace(G,en):t},Ot.uniqueId=function(t){
-var n=++ii;return Eu(t)+n},Ot.upperCase=Lf,Ot.upperFirst=Uf,Ot.each=He,Ot.eachRight=Qe,Ot.first=Ne,Tu(Ot,function(){var t={};return On(Ot,function(n,r){ui.call(Ot.prototype,r)||(t[r]=n)}),t}(),{chain:false}),Ot.VERSION="4.16.4",u("bind bindKey curry curryRight partial partialRight".split(" "),function(t){Ot[t].placeholder=Ot}),u(["drop","take"],function(t,n){Dt.prototype[t]=function(r){var e=this.__filtered__;if(e&&!n)return new Dt(this);r=r===F?1:zi(wu(r),0);var u=this.clone();return e?u.__takeCount__=Wi(r,u.__takeCount__):u.__views__.push({
-size:Wi(r,4294967295),type:t+(0>u.__dir__?"Right":"")}),u},Dt.prototype[t+"Right"]=function(n){return this.reverse()[t](n).reverse()}}),u(["filter","map","takeWhile"],function(t,n){var r=n+1,e=1==r||3==r;Dt.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:_e(t,3),type:r}),n.__filtered__=n.__filtered__||e,n}}),u(["head","last"],function(t,n){var r="take"+(n?"Right":"");Dt.prototype[t]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(t,n){var r="drop"+(n?"":"Right");
-Dt.prototype[t]=function(){return this.__filtered__?new Dt(this):this[r](1)}}),Dt.prototype.compact=function(){return this.filter(Mu)},Dt.prototype.find=function(t){return this.filter(t).head()},Dt.prototype.findLast=function(t){return this.reverse().find(t)},Dt.prototype.invokeMap=lr(function(t,n){return typeof t=="function"?new Dt(this):this.map(function(r){return Mn(r,t,n)})}),Dt.prototype.reject=function(t){return this.filter(ou(_e(t)))},Dt.prototype.slice=function(t,n){t=wu(t);var r=this;return r.__filtered__&&(0<t||0>n)?new Dt(r):(0>t?r=r.takeRight(-t):t&&(r=r.drop(t)),
-n!==F&&(n=wu(n),r=0>n?r.dropRight(-n):r.take(n-t)),r)},Dt.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Dt.prototype.toArray=function(){return this.take(4294967295)},On(Dt.prototype,function(t,n){var r=/^(?:filter|find|map|reject)|While$/.test(n),e=/^(?:head|last)$/.test(n),u=Ot[e?"take"+("last"==n?"Right":""):n],i=e||/^find/.test(n);u&&(Ot.prototype[n]=function(){function n(t){return t=u.apply(Ot,s([t],f)),e&&h?t[0]:t}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Dt,a=f[0],l=c||nf(o);
-l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Dt(this),o=t.apply(o,f),o.__actions__.push({func:Je,args:[n],thisArg:F}),new Mt(o,h)):a&&c?t.apply(this,f):(o=this.thru(n),a?e?o.value()[0]:o.value():o)})}),u("pop push shift sort splice unshift".split(" "),function(t){var n=Xu[t],r=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",e=/^(?:pop|shift)$/.test(t);Ot.prototype[t]=function(){var t=arguments;if(e&&!this.__chain__){
-var u=this.value();return n.apply(nf(u)?u:[],t)}return this[r](function(r){return n.apply(nf(r)?r:[],t)})}}),On(Dt.prototype,function(t,n){var r=Ot[n];if(r){var e=r.name+"";(Zi[e]||(Zi[e]=[])).push({name:n,func:r})}}),Zi[Yr(F,2).name]=[{name:"wrapper",func:F}],Dt.prototype.clone=function(){var t=new Dt(this.__wrapped__);return t.__actions__=Cr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Cr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Cr(this.__views__),
-t},Dt.prototype.reverse=function(){if(this.__filtered__){var t=new Dt(this);t.__dir__=-1,t.__filtered__=true}else t=this.clone(),t.__dir__*=-1;return t},Dt.prototype.value=function(){var t,n=this.__wrapped__.value(),r=this.__dir__,e=nf(n),u=0>r,i=e?n.length:0;t=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c<a;){var l=o[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":t-=s;break;case"take":t=Wi(t,f+s);break;case"takeRight":f=zi(f,t-s)}}if(t={start:f,end:t},o=t.start,f=t.end,t=f-o,
-u=u?f:o-1,o=this.__iteratees__,f=o.length,c=0,a=Wi(t,this.__takeCount__),!e||200>i||i==t&&a==t)return Ar(n,this.__actions__);e=[];t:for(;t--&&c<a;){for(u+=r,i=-1,l=n[u];++i<f;){var h=o[i],s=h.type,h=(0,h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue t;break t}}e[c++]=l}return e},Ot.prototype.at=Lo,Ot.prototype.chain=function(){return Ge(this)},Ot.prototype.commit=function(){return new Mt(this.value(),this.__chain__)},Ot.prototype.next=function(){this.__values__===F&&(this.__values__=xu(this.value()));
-var t=this.__index__>=this.__values__.length;return{done:t,value:t?F:this.__values__[this.__index__++]}},Ot.prototype.plant=function(t){for(var n,r=this;r instanceof Rt;){var e=De(r);e.__index__=0,e.__values__=F,n?u.__wrapped__=e:n=e;var u=e,r=r.__wrapped__}return u.__wrapped__=t,n},Ot.prototype.reverse=function(){var t=this.__wrapped__;return t instanceof Dt?(this.__actions__.length&&(t=new Dt(this)),t=t.reverse(),t.__actions__.push({func:Je,args:[qe],thisArg:F}),new Mt(t,this.__chain__)):this.thru(qe);
-},Ot.prototype.toJSON=Ot.prototype.valueOf=Ot.prototype.value=function(){return Ar(this.__wrapped__,this.__actions__)},Ot.prototype.first=Ot.prototype.head,vi&&(Ot.prototype[vi]=Ye),Ot}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Pt._=un, define(function(){return un})):qt?((qt.exports=un)._=un,Zt._=un):Pt._=un}).call(this); \ No newline at end of file
+;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function i(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n););
+return n}function o(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function f(n,t){for(var r=-1,e=null==n?0:n.length,u=0,i=[];++r<e;){var o=n[r];t(o,r,n)&&(i[u++]=o)}return i}function c(n,t){return!(null==n||!n.length)&&-1<d(n,t,0)}function a(n,t,r){for(var e=-1,u=null==n?0:n.length;++e<u;)if(r(t,n[e]))return true;return false}function l(n,t){for(var r=-1,e=null==n?0:n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function s(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];
+return n}function h(n,t,r,e){var u=-1,i=null==n?0:n.length;for(e&&i&&(r=n[++u]);++u<i;)r=t(r,n[u],u,n);return r}function p(n,t,r,e){var u=null==n?0:n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function _(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(t(n[r],r,n))return true;return false}function v(n,t,r){var e;return r(n,function(n,r,u){if(t(n,r,u))return e=r,false}),e}function g(n,t,r,e){var u=n.length;for(r+=e?1:-1;e?r--:++r<u;)if(t(n[r],r,n))return r;return-1}function d(n,t,r){if(t===t)n:{
+--r;for(var e=n.length;++r<e;)if(n[r]===t){n=r;break n}n=-1}else n=g(n,b,r);return n}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n){return n!==n}function x(n,t){var r=null==n?0:n.length;return r?k(n,t)/r:P}function j(n){return function(t){return null==t?F:t[n]}}function w(n){return function(t){return null==n?F:n[t]}}function m(n,t,r,e,u){return u(n,function(n,u,i){r=e?(e=false,n):t(r,n,u,i)}),r}function A(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;
+return n}function k(n,t){for(var r,e=-1,u=n.length;++e<u;){var i=t(n[e]);i!==F&&(r=r===F?i:r+i)}return r}function E(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function O(n,t){return l(t,function(t){return[t,n[t]]})}function S(n){return function(t){return n(t)}}function I(n,t){return l(t,function(t){return n[t]})}function R(n,t){return n.has(t)}function z(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function W(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function B(n){
+return"\\"+Tn[n]}function L(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function U(n,t){return function(r){return n(t(r))}}function C(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r];o!==t&&"__lodash_placeholder__"!==o||(n[r]="__lodash_placeholder__",i[u++]=r)}return i}function D(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=[n,n]}),r}function T(n){if(Bn.test(n)){
+for(var t=zn.lastIndex=0;zn.test(n);)++t;n=t}else n=tt(n);return n}function $(n){return Bn.test(n)?n.match(zn)||[]:n.split("")}var F,N=1/0,P=NaN,Z=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],q=/\b__p\+='';/g,V=/\b(__p\+=)''\+/g,K=/(__e\(.*?\)|\b__t\))\+'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,H=/[&<>"']/g,J=RegExp(G.source),Y=RegExp(H.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/^\./,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,hn=/\{\n\/\* \[wrapped with (.+)\] \*/,pn=/,? & /,_n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,vn=/\\(\\)?/g,gn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,dn=/\w*$/,yn=/^[-+]0x[0-9a-f]+$/i,bn=/^0b[01]+$/i,xn=/^\[object .+?Constructor\]$/,jn=/^0o[0-7]+$/i,wn=/^(?:0|[1-9]\d*)$/,mn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,An=/($^)/,kn=/['\n\r\u2028\u2029\\]/g,En="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",On="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+En,Sn="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",In=RegExp("['\u2019]","g"),Rn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),zn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Sn+En,"g"),Wn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+",On].join("|"),"g"),Bn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),Ln=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Un="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={};
+Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object DataView]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false;
+var Dn={};Dn["[object Arguments]"]=Dn["[object Array]"]=Dn["[object ArrayBuffer]"]=Dn["[object DataView]"]=Dn["[object Boolean]"]=Dn["[object Date]"]=Dn["[object Float32Array]"]=Dn["[object Float64Array]"]=Dn["[object Int8Array]"]=Dn["[object Int16Array]"]=Dn["[object Int32Array]"]=Dn["[object Map]"]=Dn["[object Number]"]=Dn["[object Object]"]=Dn["[object RegExp]"]=Dn["[object Set]"]=Dn["[object String]"]=Dn["[object Symbol]"]=Dn["[object Uint8Array]"]=Dn["[object Uint8ClampedArray]"]=Dn["[object Uint16Array]"]=Dn["[object Uint32Array]"]=true,
+Dn["[object Error]"]=Dn["[object Function]"]=Dn["[object WeakMap]"]=false;var Mn,Tn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$n=parseFloat,Fn=parseInt,Nn=typeof global=="object"&&global&&global.Object===Object&&global,Pn=typeof self=="object"&&self&&self.Object===Object&&self,Zn=Nn||Pn||Function("return this")(),qn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Vn=qn&&typeof module=="object"&&module&&!module.nodeType&&module,Kn=Vn&&Vn.exports===qn,Gn=Kn&&Nn.process;
+n:{try{Mn=Gn&&Gn.binding&&Gn.binding("util");break n}catch(n){}Mn=void 0}var Hn=Mn&&Mn.isArrayBuffer,Jn=Mn&&Mn.isDate,Yn=Mn&&Mn.isMap,Qn=Mn&&Mn.isRegExp,Xn=Mn&&Mn.isSet,nt=Mn&&Mn.isTypedArray,tt=j("length"),rt=w({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I",
+"\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C",
+"\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i",
+"\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S",
+"\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe",
+"\u0149":"'n","\u017f":"s"}),et=w({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),ut=w({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),it=function w(En){function On(n){if(xu(n)&&!af(n)&&!(n instanceof Mn)){if(n instanceof zn)return n;if(ci.call(n,"__wrapped__"))return Pe(n)}return new zn(n)}function Sn(){}function zn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=F}function Mn(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,
+this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Tn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Nn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Pn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function qn(n){var t=-1,r=null==n?0:n.length;for(this.__data__=new Pn;++t<r;)this.add(n[t])}function Vn(n){
+this.size=(this.__data__=new Nn(n)).size}function Gn(n,t){var r,e=af(n),u=!e&&cf(n),i=!e&&!u&&sf(n),o=!e&&!u&&!i&&gf(n),u=(e=e||u||i||o)?E(n.length,ri):[],f=u.length;for(r in n)!t&&!ci.call(n,r)||e&&("length"==r||i&&("offset"==r||"parent"==r)||o&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||Re(r,f))||u.push(r);return u}function tt(n){var t=n.length;return t?n[cr(0,t-1)]:F}function ot(n,t){return Te(Mr(n),gt(t,0,n.length))}function ft(n){return Te(Mr(n))}function ct(n,t,r){(r===F||hu(n[t],r))&&(r!==F||t in n)||_t(n,t,r);
+}function at(n,t,r){var e=n[t];ci.call(n,t)&&hu(e,r)&&(r!==F||t in n)||_t(n,t,r)}function lt(n,t){for(var r=n.length;r--;)if(hu(n[r][0],t))return r;return-1}function st(n,t,r,e){return oo(n,function(n,u,i){t(e,n,r(n),i)}),e}function ht(n,t){return n&&Tr(t,Lu(t),n)}function pt(n,t){return n&&Tr(t,Uu(t),n)}function _t(n,t,r){"__proto__"==t&&Ei?Ei(n,t,{configurable:true,enumerable:true,value:r,writable:true}):n[t]=r}function vt(n,t){for(var r=-1,e=t.length,u=Hu(e),i=null==n;++r<e;)u[r]=i?F:Wu(n,t[r]);return u;
+}function gt(n,t,r){return n===n&&(r!==F&&(n=n<=r?n:r),t!==F&&(n=n>=t?n:t)),n}function dt(n,t,r,e,i,o){var f,c=1&t,a=2&t,l=4&t;if(r&&(f=i?r(n,e,i,o):r(n)),f!==F)return f;if(!bu(n))return n;if(e=af(n)){if(f=Ee(n),!c)return Mr(n,f)}else{var s=yo(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(sf(n))return Wr(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Oe(n),!c)return a?Fr(n,pt(f,n)):$r(n,ht(f,n))}else{if(!Dn[s])return i?n:{};f=Se(n,s,dt,c)}}if(o||(o=new Vn),
+i=o.get(n))return i;o.set(n,f);var a=l?a?ye:de:a?Uu:Lu,p=e?F:a(n);return u(p||n,function(e,u){p&&(u=e,e=n[u]),at(f,u,dt(e,t,r,u,n,o))}),f}function yt(n){var t=Lu(n);return function(r){return bt(r,n,t)}}function bt(n,t,r){var e=r.length;if(null==n)return!e;for(n=ni(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===F&&!(u in n)||!i(o))return false}return true}function xt(n,t,r){if(typeof n!="function")throw new ei("Expected a function");return jo(function(){n.apply(F,r)},t)}function jt(n,t,r,e){var u=-1,i=c,o=true,f=n.length,s=[],h=t.length;
+if(!f)return s;r&&(t=l(t,S(r))),e?(i=a,o=false):200<=t.length&&(i=R,o=false,t=new qn(t));n:for(;++u<f;){var p=n[u],_=null==r?p:r(p),p=e||0!==p?p:0;if(o&&_===_){for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else i(t,_,e)||s.push(p)}return s}function wt(n,t){var r=true;return oo(n,function(n,e,u){return r=!!t(n,e,u)}),r}function mt(n,t,r){for(var e=-1,u=n.length;++e<u;){var i=n[e],o=t(i);if(null!=o&&(f===F?o===o&&!Au(o):r(o,f)))var f=o,c=i}return c}function At(n,t){var r=[];return oo(n,function(n,e,u){
+t(n,e,u)&&r.push(n)}),r}function kt(n,t,r,e,u){var i=-1,o=n.length;for(r||(r=Ie),u||(u=[]);++i<o;){var f=n[i];0<t&&r(f)?1<t?kt(f,t-1,r,e,u):s(u,f):e||(u[u.length]=f)}return u}function Et(n,t){return n&&co(n,t,Lu)}function Ot(n,t){return n&&ao(n,t,Lu)}function St(n,t){return f(t,function(t){return gu(n[t])})}function It(n,t){t=Rr(t,n);for(var r=0,e=t.length;null!=n&&r<e;)n=n[$e(t[r++])];return r&&r==e?n:F}function Rt(n,t,r){return t=t(n),af(n)?t:s(t,r(n))}function zt(n){if(null==n)n=n===F?"[object Undefined]":"[object Null]";else if(ki&&ki in ni(n)){
+var t=ci.call(n,ki),r=n[ki];try{n[ki]=F;var e=true}catch(n){}var u=si.call(n);e&&(t?n[ki]=r:delete n[ki]),n=u}else n=si.call(n);return n}function Wt(n,t){return n>t}function Bt(n,t){return null!=n&&ci.call(n,t)}function Lt(n,t){return null!=n&&t in ni(n)}function Ut(n,t,r){for(var e=r?a:c,u=n[0].length,i=n.length,o=i,f=Hu(i),s=1/0,h=[];o--;){var p=n[o];o&&t&&(p=l(p,S(t))),s=Mi(p.length,s),f[o]=!r&&(t||120<=u&&120<=p.length)?new qn(o&&p):F}var p=n[0],_=-1,v=f[0];n:for(;++_<u&&h.length<s;){var g=p[_],d=t?t(g):g,g=r||0!==g?g:0;
+if(v?!R(v,d):!e(h,d,r)){for(o=i;--o;){var y=f[o];if(y?!R(y,d):!e(n[o],d,r))continue n}v&&v.push(d),h.push(g)}}return h}function Ct(n,t,r){var e={};return Et(n,function(n,u,i){t(e,r(n),u,i)}),e}function Dt(n,t,e){return t=Rr(t,n),n=2>t.length?n:It(n,vr(t,0,-1)),t=null==n?n:n[$e(Ge(t))],null==t?F:r(t,n,e)}function Mt(n){return xu(n)&&"[object Arguments]"==zt(n)}function Tt(n){return xu(n)&&"[object ArrayBuffer]"==zt(n)}function $t(n){return xu(n)&&"[object Date]"==zt(n)}function Ft(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!xu(n)&&!xu(t))t=n!==n&&t!==t;else n:{
+var i=af(n),o=af(t),f=i?"[object Array]":yo(n),c=o?"[object Array]":yo(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&sf(n)){if(!sf(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Vn),t=i||gf(n)?_e(n,t,r,e,Ft,u):ve(n,t,f,r,e,Ft,u);else{if(!(1&r)&&(i=a&&ci.call(n,"__wrapped__"),f=o&&ci.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Vn),t=Ft(n,t,r,e,u);break n}if(c)t:if(u||(u=new Vn),
+i=1&r,f=de(n),o=f.length,c=de(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:ci.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++a<o;){var l=f[a],h=n[l],p=t[l];if(e)var _=i?e(p,h,l,t,n,u):e(h,p,l,n,t,u);if(_===F?h!==p&&!Ft(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),
+u.delete(n),u.delete(t),t=c}}else t=false;else t=false}}return t}function Nt(n){return xu(n)&&"[object Map]"==yo(n)}function Pt(n,t,r,e){var u=r.length,i=u,o=!e;if(null==n)return!i;for(n=ni(n);u--;){var f=r[u];if(o&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<i;){var f=r[u],c=f[0],a=n[c],l=f[1];if(o&&f[2]){if(a===F&&!(c in n))return false}else{if(f=new Vn,e)var s=e(a,l,c,n,t,f);if(s===F?!Ft(l,a,3,e,f):!s)return false}}return true}function Zt(n){return!(!bu(n)||li&&li in n)&&(gu(n)?_i:xn).test(Fe(n))}function qt(n){
+return xu(n)&&"[object RegExp]"==zt(n)}function Vt(n){return xu(n)&&"[object Set]"==yo(n)}function Kt(n){return xu(n)&&yu(n.length)&&!!Cn[zt(n)]}function Gt(n){return typeof n=="function"?n:null==n?Nu:typeof n=="object"?af(n)?Xt(n[0],n[1]):Qt(n):Vu(n)}function Ht(n){if(!Le(n))return Ci(n);var t,r=[];for(t in ni(n))ci.call(n,t)&&"constructor"!=t&&r.push(t);return r}function Jt(n,t){return n<t}function Yt(n,t){var r=-1,e=pu(n)?Hu(n.length):[];return oo(n,function(n,u,i){e[++r]=t(n,u,i)}),e}function Qt(n){
+var t=me(n);return 1==t.length&&t[0][2]?Ue(t[0][0],t[0][1]):function(r){return r===n||Pt(r,n,t)}}function Xt(n,t){return We(n)&&t===t&&!bu(t)?Ue($e(n),t):function(r){var e=Wu(r,n);return e===F&&e===t?Bu(r,n):Ft(t,e,3)}}function nr(n,t,r,e,u){n!==t&&co(t,function(i,o){if(bu(i)){u||(u=new Vn);var f=u,c=n[o],a=t[o],l=f.get(a);if(l)ct(n,o,l);else{var l=e?e(c,a,o+"",n,t,f):F,s=l===F;if(s){var h=af(a),p=!h&&sf(a),_=!h&&!p&&gf(a),l=a;h||p||_?af(c)?l=c:_u(c)?l=Mr(c):p?(s=false,l=Wr(a,true)):_?(s=false,l=Lr(a,true)):l=[]:wu(a)||cf(a)?(l=c,
+cf(c)?l=Ru(c):(!bu(c)||r&&gu(c))&&(l=Oe(a))):s=false}s&&(f.set(a,l),nr(l,a,r,e,f),f.delete(a)),ct(n,o,l)}}else f=e?e(n[o],i,o+"",n,t,u):F,f===F&&(f=i),ct(n,o,f)},Uu)}function tr(n,t){var r=n.length;if(r)return t+=0>t?r:0,Re(t,r)?n[t]:F}function rr(n,t,r){var e=-1;return t=l(t.length?t:[Nu],S(je())),n=Yt(n,function(n){return{a:l(t,function(t){return t(n)}),b:++e,c:n}}),A(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e<o;){var c=Ur(u[e],i[e]);if(c){e=e>=f?c:c*("desc"==r[e]?-1:1);
+break n}}e=n.b-t.b}return e})}function er(n,t){return ur(n,t,function(t,r){return Bu(n,r)})}function ur(n,t,r){for(var e=-1,u=t.length,i={};++e<u;){var o=t[e],f=It(n,o);r(f,o)&&pr(i,Rr(o,n),f)}return i}function ir(n){return function(t){return It(t,n)}}function or(n,t,r,e){var u=e?y:d,i=-1,o=t.length,f=n;for(n===t&&(t=Mr(t)),r&&(f=l(n,S(r)));++i<o;)for(var c=0,a=t[i],a=r?r(a):a;-1<(c=u(f,a,c,e));)f!==n&&wi.call(f,c,1),wi.call(n,c,1);return n}function fr(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];
+if(r==e||u!==i){var i=u;Re(u)?wi.call(n,u,1):mr(n,u)}}}function cr(n,t){return n+zi(Fi()*(t-n+1))}function ar(n,t){var r="";if(!n||1>t||9007199254740991<t)return r;do t%2&&(r+=n),(t=zi(t/2))&&(n+=n);while(t);return r}function lr(n,t){return wo(Ce(n,t,Nu),n+"")}function sr(n){return tt(Du(n))}function hr(n,t){var r=Du(n);return Te(r,gt(t,0,r.length))}function pr(n,t,r,e){if(!bu(n))return n;t=Rr(t,n);for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++u<i;){var c=$e(t[u]),a=r;if(u!=o){var l=f[c],a=e?e(l,c,f):F;
+a===F&&(a=bu(l)?l:Re(t[u+1])?[]:{})}at(f,c,a),f=f[c]}return n}function _r(n){return Te(Du(n))}function vr(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Hu(u);++e<u;)r[e]=n[e+t];return r}function gr(n,t){var r;return oo(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function dr(n,t,r){var e=0,u=null==n?e:n.length;if(typeof t=="number"&&t===t&&2147483647>=u){for(;e<u;){var i=e+u>>>1,o=n[i];null!==o&&!Au(o)&&(r?o<=t:o<t)?e=i+1:u=i}return u}return yr(n,t,Nu,r);
+}function yr(n,t,r,e){t=r(t);for(var u=0,i=null==n?0:n.length,o=t!==t,f=null===t,c=Au(t),a=t===F;u<i;){var l=zi((u+i)/2),s=r(n[l]),h=s!==F,p=null===s,_=s===s,v=Au(s);(o?e||_:a?_&&(e||h):f?_&&h&&(e||!p):c?_&&h&&!p&&(e||!v):p||v?0:e?s<=t:s<t)?u=l+1:i=l}return Mi(i,4294967294)}function br(n,t){for(var r=-1,e=n.length,u=0,i=[];++r<e;){var o=n[r],f=t?t(o):o;if(!r||!hu(f,c)){var c=f;i[u++]=0===o?0:o}}return i}function xr(n){return typeof n=="number"?n:Au(n)?P:+n}function jr(n){if(typeof n=="string")return n;
+if(af(n))return l(n,jr)+"";if(Au(n))return uo?uo.call(n):"";var t=n+"";return"0"==t&&1/n==-N?"-0":t}function wr(n,t,r){var e=-1,u=c,i=n.length,o=true,f=[],l=f;if(r)o=false,u=a;else if(200<=i){if(u=t?null:po(n))return D(u);o=false,u=R,l=new qn}else l=t?[]:f;n:for(;++e<i;){var s=n[e],h=t?t(s):s,s=r||0!==s?s:0;if(o&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),f.push(s)}else u(l,h,r)||(l!==f&&l.push(h),f.push(s))}return f}function mr(n,t){return t=Rr(t,n),n=2>t.length?n:It(n,vr(t,0,-1)),
+null==n||delete n[$e(Ge(t))]}function Ar(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++i<u)&&t(n[i],i,n););return r?vr(n,e?0:i,e?i+1:u):vr(n,e?i+1:0,e?u:i)}function kr(n,t){var r=n;return r instanceof Mn&&(r=r.value()),h(t,function(n,t){return t.func.apply(t.thisArg,s([n],t.args))},r)}function Er(n,t,r){var e=n.length;if(2>e)return e?wr(n[0]):[];for(var u=-1,i=Hu(e);++u<e;)for(var o=n[u],f=-1;++f<e;)f!=u&&(i[u]=jt(i[u]||o,n[f],t,r));return wr(kt(i,1),t,r)}function Or(n,t,r){for(var e=-1,u=n.length,i=t.length,o={};++e<u;)r(o,n[e],e<i?t[e]:F);
+return o}function Sr(n){return _u(n)?n:[]}function Ir(n){return typeof n=="function"?n:Nu}function Rr(n,t){return af(n)?n:We(n,t)?[n]:mo(zu(n))}function zr(n,t,r){var e=n.length;return r=r===F?e:r,!t&&r>=e?n:vr(n,t,r)}function Wr(n,t){if(t)return n.slice();var r=n.length,r=yi?yi(r):new n.constructor(r);return n.copy(r),r}function Br(n){var t=new n.constructor(n.byteLength);return new di(t).set(new di(n)),t}function Lr(n,t){return new n.constructor(t?Br(n.buffer):n.buffer,n.byteOffset,n.length)}function Ur(n,t){
+if(n!==t){var r=n!==F,e=null===n,u=n===n,i=Au(n),o=t!==F,f=null===t,c=t===t,a=Au(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n<t||a&&r&&u&&!e&&!i||f&&r&&u||!o&&u||!c)return-1}return 0}function Cr(n,t,r,e){var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Di(i-o,0),l=Hu(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<o;)(e||u<i)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l}function Dr(n,t,r,e){var u=-1,i=n.length,o=-1,f=r.length,c=-1,a=t.length,l=Di(i-f,0),s=Hu(l+a);
+for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++o<f;)(e||u<i)&&(s[l+r[o]]=n[u++]);return s}function Mr(n,t){var r=-1,e=n.length;for(t||(t=Hu(e));++r<e;)t[r]=n[r];return t}function Tr(n,t,r,e){var u=!r;r||(r={});for(var i=-1,o=t.length;++i<o;){var f=t[i],c=e?e(r[f],n[f],f,r,n):F;c===F&&(c=n[f]),u?_t(r,f,c):at(r,f,c)}return r}function $r(n,t){return Tr(n,vo(n),t)}function Fr(n,t){return Tr(n,go(n),t)}function Nr(n,t){return function(r,u){var i=af(r)?e:st,o=t?t():{};return i(r,n,je(u,2),o);
+}}function Pr(n){return lr(function(t,r){var e=-1,u=r.length,i=1<u?r[u-1]:F,o=2<u?r[2]:F,i=3<n.length&&typeof i=="function"?(u--,i):F;for(o&&ze(r[0],r[1],o)&&(i=3>u?F:i,u=1),t=ni(t);++e<u;)(o=r[e])&&n(t,o,e,i);return t})}function Zr(n,t){return function(r,e){if(null==r)return r;if(!pu(r))return n(r,e);for(var u=r.length,i=t?u:-1,o=ni(r);(t?i--:++i<u)&&false!==e(o[i],i,o););return r}}function qr(n){return function(t,r,e){var u=-1,i=ni(t);e=e(t);for(var o=e.length;o--;){var f=e[n?o:++u];if(false===r(i[f],f,i))break;
+}return t}}function Vr(n,t,r){function e(){return(this&&this!==Zn&&this instanceof e?i:n).apply(u?r:this,arguments)}var u=1&t,i=Hr(n);return e}function Kr(n){return function(t){t=zu(t);var r=Bn.test(t)?$(t):F,e=r?r[0]:t.charAt(0);return t=r?zr(r,1).join(""):t.slice(1),e[n]()+t}}function Gr(n){return function(t){return h($u(Tu(t).replace(In,"")),n,"")}}function Hr(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:
+return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=io(n.prototype),t=n.apply(r,t);return bu(t)?t:r}}function Jr(n,t,e){function u(){for(var o=arguments.length,f=Hu(o),c=o,a=xe(u);c--;)f[c]=arguments[c];return c=3>o&&f[0]!==a&&f[o-1]!==a?[]:C(f,a),o-=c.length,o<e?fe(n,t,Xr,u.placeholder,F,f,c,F,F,e-o):r(this&&this!==Zn&&this instanceof u?i:n,this,f);
+}var i=Hr(n);return u}function Yr(n){return function(t,r,e){var u=ni(t);if(!pu(t)){var i=je(r,3);t=Lu(t),r=function(n){return i(u[n],n,u)}}return r=n(t,r,e),-1<r?u[i?t[r]:r]:F}}function Qr(n){return ge(function(t){var r=t.length,e=r,u=zn.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if(typeof i!="function")throw new ei("Expected a function");if(u&&!o&&"wrapper"==be(i))var o=new zn([],true)}for(e=o?e:r;++e<r;)var i=t[e],u=be(i),f="wrapper"==u?_o(i):F,o=f&&Be(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?o[be(f[0])].apply(o,f[3]):1==i.length&&Be(i)?o[u]():o.thru(i);
+return function(){var n=arguments,e=n[0];if(o&&1==n.length&&af(e))return o.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function Xr(n,t,r,e,u,i,o,f,c,a){function l(){for(var d=arguments.length,y=Hu(d),b=d;b--;)y[b]=arguments[b];if(_){var x,j=xe(l),b=y.length;for(x=0;b--;)y[b]===j&&++x}if(e&&(y=Cr(y,e,u,_)),i&&(y=Dr(y,i,o,_)),d-=x,_&&d<a)return j=C(y,j),fe(n,t,Xr,l.placeholder,r,y,j,f,c,a-d);if(j=h?r:this,b=p?j[n]:n,d=y.length,f){x=y.length;for(var w=Mi(f.length,x),m=Mr(y);w--;){
+var A=f[w];y[w]=Re(A,x)?m[A]:F}}else v&&1<d&&y.reverse();return s&&c<d&&(y.length=c),this&&this!==Zn&&this instanceof l&&(b=g||Hr(b)),b.apply(j,y)}var s=128&t,h=1&t,p=2&t,_=24&t,v=512&t,g=p?F:Hr(n);return l}function ne(n,t){return function(r,e){return Ct(r,n,t(e))}}function te(n,t){return function(r,e){var u;if(r===F&&e===F)return t;if(r!==F&&(u=r),e!==F){if(u===F)return e;typeof r=="string"||typeof e=="string"?(r=jr(r),e=jr(e)):(r=xr(r),e=xr(e)),u=n(r,e)}return u}}function re(n){return ge(function(t){
+return t=l(t,S(je())),lr(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function ee(n,t){t=t===F?" ":jr(t);var r=t.length;return 2>r?r?ar(t,n):t:(r=ar(t,Ri(n/T(t))),Bn.test(t)?zr($(r),0,n).join(""):r.slice(0,n))}function ue(n,t,e,u){function i(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Hu(l+c),h=this&&this!==Zn&&this instanceof i?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,o?e:this,s)}var o=1&t,f=Hr(n);return i}function ie(n){return function(t,r,e){
+e&&typeof e!="number"&&ze(t,r,e)&&(r=e=F),t=Eu(t),r===F?(r=t,t=0):r=Eu(r),e=e===F?t<r?1:-1:Eu(e);var u=-1;r=Di(Ri((r-t)/(e||1)),0);for(var i=Hu(r);r--;)i[n?r:++u]=t,t+=e;return i}}function oe(n){return function(t,r){return typeof t=="string"&&typeof r=="string"||(t=Iu(t),r=Iu(r)),n(t,r)}}function fe(n,t,r,e,u,i,o,f,c,a){var l=8&t,s=l?o:F;o=l?F:o;var h=l?i:F;return i=l?F:i,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),u=[n,t,u,h,s,i,o,f,c,a],r=r.apply(F,u),Be(n)&&xo(r,u),r.placeholder=e,De(r,n,t)}function ce(n){
+var t=Xu[n];return function(n,r){if(n=Iu(n),r=null==r?0:Mi(Ou(r),292)){var e=(zu(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(zu(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function ae(n){return function(t){var r=yo(t);return"[object Map]"==r?L(t):"[object Set]"==r?M(t):O(t,n(t))}}function le(n,t,r,e,u,i,o,f){var c=2&t;if(!c&&typeof n!="function")throw new ei("Expected a function");var a=e?e.length:0;if(a||(t&=-97,e=u=F),o=o===F?o:Di(Ou(o),0),f=f===F?f:Ou(f),a-=u?u.length:0,64&t){
+var l=e,s=u;e=u=F}var h=c?F:_o(n);return i=[n,t,r,e,u,l,s,i,o,f],h&&(r=i[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&i[7].length<=h[8]||384==n&&h[7].length<=h[8]&&8==r,131>t||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Cr(e,r,h[4]):r,i[4]=e?C(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Dr(e,r,h[6]):r,i[6]=e?C(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Mi(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0],t=i[1],
+r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===F?c?0:n.length:Di(i[9]-a,0),!f&&24&t&&(t&=-25),De((h?lo:xo)(t&&1!=t?8==t||16==t?Jr(n,t,f):32!=t&&33!=t||u.length?Xr.apply(F,i):ue(n,t,r,e):Vr(n,t,r),i),n,t)}function se(n,t,r,e){return n===F||hu(n,ii[r])&&!ci.call(e,r)?t:n}function he(n,t,r,e,u,i){return bu(n)&&bu(t)&&(i.set(t,n),nr(n,t,F,he,i),i.delete(t)),n}function pe(n){return wu(n)?F:n}function _e(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t;var c=-1,a=true,l=2&r?new qn:F;
+for(i.set(n,t),i.set(t,n);++c<f;){var s=n[c],h=t[c];if(e)var p=o?e(h,s,c,t,n,i):e(s,h,c,n,t,i);if(p!==F){if(p)continue;a=false;break}if(l){if(!_(t,function(n,t){if(!R(l,t)&&(s===n||u(s,n,r,e,i)))return l.push(t)})){a=false;break}}else if(s!==h&&!u(s,h,r,e,i)){a=false;break}}return i.delete(n),i.delete(t),a}function ve(n,t,r,e,u,i,o){switch(r){case"[object DataView]":if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)break;n=n.buffer,t=t.buffer;case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!i(new di(n),new di(t)))break;
+return true;case"[object Boolean]":case"[object Date]":case"[object Number]":return hu(+n,+t);case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object RegExp]":case"[object String]":return n==t+"";case"[object Map]":var f=L;case"[object Set]":if(f||(f=D),n.size!=t.size&&!(1&e))break;return(r=o.get(n))?r==t:(e|=2,o.set(n,t),t=_e(f(n),f(t),e,u,i,o),o.delete(n),t);case"[object Symbol]":if(eo)return eo.call(n)==eo.call(t)}return false}function ge(n){return wo(Ce(n,F,Ve),n+"")}function de(n){
+return Rt(n,Lu,vo)}function ye(n){return Rt(n,Uu,go)}function be(n){for(var t=n.name+"",r=Ji[t],e=ci.call(Ji,t)?r.length:0;e--;){var u=r[e],i=u.func;if(null==i||i==n)return u.name}return t}function xe(n){return(ci.call(On,"placeholder")?On:n).placeholder}function je(){var n=On.iteratee||Pu,n=n===Pu?Gt:n;return arguments.length?n(arguments[0],arguments[1]):n}function we(n,t){var r=n.__data__,e=typeof t;return("string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t)?r[typeof t=="string"?"string":"hash"]:r.map;
+}function me(n){for(var t=Lu(n),r=t.length;r--;){var e=t[r],u=n[e];t[r]=[e,u,u===u&&!bu(u)]}return t}function Ae(n,t){var r=null==n?F:n[t];return Zt(r)?r:F}function ke(n,t,r){t=Rr(t,n);for(var e=-1,u=t.length,i=false;++e<u;){var o=$e(t[e]);if(!(i=null!=n&&r(n,o)))break;n=n[o]}return i||++e!=u?i:(u=null==n?0:n.length,!!u&&yu(u)&&Re(o,u)&&(af(n)||cf(n)))}function Ee(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&ci.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function Oe(n){
+return typeof n.constructor!="function"||Le(n)?{}:io(bi(n))}function Se(r,e,u,i){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Br(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object DataView]":return e=i?Br(r.buffer):r.buffer,new r.constructor(e,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":
+case"[object Uint16Array]":case"[object Uint32Array]":return Lr(r,i);case"[object Map]":return e=i?u(L(r),1):L(r),h(e,n,new r.constructor);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return e=new r.constructor(r.source,dn.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return e=i?u(D(r),1):D(r),h(e,t,new r.constructor);case"[object Symbol]":return eo?ni(eo.call(r)):{}}}function Ie(n){return af(n)||cf(n)||!!(mi&&n&&n[mi])}function Re(n,t){return t=null==t?9007199254740991:t,
+!!t&&(typeof n=="number"||wn.test(n))&&-1<n&&0==n%1&&n<t}function ze(n,t,r){if(!bu(r))return false;var e=typeof t;return!!("number"==e?pu(r)&&Re(t,r.length):"string"==e&&t in r)&&hu(r[t],n)}function We(n,t){if(af(n))return false;var r=typeof n;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=n&&!Au(n))||(rn.test(n)||!tn.test(n)||null!=t&&n in ni(t))}function Be(n){var t=be(n),r=On[t];return typeof r=="function"&&t in Mn.prototype&&(n===r||(t=_o(r),!!t&&n===t[0]))}function Le(n){var t=n&&n.constructor;
+return n===(typeof t=="function"&&t.prototype||ii)}function Ue(n,t){return function(r){return null!=r&&(r[n]===t&&(t!==F||n in ni(r)))}}function Ce(n,t,e){return t=Di(t===F?n.length-1:t,0),function(){for(var u=arguments,i=-1,o=Di(u.length-t,0),f=Hu(o);++i<o;)f[i]=u[t+i];for(i=-1,o=Hu(t+1);++i<t;)o[i]=u[i];return o[t]=e(f),r(n,this,o)}}function De(n,t,r){var e=t+"";t=wo;var u,i=Ne;return u=(u=e.match(hn))?u[1].split(pn):[],r=i(u,r),(i=r.length)&&(u=i-1,r[u]=(1<i?"& ":"")+r[u],r=r.join(2<i?", ":" "),
+e=e.replace(sn,"{\n/* [wrapped with "+r+"] */\n")),t(n,e)}function Me(n){var t=0,r=0;return function(){var e=Ti(),u=16-(e-r);if(r=e,0<u){if(800<=++t)return arguments[0]}else t=0;return n.apply(F,arguments)}}function Te(n,t){var r=-1,e=n.length,u=e-1;for(t=t===F?e:t;++r<t;){var e=cr(r,u),i=n[e];n[e]=n[r],n[r]=i}return n.length=t,n}function $e(n){if(typeof n=="string"||Au(n))return n;var t=n+"";return"0"==t&&1/n==-N?"-0":t}function Fe(n){if(null!=n){try{return fi.call(n)}catch(n){}return n+""}return"";
+}function Ne(n,t){return u(Z,function(r){var e="_."+r[0];t&r[1]&&!c(n,e)&&n.push(e)}),n.sort()}function Pe(n){if(n instanceof Mn)return n.clone();var t=new zn(n.__wrapped__,n.__chain__);return t.__actions__=Mr(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Ze(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Ou(r),0>r&&(r=Di(e+r,0)),g(n,je(t,3),r)):-1}function qe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==F&&(u=Ou(r),u=0>r?Di(e+u,0):Mi(u,e-1)),
+g(n,je(t,3),u,true)}function Ve(n){return(null==n?0:n.length)?kt(n,1):[]}function Ke(n){return n&&n.length?n[0]:F}function Ge(n){var t=null==n?0:n.length;return t?n[t-1]:F}function He(n,t){return n&&n.length&&t&&t.length?or(n,t):n}function Je(n){return null==n?n:Ni.call(n)}function Ye(n){if(!n||!n.length)return[];var t=0;return n=f(n,function(n){if(_u(n))return t=Di(n.length,t),true}),E(t,function(t){return l(n,j(t))})}function Qe(n,t){if(!n||!n.length)return[];var e=Ye(n);return null==t?e:l(e,function(n){
+return r(t,F,n)})}function Xe(n){return n=On(n),n.__chain__=true,n}function nu(n,t){return t(n)}function tu(){return this}function ru(n,t){return(af(n)?u:oo)(n,je(t,3))}function eu(n,t){return(af(n)?i:fo)(n,je(t,3))}function uu(n,t){return(af(n)?l:Yt)(n,je(t,3))}function iu(n,t,r){return t=r?F:t,t=n&&null==t?n.length:t,le(n,128,F,F,F,F,t)}function ou(n,t){var r;if(typeof t!="function")throw new ei("Expected a function");return n=Ou(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=F),
+r}}function fu(n,t,r){return t=r?F:t,n=le(n,8,F,F,F,F,F,t),n.placeholder=fu.placeholder,n}function cu(n,t,r){return t=r?F:t,n=le(n,16,F,F,F,F,F,t),n.placeholder=cu.placeholder,n}function au(n,t,r){function e(t){var r=c,e=a;return c=a=F,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===F||r>=t||0>r||g&&n>=l}function i(){var n=Jo();if(u(n))return o(n);var r,e=jo;r=n-_,n=t-(n-p),r=g?Mi(n,l-r):n,h=e(i,r)}function o(n){return h=F,d&&c?e(n):(c=a=F,s)}function f(){var n=Jo(),r=u(n);if(c=arguments,
+a=this,p=n,r){if(h===F)return _=n=p,h=jo(i,t),v?e(n):s;if(g)return h=jo(i,t),e(p)}return h===F&&(h=jo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ei("Expected a function");return t=Iu(t)||0,bu(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Di(Iu(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==F&&ho(h),_=0,c=p=a=h=F},f.flush=function(){return h===F?s:o(Jo())},f}function lu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;return i.has(u)?i.get(u):(e=n.apply(this,e),
+r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ei("Expected a function");return r.cache=new(lu.Cache||Pn),r}function su(n){if(typeof n!="function")throw new ei("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function hu(n,t){return n===t||n!==n&&t!==t}function pu(n){return null!=n&&yu(n.length)&&!gu(n);
+}function _u(n){return xu(n)&&pu(n)}function vu(n){if(!xu(n))return false;var t=zt(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!wu(n)}function gu(n){return!!bu(n)&&(n=zt(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function du(n){return typeof n=="number"&&n==Ou(n)}function yu(n){return typeof n=="number"&&-1<n&&0==n%1&&9007199254740991>=n}function bu(n){var t=typeof n;return null!=n&&("object"==t||"function"==t);
+}function xu(n){return null!=n&&typeof n=="object"}function ju(n){return typeof n=="number"||xu(n)&&"[object Number]"==zt(n)}function wu(n){return!(!xu(n)||"[object Object]"!=zt(n))&&(n=bi(n),null===n||(n=ci.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&fi.call(n)==hi))}function mu(n){return typeof n=="string"||!af(n)&&xu(n)&&"[object String]"==zt(n)}function Au(n){return typeof n=="symbol"||xu(n)&&"[object Symbol]"==zt(n)}function ku(n){if(!n)return[];if(pu(n))return mu(n)?$(n):Mr(n);
+if(Ai&&n[Ai]){n=n[Ai]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=yo(n),("[object Map]"==t?L:"[object Set]"==t?D:Du)(n)}function Eu(n){return n?(n=Iu(n),n===N||n===-N?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Ou(n){n=Eu(n);var t=n%1;return n===n?t?n-t:n:0}function Su(n){return n?gt(Ou(n),0,4294967295):0}function Iu(n){if(typeof n=="number")return n;if(Au(n))return P;if(bu(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n,n=bu(n)?n+"":n),typeof n!="string")return 0===n?n:+n;
+n=n.replace(cn,"");var t=bn.test(n);return t||jn.test(n)?Fn(n.slice(2),t?2:8):yn.test(n)?P:+n}function Ru(n){return Tr(n,Uu(n))}function zu(n){return null==n?"":jr(n)}function Wu(n,t,r){return n=null==n?F:It(n,t),n===F?r:n}function Bu(n,t){return null!=n&&ke(n,t,Lt)}function Lu(n){return pu(n)?Gn(n):Ht(n)}function Uu(n){if(pu(n))n=Gn(n,true);else if(bu(n)){var t,r=Le(n),e=[];for(t in n)("constructor"!=t||!r&&ci.call(n,t))&&e.push(t);n=e}else{if(t=[],null!=n)for(r in ni(n))t.push(r);n=t}return n}function Cu(n,t){
+if(null==n)return{};var r=l(ye(n),function(n){return[n]});return t=je(t),ur(n,r,function(n,r){return t(n,r[0])})}function Du(n){return null==n?[]:I(n,Lu(n))}function Mu(n){return Nf(zu(n).toLowerCase())}function Tu(n){return(n=zu(n))&&n.replace(mn,rt).replace(Rn,"")}function $u(n,t,r){return n=zu(n),t=r?F:t,t===F?Ln.test(n)?n.match(Wn)||[]:n.match(_n)||[]:n.match(t)||[]}function Fu(n){return function(){return n}}function Nu(n){return n}function Pu(n){return Gt(typeof n=="function"?n:dt(n,1))}function Zu(n,t,r){
+var e=Lu(t),i=St(t,e);null!=r||bu(t)&&(i.length||!e.length)||(r=t,t=n,n=this,i=St(t,Lu(t)));var o=!(bu(r)&&"chain"in r&&!r.chain),f=gu(n);return u(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Mr(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,s([this.value()],arguments))})}),n}function qu(){}function Vu(n){return We(n)?j($e(n)):ir(n)}function Ku(){return[]}function Gu(){
+return false}En=null==En?Zn:it.defaults(Zn.Object(),En,it.pick(Zn,Un));var Hu=En.Array,Ju=En.Date,Yu=En.Error,Qu=En.Function,Xu=En.Math,ni=En.Object,ti=En.RegExp,ri=En.String,ei=En.TypeError,ui=Hu.prototype,ii=ni.prototype,oi=En["__core-js_shared__"],fi=Qu.prototype.toString,ci=ii.hasOwnProperty,ai=0,li=function(){var n=/[^.]+$/.exec(oi&&oi.keys&&oi.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),si=ii.toString,hi=fi.call(ni),pi=Zn._,_i=ti("^"+fi.call(ci).replace(on,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vi=Kn?En.Buffer:F,gi=En.Symbol,di=En.Uint8Array,yi=vi?vi.f:F,bi=U(ni.getPrototypeOf,ni),xi=ni.create,ji=ii.propertyIsEnumerable,wi=ui.splice,mi=gi?gi.isConcatSpreadable:F,Ai=gi?gi.iterator:F,ki=gi?gi.toStringTag:F,Ei=function(){
+try{var n=Ae(ni,"defineProperty");return n({},"",{}),n}catch(n){}}(),Oi=En.clearTimeout!==Zn.clearTimeout&&En.clearTimeout,Si=Ju&&Ju.now!==Zn.Date.now&&Ju.now,Ii=En.setTimeout!==Zn.setTimeout&&En.setTimeout,Ri=Xu.ceil,zi=Xu.floor,Wi=ni.getOwnPropertySymbols,Bi=vi?vi.isBuffer:F,Li=En.isFinite,Ui=ui.join,Ci=U(ni.keys,ni),Di=Xu.max,Mi=Xu.min,Ti=Ju.now,$i=En.parseInt,Fi=Xu.random,Ni=ui.reverse,Pi=Ae(En,"DataView"),Zi=Ae(En,"Map"),qi=Ae(En,"Promise"),Vi=Ae(En,"Set"),Ki=Ae(En,"WeakMap"),Gi=Ae(ni,"create"),Hi=Ki&&new Ki,Ji={},Yi=Fe(Pi),Qi=Fe(Zi),Xi=Fe(qi),no=Fe(Vi),to=Fe(Ki),ro=gi?gi.prototype:F,eo=ro?ro.valueOf:F,uo=ro?ro.toString:F,io=function(){
+function n(){}return function(t){return bu(t)?xi?xi(t):(n.prototype=t,t=new n,n.prototype=F,t):{}}}();On.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:On}},On.prototype=Sn.prototype,On.prototype.constructor=On,zn.prototype=io(Sn.prototype),zn.prototype.constructor=zn,Mn.prototype=io(Sn.prototype),Mn.prototype.constructor=Mn,Tn.prototype.clear=function(){this.__data__=Gi?Gi(null):{},this.size=0},Tn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n],
+this.size-=n?1:0,n},Tn.prototype.get=function(n){var t=this.__data__;return Gi?(n=t[n],"__lodash_hash_undefined__"===n?F:n):ci.call(t,n)?t[n]:F},Tn.prototype.has=function(n){var t=this.__data__;return Gi?t[n]!==F:ci.call(t,n)},Tn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Gi&&t===F?"__lodash_hash_undefined__":t,this},Nn.prototype.clear=function(){this.__data__=[],this.size=0},Nn.prototype.delete=function(n){var t=this.__data__;return n=lt(t,n),!(0>n)&&(n==t.length-1?t.pop():wi.call(t,n,1),
+--this.size,true)},Nn.prototype.get=function(n){var t=this.__data__;return n=lt(t,n),0>n?F:t[n][1]},Nn.prototype.has=function(n){return-1<lt(this.__data__,n)},Nn.prototype.set=function(n,t){var r=this.__data__,e=lt(r,n);return 0>e?(++this.size,r.push([n,t])):r[e][1]=t,this},Pn.prototype.clear=function(){this.size=0,this.__data__={hash:new Tn,map:new(Zi||Nn),string:new Tn}},Pn.prototype.delete=function(n){return n=we(this,n).delete(n),this.size-=n?1:0,n},Pn.prototype.get=function(n){return we(this,n).get(n);
+},Pn.prototype.has=function(n){return we(this,n).has(n)},Pn.prototype.set=function(n,t){var r=we(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},qn.prototype.add=qn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},qn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.clear=function(){this.__data__=new Nn,this.size=0},Vn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Vn.prototype.get=function(n){
+return this.__data__.get(n)},Vn.prototype.has=function(n){return this.__data__.has(n)},Vn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Nn){var e=r.__data__;if(!Zi||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Pn(e)}return r.set(n,t),this.size=r.size,this};var oo=Zr(Et),fo=Zr(Ot,true),co=qr(),ao=qr(true),lo=Hi?function(n,t){return Hi.set(n,t),n}:Nu,so=Ei?function(n,t){return Ei(n,"toString",{configurable:true,enumerable:false,value:Fu(t),writable:true})}:Nu,ho=Oi||function(n){
+return Zn.clearTimeout(n)},po=Vi&&1/D(new Vi([,-0]))[1]==N?function(n){return new Vi(n)}:qu,_o=Hi?function(n){return Hi.get(n)}:qu,vo=Wi?function(n){return null==n?[]:(n=ni(n),f(Wi(n),function(t){return ji.call(n,t)}))}:Ku,go=Wi?function(n){for(var t=[];n;)s(t,vo(n)),n=bi(n);return t}:Ku,yo=zt;(Pi&&"[object DataView]"!=yo(new Pi(new ArrayBuffer(1)))||Zi&&"[object Map]"!=yo(new Zi)||qi&&"[object Promise]"!=yo(qi.resolve())||Vi&&"[object Set]"!=yo(new Vi)||Ki&&"[object WeakMap]"!=yo(new Ki))&&(yo=function(n){
+var t=zt(n);if(n=(n="[object Object]"==t?n.constructor:F)?Fe(n):"")switch(n){case Yi:return"[object DataView]";case Qi:return"[object Map]";case Xi:return"[object Promise]";case no:return"[object Set]";case to:return"[object WeakMap]"}return t});var bo=oi?gu:Gu,xo=Me(lo),jo=Ii||function(n,t){return Zn.setTimeout(n,t)},wo=Me(so),mo=function(n){n=lu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return en.test(n)&&t.push(""),n.replace(un,function(n,r,e,u){
+t.push(e?u.replace(vn,"$1"):r||n)}),t}),Ao=lr(function(n,t){return _u(n)?jt(n,kt(t,1,_u,true)):[]}),ko=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),je(r,2)):[]}),Eo=lr(function(n,t){var r=Ge(t);return _u(r)&&(r=F),_u(n)?jt(n,kt(t,1,_u,true),F,r):[]}),Oo=lr(function(n){var t=l(n,Sr);return t.length&&t[0]===n[0]?Ut(t):[]}),So=lr(function(n){var t=Ge(n),r=l(n,Sr);return t===Ge(r)?t=F:r.pop(),r.length&&r[0]===n[0]?Ut(r,je(t,2)):[]}),Io=lr(function(n){var t=Ge(n),r=l(n,Sr);return(t=typeof t=="function"?t:F)&&r.pop(),
+r.length&&r[0]===n[0]?Ut(r,F,t):[]}),Ro=lr(He),zo=ge(function(n,t){var r=null==n?0:n.length,e=vt(n,t);return fr(n,l(t,function(n){return Re(n,r)?+n:n}).sort(Ur)),e}),Wo=lr(function(n){return wr(kt(n,1,_u,true))}),Bo=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),wr(kt(n,1,_u,true),je(t,2))}),Lo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return wr(kt(n,1,_u,true),F,t)}),Uo=lr(function(n,t){return _u(n)?jt(n,t):[]}),Co=lr(function(n){return Er(f(n,_u))}),Do=lr(function(n){var t=Ge(n);return _u(t)&&(t=F),
+Er(f(n,_u),je(t,2))}),Mo=lr(function(n){var t=Ge(n),t=typeof t=="function"?t:F;return Er(f(n,_u),F,t)}),To=lr(Ye),$o=lr(function(n){var t=n.length,t=1<t?n[t-1]:F,t=typeof t=="function"?(n.pop(),t):F;return Qe(n,t)}),Fo=ge(function(n){function t(t){return vt(t,n)}var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return!(1<r||this.__actions__.length)&&u instanceof Mn&&Re(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(F),
+n})):this.thru(t)}),No=Nr(function(n,t,r){ci.call(n,r)?++n[r]:_t(n,r,1)}),Po=Yr(Ze),Zo=Yr(qe),qo=Nr(function(n,t,r){ci.call(n,r)?n[r].push(t):_t(n,r,[t])}),Vo=lr(function(n,t,e){var u=-1,i=typeof t=="function",o=pu(n)?Hu(n.length):[];return oo(n,function(n){o[++u]=i?r(t,n,e):Dt(n,t,e)}),o}),Ko=Nr(function(n,t,r){_t(n,r,t)}),Go=Nr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Ho=lr(function(n,t){if(null==n)return[];var r=t.length;return 1<r&&ze(n,t[0],t[1])?t=[]:2<r&&ze(t[0],t[1],t[2])&&(t=[t[0]]),
+rr(n,kt(t,1),[])}),Jo=Si||function(){return Zn.Date.now()},Yo=lr(function(n,t,r){var e=1;if(r.length)var u=C(r,xe(Yo)),e=32|e;return le(n,e,t,r,u)}),Qo=lr(function(n,t,r){var e=3;if(r.length)var u=C(r,xe(Qo)),e=32|e;return le(t,e,n,r,u)}),Xo=lr(function(n,t){return xt(n,1,t)}),nf=lr(function(n,t,r){return xt(n,Iu(t)||0,r)});lu.Cache=Pn;var tf=lr(function(n,t){t=1==t.length&&af(t[0])?l(t[0],S(je())):l(kt(t,1),S(je()));var e=t.length;return lr(function(u){for(var i=-1,o=Mi(u.length,e);++i<o;)u[i]=t[i].call(this,u[i]);
+return r(n,this,u)})}),rf=lr(function(n,t){return le(n,32,F,t,C(t,xe(rf)))}),ef=lr(function(n,t){return le(n,64,F,t,C(t,xe(ef)))}),uf=ge(function(n,t){return le(n,256,F,F,F,t)}),of=oe(Wt),ff=oe(function(n,t){return n>=t}),cf=Mt(function(){return arguments}())?Mt:function(n){return xu(n)&&ci.call(n,"callee")&&!ji.call(n,"callee")},af=Hu.isArray,lf=Hn?S(Hn):Tt,sf=Bi||Gu,hf=Jn?S(Jn):$t,pf=Yn?S(Yn):Nt,_f=Qn?S(Qn):qt,vf=Xn?S(Xn):Vt,gf=nt?S(nt):Kt,df=oe(Jt),yf=oe(function(n,t){return n<=t}),bf=Pr(function(n,t){
+if(Le(t)||pu(t))Tr(t,Lu(t),n);else for(var r in t)ci.call(t,r)&&at(n,r,t[r])}),xf=Pr(function(n,t){Tr(t,Uu(t),n)}),jf=Pr(function(n,t,r,e){Tr(t,Uu(t),n,e)}),wf=Pr(function(n,t,r,e){Tr(t,Lu(t),n,e)}),mf=ge(vt),Af=lr(function(n){return n.push(F,se),r(jf,F,n)}),kf=lr(function(n){return n.push(F,he),r(Rf,F,n)}),Ef=ne(function(n,t,r){n[t]=r},Fu(Nu)),Of=ne(function(n,t,r){ci.call(n,t)?n[t].push(r):n[t]=[r]},je),Sf=lr(Dt),If=Pr(function(n,t,r){nr(n,t,r)}),Rf=Pr(function(n,t,r,e){nr(n,t,r,e)}),zf=ge(function(n,t){
+var r={};if(null==n)return r;var e=false;t=l(t,function(t){return t=Rr(t,n),e||(e=1<t.length),t}),Tr(n,ye(n),r),e&&(r=dt(r,7,pe));for(var u=t.length;u--;)mr(r,t[u]);return r}),Wf=ge(function(n,t){return null==n?{}:er(n,t)}),Bf=ae(Lu),Lf=ae(Uu),Uf=Gr(function(n,t,r){return t=t.toLowerCase(),n+(r?Mu(t):t)}),Cf=Gr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Df=Gr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Mf=Kr("toLowerCase"),Tf=Gr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase();
+}),$f=Gr(function(n,t,r){return n+(r?" ":"")+Nf(t)}),Ff=Gr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Nf=Kr("toUpperCase"),Pf=lr(function(n,t){try{return r(n,F,t)}catch(n){return vu(n)?n:new Yu(n)}}),Zf=ge(function(n,t){return u(t,function(t){t=$e(t),_t(n,t,Yo(n[t],n))}),n}),qf=Qr(),Vf=Qr(true),Kf=lr(function(n,t){return function(r){return Dt(r,n,t)}}),Gf=lr(function(n,t){return function(r){return Dt(n,r,t)}}),Hf=re(l),Jf=re(o),Yf=re(_),Qf=ie(),Xf=ie(true),nc=te(function(n,t){return n+t},0),tc=ce("ceil"),rc=te(function(n,t){
+return n/t},1),ec=ce("floor"),uc=te(function(n,t){return n*t},1),ic=ce("round"),oc=te(function(n,t){return n-t},0);return On.after=function(n,t){if(typeof t!="function")throw new ei("Expected a function");return n=Ou(n),function(){if(1>--n)return t.apply(this,arguments)}},On.ary=iu,On.assign=bf,On.assignIn=xf,On.assignInWith=jf,On.assignWith=wf,On.at=mf,On.before=ou,On.bind=Yo,On.bindAll=Zf,On.bindKey=Qo,On.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return af(n)?n:[n]},
+On.chain=Xe,On.chunk=function(n,t,r){if(t=(r?ze(n,t,r):t===F)?1:Di(Ou(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Hu(Ri(r/t));e<r;)i[u++]=vr(n,e,e+=t);return i},On.compact=function(n){for(var t=-1,r=null==n?0:n.length,e=0,u=[];++t<r;){var i=n[t];i&&(u[e++]=i)}return u},On.concat=function(){var n=arguments.length;if(!n)return[];for(var t=Hu(n-1),r=arguments[0];n--;)t[n-1]=arguments[n];return s(af(r)?Mr(r):[r],kt(t,1))},On.cond=function(n){var t=null==n?0:n.length,e=je();return n=t?l(n,function(n){
+if("function"!=typeof n[1])throw new ei("Expected a function");return[e(n[0]),n[1]]}):[],lr(function(e){for(var u=-1;++u<t;){var i=n[u];if(r(i[0],this,e))return r(i[1],this,e)}})},On.conforms=function(n){return yt(dt(n,1))},On.constant=Fu,On.countBy=No,On.create=function(n,t){var r=io(n);return null==t?r:ht(r,t)},On.curry=fu,On.curryRight=cu,On.debounce=au,On.defaults=Af,On.defaultsDeep=kf,On.defer=Xo,On.delay=nf,On.difference=Ao,On.differenceBy=ko,On.differenceWith=Eo,On.drop=function(n,t,r){var e=null==n?0:n.length;
+return e?(t=r||t===F?1:Ou(t),vr(n,0>t?0:t,e)):[]},On.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0,0>t?0:t)):[]},On.dropRightWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true,true):[]},On.dropWhile=function(n,t){return n&&n.length?Ar(n,je(t,3),true):[]},On.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&ze(n,t,r)&&(r=0,e=u),u=n.length,r=Ou(r),0>r&&(r=-r>u?0:u+r),e=e===F||e>u?u:Ou(e),0>e&&(e+=u),e=r>e?0:Su(e);r<e;)n[r++]=t;
+return n},On.filter=function(n,t){return(af(n)?f:At)(n,je(t,3))},On.flatMap=function(n,t){return kt(uu(n,t),1)},On.flatMapDeep=function(n,t){return kt(uu(n,t),N)},On.flatMapDepth=function(n,t,r){return r=r===F?1:Ou(r),kt(uu(n,t),r)},On.flatten=Ve,On.flattenDeep=function(n){return(null==n?0:n.length)?kt(n,N):[]},On.flattenDepth=function(n,t){return null!=n&&n.length?(t=t===F?1:Ou(t),kt(n,t)):[]},On.flip=function(n){return le(n,512)},On.flow=qf,On.flowRight=Vf,On.fromPairs=function(n){for(var t=-1,r=null==n?0:n.length,e={};++t<r;){
+var u=n[t];e[u[0]]=u[1]}return e},On.functions=function(n){return null==n?[]:St(n,Lu(n))},On.functionsIn=function(n){return null==n?[]:St(n,Uu(n))},On.groupBy=qo,On.initial=function(n){return(null==n?0:n.length)?vr(n,0,-1):[]},On.intersection=Oo,On.intersectionBy=So,On.intersectionWith=Io,On.invert=Ef,On.invertBy=Of,On.invokeMap=Vo,On.iteratee=Pu,On.keyBy=Ko,On.keys=Lu,On.keysIn=Uu,On.map=uu,On.mapKeys=function(n,t){var r={};return t=je(t,3),Et(n,function(n,e,u){_t(r,t(n,e,u),n)}),r},On.mapValues=function(n,t){
+var r={};return t=je(t,3),Et(n,function(n,e,u){_t(r,e,t(n,e,u))}),r},On.matches=function(n){return Qt(dt(n,1))},On.matchesProperty=function(n,t){return Xt(n,dt(t,1))},On.memoize=lu,On.merge=If,On.mergeWith=Rf,On.method=Kf,On.methodOf=Gf,On.mixin=Zu,On.negate=su,On.nthArg=function(n){return n=Ou(n),lr(function(t){return tr(t,n)})},On.omit=zf,On.omitBy=function(n,t){return Cu(n,su(je(t)))},On.once=function(n){return ou(2,n)},On.orderBy=function(n,t,r,e){return null==n?[]:(af(t)||(t=null==t?[]:[t]),
+r=e?F:r,af(r)||(r=null==r?[]:[r]),rr(n,t,r))},On.over=Hf,On.overArgs=tf,On.overEvery=Jf,On.overSome=Yf,On.partial=rf,On.partialRight=ef,On.partition=Go,On.pick=Wf,On.pickBy=Cu,On.property=Vu,On.propertyOf=function(n){return function(t){return null==n?F:It(n,t)}},On.pull=Ro,On.pullAll=He,On.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,je(r,2)):n},On.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?or(n,t,F,r):n},On.pullAt=zo,On.range=Qf,On.rangeRight=Xf,On.rearg=uf,On.reject=function(n,t){
+return(af(n)?f:At)(n,su(je(t,3)))},On.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],i=n.length;for(t=je(t,3);++e<i;){var o=n[e];t(o,e,n)&&(r.push(o),u.push(e))}return fr(n,u),r},On.rest=function(n,t){if(typeof n!="function")throw new ei("Expected a function");return t=t===F?t:Ou(t),lr(n,t)},On.reverse=Je,On.sampleSize=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),(af(n)?ot:hr)(n,t)},On.set=function(n,t,r){return null==n?n:pr(n,t,r)},On.setWith=function(n,t,r,e){return e=typeof e=="function"?e:F,
+null==n?n:pr(n,t,r,e)},On.shuffle=function(n){return(af(n)?ft:_r)(n)},On.slice=function(n,t,r){var e=null==n?0:n.length;return e?(r&&typeof r!="number"&&ze(n,t,r)?(t=0,r=e):(t=null==t?0:Ou(t),r=r===F?e:Ou(r)),vr(n,t,r)):[]},On.sortBy=Ho,On.sortedUniq=function(n){return n&&n.length?br(n):[]},On.sortedUniqBy=function(n,t){return n&&n.length?br(n,je(t,2)):[]},On.split=function(n,t,r){return r&&typeof r!="number"&&ze(n,t,r)&&(t=r=F),r=r===F?4294967295:r>>>0,r?(n=zu(n))&&(typeof t=="string"||null!=t&&!_f(t))&&(t=jr(t),
+!t&&Bn.test(n))?zr($(n),0,r):n.split(t,r):[]},On.spread=function(n,t){if(typeof n!="function")throw new ei("Expected a function");return t=null==t?0:Di(Ou(t),0),lr(function(e){var u=e[t];return e=zr(e,0,t),u&&s(e,u),r(n,this,e)})},On.tail=function(n){var t=null==n?0:n.length;return t?vr(n,1,t):[]},On.take=function(n,t,r){return n&&n.length?(t=r||t===F?1:Ou(t),vr(n,0,0>t?0:t)):[]},On.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===F?1:Ou(t),t=e-t,vr(n,0>t?0:t,e)):[]},On.takeRightWhile=function(n,t){
+return n&&n.length?Ar(n,je(t,3),false,true):[]},On.takeWhile=function(n,t){return n&&n.length?Ar(n,je(t,3)):[]},On.tap=function(n,t){return t(n),n},On.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ei("Expected a function");return bu(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),au(n,t,{leading:e,maxWait:t,trailing:u})},On.thru=nu,On.toArray=ku,On.toPairs=Bf,On.toPairsIn=Lf,On.toPath=function(n){return af(n)?l(n,$e):Au(n)?[n]:Mr(mo(zu(n)))},On.toPlainObject=Ru,
+On.transform=function(n,t,r){var e=af(n),i=e||sf(n)||gf(n);if(t=je(t,4),null==r){var o=n&&n.constructor;r=i?e?new o:[]:bu(n)&&gu(o)?io(bi(n)):{}}return(i?u:Et)(n,function(n,e,u){return t(r,n,e,u)}),r},On.unary=function(n){return iu(n,1)},On.union=Wo,On.unionBy=Bo,On.unionWith=Lo,On.uniq=function(n){return n&&n.length?wr(n):[]},On.uniqBy=function(n,t){return n&&n.length?wr(n,je(t,2)):[]},On.uniqWith=function(n,t){return t=typeof t=="function"?t:F,n&&n.length?wr(n,F,t):[]},On.unset=function(n,t){return null==n||mr(n,t);
+},On.unzip=Ye,On.unzipWith=Qe,On.update=function(n,t,r){return null==n?n:pr(n,t,Ir(r)(It(n,t)),void 0)},On.updateWith=function(n,t,r,e){return e=typeof e=="function"?e:F,null!=n&&(n=pr(n,t,Ir(r)(It(n,t)),e)),n},On.values=Du,On.valuesIn=function(n){return null==n?[]:I(n,Uu(n))},On.without=Uo,On.words=$u,On.wrap=function(n,t){return rf(Ir(t),n)},On.xor=Co,On.xorBy=Do,On.xorWith=Mo,On.zip=To,On.zipObject=function(n,t){return Or(n||[],t||[],at)},On.zipObjectDeep=function(n,t){return Or(n||[],t||[],pr);
+},On.zipWith=$o,On.entries=Bf,On.entriesIn=Lf,On.extend=xf,On.extendWith=jf,Zu(On,On),On.add=nc,On.attempt=Pf,On.camelCase=Uf,On.capitalize=Mu,On.ceil=tc,On.clamp=function(n,t,r){return r===F&&(r=t,t=F),r!==F&&(r=Iu(r),r=r===r?r:0),t!==F&&(t=Iu(t),t=t===t?t:0),gt(Iu(n),t,r)},On.clone=function(n){return dt(n,4)},On.cloneDeep=function(n){return dt(n,5)},On.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,5,t)},On.cloneWith=function(n,t){return t=typeof t=="function"?t:F,dt(n,4,t)},
+On.conformsTo=function(n,t){return null==t||bt(n,t,Lu(t))},On.deburr=Tu,On.defaultTo=function(n,t){return null==n||n!==n?t:n},On.divide=rc,On.endsWith=function(n,t,r){n=zu(n),t=jr(t);var e=n.length,e=r=r===F?e:gt(Ou(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},On.eq=hu,On.escape=function(n){return(n=zu(n))&&Y.test(n)?n.replace(H,et):n},On.escapeRegExp=function(n){return(n=zu(n))&&fn.test(n)?n.replace(on,"\\$&"):n},On.every=function(n,t,r){var e=af(n)?o:wt;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3));
+},On.find=Po,On.findIndex=Ze,On.findKey=function(n,t){return v(n,je(t,3),Et)},On.findLast=Zo,On.findLastIndex=qe,On.findLastKey=function(n,t){return v(n,je(t,3),Ot)},On.floor=ec,On.forEach=ru,On.forEachRight=eu,On.forIn=function(n,t){return null==n?n:co(n,je(t,3),Uu)},On.forInRight=function(n,t){return null==n?n:ao(n,je(t,3),Uu)},On.forOwn=function(n,t){return n&&Et(n,je(t,3))},On.forOwnRight=function(n,t){return n&&Ot(n,je(t,3))},On.get=Wu,On.gt=of,On.gte=ff,On.has=function(n,t){return null!=n&&ke(n,t,Bt);
+},On.hasIn=Bu,On.head=Ke,On.identity=Nu,On.includes=function(n,t,r,e){return n=pu(n)?n:Du(n),r=r&&!e?Ou(r):0,e=n.length,0>r&&(r=Di(e+r,0)),mu(n)?r<=e&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},On.indexOf=function(n,t,r){var e=null==n?0:n.length;return e?(r=null==r?0:Ou(r),0>r&&(r=Di(e+r,0)),d(n,t,r)):-1},On.inRange=function(n,t,r){return t=Eu(t),r===F?(r=t,t=0):r=Eu(r),n=Iu(n),n>=Mi(t,r)&&n<Di(t,r)},On.invoke=Sf,On.isArguments=cf,On.isArray=af,On.isArrayBuffer=lf,On.isArrayLike=pu,On.isArrayLikeObject=_u,
+On.isBoolean=function(n){return true===n||false===n||xu(n)&&"[object Boolean]"==zt(n)},On.isBuffer=sf,On.isDate=hf,On.isElement=function(n){return xu(n)&&1===n.nodeType&&!wu(n)},On.isEmpty=function(n){if(null==n)return true;if(pu(n)&&(af(n)||typeof n=="string"||typeof n.splice=="function"||sf(n)||gf(n)||cf(n)))return!n.length;var t=yo(n);if("[object Map]"==t||"[object Set]"==t)return!n.size;if(Le(n))return!Ht(n).length;for(var r in n)if(ci.call(n,r))return false;return true},On.isEqual=function(n,t){return Ft(n,t);
+},On.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:F)?r(n,t):F;return e===F?Ft(n,t,F,r):!!e},On.isError=vu,On.isFinite=function(n){return typeof n=="number"&&Li(n)},On.isFunction=gu,On.isInteger=du,On.isLength=yu,On.isMap=pf,On.isMatch=function(n,t){return n===t||Pt(n,t,me(t))},On.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:F,Pt(n,t,me(t),r)},On.isNaN=function(n){return ju(n)&&n!=+n},On.isNative=function(n){if(bo(n))throw new Yu("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");
+return Zt(n)},On.isNil=function(n){return null==n},On.isNull=function(n){return null===n},On.isNumber=ju,On.isObject=bu,On.isObjectLike=xu,On.isPlainObject=wu,On.isRegExp=_f,On.isSafeInteger=function(n){return du(n)&&-9007199254740991<=n&&9007199254740991>=n},On.isSet=vf,On.isString=mu,On.isSymbol=Au,On.isTypedArray=gf,On.isUndefined=function(n){return n===F},On.isWeakMap=function(n){return xu(n)&&"[object WeakMap]"==yo(n)},On.isWeakSet=function(n){return xu(n)&&"[object WeakSet]"==zt(n)},On.join=function(n,t){
+return null==n?"":Ui.call(n,t)},On.kebabCase=Cf,On.last=Ge,On.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==F&&(u=Ou(r),u=0>u?Di(e+u,0):Mi(u,e-1)),t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=g(n,b,u,true);return n},On.lowerCase=Df,On.lowerFirst=Mf,On.lt=df,On.lte=yf,On.max=function(n){return n&&n.length?mt(n,Nu,Wt):F},On.maxBy=function(n,t){return n&&n.length?mt(n,je(t,2),Wt):F},On.mean=function(n){return x(n,Nu)},On.meanBy=function(n,t){return x(n,je(t,2))},On.min=function(n){
+return n&&n.length?mt(n,Nu,Jt):F},On.minBy=function(n,t){return n&&n.length?mt(n,je(t,2),Jt):F},On.stubArray=Ku,On.stubFalse=Gu,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return true},On.multiply=uc,On.nth=function(n,t){return n&&n.length?tr(n,Ou(t)):F},On.noConflict=function(){return Zn._===this&&(Zn._=pi),this},On.noop=qu,On.now=Jo,On.pad=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return!t||e>=t?n:(t=(t-e)/2,ee(zi(t),r)+n+ee(Ri(t),r))},On.padEnd=function(n,t,r){
+n=zu(n);var e=(t=Ou(t))?T(n):0;return t&&e<t?n+ee(t-e,r):n},On.padStart=function(n,t,r){n=zu(n);var e=(t=Ou(t))?T(n):0;return t&&e<t?ee(t-e,r)+n:n},On.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),$i(zu(n).replace(an,""),t||0)},On.random=function(n,t,r){if(r&&typeof r!="boolean"&&ze(n,t,r)&&(t=r=F),r===F&&(typeof t=="boolean"?(r=t,t=F):typeof n=="boolean"&&(r=n,n=F)),n===F&&t===F?(n=0,t=1):(n=Eu(n),t===F?(t=n,n=0):t=Eu(t)),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Fi(),Mi(n+r*(t-n+$n("1e-"+((r+"").length-1))),t)):cr(n,t);
+},On.reduce=function(n,t,r){var e=af(n)?h:m,u=3>arguments.length;return e(n,je(t,4),r,u,oo)},On.reduceRight=function(n,t,r){var e=af(n)?p:m,u=3>arguments.length;return e(n,je(t,4),r,u,fo)},On.repeat=function(n,t,r){return t=(r?ze(n,t,r):t===F)?1:Ou(t),ar(zu(n),t)},On.replace=function(){var n=arguments,t=zu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},On.result=function(n,t,r){t=Rr(t,n);var e=-1,u=t.length;for(u||(u=1,n=F);++e<u;){var i=null==n?F:n[$e(t[e])];i===F&&(e=u,i=r),n=gu(i)?i.call(n):i;
+}return n},On.round=ic,On.runInContext=w,On.sample=function(n){return(af(n)?tt:sr)(n)},On.size=function(n){if(null==n)return 0;if(pu(n))return mu(n)?T(n):n.length;var t=yo(n);return"[object Map]"==t||"[object Set]"==t?n.size:Ht(n).length},On.snakeCase=Tf,On.some=function(n,t,r){var e=af(n)?_:gr;return r&&ze(n,t,r)&&(t=F),e(n,je(t,3))},On.sortedIndex=function(n,t){return dr(n,t)},On.sortedIndexBy=function(n,t,r){return yr(n,t,je(r,2))},On.sortedIndexOf=function(n,t){var r=null==n?0:n.length;if(r){
+var e=dr(n,t);if(e<r&&hu(n[e],t))return e}return-1},On.sortedLastIndex=function(n,t){return dr(n,t,true)},On.sortedLastIndexBy=function(n,t,r){return yr(n,t,je(r,2),true)},On.sortedLastIndexOf=function(n,t){if(null==n?0:n.length){var r=dr(n,t,true)-1;if(hu(n[r],t))return r}return-1},On.startCase=$f,On.startsWith=function(n,t,r){return n=zu(n),r=null==r?0:gt(Ou(r),0,n.length),t=jr(t),n.slice(r,r+t.length)==t},On.subtract=oc,On.sum=function(n){return n&&n.length?k(n,Nu):0},On.sumBy=function(n,t){return n&&n.length?k(n,je(t,2)):0;
+},On.template=function(n,t,r){var e=On.templateSettings;r&&ze(n,t,r)&&(t=F),n=zu(n),t=jf({},t,e,se),r=jf({},t.imports,e.imports,se);var u,i,o=Lu(r),f=I(r,o),c=0;r=t.interpolate||An;var a="__p+='";r=ti((t.escape||An).source+"|"+r.source+"|"+(r===nn?gn:An).source+"|"+(t.evaluate||An).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,o,f,l){return e||(e=o),a+=n.slice(c,l).replace(kn,B),r&&(u=true,a+="'+__e("+r+")+'"),f&&(i=true,a+="';"+f+";\n__p+='"),
+e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(i?a.replace(q,""):a).replace(V,"$1").replace(K,"$1;"),a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=Pf(function(){return Qu(o,l+"return "+a).apply(F,f)}),t.source=a,vu(t))throw t;return t},On.times=function(n,t){if(n=Ou(n),1>n||9007199254740991<n)return[];
+var r=4294967295,e=Mi(n,4294967295);for(t=je(t),n-=4294967295,e=E(e,t);++r<n;)t(r);return e},On.toFinite=Eu,On.toInteger=Ou,On.toLength=Su,On.toLower=function(n){return zu(n).toLowerCase()},On.toNumber=Iu,On.toSafeInteger=function(n){return n?gt(Ou(n),-9007199254740991,9007199254740991):0===n?n:0},On.toString=zu,On.toUpper=function(n){return zu(n).toUpperCase()},On.trim=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(cn,""):n&&(t=jr(t))?(n=$(n),r=$(t),t=z(n,r),r=W(n,r)+1,zr(n,t,r).join("")):n;
+},On.trimEnd=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(ln,""):n&&(t=jr(t))?(n=$(n),t=W(n,$(t))+1,zr(n,0,t).join("")):n},On.trimStart=function(n,t,r){return(n=zu(n))&&(r||t===F)?n.replace(an,""):n&&(t=jr(t))?(n=$(n),t=z(n,$(t)),zr(n,t).join("")):n},On.truncate=function(n,t){var r=30,e="...";if(bu(t))var u="separator"in t?t.separator:u,r="length"in t?Ou(t.length):r,e="omission"in t?jr(t.omission):e;n=zu(n);var i=n.length;if(Bn.test(n))var o=$(n),i=o.length;if(r>=i)return n;if(i=r-T(e),1>i)return e;
+if(r=o?zr(o,0,i).join(""):n.slice(0,i),u===F)return r+e;if(o&&(i+=r.length-i),_f(u)){if(n.slice(i).search(u)){var f=r;for(u.global||(u=ti(u.source,zu(dn.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===F?i:c)}}else n.indexOf(jr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},On.unescape=function(n){return(n=zu(n))&&J.test(n)?n.replace(G,ut):n},On.uniqueId=function(n){var t=++ai;return zu(n)+t},On.upperCase=Ff,On.upperFirst=Nf,On.each=ru,On.eachRight=eu,On.first=Ke,
+Zu(On,function(){var n={};return Et(On,function(t,r){ci.call(On.prototype,r)||(n[r]=t)}),n}(),{chain:false}),On.VERSION="4.17.4",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){On[n].placeholder=On}),u(["drop","take"],function(n,t){Mn.prototype[n]=function(r){r=r===F?1:Di(Ou(r),0);var e=this.__filtered__&&!t?new Mn(this):this.clone();return e.__filtered__?e.__takeCount__=Mi(r,e.__takeCount__):e.__views__.push({size:Mi(r,4294967295),type:n+(0>e.__dir__?"Right":"")}),e},Mn.prototype[n+"Right"]=function(t){
+return this.reverse()[n](t).reverse()}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;Mn.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:je(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");Mn.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Mn.prototype[n]=function(){return this.__filtered__?new Mn(this):this[r](1);
+}}),Mn.prototype.compact=function(){return this.filter(Nu)},Mn.prototype.find=function(n){return this.filter(n).head()},Mn.prototype.findLast=function(n){return this.reverse().find(n)},Mn.prototype.invokeMap=lr(function(n,t){return typeof n=="function"?new Mn(this):this.map(function(r){return Dt(r,n,t)})}),Mn.prototype.reject=function(n){return this.filter(su(je(n)))},Mn.prototype.slice=function(n,t){n=Ou(n);var r=this;return r.__filtered__&&(0<n||0>t)?new Mn(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),
+t!==F&&(t=Ou(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Mn.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Mn.prototype.toArray=function(){return this.take(4294967295)},Et(Mn.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=On[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(On.prototype[t]=function(){function t(n){return n=u.apply(On,s([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Mn,a=f[0],l=c||af(o);
+l&&r&&typeof a=="function"&&1!=a.length&&(c=l=false);var h=this.__chain__,p=!!this.__actions__.length,a=i&&!h,c=c&&!p;return!i&&l?(o=c?o:new Mn(this),o=n.apply(o,f),o.__actions__.push({func:nu,args:[t],thisArg:F}),new zn(o,h)):a&&c?n.apply(this,f):(o=this.thru(t),a?e?o.value()[0]:o.value():o)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=ui[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);On.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){
+var u=this.value();return t.apply(af(u)?u:[],n)}return this[r](function(r){return t.apply(af(r)?r:[],n)})}}),Et(Mn.prototype,function(n,t){var r=On[t];if(r){var e=r.name+"";(Ji[e]||(Ji[e]=[])).push({name:t,func:r})}}),Ji[Xr(F,2).name]=[{name:"wrapper",func:F}],Mn.prototype.clone=function(){var n=new Mn(this.__wrapped__);return n.__actions__=Mr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Mr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Mr(this.__views__),
+n},Mn.prototype.reverse=function(){if(this.__filtered__){var n=new Mn(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Mn.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=af(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c<a;){var l=o[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=Mi(n,f+s);break;case"takeRight":f=Di(f,n-s)}}if(n={start:f,end:n},o=n.start,f=n.end,n=f-o,
+o=u?f:o-1,f=this.__iteratees__,c=f.length,a=0,l=Mi(n,this.__takeCount__),!e||!u&&i==n&&l==n)return kr(t,this.__actions__);e=[];n:for(;n--&&a<l;){for(o+=r,u=-1,i=t[o];++u<c;){var h=f[u],s=h.type,h=(0,h.iteratee)(i);if(2==s)i=h;else if(!h){if(1==s)continue n;break n}}e[a++]=i}return e},On.prototype.at=Fo,On.prototype.chain=function(){return Xe(this)},On.prototype.commit=function(){return new zn(this.value(),this.__chain__)},On.prototype.next=function(){this.__values__===F&&(this.__values__=ku(this.value()));
+var n=this.__index__>=this.__values__.length;return{done:n,value:n?F:this.__values__[this.__index__++]}},On.prototype.plant=function(n){for(var t,r=this;r instanceof Sn;){var e=Pe(r);e.__index__=0,e.__values__=F,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},On.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Mn?(this.__actions__.length&&(n=new Mn(this)),n=n.reverse(),n.__actions__.push({func:nu,args:[Je],thisArg:F}),new zn(n,this.__chain__)):this.thru(Je);
+},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return kr(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Ai&&(On.prototype[Ai]=tu),On}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Zn._=it, define(function(){return it})):Vn?((Vn.exports=it)._=it,qn._=it):Zn._=it}).call(this); \ No newline at end of file
diff --git a/tools/eslint/node_modules/lodash/matches.js b/tools/eslint/node_modules/lodash/matches.js
index d34e98e9bb..11145db37f 100644
--- a/tools/eslint/node_modules/lodash/matches.js
+++ b/tools/eslint/node_modules/lodash/matches.js
@@ -1,6 +1,9 @@
var baseClone = require('./_baseClone'),
baseMatches = require('./_baseMatches');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a function that performs a partial deep comparison between a given
* object and `source`, returning `true` if the given object has equivalent
@@ -30,7 +33,7 @@ var baseClone = require('./_baseClone'),
* // => [{ 'a': 4, 'b': 5, 'c': 6 }]
*/
function matches(source) {
- return baseMatches(baseClone(source, true));
+ return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
}
module.exports = matches;
diff --git a/tools/eslint/node_modules/lodash/matchesProperty.js b/tools/eslint/node_modules/lodash/matchesProperty.js
index ff8f2dffcd..cc062ac993 100644
--- a/tools/eslint/node_modules/lodash/matchesProperty.js
+++ b/tools/eslint/node_modules/lodash/matchesProperty.js
@@ -1,6 +1,9 @@
var baseClone = require('./_baseClone'),
baseMatchesProperty = require('./_baseMatchesProperty');
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1;
+
/**
* Creates a function that performs a partial deep comparison between the
* value at `path` of a given object to `srcValue`, returning `true` if the
@@ -28,7 +31,7 @@ var baseClone = require('./_baseClone'),
* // => { 'a': 4, 'b': 5, 'c': 6 }
*/
function matchesProperty(path, srcValue) {
- return baseMatchesProperty(path, baseClone(srcValue, true));
+ return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
}
module.exports = matchesProperty;
diff --git a/tools/eslint/node_modules/lodash/memoize.js b/tools/eslint/node_modules/lodash/memoize.js
index 8351cb3926..d6035af172 100644
--- a/tools/eslint/node_modules/lodash/memoize.js
+++ b/tools/eslint/node_modules/lodash/memoize.js
@@ -14,7 +14,7 @@ var FUNC_ERROR_TEXT = 'Expected a function';
* function. Its creation may be customized by replacing the `_.memoize.Cache`
* constructor with one whose instances implement the
* [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
- * method interface of `delete`, `get`, `has`, and `set`.
+ * method interface of `clear`, `delete`, `get`, `has`, and `set`.
*
* @static
* @memberOf _
@@ -48,7 +48,7 @@ var FUNC_ERROR_TEXT = 'Expected a function';
* _.memoize.Cache = WeakMap;
*/
function memoize(func, resolver) {
- if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {
+ if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
throw new TypeError(FUNC_ERROR_TEXT);
}
var memoized = function() {
diff --git a/tools/eslint/node_modules/lodash/omit.js b/tools/eslint/node_modules/lodash/omit.js
index 38f9190920..97f5f546f8 100644
--- a/tools/eslint/node_modules/lodash/omit.js
+++ b/tools/eslint/node_modules/lodash/omit.js
@@ -1,21 +1,29 @@
var arrayMap = require('./_arrayMap'),
- baseDifference = require('./_baseDifference'),
- basePick = require('./_basePick'),
+ baseClone = require('./_baseClone'),
+ baseUnset = require('./_baseUnset'),
+ castPath = require('./_castPath'),
+ copyObject = require('./_copyObject'),
+ customOmitClone = require('./_customOmitClone'),
flatRest = require('./_flatRest'),
- getAllKeysIn = require('./_getAllKeysIn'),
- toKey = require('./_toKey');
+ getAllKeysIn = require('./_getAllKeysIn');
+
+/** Used to compose bitmasks for cloning. */
+var CLONE_DEEP_FLAG = 1,
+ CLONE_FLAT_FLAG = 2,
+ CLONE_SYMBOLS_FLAG = 4;
/**
* The opposite of `_.pick`; this method creates an object composed of the
- * own and inherited enumerable string keyed properties of `object` that are
- * not omitted.
+ * own and inherited enumerable property paths of `object` that are not omitted.
+ *
+ * **Note:** This method is considerably slower than `_.pick`.
*
* @static
* @since 0.1.0
* @memberOf _
* @category Object
* @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property identifiers to omit.
+ * @param {...(string|string[])} [paths] The property paths to omit.
* @returns {Object} Returns the new object.
* @example
*
@@ -24,12 +32,26 @@ var arrayMap = require('./_arrayMap'),
* _.omit(object, ['a', 'c']);
* // => { 'b': '2' }
*/
-var omit = flatRest(function(object, props) {
+var omit = flatRest(function(object, paths) {
+ var result = {};
if (object == null) {
- return {};
+ return result;
+ }
+ var isDeep = false;
+ paths = arrayMap(paths, function(path) {
+ path = castPath(path, object);
+ isDeep || (isDeep = path.length > 1);
+ return path;
+ });
+ copyObject(object, getAllKeysIn(object), result);
+ if (isDeep) {
+ result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
+ }
+ var length = paths.length;
+ while (length--) {
+ baseUnset(result, paths[length]);
}
- props = arrayMap(props, toKey);
- return basePick(object, baseDifference(getAllKeysIn(object), props));
+ return result;
});
module.exports = omit;
diff --git a/tools/eslint/node_modules/lodash/package.json b/tools/eslint/node_modules/lodash/package.json
index 16cbf860e7..4a21eb1c3c 100644
--- a/tools/eslint/node_modules/lodash/package.json
+++ b/tools/eslint/node_modules/lodash/package.json
@@ -14,19 +14,19 @@
]
],
"_from": "lodash@>=4.0.0 <5.0.0",
- "_id": "lodash@4.16.4",
+ "_id": "lodash@4.17.4",
"_inCache": true,
"_location": "/lodash",
- "_nodeVersion": "4.4.7",
+ "_nodeVersion": "7.2.1",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/lodash-4.16.4.tgz_1475766806071_0.6463651182129979"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/lodash-4.17.4.tgz_1483223634314_0.5332164366263896"
},
"_npmUser": {
"name": "jdalton",
"email": "john.david.dalton@gmail.com"
},
- "_npmVersion": "2.15.10",
+ "_npmVersion": "2.15.11",
"_phantomChildren": {},
"_requested": {
"raw": "lodash@^4.0.0",
@@ -42,8 +42,8 @@
"/inquirer",
"/table"
],
- "_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.4.tgz",
- "_shasum": "01ce306b9bad1319f2a5528674f88297aeb70127",
+ "_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "_shasum": "78203a4d1c328ae1d86dca6460e369b57f4055ae",
"_shrinkwrap": null,
"_spec": "lodash@^4.0.0",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
@@ -62,11 +62,6 @@
"url": "http://allyoucanleet.com/"
},
{
- "name": "Blaine Bublitz",
- "email": "blaine.bublitz@gmail.com",
- "url": "https://github.com/phated"
- },
- {
"name": "Mathias Bynens",
"email": "mathias@qiwi.be",
"url": "https://mathiasbynens.be/"
@@ -77,8 +72,8 @@
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "01ce306b9bad1319f2a5528674f88297aeb70127",
- "tarball": "https://registry.npmjs.org/lodash/-/lodash-4.16.4.tgz"
+ "shasum": "78203a4d1c328ae1d86dca6460e369b57f4055ae",
+ "tarball": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
@@ -97,10 +92,6 @@
{
"name": "mathias",
"email": "mathias@qiwi.be"
- },
- {
- "name": "phated",
- "email": "blaine.bublitz@gmail.com"
}
],
"name": "lodash",
@@ -113,5 +104,5 @@
"scripts": {
"test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
},
- "version": "4.16.4"
+ "version": "4.17.4"
}
diff --git a/tools/eslint/node_modules/lodash/partial.js b/tools/eslint/node_modules/lodash/partial.js
index 85d6535533..05fe8d3c8e 100644
--- a/tools/eslint/node_modules/lodash/partial.js
+++ b/tools/eslint/node_modules/lodash/partial.js
@@ -4,7 +4,7 @@ var baseRest = require('./_baseRest'),
replaceHolders = require('./_replaceHolders');
/** Used to compose bitmasks for function metadata. */
-var PARTIAL_FLAG = 32;
+var WRAP_PARTIAL_FLAG = 32;
/**
* Creates a function that invokes `func` with `partials` prepended to the
@@ -41,7 +41,7 @@ var PARTIAL_FLAG = 32;
*/
var partial = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partial));
- return createWrap(func, PARTIAL_FLAG, undefined, partials, holders);
+ return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
});
// Assign default placeholders.
diff --git a/tools/eslint/node_modules/lodash/partialRight.js b/tools/eslint/node_modules/lodash/partialRight.js
index 813aa57741..eee031f6d0 100644
--- a/tools/eslint/node_modules/lodash/partialRight.js
+++ b/tools/eslint/node_modules/lodash/partialRight.js
@@ -4,7 +4,7 @@ var baseRest = require('./_baseRest'),
replaceHolders = require('./_replaceHolders');
/** Used to compose bitmasks for function metadata. */
-var PARTIAL_RIGHT_FLAG = 64;
+var WRAP_PARTIAL_RIGHT_FLAG = 64;
/**
* This method is like `_.partial` except that partially applied arguments
@@ -40,7 +40,7 @@ var PARTIAL_RIGHT_FLAG = 64;
*/
var partialRight = baseRest(function(func, partials) {
var holders = replaceHolders(partials, getHolder(partialRight));
- return createWrap(func, PARTIAL_RIGHT_FLAG, undefined, partials, holders);
+ return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
});
// Assign default placeholders.
diff --git a/tools/eslint/node_modules/lodash/pick.js b/tools/eslint/node_modules/lodash/pick.js
index a631b15195..3160199f0c 100644
--- a/tools/eslint/node_modules/lodash/pick.js
+++ b/tools/eslint/node_modules/lodash/pick.js
@@ -1,7 +1,5 @@
-var arrayMap = require('./_arrayMap'),
- basePick = require('./_basePick'),
- flatRest = require('./_flatRest'),
- toKey = require('./_toKey');
+var basePick = require('./_basePick'),
+ flatRest = require('./_flatRest');
/**
* Creates an object composed of the picked `object` properties.
@@ -11,7 +9,7 @@ var arrayMap = require('./_arrayMap'),
* @memberOf _
* @category Object
* @param {Object} object The source object.
- * @param {...(string|string[])} [props] The property identifiers to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Object} Returns the new object.
* @example
*
@@ -20,8 +18,8 @@ var arrayMap = require('./_arrayMap'),
* _.pick(object, ['a', 'c']);
* // => { 'a': 1, 'c': 3 }
*/
-var pick = flatRest(function(object, props) {
- return object == null ? {} : basePick(object, arrayMap(props, toKey));
+var pick = flatRest(function(object, paths) {
+ return object == null ? {} : basePick(object, paths);
});
module.exports = pick;
diff --git a/tools/eslint/node_modules/lodash/pickBy.js b/tools/eslint/node_modules/lodash/pickBy.js
index 6e9e193ece..ae7c271eac 100644
--- a/tools/eslint/node_modules/lodash/pickBy.js
+++ b/tools/eslint/node_modules/lodash/pickBy.js
@@ -1,4 +1,5 @@
-var baseIteratee = require('./_baseIteratee'),
+var arrayMap = require('./_arrayMap'),
+ baseIteratee = require('./_baseIteratee'),
basePickBy = require('./_basePickBy'),
getAllKeysIn = require('./_getAllKeysIn');
@@ -21,7 +22,16 @@ var baseIteratee = require('./_baseIteratee'),
* // => { 'a': 1, 'c': 3 }
*/
function pickBy(object, predicate) {
- return object == null ? {} : basePickBy(object, getAllKeysIn(object), baseIteratee(predicate));
+ if (object == null) {
+ return {};
+ }
+ var props = arrayMap(getAllKeysIn(object), function(prop) {
+ return [prop];
+ });
+ predicate = baseIteratee(predicate);
+ return basePickBy(object, props, function(value, path) {
+ return predicate(value, path[0]);
+ });
}
module.exports = pickBy;
diff --git a/tools/eslint/node_modules/lodash/pullAllBy.js b/tools/eslint/node_modules/lodash/pullAllBy.js
index dbfe8647d9..74025e8f0e 100644
--- a/tools/eslint/node_modules/lodash/pullAllBy.js
+++ b/tools/eslint/node_modules/lodash/pullAllBy.js
@@ -14,8 +14,7 @@ var baseIteratee = require('./_baseIteratee'),
* @category Array
* @param {Array} array The array to modify.
* @param {Array} values The values to remove.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns `array`.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/pullAt.js b/tools/eslint/node_modules/lodash/pullAt.js
index 7e4e46d7bf..6ed84e064d 100644
--- a/tools/eslint/node_modules/lodash/pullAt.js
+++ b/tools/eslint/node_modules/lodash/pullAt.js
@@ -30,7 +30,7 @@ var arrayMap = require('./_arrayMap'),
* // => ['b', 'd']
*/
var pullAt = flatRest(function(array, indexes) {
- var length = array ? array.length : 0,
+ var length = array == null ? 0 : array.length,
result = baseAt(array, indexes);
basePullAt(array, arrayMap(indexes, function(index) {
diff --git a/tools/eslint/node_modules/lodash/rearg.js b/tools/eslint/node_modules/lodash/rearg.js
index 4df6989b32..a3e1970b8c 100644
--- a/tools/eslint/node_modules/lodash/rearg.js
+++ b/tools/eslint/node_modules/lodash/rearg.js
@@ -2,7 +2,7 @@ var createWrap = require('./_createWrap'),
flatRest = require('./_flatRest');
/** Used to compose bitmasks for function metadata. */
-var REARG_FLAG = 256;
+var WRAP_REARG_FLAG = 256;
/**
* Creates a function that invokes `func` with arguments arranged according
@@ -27,7 +27,7 @@ var REARG_FLAG = 256;
* // => ['a', 'b', 'c']
*/
var rearg = flatRest(function(func, indexes) {
- return createWrap(func, REARG_FLAG, undefined, undefined, undefined, indexes);
+ return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
});
module.exports = rearg;
diff --git a/tools/eslint/node_modules/lodash/remove.js b/tools/eslint/node_modules/lodash/remove.js
index 925d318990..87b1898e35 100644
--- a/tools/eslint/node_modules/lodash/remove.js
+++ b/tools/eslint/node_modules/lodash/remove.js
@@ -14,8 +14,7 @@ var baseIteratee = require('./_baseIteratee'),
* @since 2.0.0
* @category Array
* @param {Array} array The array to modify.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new array of removed elements.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/result.js b/tools/eslint/node_modules/lodash/result.js
index 146eb57ee8..eae12500b4 100644
--- a/tools/eslint/node_modules/lodash/result.js
+++ b/tools/eslint/node_modules/lodash/result.js
@@ -1,6 +1,5 @@
var castPath = require('./_castPath'),
isFunction = require('./isFunction'),
- isKey = require('./_isKey'),
toKey = require('./_toKey');
/**
@@ -33,15 +32,15 @@ var castPath = require('./_castPath'),
* // => 'default'
*/
function result(object, path, defaultValue) {
- path = isKey(path, object) ? [path] : castPath(path);
+ path = castPath(path, object);
var index = -1,
length = path.length;
// Ensure the loop is entered when path is empty.
if (!length) {
- object = undefined;
length = 1;
+ object = undefined;
}
while (++index < length) {
var value = object == null ? undefined : object[toKey(path[index])];
diff --git a/tools/eslint/node_modules/lodash/reverse.js b/tools/eslint/node_modules/lodash/reverse.js
index d56699706c..21764afd66 100644
--- a/tools/eslint/node_modules/lodash/reverse.js
+++ b/tools/eslint/node_modules/lodash/reverse.js
@@ -28,7 +28,7 @@ var nativeReverse = arrayProto.reverse;
* // => [3, 2, 1]
*/
function reverse(array) {
- return array ? nativeReverse.call(array) : array;
+ return array == null ? array : nativeReverse.call(array);
}
module.exports = reverse;
diff --git a/tools/eslint/node_modules/lodash/slice.js b/tools/eslint/node_modules/lodash/slice.js
index ac8cb7546e..f7324426a0 100644
--- a/tools/eslint/node_modules/lodash/slice.js
+++ b/tools/eslint/node_modules/lodash/slice.js
@@ -19,7 +19,7 @@ var baseSlice = require('./_baseSlice'),
* @returns {Array} Returns the slice of `array`.
*/
function slice(array, start, end) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/sortedIndexBy.js b/tools/eslint/node_modules/lodash/sortedIndexBy.js
index a1224e9845..945f23cb0a 100644
--- a/tools/eslint/node_modules/lodash/sortedIndexBy.js
+++ b/tools/eslint/node_modules/lodash/sortedIndexBy.js
@@ -12,8 +12,7 @@ var baseIteratee = require('./_baseIteratee'),
* @category Array
* @param {Array} array The sorted array to inspect.
* @param {*} value The value to evaluate.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {number} Returns the index at which `value` should be inserted
* into `array`.
* @example
diff --git a/tools/eslint/node_modules/lodash/sortedIndexOf.js b/tools/eslint/node_modules/lodash/sortedIndexOf.js
index 731c59f4b7..e2d3b7a3dd 100644
--- a/tools/eslint/node_modules/lodash/sortedIndexOf.js
+++ b/tools/eslint/node_modules/lodash/sortedIndexOf.js
@@ -18,7 +18,7 @@ var baseSortedIndex = require('./_baseSortedIndex'),
* // => 1
*/
function sortedIndexOf(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value);
if (index < length && eq(array[index], value)) {
diff --git a/tools/eslint/node_modules/lodash/sortedLastIndexBy.js b/tools/eslint/node_modules/lodash/sortedLastIndexBy.js
index 94811fb0f1..9225eeb363 100644
--- a/tools/eslint/node_modules/lodash/sortedLastIndexBy.js
+++ b/tools/eslint/node_modules/lodash/sortedLastIndexBy.js
@@ -12,8 +12,7 @@ var baseIteratee = require('./_baseIteratee'),
* @category Array
* @param {Array} array The sorted array to inspect.
* @param {*} value The value to evaluate.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {number} Returns the index at which `value` should be inserted
* into `array`.
* @example
diff --git a/tools/eslint/node_modules/lodash/sortedLastIndexOf.js b/tools/eslint/node_modules/lodash/sortedLastIndexOf.js
index 3635a7f984..18bc4c5d52 100644
--- a/tools/eslint/node_modules/lodash/sortedLastIndexOf.js
+++ b/tools/eslint/node_modules/lodash/sortedLastIndexOf.js
@@ -18,7 +18,7 @@ var baseSortedIndex = require('./_baseSortedIndex'),
* // => 3
*/
function sortedLastIndexOf(array, value) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (length) {
var index = baseSortedIndex(array, value, true) - 1;
if (eq(array[index], value)) {
diff --git a/tools/eslint/node_modules/lodash/spread.js b/tools/eslint/node_modules/lodash/spread.js
index ee44c8d8d1..60a08e22e4 100644
--- a/tools/eslint/node_modules/lodash/spread.js
+++ b/tools/eslint/node_modules/lodash/spread.js
@@ -48,7 +48,7 @@ function spread(func, start) {
if (typeof func != 'function') {
throw new TypeError(FUNC_ERROR_TEXT);
}
- start = start === undefined ? 0 : nativeMax(toInteger(start), 0);
+ start = start == null ? 0 : nativeMax(toInteger(start), 0);
return baseRest(function(args) {
var array = args[start],
otherArgs = castSlice(args, 0, start);
diff --git a/tools/eslint/node_modules/lodash/startsWith.js b/tools/eslint/node_modules/lodash/startsWith.js
index 359e5ad78f..956c098a0c 100644
--- a/tools/eslint/node_modules/lodash/startsWith.js
+++ b/tools/eslint/node_modules/lodash/startsWith.js
@@ -28,7 +28,10 @@ var baseClamp = require('./_baseClamp'),
*/
function startsWith(string, target, position) {
string = toString(string);
- position = baseClamp(toInteger(position), 0, string.length);
+ position = position == null
+ ? 0
+ : baseClamp(toInteger(position), 0, string.length);
+
target = baseToString(target);
return string.slice(position, position + target.length) == target;
}
diff --git a/tools/eslint/node_modules/lodash/tail.js b/tools/eslint/node_modules/lodash/tail.js
index 9964be528a..001c22d0fd 100644
--- a/tools/eslint/node_modules/lodash/tail.js
+++ b/tools/eslint/node_modules/lodash/tail.js
@@ -15,7 +15,7 @@ var baseSlice = require('./_baseSlice');
* // => [2, 3]
*/
function tail(array) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
return length ? baseSlice(array, 1, length) : [];
}
diff --git a/tools/eslint/node_modules/lodash/takeRight.js b/tools/eslint/node_modules/lodash/takeRight.js
index b11fb34add..6c375060eb 100644
--- a/tools/eslint/node_modules/lodash/takeRight.js
+++ b/tools/eslint/node_modules/lodash/takeRight.js
@@ -27,7 +27,7 @@ var baseSlice = require('./_baseSlice'),
* // => []
*/
function takeRight(array, n, guard) {
- var length = array ? array.length : 0;
+ var length = array == null ? 0 : array.length;
if (!length) {
return [];
}
diff --git a/tools/eslint/node_modules/lodash/takeRightWhile.js b/tools/eslint/node_modules/lodash/takeRightWhile.js
index 2a80871561..94ab783d79 100644
--- a/tools/eslint/node_modules/lodash/takeRightWhile.js
+++ b/tools/eslint/node_modules/lodash/takeRightWhile.js
@@ -11,8 +11,7 @@ var baseIteratee = require('./_baseIteratee'),
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/takeWhile.js b/tools/eslint/node_modules/lodash/takeWhile.js
index f881d930fa..e88f5910d3 100644
--- a/tools/eslint/node_modules/lodash/takeWhile.js
+++ b/tools/eslint/node_modules/lodash/takeWhile.js
@@ -11,14 +11,13 @@ var baseIteratee = require('./_baseIteratee'),
* @since 3.0.0
* @category Array
* @param {Array} array The array to query.
- * @param {Function} [predicate=_.identity]
- * The function invoked per iteration.
+ * @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the slice of `array`.
* @example
*
* var users = [
* { 'user': 'barney', 'active': false },
- * { 'user': 'fred', 'active': false},
+ * { 'user': 'fred', 'active': false },
* { 'user': 'pebbles', 'active': true }
* ];
*
diff --git a/tools/eslint/node_modules/lodash/template.js b/tools/eslint/node_modules/lodash/template.js
index 2df417fa71..16539eec2f 100644
--- a/tools/eslint/node_modules/lodash/template.js
+++ b/tools/eslint/node_modules/lodash/template.js
@@ -1,7 +1,7 @@
-var assignInDefaults = require('./_assignInDefaults'),
- assignInWith = require('./assignInWith'),
+var assignInWith = require('./assignInWith'),
attempt = require('./attempt'),
baseValues = require('./_baseValues'),
+ customDefaultsAssignIn = require('./_customDefaultsAssignIn'),
escapeStringChar = require('./_escapeStringChar'),
isError = require('./isError'),
isIterateeCall = require('./_isIterateeCall'),
@@ -141,9 +141,9 @@ function template(string, options, guard) {
options = undefined;
}
string = toString(string);
- options = assignInWith({}, options, settings, assignInDefaults);
+ options = assignInWith({}, options, settings, customDefaultsAssignIn);
- var imports = assignInWith({}, options.imports, settings.imports, assignInDefaults),
+ var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
importsKeys = keys(imports),
importsValues = baseValues(imports, importsKeys);
diff --git a/tools/eslint/node_modules/lodash/templateSettings.js b/tools/eslint/node_modules/lodash/templateSettings.js
index bce2f749c1..5aa5924fab 100644
--- a/tools/eslint/node_modules/lodash/templateSettings.js
+++ b/tools/eslint/node_modules/lodash/templateSettings.js
@@ -5,8 +5,8 @@ var escape = require('./escape'),
/**
* By default, the template delimiters used by lodash are like those in
- * embedded Ruby (ERB). Change the following template settings to use
- * alternative delimiters.
+ * embedded Ruby (ERB) as well as ES2015 template strings. Change the
+ * following template settings to use alternative delimiters.
*
* @static
* @memberOf _
diff --git a/tools/eslint/node_modules/lodash/times.js b/tools/eslint/node_modules/lodash/times.js
index 607838fb48..266c90c681 100644
--- a/tools/eslint/node_modules/lodash/times.js
+++ b/tools/eslint/node_modules/lodash/times.js
@@ -1,5 +1,5 @@
-var baseIteratee = require('./_baseIteratee'),
- baseTimes = require('./_baseTimes'),
+var baseTimes = require('./_baseTimes'),
+ castFunction = require('./_castFunction'),
toInteger = require('./toInteger');
/** Used as references for various `Number` constants. */
@@ -38,7 +38,7 @@ function times(n, iteratee) {
var index = MAX_ARRAY_LENGTH,
length = nativeMin(n, MAX_ARRAY_LENGTH);
- iteratee = baseIteratee(iteratee);
+ iteratee = castFunction(iteratee);
n -= MAX_ARRAY_LENGTH;
var result = baseTimes(length, iteratee);
diff --git a/tools/eslint/node_modules/lodash/toArray.js b/tools/eslint/node_modules/lodash/toArray.js
index 8a1102d24e..98095848e7 100644
--- a/tools/eslint/node_modules/lodash/toArray.js
+++ b/tools/eslint/node_modules/lodash/toArray.js
@@ -14,7 +14,7 @@ var mapTag = '[object Map]',
setTag = '[object Set]';
/** Built-in value references. */
-var iteratorSymbol = Symbol ? Symbol.iterator : undefined;
+var symIterator = Symbol ? Symbol.iterator : undefined;
/**
* Converts `value` to an array.
@@ -46,8 +46,8 @@ function toArray(value) {
if (isArrayLike(value)) {
return isString(value) ? stringToArray(value) : copyArray(value);
}
- if (iteratorSymbol && value[iteratorSymbol]) {
- return iteratorToArray(value[iteratorSymbol]());
+ if (symIterator && value[symIterator]) {
+ return iteratorToArray(value[symIterator]());
}
var tag = getTag(value),
func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
diff --git a/tools/eslint/node_modules/lodash/toPath.js b/tools/eslint/node_modules/lodash/toPath.js
index c9e8e4b2bb..d3e96eea98 100644
--- a/tools/eslint/node_modules/lodash/toPath.js
+++ b/tools/eslint/node_modules/lodash/toPath.js
@@ -3,7 +3,8 @@ var arrayMap = require('./_arrayMap'),
isArray = require('./isArray'),
isSymbol = require('./isSymbol'),
stringToPath = require('./_stringToPath'),
- toKey = require('./_toKey');
+ toKey = require('./_toKey'),
+ toString = require('./toString');
/**
* Converts `value` to a property path array.
@@ -26,7 +27,7 @@ function toPath(value) {
if (isArray(value)) {
return arrayMap(value, toKey);
}
- return isSymbol(value) ? [value] : copyArray(stringToPath(value));
+ return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));
}
module.exports = toPath;
diff --git a/tools/eslint/node_modules/lodash/toSafeInteger.js b/tools/eslint/node_modules/lodash/toSafeInteger.js
index 885c5fb751..f564623d1f 100644
--- a/tools/eslint/node_modules/lodash/toSafeInteger.js
+++ b/tools/eslint/node_modules/lodash/toSafeInteger.js
@@ -29,7 +29,9 @@ var MAX_SAFE_INTEGER = 9007199254740991;
* // => 3
*/
function toSafeInteger(value) {
- return baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
+ return value
+ ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
+ : (value === 0 ? value : 0);
}
module.exports = toSafeInteger;
diff --git a/tools/eslint/node_modules/lodash/unionBy.js b/tools/eslint/node_modules/lodash/unionBy.js
index e082f62595..6ae8ccd6ef 100644
--- a/tools/eslint/node_modules/lodash/unionBy.js
+++ b/tools/eslint/node_modules/lodash/unionBy.js
@@ -17,8 +17,7 @@ var baseFlatten = require('./_baseFlatten'),
* @since 4.0.0
* @category Array
* @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new array of combined values.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/unionWith.js b/tools/eslint/node_modules/lodash/unionWith.js
index 46348b9b6b..78736b27cd 100644
--- a/tools/eslint/node_modules/lodash/unionWith.js
+++ b/tools/eslint/node_modules/lodash/unionWith.js
@@ -27,9 +27,7 @@ var baseFlatten = require('./_baseFlatten'),
*/
var unionWith = baseRest(function(arrays) {
var comparator = last(arrays);
- if (isArrayLikeObject(comparator)) {
- comparator = undefined;
- }
+ comparator = typeof comparator == 'function' ? comparator : undefined;
return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
});
diff --git a/tools/eslint/node_modules/lodash/uniq.js b/tools/eslint/node_modules/lodash/uniq.js
index 1df7826303..157d1cd380 100644
--- a/tools/eslint/node_modules/lodash/uniq.js
+++ b/tools/eslint/node_modules/lodash/uniq.js
@@ -19,9 +19,7 @@ var baseUniq = require('./_baseUniq');
* // => [2, 1]
*/
function uniq(array) {
- return (array && array.length)
- ? baseUniq(array)
- : [];
+ return (array && array.length) ? baseUniq(array) : [];
}
module.exports = uniq;
diff --git a/tools/eslint/node_modules/lodash/uniqBy.js b/tools/eslint/node_modules/lodash/uniqBy.js
index 621ab3e5c2..53402a9bf8 100644
--- a/tools/eslint/node_modules/lodash/uniqBy.js
+++ b/tools/eslint/node_modules/lodash/uniqBy.js
@@ -13,8 +13,7 @@ var baseIteratee = require('./_baseIteratee'),
* @since 4.0.0
* @category Array
* @param {Array} array The array to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new duplicate free array.
* @example
*
@@ -26,9 +25,7 @@ var baseIteratee = require('./_baseIteratee'),
* // => [{ 'x': 1 }, { 'x': 2 }]
*/
function uniqBy(array, iteratee) {
- return (array && array.length)
- ? baseUniq(array, baseIteratee(iteratee, 2))
- : [];
+ return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];
}
module.exports = uniqBy;
diff --git a/tools/eslint/node_modules/lodash/uniqWith.js b/tools/eslint/node_modules/lodash/uniqWith.js
index 86af583adb..18d72aabcd 100644
--- a/tools/eslint/node_modules/lodash/uniqWith.js
+++ b/tools/eslint/node_modules/lodash/uniqWith.js
@@ -21,9 +21,8 @@ var baseUniq = require('./_baseUniq');
* // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
*/
function uniqWith(array, comparator) {
- return (array && array.length)
- ? baseUniq(array, undefined, comparator)
- : [];
+ comparator = typeof comparator == 'function' ? comparator : undefined;
+ return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
}
module.exports = uniqWith;
diff --git a/tools/eslint/node_modules/lodash/values.js b/tools/eslint/node_modules/lodash/values.js
index 738260bcb7..b069654181 100644
--- a/tools/eslint/node_modules/lodash/values.js
+++ b/tools/eslint/node_modules/lodash/values.js
@@ -28,7 +28,7 @@ var baseValues = require('./_baseValues'),
* // => ['h', 'i']
*/
function values(object) {
- return object ? baseValues(object, keys(object)) : [];
+ return object == null ? [] : baseValues(object, keys(object));
}
module.exports = values;
diff --git a/tools/eslint/node_modules/lodash/wrap.js b/tools/eslint/node_modules/lodash/wrap.js
index 205d7f46eb..cad3c501d8 100644
--- a/tools/eslint/node_modules/lodash/wrap.js
+++ b/tools/eslint/node_modules/lodash/wrap.js
@@ -1,4 +1,4 @@
-var identity = require('./identity'),
+var castFunction = require('./_castFunction'),
partial = require('./partial');
/**
@@ -24,8 +24,7 @@ var identity = require('./identity'),
* // => '<p>fred, barney, &amp; pebbles</p>'
*/
function wrap(value, wrapper) {
- wrapper = wrapper == null ? identity : wrapper;
- return partial(wrapper, value);
+ return partial(castFunction(wrapper), value);
}
module.exports = wrap;
diff --git a/tools/eslint/node_modules/lodash/wrapperAt.js b/tools/eslint/node_modules/lodash/wrapperAt.js
index ab3d22af95..6f6a1d0806 100644
--- a/tools/eslint/node_modules/lodash/wrapperAt.js
+++ b/tools/eslint/node_modules/lodash/wrapperAt.js
@@ -12,7 +12,7 @@ var LazyWrapper = require('./_LazyWrapper'),
* @memberOf _
* @since 1.0.0
* @category Seq
- * @param {...(string|string[])} [paths] The property paths of elements to pick.
+ * @param {...(string|string[])} [paths] The property paths to pick.
* @returns {Object} Returns the new `lodash` wrapper instance.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/wrapperLodash.js b/tools/eslint/node_modules/lodash/wrapperLodash.js
index bf27a3cbee..bd6e8ad9ab 100644
--- a/tools/eslint/node_modules/lodash/wrapperLodash.js
+++ b/tools/eslint/node_modules/lodash/wrapperLodash.js
@@ -29,9 +29,9 @@ var hasOwnProperty = objectProto.hasOwnProperty;
* Shortcut fusion is an optimization to merge iteratee calls; this avoids
* the creation of intermediate arrays and can greatly reduce the number of
* iteratee executions. Sections of a chain sequence qualify for shortcut
- * fusion if the section is applied to an array of at least `200` elements
- * and any iteratees accept only one argument. The heuristic for whether a
- * section qualifies for shortcut fusion is subject to change.
+ * fusion if the section is applied to an array and iteratees accept only
+ * one argument. The heuristic for whether a section qualifies for shortcut
+ * fusion is subject to change.
*
* Chaining is supported in custom builds as long as the `_#value` method is
* directly or indirectly included in the build.
diff --git a/tools/eslint/node_modules/lodash/xorBy.js b/tools/eslint/node_modules/lodash/xorBy.js
index 2cb5242226..e0478950c6 100644
--- a/tools/eslint/node_modules/lodash/xorBy.js
+++ b/tools/eslint/node_modules/lodash/xorBy.js
@@ -17,8 +17,7 @@ var arrayFilter = require('./_arrayFilter'),
* @since 4.0.0
* @category Array
* @param {...Array} [arrays] The arrays to inspect.
- * @param {Function} [iteratee=_.identity]
- * The iteratee invoked per element.
+ * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
* @returns {Array} Returns the new array of filtered values.
* @example
*
diff --git a/tools/eslint/node_modules/lodash/xorWith.js b/tools/eslint/node_modules/lodash/xorWith.js
index 68460dbd72..e3a8ac67fe 100644
--- a/tools/eslint/node_modules/lodash/xorWith.js
+++ b/tools/eslint/node_modules/lodash/xorWith.js
@@ -27,9 +27,7 @@ var arrayFilter = require('./_arrayFilter'),
*/
var xorWith = baseRest(function(arrays) {
var comparator = last(arrays);
- if (isArrayLikeObject(comparator)) {
- comparator = undefined;
- }
+ comparator = typeof comparator == 'function' ? comparator : undefined;
return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
});
diff --git a/tools/eslint/node_modules/lodash/zipWith.js b/tools/eslint/node_modules/lodash/zipWith.js
index 18945ebc0c..d7a1f91971 100644
--- a/tools/eslint/node_modules/lodash/zipWith.js
+++ b/tools/eslint/node_modules/lodash/zipWith.js
@@ -11,7 +11,8 @@ var baseRest = require('./_baseRest'),
* @since 3.8.0
* @category Array
* @param {...Array} [arrays] The arrays to process.
- * @param {Function} [iteratee=_.identity] The function to combine grouped values.
+ * @param {Function} [iteratee=_.identity] The function to combine
+ * grouped values.
* @returns {Array} Returns the new array of grouped elements.
* @example
*
diff --git a/tools/eslint/node_modules/ms/LICENSE.md b/tools/eslint/node_modules/ms/LICENSE.md
new file mode 100644
index 0000000000..69b61253a3
--- /dev/null
+++ b/tools/eslint/node_modules/ms/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Zeit, Inc.
+
+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/tools/eslint/node_modules/ms/README.md b/tools/eslint/node_modules/ms/README.md
index 9b4fd03581..5b475707d8 100644
--- a/tools/eslint/node_modules/ms/README.md
+++ b/tools/eslint/node_modules/ms/README.md
@@ -1,4 +1,12 @@
-# ms.js: miliseconds conversion utility
+# 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/)
+
+Use this package to easily convert various time formats to milliseconds.
+
+## Examples
```js
ms('2 days') // 172800000
@@ -8,28 +16,37 @@ ms('2.5 hrs') // 9000000
ms('2h') // 7200000
ms('1m') // 60000
ms('5s') // 5000
+ms('1y') // 31557600000
ms('100') // 100
```
+### Convert from milliseconds
+
```js
ms(60000) // "1m"
ms(2 * 60000) // "2m"
ms(ms('10 hours')) // "10h"
```
+### Time format written-out
+
```js
ms(60000, { long: true }) // "1 minute"
ms(2 * 60000, { long: true }) // "2 minutes"
ms(ms('10 hours'), { long: true }) // "10 hours"
```
-- Node/Browser compatible. Published as [`ms`](https://www.npmjs.org/package/ms) in [NPM](http://nodejs.org/download).
+## Features
+
+- Works both in [node](https://nodejs.org) and in the browser.
- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as
-a number (e.g: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of
-equivalent ms is returned.
+- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
+- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
+
+## Caught a bug?
-## License
+1. [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
+2. Link the package to the global module directory: `npm link`
+3. 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!
-MIT
+As always, you can run the tests using: `npm test`
diff --git a/tools/eslint/node_modules/ms/index.js b/tools/eslint/node_modules/ms/index.js
index 4f92771696..824b37ebac 100644
--- a/tools/eslint/node_modules/ms/index.js
+++ b/tools/eslint/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`.
@@ -17,17 +17,23 @@ var y = d * 365.25;
*
* @param {String|Number} val
* @param {Object} options
+ * @throws {Error} throw an error if val is not a non-empty string or a number
* @return {String|Number}
* @api public
*/
-module.exports = function(val, options){
- options = options || {};
- if ('string' == typeof val) return parse(val);
- return options.long
- ? long(val)
- : short(val);
-};
+module.exports = function (val, options) {
+ options = options || {}
+ var type = typeof val
+ if (type === 'string' && val.length > 0) {
+ return parse(val)
+ } else if (type === 'number' && isNaN(val) === false) {
+ 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))
+}
/**
* Parse the given `str` and return milliseconds.
@@ -38,47 +44,53 @@ module.exports = function(val, options){
*/
function parse(str) {
- str = '' + str;
- if (str.length > 10000) 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);
- if (!match) return;
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
+ str = String(str)
+ if (str.length > 10000) {
+ 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)
+ if (!match) {
+ return
+ }
+ 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
}
}
@@ -90,12 +102,20 @@ function parse(str) {
* @api private
*/
-function short(ms) {
- if (ms >= d) return Math.round(ms / d) + 'd';
- if (ms >= h) return Math.round(ms / h) + 'h';
- if (ms >= m) return Math.round(ms / m) + 'm';
- if (ms >= s) return Math.round(ms / s) + 's';
- return ms + 'ms';
+function fmtShort(ms) {
+ if (ms >= d) {
+ return Math.round(ms / d) + 'd'
+ }
+ if (ms >= h) {
+ return Math.round(ms / h) + 'h'
+ }
+ if (ms >= m) {
+ return Math.round(ms / m) + 'm'
+ }
+ if (ms >= s) {
+ return Math.round(ms / s) + 's'
+ }
+ return ms + 'ms'
}
/**
@@ -106,12 +126,12 @@ function short(ms) {
* @api private
*/
-function long(ms) {
- return plural(ms, d, 'day')
- || plural(ms, h, 'hour')
- || plural(ms, m, 'minute')
- || plural(ms, s, 'second')
- || ms + ' ms';
+function fmtLong(ms) {
+ return plural(ms, d, 'day') ||
+ plural(ms, h, 'hour') ||
+ plural(ms, m, 'minute') ||
+ plural(ms, s, 'second') ||
+ ms + ' ms'
}
/**
@@ -119,7 +139,11 @@ function long(ms) {
*/
function plural(ms, n, name) {
- if (ms < n) return;
- if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;
- return Math.ceil(ms / n) + ' ' + name + 's';
+ if (ms < n) {
+ return
+ }
+ if (ms < n * 1.5) {
+ return Math.floor(ms / n) + ' ' + name
+ }
+ return Math.ceil(ms / n) + ' ' + name + 's'
}
diff --git a/tools/eslint/node_modules/ms/package.json b/tools/eslint/node_modules/ms/package.json
index 2a716afce8..f6c37f7950 100644
--- a/tools/eslint/node_modules/ms/package.json
+++ b/tools/eslint/node_modules/ms/package.json
@@ -2,47 +2,51 @@
"_args": [
[
{
- "raw": "ms@0.7.1",
+ "raw": "ms@0.7.2",
"scope": null,
"escapedName": "ms",
"name": "ms",
- "rawSpec": "0.7.1",
- "spec": "0.7.1",
+ "rawSpec": "0.7.2",
+ "spec": "0.7.2",
"type": "version"
},
"/Users/trott/io.js/tools/node_modules/debug"
]
],
- "_from": "ms@0.7.1",
- "_id": "ms@0.7.1",
+ "_from": "ms@0.7.2",
+ "_id": "ms@0.7.2",
"_inCache": true,
"_location": "/ms",
- "_nodeVersion": "0.12.2",
+ "_nodeVersion": "6.8.0",
+ "_npmOperationalInternal": {
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/ms-0.7.2.tgz_1477383407940_0.4743474116548896"
+ },
"_npmUser": {
- "name": "rauchg",
- "email": "rauchg@gmail.com"
+ "name": "leo",
+ "email": "leo@zeit.co"
},
- "_npmVersion": "2.7.5",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
- "raw": "ms@0.7.1",
+ "raw": "ms@0.7.2",
"scope": null,
"escapedName": "ms",
"name": "ms",
- "rawSpec": "0.7.1",
- "spec": "0.7.1",
+ "rawSpec": "0.7.2",
+ "spec": "0.7.2",
"type": "version"
},
"_requiredBy": [
"/debug"
],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "_shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
+ "_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "_shasum": "ae25cf2512b3885a1d95d7f037868d8431124765",
"_shrinkwrap": null,
- "_spec": "ms@0.7.1",
+ "_spec": "ms@0.7.2",
"_where": "/Users/trott/io.js/tools/node_modules/debug",
"bugs": {
- "url": "https://github.com/guille/ms.js/issues"
+ "url": "https://github.com/zeit/ms/issues"
},
"component": {
"scripts": {
@@ -50,22 +54,31 @@
}
},
"dependencies": {},
- "description": "Tiny ms conversion utility",
+ "description": "Tiny milisecond conversion utility",
"devDependencies": {
- "expect.js": "*",
- "mocha": "*",
- "serve": "*"
+ "expect.js": "^0.3.1",
+ "mocha": "^3.0.2",
+ "serve": "^1.4.0",
+ "xo": "^0.17.0"
},
"directories": {},
"dist": {
- "shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
- "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
+ "shasum": "ae25cf2512b3885a1d95d7f037868d8431124765",
+ "tarball": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
},
- "gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909",
- "homepage": "https://github.com/guille/ms.js",
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "ac92a7e0790ba2622a74d9d60690ca0d2c070a45",
+ "homepage": "https://github.com/zeit/ms#readme",
+ "license": "MIT",
"main": "./index",
"maintainers": [
{
+ "name": "leo",
+ "email": "leo@zeit.co"
+ },
+ {
"name": "rauchg",
"email": "rauchg@gmail.com"
}
@@ -75,8 +88,21 @@
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
- "url": "git://github.com/guille/ms.js.git"
+ "url": "git+https://github.com/zeit/ms.git"
},
- "scripts": {},
- "version": "0.7.1"
+ "scripts": {
+ "test": "xo && mocha test/index.js",
+ "test-browser": "serve ./test"
+ },
+ "version": "0.7.2",
+ "xo": {
+ "space": true,
+ "semicolon": false,
+ "envs": [
+ "mocha"
+ ],
+ "rules": {
+ "complexity": 0
+ }
+ }
}
diff --git a/tools/eslint/node_modules/number-is-nan/package.json b/tools/eslint/node_modules/number-is-nan/package.json
index e79af63b0d..8a7ec7f382 100644
--- a/tools/eslint/node_modules/number-is-nan/package.json
+++ b/tools/eslint/node_modules/number-is-nan/package.json
@@ -10,7 +10,7 @@
"spec": ">=1.0.0 <2.0.0",
"type": "range"
},
- "/Users/trott/io.js/tools/node_modules/code-point-at"
+ "/Users/trott/io.js/tools/node_modules/is-fullwidth-code-point"
]
],
"_from": "number-is-nan@>=1.0.0 <2.0.0",
@@ -38,14 +38,13 @@
"type": "range"
},
"_requiredBy": [
- "/code-point-at",
"/is-fullwidth-code-point"
],
"_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"_shasum": "097b602b53422a522c1afb8790318336941a011d",
"_shrinkwrap": null,
"_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/trott/io.js/tools/node_modules/code-point-at",
+ "_where": "/Users/trott/io.js/tools/node_modules/is-fullwidth-code-point",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
diff --git a/tools/eslint/node_modules/prelude-ls/package.json b/tools/eslint/node_modules/prelude-ls/package.json
index cd075ed81e..9b5e09e477 100644
--- a/tools/eslint/node_modules/prelude-ls/package.json
+++ b/tools/eslint/node_modules/prelude-ls/package.json
@@ -63,7 +63,7 @@
"directories": {},
"dist": {
"shasum": "21932a549f5e52ffd9a827f570e04be62a97da54",
- "tarball": "http://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ "tarball": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
},
"engines": {
"node": ">= 0.8.0"
diff --git a/tools/eslint/node_modules/readable-stream/.zuul.yml b/tools/eslint/node_modules/readable-stream/.zuul.yml
deleted file mode 100644
index 96d9cfbd38..0000000000
--- a/tools/eslint/node_modules/readable-stream/.zuul.yml
+++ /dev/null
@@ -1 +0,0 @@
-ui: tape
diff --git a/tools/eslint/node_modules/readable-stream/README.md b/tools/eslint/node_modules/readable-stream/README.md
index 86b95a3bf6..9be2adb158 100644
--- a/tools/eslint/node_modules/readable-stream/README.md
+++ b/tools/eslint/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core v5.8.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v7.0.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
@@ -16,7 +16,9 @@ npm install --save readable-stream
***Node-core streams for userland***
This package is a mirror of the Streams2 and Streams3 implementations in
-Node-core, including [documentation](doc/stream.markdown).
+Node-core.
+
+Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v7.1.0/docs/api/).
If you want to guarantee a stable streams base, regardless of what version of
Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
@@ -34,3 +36,5 @@ As of version 2.0.0 **readable-stream** uses semantic versioning.
* **Sam Newman** ([@sonewman](https://github.com/sonewman)) &lt;newmansam@outlook.com&gt;
* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) &lt;mathiasbuus@gmail.com&gt;
* **Domenic Denicola** ([@domenic](https://github.com/domenic)) &lt;d@domenic.me&gt;
+* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) &lt;matteo.collina@gmail.com&gt;
+ - Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E
diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js b/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js
index 54a9d5c553..3a7d42d62b 100644
--- a/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js
+++ b/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js
@@ -11,14 +11,14 @@ var isArray = require('isarray');
/*</replacement>*/
/*<replacement>*/
-var Buffer = require('buffer').Buffer;
+var Duplex;
/*</replacement>*/
Readable.ReadableState = ReadableState;
-var EE = require('events');
-
/*<replacement>*/
+var EE = require('events').EventEmitter;
+
var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
@@ -36,6 +36,9 @@ var Stream;
/*</replacement>*/
var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
/*<replacement>*/
var util = require('core-util-is');
@@ -44,7 +47,7 @@ util.inherits = require('inherits');
/*<replacement>*/
var debugUtil = require('util');
-var debug = undefined;
+var debug = void 0;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
@@ -52,11 +55,25 @@ if (debugUtil && debugUtil.debuglog) {
}
/*</replacement>*/
+var BufferList = require('./internal/streams/BufferList');
var StringDecoder;
util.inherits(Readable, Stream);
-var Duplex;
+function prependListener(emitter, event, fn) {
+ // Sadly this is not cacheable as some libraries bundle their own
+ // event emitter implementation with them.
+ if (typeof emitter.prependListener === 'function') {
+ return emitter.prependListener(event, fn);
+ } else {
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+ }
+}
+
function ReadableState(options, stream) {
Duplex = Duplex || require('./_stream_duplex');
@@ -77,7 +94,10 @@ function ReadableState(options, stream) {
// cast to ints.
this.highWaterMark = ~ ~this.highWaterMark;
- this.buffer = [];
+ // A linked list is used to store data chunks instead of an array because the
+ // linked list can remove elements from the beginning faster than
+ // array.shift()
+ this.buffer = new BufferList();
this.length = 0;
this.pipes = null;
this.pipesCount = 0;
@@ -123,7 +143,6 @@ function ReadableState(options, stream) {
}
}
-var Duplex;
function Readable(options) {
Duplex = Duplex || require('./_stream_duplex');
@@ -149,7 +168,7 @@ Readable.prototype.push = function (chunk, encoding) {
if (!state.objectMode && typeof chunk === 'string') {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
encoding = '';
}
}
@@ -179,8 +198,8 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var e = new Error('stream.push() after EOF');
stream.emit('error', e);
} else if (state.endEmitted && addToFront) {
- var e = new Error('stream.unshift() after end event');
- stream.emit('error', e);
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
} else {
var skipAdd;
if (state.decoder && !addToFront && !encoding) {
@@ -240,7 +259,8 @@ function computeNewHighWaterMark(n) {
if (n >= MAX_HWM) {
n = MAX_HWM;
} else {
- // Get the next highest power of 2
+ // Get the next highest power of 2 to prevent increasing hwm excessively in
+ // tiny amounts
n--;
n |= n >>> 1;
n |= n >>> 2;
@@ -252,44 +272,34 @@ function computeNewHighWaterMark(n) {
return n;
}
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
function howMuchToRead(n, state) {
- if (state.length === 0 && state.ended) return 0;
-
- if (state.objectMode) return n === 0 ? 0 : 1;
-
- if (n === null || isNaN(n)) {
- // only flow one buffer at a time
- if (state.flowing && state.buffer.length) return state.buffer[0].length;else return state.length;
+ if (n <= 0 || state.length === 0 && state.ended) return 0;
+ if (state.objectMode) return 1;
+ if (n !== n) {
+ // Only flow one buffer at a time
+ if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
}
-
- if (n <= 0) return 0;
-
- // If we're asking for more than the target buffer level,
- // then raise the water mark. Bump up to the next highest
- // power of 2, to prevent increasing it excessively in tiny
- // amounts.
+ // If we're asking for more than the current hwm, then raise the hwm.
if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
-
- // don't have that much. return null, unless we've ended.
- if (n > state.length) {
- if (!state.ended) {
- state.needReadable = true;
- return 0;
- } else {
- return state.length;
- }
+ if (n <= state.length) return n;
+ // Don't have enough
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
}
-
- return n;
+ return state.length;
}
// you can override either this method, or the async _read(n) below.
Readable.prototype.read = function (n) {
debug('read', n);
+ n = parseInt(n, 10);
var state = this._readableState;
var nOrig = n;
- if (typeof n !== 'number' || n > 0) state.emittedReadable = false;
+ if (n !== 0) state.emittedReadable = false;
// if we're doing read(0) to trigger a readable event, but we
// already have a bunch of data in the buffer, then just trigger
@@ -345,9 +355,7 @@ Readable.prototype.read = function (n) {
if (state.ended || state.reading) {
doRead = false;
debug('reading or ended', doRead);
- }
-
- if (doRead) {
+ } else if (doRead) {
debug('do read');
state.reading = true;
state.sync = true;
@@ -356,28 +364,29 @@ Readable.prototype.read = function (n) {
// call internal read method
this._read(state.highWaterMark);
state.sync = false;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (!state.reading) n = howMuchToRead(nOrig, state);
}
- // If _read pushed data synchronously, then `reading` will be false,
- // and we need to re-evaluate how much data we can return to the user.
- if (doRead && !state.reading) n = howMuchToRead(nOrig, state);
-
var ret;
if (n > 0) ret = fromList(n, state);else ret = null;
if (ret === null) {
state.needReadable = true;
n = 0;
+ } else {
+ state.length -= n;
}
- state.length -= n;
+ if (state.length === 0) {
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (!state.ended) state.needReadable = true;
- // If we have nothing in the buffer, then we want to know
- // as soon as we *do* get something into the buffer.
- if (state.length === 0 && !state.ended) state.needReadable = true;
-
- // If we tried to read() past the EOF, then emit end on the next tick.
- if (nOrig !== n && state.ended && state.length === 0) endReadable(this);
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n && state.ended) endReadable(this);
+ }
if (ret !== null) this.emit('data', ret);
@@ -456,7 +465,7 @@ function maybeReadMore_(stream, state) {
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.
Readable.prototype._read = function (n) {
- this.emit('error', new Error('not implemented'));
+ this.emit('error', new Error('_read() is not implemented'));
};
Readable.prototype.pipe = function (dest, pipeOpts) {
@@ -525,17 +534,25 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
}
+ // If the user pushes more data while we're writing to dest then we'll end up
+ // in ondata again. However, we only want to increase awaitDrain once because
+ // dest will only emit one 'drain' event for the multiple writes.
+ // => Introduce a guard on increasing awaitDrain.
+ var increasedAwaitDrain = false;
src.on('data', ondata);
function ondata(chunk) {
debug('ondata');
+ increasedAwaitDrain = false;
var ret = dest.write(chunk);
- if (false === ret) {
+ if (false === ret && !increasedAwaitDrain) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
- if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
+ increasedAwaitDrain = true;
}
src.pause();
}
@@ -549,9 +566,9 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
dest.removeListener('error', onerror);
if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
// Both close and finish should trigger unpipe, but only once.
function onclose() {
@@ -626,16 +643,16 @@ Readable.prototype.unpipe = function (dest) {
state.pipesCount = 0;
state.flowing = false;
- for (var _i = 0; _i < len; _i++) {
- dests[_i].emit('unpipe', this);
+ for (var i = 0; i < len; i++) {
+ dests[i].emit('unpipe', this);
}return this;
}
// try to find the right one.
- var i = indexOf(state.pipes, dest);
- if (i === -1) return this;
+ var index = indexOf(state.pipes, dest);
+ if (index === -1) return this;
- state.pipes.splice(i, 1);
+ state.pipes.splice(index, 1);
state.pipesCount -= 1;
if (state.pipesCount === 1) state.pipes = state.pipes[0];
@@ -649,18 +666,14 @@ Readable.prototype.unpipe = function (dest) {
Readable.prototype.on = function (ev, fn) {
var res = Stream.prototype.on.call(this, ev, fn);
- // If listening to data, and it has not explicitly been paused,
- // then call resume to start the flow of data on the next tick.
- if (ev === 'data' && false !== this._readableState.flowing) {
- this.resume();
- }
-
- if (ev === 'readable' && !this._readableState.endEmitted) {
+ if (ev === 'data') {
+ // Start flowing on next tick if stream isn't explicitly paused
+ if (this._readableState.flowing !== false) this.resume();
+ } else if (ev === 'readable') {
var state = this._readableState;
- if (!state.readableListening) {
- state.readableListening = true;
+ if (!state.endEmitted && !state.readableListening) {
+ state.readableListening = state.needReadable = true;
state.emittedReadable = false;
- state.needReadable = true;
if (!state.reading) {
processNextTick(nReadingNextTick, this);
} else if (state.length) {
@@ -704,6 +717,7 @@ function resume_(stream, state) {
}
state.resumeScheduled = false;
+ state.awaitDrain = 0;
stream.emit('resume');
flow(stream);
if (state.flowing && !state.reading) stream.read(0);
@@ -722,11 +736,7 @@ Readable.prototype.pause = function () {
function flow(stream) {
var state = stream._readableState;
debug('flow', state.flowing);
- if (state.flowing) {
- do {
- var chunk = stream.read();
- } while (null !== chunk && state.flowing);
- }
+ while (state.flowing && stream.read() !== null) {}
}
// wrap an old-style stream as the async data source.
@@ -797,50 +807,101 @@ Readable._fromList = fromList;
// Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
function fromList(n, state) {
- var list = state.buffer;
- var length = state.length;
- var stringMode = !!state.decoder;
- var objectMode = !!state.objectMode;
- var ret;
+ // nothing buffered
+ if (state.length === 0) return null;
- // nothing in the list, definitely empty.
- if (list.length === 0) return null;
-
- if (length === 0) ret = null;else if (objectMode) ret = list.shift();else if (!n || n >= length) {
- // read it all, truncate the array.
- if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
- list.length = 0;
+ var ret;
+ if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
+ // read it all, truncate the list
+ if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
+ state.buffer.clear();
} else {
- // read just some of it.
- if (n < list[0].length) {
- // just take a part of the first list item.
- // slice is the same for buffers and strings.
- var buf = list[0];
- ret = buf.slice(0, n);
- list[0] = buf.slice(n);
- } else if (n === list[0].length) {
- // first list is a perfect match
- ret = list.shift();
- } else {
- // complex case.
- // we have enough to cover it, but it spans past the first buffer.
- if (stringMode) ret = '';else ret = new Buffer(n);
-
- var c = 0;
- for (var i = 0, l = list.length; i < l && c < n; i++) {
- var buf = list[0];
- var cpy = Math.min(n - c, buf.length);
+ // read part of list
+ ret = fromListPartial(n, state.buffer, state.decoder);
+ }
- if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
+ return ret;
+}
- if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
+// Extracts only enough buffered data to satisfy the amount requested.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromListPartial(n, list, hasStrings) {
+ var ret;
+ if (n < list.head.data.length) {
+ // slice is the same for buffers and strings
+ ret = list.head.data.slice(0, n);
+ list.head.data = list.head.data.slice(n);
+ } else if (n === list.head.data.length) {
+ // first chunk is a perfect match
+ ret = list.shift();
+ } else {
+ // result spans more than one buffer
+ ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
+ }
+ return ret;
+}
- c += cpy;
+// Copies a specified amount of characters from the list of buffered data
+// chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBufferString(n, list) {
+ var p = list.head;
+ var c = 1;
+ var ret = p.data;
+ n -= ret.length;
+ while (p = p.next) {
+ var str = p.data;
+ var nb = n > str.length ? str.length : n;
+ if (nb === str.length) ret += str;else ret += str.slice(0, n);
+ n -= nb;
+ if (n === 0) {
+ if (nb === str.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = str.slice(nb);
}
+ break;
}
+ ++c;
}
+ list.length -= c;
+ return ret;
+}
+// Copies a specified amount of bytes from the list of buffered data chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBuffer(n, list) {
+ var ret = bufferShim.allocUnsafe(n);
+ var p = list.head;
+ var c = 1;
+ p.data.copy(ret);
+ n -= p.data.length;
+ while (p = p.next) {
+ var buf = p.data;
+ var nb = n > buf.length ? buf.length : n;
+ buf.copy(ret, ret.length - n, 0, nb);
+ n -= nb;
+ if (n === 0) {
+ if (nb === buf.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = buf.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
return ret;
}
@@ -849,7 +910,7 @@ function endReadable(stream) {
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
- if (state.length > 0) throw new Error('endReadable called on non-empty stream');
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js b/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js
index 625cdc1769..cd2583207f 100644
--- a/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js
+++ b/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js
@@ -94,7 +94,6 @@ function Transform(options) {
this._transformState = new TransformState(this);
- // when the writable side finishes, then flush out anything remaining.
var stream = this;
// start out asking for a readable event once data is transformed.
@@ -111,9 +110,10 @@ function Transform(options) {
if (typeof options.flush === 'function') this._flush = options.flush;
}
+ // When the writable side finishes, then flush out anything remaining.
this.once('prefinish', function () {
- if (typeof this._flush === 'function') this._flush(function (er) {
- done(stream, er);
+ if (typeof this._flush === 'function') this._flush(function (er, data) {
+ done(stream, er, data);
});else done(stream);
});
}
@@ -134,7 +134,7 @@ Transform.prototype.push = function (chunk, encoding) {
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('not implemented');
+ throw new Error('_transform() is not implemented');
};
Transform.prototype._write = function (chunk, encoding, cb) {
@@ -164,17 +164,19 @@ Transform.prototype._read = function (n) {
}
};
-function done(stream, er) {
+function done(stream, er, data) {
if (er) return stream.emit('error', er);
+ if (data !== null && data !== undefined) stream.push(data);
+
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
var ws = stream._writableState;
var ts = stream._transformState;
- if (ws.length) throw new Error('calling transform done when ws.length != 0');
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
- if (ts.transforming) throw new Error('calling transform done when still transforming');
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
return stream.push(null);
} \ No newline at end of file
diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js b/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js
index 95916c992a..4d9c62ba62 100644
--- a/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js
+++ b/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js
@@ -15,7 +15,7 @@ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.
/*</replacement>*/
/*<replacement>*/
-var Buffer = require('buffer').Buffer;
+var Duplex;
/*</replacement>*/
Writable.WritableState = WritableState;
@@ -43,6 +43,9 @@ var Stream;
/*</replacement>*/
var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
util.inherits(Writable, Stream);
@@ -55,7 +58,6 @@ function WriteReq(chunk, encoding, cb) {
this.next = null;
}
-var Duplex;
function WritableState(options, stream) {
Duplex = Duplex || require('./_stream_duplex');
@@ -77,6 +79,7 @@ function WritableState(options, stream) {
// cast to ints.
this.highWaterMark = ~ ~this.highWaterMark;
+ // drain event flag.
this.needDrain = false;
// at the start of calling end()
this.ending = false;
@@ -146,13 +149,12 @@ function WritableState(options, stream) {
// count buffered requests
this.bufferedRequestCount = 0;
- // create the two objects needed to store the corked requests
- // they are not a linked list, as no new elements are inserted in there
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
this.corkedRequestsFree = new CorkedRequest(this);
- this.corkedRequestsFree.next = new CorkedRequest(this);
}
-WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+WritableState.prototype.getBuffer = function getBuffer() {
var current = this.bufferedRequest;
var out = [];
while (current) {
@@ -172,13 +174,37 @@ WritableState.prototype.getBuffer = function writableStateGetBuffer() {
} catch (_) {}
})();
-var Duplex;
+// Test _writableState for inheritance to account for Duplex streams,
+// whose prototype chain only points to Readable.
+var realHasInstance;
+if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
+ realHasInstance = Function.prototype[Symbol.hasInstance];
+ Object.defineProperty(Writable, Symbol.hasInstance, {
+ value: function (object) {
+ if (realHasInstance.call(this, object)) return true;
+
+ return object && object._writableState instanceof WritableState;
+ }
+ });
+} else {
+ realHasInstance = function (object) {
+ return object instanceof this;
+ };
+}
+
function Writable(options) {
Duplex = Duplex || require('./_stream_duplex');
- // Writable ctor is applied to Duplexes, though they're not
- // instanceof Writable, they're instanceof Readable.
- if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);
+ // Writable ctor is applied to Duplexes, too.
+ // `realHasInstance` is necessary because using plain `instanceof`
+ // would return false, as no `_writableState` property is attached.
+
+ // Trying to use the custom `instanceof` for Writable here will also break the
+ // Node.js LazyTransform implementation, which has a non-trivial getter for
+ // `_writableState` that would lead to infinite recursion.
+ if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
+ return new Writable(options);
+ }
this._writableState = new WritableState(options, this);
@@ -196,7 +222,7 @@ function Writable(options) {
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe. Not readable.'));
+ this.emit('error', new Error('Cannot pipe, not readable'));
};
function writeAfterEnd(stream, cb) {
@@ -213,9 +239,16 @@ function writeAfterEnd(stream, cb) {
// how many bytes or characters.
function validChunk(stream, state, chunk, cb) {
var valid = true;
-
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
- var er = new TypeError('Invalid non-string/buffer chunk');
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
stream.emit('error', er);
processNextTick(cb, er);
valid = false;
@@ -265,11 +298,12 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
if (typeof encoding === 'string') encoding = encoding.toLowerCase();
if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
+ return this;
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
}
return chunk;
}
@@ -392,12 +426,16 @@ function clearBuffer(stream, state) {
doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is always async, defer these to save a bit of time
+ // doWrite is almost always async, defer these to save a bit of time
// as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
- state.corkedRequestsFree = holder.next;
- holder.next = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
} else {
// Slow case, write chunks one-by-one
while (entry) {
@@ -426,7 +464,7 @@ function clearBuffer(stream, state) {
}
Writable.prototype._write = function (chunk, encoding, cb) {
- cb(new Error('not implemented'));
+ cb(new Error('_write() is not implemented'));
};
Writable.prototype._writev = null;
diff --git a/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js b/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js
new file mode 100644
index 0000000000..e4bfcf02dc
--- /dev/null
+++ b/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js
@@ -0,0 +1,64 @@
+'use strict';
+
+var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
+
+module.exports = BufferList;
+
+function BufferList() {
+ this.head = null;
+ this.tail = null;
+ this.length = 0;
+}
+
+BufferList.prototype.push = function (v) {
+ var entry = { data: v, next: null };
+ if (this.length > 0) this.tail.next = entry;else this.head = entry;
+ this.tail = entry;
+ ++this.length;
+};
+
+BufferList.prototype.unshift = function (v) {
+ var entry = { data: v, next: this.head };
+ if (this.length === 0) this.tail = entry;
+ this.head = entry;
+ ++this.length;
+};
+
+BufferList.prototype.shift = function () {
+ if (this.length === 0) return;
+ var ret = this.head.data;
+ if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
+ --this.length;
+ return ret;
+};
+
+BufferList.prototype.clear = function () {
+ this.head = this.tail = null;
+ this.length = 0;
+};
+
+BufferList.prototype.join = function (s) {
+ if (this.length === 0) return '';
+ var p = this.head;
+ var ret = '' + p.data;
+ while (p = p.next) {
+ ret += s + p.data;
+ }return ret;
+};
+
+BufferList.prototype.concat = function (n) {
+ if (this.length === 0) return bufferShim.alloc(0);
+ if (this.length === 1) return this.head.data;
+ var ret = bufferShim.allocUnsafe(n >>> 0);
+ var p = this.head;
+ var i = 0;
+ while (p) {
+ p.data.copy(ret, i);
+ i += p.data.length;
+ p = p.next;
+ }
+ return ret;
+}; \ No newline at end of file
diff --git a/tools/eslint/node_modules/readable-stream/package.json b/tools/eslint/node_modules/readable-stream/package.json
index af0995696c..66e162ee34 100644
--- a/tools/eslint/node_modules/readable-stream/package.json
+++ b/tools/eslint/node_modules/readable-stream/package.json
@@ -2,48 +2,48 @@
"_args": [
[
{
- "raw": "readable-stream@~2.0.0",
+ "raw": "readable-stream@^2.2.2",
"scope": null,
"escapedName": "readable-stream",
"name": "readable-stream",
- "rawSpec": "~2.0.0",
- "spec": ">=2.0.0 <2.1.0",
+ "rawSpec": "^2.2.2",
+ "spec": ">=2.2.2 <3.0.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/concat-stream"
]
],
- "_from": "readable-stream@>=2.0.0 <2.1.0",
- "_id": "readable-stream@2.0.6",
+ "_from": "readable-stream@>=2.2.2 <3.0.0",
+ "_id": "readable-stream@2.2.2",
"_inCache": true,
"_location": "/readable-stream",
- "_nodeVersion": "5.7.0",
+ "_nodeVersion": "7.1.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/readable-stream-2.0.6.tgz_1457893507709_0.369257491780445"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/readable-stream-2.2.2.tgz_1479128709230_0.5291099038440734"
},
"_npmUser": {
"name": "cwmma",
"email": "calvin.metcalf@gmail.com"
},
- "_npmVersion": "3.6.0",
+ "_npmVersion": "3.10.7",
"_phantomChildren": {},
"_requested": {
- "raw": "readable-stream@~2.0.0",
+ "raw": "readable-stream@^2.2.2",
"scope": null,
"escapedName": "readable-stream",
"name": "readable-stream",
- "rawSpec": "~2.0.0",
- "spec": ">=2.0.0 <2.1.0",
+ "rawSpec": "^2.2.2",
+ "spec": ">=2.2.2 <3.0.0",
"type": "range"
},
"_requiredBy": [
"/concat-stream"
],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "_shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "_shasum": "a9e6fec3c7dda85f8bb1b3ba7028604556fc825e",
"_shrinkwrap": null,
- "_spec": "readable-stream@~2.0.0",
+ "_spec": "readable-stream@^2.2.2",
"_where": "/Users/trott/io.js/tools/node_modules/concat-stream",
"browser": {
"util": false
@@ -52,6 +52,7 @@
"url": "https://github.com/nodejs/readable-stream/issues"
},
"dependencies": {
+ "buffer-shims": "^1.0.0",
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "~1.0.0",
@@ -61,16 +62,20 @@
},
"description": "Streams3, a user-land copy of the stream library from Node.js",
"devDependencies": {
- "tap": "~0.2.6",
+ "assert": "~1.4.0",
+ "babel-polyfill": "^6.9.1",
+ "buffer": "^4.9.0",
+ "nyc": "^6.4.0",
+ "tap": "~0.7.1",
"tape": "~4.5.1",
- "zuul": "~3.9.0"
+ "zuul": "~3.10.0"
},
"directories": {},
"dist": {
- "shasum": "8f90341e68a53ccc928788dacfcd11b36eb9b78e",
- "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz"
+ "shasum": "a9e6fec3c7dda85f8bb1b3ba7028604556fc825e",
+ "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz"
},
- "gitHead": "01fb5608a970b42c900b96746cadc13d27dd9d7e",
+ "gitHead": "f239454e183d2032c0eb7d79a1c08f674fdd8db4",
"homepage": "https://github.com/nodejs/readable-stream#readme",
"keywords": [
"readable",
@@ -98,6 +103,11 @@
}
],
"name": "readable-stream",
+ "nyc": {
+ "include": [
+ "lib/**.js"
+ ]
+ },
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -105,9 +115,12 @@
"url": "git://github.com/nodejs/readable-stream.git"
},
"scripts": {
- "browser": "npm run write-zuul && zuul -- test/browser.js",
+ "browser": "npm run write-zuul && zuul --browser-retries 2 -- test/browser.js",
+ "cover": "nyc npm test",
+ "local": "zuul --local 3000 --no-coverage -- test/browser.js",
+ "report": "nyc report --reporter=lcov",
"test": "tap test/parallel/*.js test/ours/*.js",
"write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml"
},
- "version": "2.0.6"
+ "version": "2.2.2"
}
diff --git a/tools/eslint/node_modules/readable-stream/readable.js b/tools/eslint/node_modules/readable-stream/readable.js
index 6222a57986..be2688a071 100644
--- a/tools/eslint/node_modules/readable-stream/readable.js
+++ b/tools/eslint/node_modules/readable-stream/readable.js
@@ -10,3 +10,7 @@ exports.Writable = require('./lib/_stream_writable.js');
exports.Duplex = require('./lib/_stream_duplex.js');
exports.Transform = require('./lib/_stream_transform.js');
exports.PassThrough = require('./lib/_stream_passthrough.js');
+
+if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
+ module.exports = Stream;
+}
diff --git a/tools/eslint/node_modules/rechoir/LICENSE b/tools/eslint/node_modules/rechoir/LICENSE
new file mode 100644
index 0000000000..f467993c6d
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2015 Tyler Kellen
+
+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/tools/eslint/node_modules/rechoir/README.md b/tools/eslint/node_modules/rechoir/README.md
new file mode 100644
index 0000000000..32280c040d
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/README.md
@@ -0,0 +1,42 @@
+# rechoir [![Build Status](https://secure.travis-ci.org/tkellen/js-rechoir.png)](http://travis-ci.org/tkellen/js-rechoir)
+> Require any supported file as a node module.
+
+[![NPM](https://nodei.co/npm/rechoir.png)](https://nodei.co/npm/rechoir/)
+
+## What is it?
+This module, in conjunction with [interpret]-like objects can register any file type the npm ecosystem has a module loader for. This library is a dependency of [Liftoff].
+
+## API
+
+### prepare(config, filepath, requireFrom)
+Look for a module loader associated with the provided file and attempt require it. If necessary, run any setup required to inject it into [require.extensions](http://nodejs.org/api/globals.html#globals_require_extensions).
+
+`config` An [interpret]-like configuration object.
+
+`filepath` A file whose type you'd like to register a module loader for.
+
+`requireFrom` An optional path to start searching for the module required to load the requested file. Defaults to the directory of `filepath`.
+
+If calling this method is successful (aka: it doesn't throw), you can now require files of the type you requested natively.
+
+An error with a `failures` property will be thrown if the module loader(s) configured for a given extension cannot be registered.
+
+If a loader is already registered, this will simply return `true`.
+
+**Note:** While rechoir will automatically load and register transpilers like `coffee-script`, you must provide a local installation. The transpilers are **not** bundled with this module.
+
+#### Usage
+```js
+const config = require('interpret').extensions;
+const rechoir = require('rechoir');
+rechoir.prepare(config, './test/fixtures/test.coffee');
+rechoir.prepare(config, './test/fixtures/test.csv');
+rechoir.prepare(config, './test/fixtures/test.toml');
+
+console.log(require('./test/fixtures/test.coffee'));
+console.log(require('./test/fixtures/test.csv'));
+console.log(require('./test/fixtures/test.toml'));
+```
+
+[interpret]: http://github.com/tkellen/js-interpret
+[Liftoff]: http://github.com/tkellen/js-liftoff
diff --git a/tools/eslint/node_modules/rechoir/index.js b/tools/eslint/node_modules/rechoir/index.js
new file mode 100644
index 0000000000..0c36d05869
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/index.js
@@ -0,0 +1,59 @@
+const path = require('path');
+
+const extension = require('./lib/extension');
+const normalize = require('./lib/normalize');
+const register = require('./lib/register');
+
+exports.prepare = function (extensions, filepath, cwd, nothrow) {
+ var option, attempt;
+ var attempts = [];
+ var err;
+ var onlyErrors = false;
+ var ext = extension(filepath);
+ if (Object.keys(require.extensions).indexOf(ext) !== -1) {
+ return true;
+ }
+ var config = normalize(extensions[ext]);
+ if (!config) {
+ if (nothrow) {
+ return;
+ } else {
+ throw new Error('No module loader found for "'+ext+'".');
+ }
+ }
+ if (!cwd) {
+ cwd = path.dirname(path.resolve(filepath));
+ }
+ if (!Array.isArray(config)) {
+ config = [config];
+ }
+ for (var i in config) {
+ option = config[i];
+ attempt = register(cwd, option.module, option.register);
+ error = (attempt instanceof Error) ? attempt : null;
+ if (error) {
+ attempt = null;
+ }
+ attempts.push({
+ moduleName: option.module,
+ module: attempt,
+ error: error
+ });
+ if (!error) {
+ onlyErrors = false;
+ break;
+ } else {
+ onlyErrors = true;
+ }
+ }
+ if (onlyErrors) {
+ err = new Error('Unable to use specified module loaders for "'+ext+'".');
+ err.failures = attempts;
+ if (nothrow) {
+ return err;
+ } else {
+ throw err;
+ }
+ }
+ return attempts;
+};
diff --git a/tools/eslint/node_modules/rechoir/lib/extension.js b/tools/eslint/node_modules/rechoir/lib/extension.js
new file mode 100644
index 0000000000..60f19da4e9
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/lib/extension.js
@@ -0,0 +1,11 @@
+const path = require('path');
+
+const EXTRE = /^[.]?[^.]+([.].*)$/;
+
+module.exports = function (input) {
+ var extension = EXTRE.exec(path.basename(input));
+ if (!extension) {
+ return;
+ }
+ return extension[1];
+};
diff --git a/tools/eslint/node_modules/rechoir/lib/normalize.js b/tools/eslint/node_modules/rechoir/lib/normalize.js
new file mode 100644
index 0000000000..0da5e586f5
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/lib/normalize.js
@@ -0,0 +1,15 @@
+function normalizer (config) {
+ if (typeof config === 'string') {
+ return {
+ module: config
+ }
+ }
+ return config;
+};
+
+module.exports = function (config) {
+ if (Array.isArray(config)) {
+ return config.map(normalizer);
+ }
+ return normalizer(config);
+};
diff --git a/tools/eslint/node_modules/rechoir/lib/register.js b/tools/eslint/node_modules/rechoir/lib/register.js
new file mode 100644
index 0000000000..20e8ca7dcd
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/lib/register.js
@@ -0,0 +1,15 @@
+const path = require('path');
+const resolve = require('resolve');
+
+module.exports = function (cwd, moduleName, register) {
+ try {
+ var modulePath = resolve.sync(moduleName, {basedir: cwd});
+ var result = require(modulePath);
+ if (typeof register === 'function') {
+ register(result);
+ }
+ } catch (e) {
+ result = e;
+ }
+ return result;
+};
diff --git a/tools/eslint/node_modules/rechoir/package.json b/tools/eslint/node_modules/rechoir/package.json
new file mode 100644
index 0000000000..0218b726ee
--- /dev/null
+++ b/tools/eslint/node_modules/rechoir/package.json
@@ -0,0 +1,148 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "rechoir@^0.6.2",
+ "scope": null,
+ "escapedName": "rechoir",
+ "name": "rechoir",
+ "rawSpec": "^0.6.2",
+ "spec": ">=0.6.2 <0.7.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/shelljs"
+ ]
+ ],
+ "_from": "rechoir@>=0.6.2 <0.7.0",
+ "_id": "rechoir@0.6.2",
+ "_inCache": true,
+ "_location": "/rechoir",
+ "_nodeVersion": "0.12.4",
+ "_npmUser": {
+ "name": "tkellen",
+ "email": "tyler@sleekcode.net"
+ },
+ "_npmVersion": "2.7.4",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "rechoir@^0.6.2",
+ "scope": null,
+ "escapedName": "rechoir",
+ "name": "rechoir",
+ "rawSpec": "^0.6.2",
+ "spec": ">=0.6.2 <0.7.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/shelljs"
+ ],
+ "_resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "_shasum": "85204b54dba82d5742e28c96756ef43af50e3384",
+ "_shrinkwrap": null,
+ "_spec": "rechoir@^0.6.2",
+ "_where": "/Users/trott/io.js/tools/node_modules/shelljs",
+ "author": {
+ "name": "Tyler Kellen",
+ "url": "http://goingslowly.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/tkellen/node-rechoir/issues"
+ },
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "description": "Require any supported file as a node module.",
+ "devDependencies": {
+ "babel": "^5.4.3",
+ "chai": "^2.3.0",
+ "coco": "^0.9.1",
+ "coffee-script": "^1.9.2",
+ "earlgrey": "0.0.9",
+ "iced-coffee-script": "^1.8.0-d",
+ "interpret": "^0.6.1",
+ "json5": "^0.4.0",
+ "livescript": "^1.4.0",
+ "mocha": "^2.2.5",
+ "node-jsx": "^0.13.3",
+ "require-csv": "0.0.1",
+ "require-ini": "0.0.1",
+ "require-uncached": "^1.0.2",
+ "require-xml": "0.0.1",
+ "require-yaml": "0.0.1",
+ "rimraf": "^2.3.4",
+ "semver": "^4.3.4",
+ "sinon": "^1.14.1",
+ "toml-require": "^1.0.1",
+ "typescript-register": "^1.1.0"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "85204b54dba82d5742e28c96756ef43af50e3384",
+ "tarball": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "gitHead": "1aafd85aac487171be71891b916c9136c620ac0e",
+ "homepage": "https://github.com/tkellen/node-rechoir",
+ "keywords": [
+ "require",
+ "cjsx",
+ "co",
+ "coco",
+ "coffee-script",
+ "coffee",
+ "coffee.md",
+ "csv",
+ "earlgrey",
+ "es",
+ "es6",
+ "iced",
+ "iced.md",
+ "iced-coffee-script",
+ "ini",
+ "js",
+ "json",
+ "json5",
+ "jsx",
+ "react",
+ "litcoffee",
+ "liticed",
+ "ls",
+ "livescript",
+ "toml",
+ "ts",
+ "typescript",
+ "xml",
+ "yaml",
+ "yml"
+ ],
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://github.com/tkellen/node-rechoir/blob/master/LICENSE"
+ }
+ ],
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "tkellen",
+ "email": "tyler@sleekcode.net"
+ },
+ {
+ "name": "phated",
+ "email": "blaine@iceddev.com"
+ }
+ ],
+ "name": "rechoir",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/tkellen/node-rechoir.git"
+ },
+ "scripts": {
+ "test": "mocha -R spec test/index.js"
+ },
+ "version": "0.6.2"
+}
diff --git a/tools/eslint/node_modules/require-uncached/index.js b/tools/eslint/node_modules/require-uncached/index.js
index eaabd49c3f..63dfada3ec 100644
--- a/tools/eslint/node_modules/require-uncached/index.js
+++ b/tools/eslint/node_modules/require-uncached/index.js
@@ -9,10 +9,21 @@ module.exports = function (moduleId) {
}
var filePath = resolveFrom(path.dirname(callerPath()), moduleId);
- var tmp = require.cache[filePath];
+
+ // delete itself from module parent
+ if (require.cache[filePath] && require.cache[filePath].parent) {
+ var i = require.cache[filePath].parent.children.length;
+
+ while (i--) {
+ if (require.cache[filePath].parent.children[i].id === filePath) {
+ require.cache[filePath].parent.children.splice(i, 1);
+ }
+ }
+ }
+
+ // delete module from cache
delete require.cache[filePath];
- var ret = require(filePath);
- require.cache[filePath] = tmp;
- return ret;
+ // return fresh module
+ return require(filePath);
};
diff --git a/tools/eslint/node_modules/require-uncached/license b/tools/eslint/node_modules/require-uncached/license
new file mode 100644
index 0000000000..654d0bfe94
--- /dev/null
+++ b/tools/eslint/node_modules/require-uncached/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/tools/eslint/node_modules/require-uncached/package.json b/tools/eslint/node_modules/require-uncached/package.json
index 053455e738..1b635e64fb 100644
--- a/tools/eslint/node_modules/require-uncached/package.json
+++ b/tools/eslint/node_modules/require-uncached/package.json
@@ -14,14 +14,19 @@
]
],
"_from": "require-uncached@>=1.0.2 <2.0.0",
- "_id": "require-uncached@1.0.2",
+ "_id": "require-uncached@1.0.3",
"_inCache": true,
"_location": "/require-uncached",
+ "_nodeVersion": "4.6.1",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/require-uncached-1.0.3.tgz_1478234613915_0.2802360118366778"
+ },
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "1.4.9",
+ "_npmVersion": "2.15.9",
"_phantomChildren": {},
"_requested": {
"raw": "require-uncached@^1.0.2",
@@ -35,15 +40,15 @@
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz",
- "_shasum": "67dad3b733089e77030124678a459589faf6a7ec",
+ "_resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "_shasum": "4e0d56d6c9662fd31e43011c4b95aa49955421d3",
"_shrinkwrap": null,
"_spec": "require-uncached@^1.0.2",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
+ "url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/require-uncached/issues"
@@ -54,12 +59,14 @@
},
"description": "Require a module bypassing the cache",
"devDependencies": {
- "ava": "0.0.3"
+ "ava": "*",
+ "heapdump": "^0.3.7",
+ "xo": "^0.16.0"
},
"directories": {},
"dist": {
- "shasum": "67dad3b733089e77030124678a459589faf6a7ec",
- "tarball": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz"
+ "shasum": "4e0d56d6c9662fd31e43011c4b95aa49955421d3",
+ "tarball": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz"
},
"engines": {
"node": ">=0.10.0"
@@ -67,7 +74,8 @@
"files": [
"index.js"
],
- "homepage": "https://github.com/sindresorhus/require-uncached",
+ "gitHead": "c56e296e0028357629ea27c61c591c67e818db5f",
+ "homepage": "https://github.com/sindresorhus/require-uncached#readme",
"keywords": [
"require",
"cache",
@@ -89,10 +97,16 @@
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
- "url": "git://github.com/sindresorhus/require-uncached.git"
+ "url": "git+https://github.com/sindresorhus/require-uncached.git"
},
"scripts": {
- "test": "node test.js"
+ "heapdump": "node heapdump.js",
+ "test": "xo && ava"
},
- "version": "1.0.2"
+ "version": "1.0.3",
+ "xo": {
+ "rules": {
+ "import/no-dynamic-require": "off"
+ }
+ }
}
diff --git a/tools/eslint/node_modules/require-uncached/readme.md b/tools/eslint/node_modules/require-uncached/readme.md
index 13104be14a..baa6cc2b39 100644
--- a/tools/eslint/node_modules/require-uncached/readme.md
+++ b/tools/eslint/node_modules/require-uncached/readme.md
@@ -1,13 +1,13 @@
# require-uncached [![Build Status](https://travis-ci.org/sindresorhus/require-uncached.svg?branch=master)](https://travis-ci.org/sindresorhus/require-uncached)
-> Require a module bypassing the [cache](http://nodejs.org/api/modules.html#modules_caching)
+> Require a module bypassing the [cache](https://nodejs.org/api/modules.html#modules_caching)
Useful for testing purposes when you need to freshly require a module.
## Install
-```sh
+```
$ npm install --save require-uncached
```
@@ -16,14 +16,12 @@ $ npm install --save require-uncached
```js
// foo.js
-var i = 0;
-module.exports = function () {
- return ++i;
-};
+let i = 0;
+module.exports = () => ++i;
```
```js
-var requireUncached = require('require-uncached');
+const requireUncached = require('require-uncached');
require('./foo')();
//=> 1
@@ -39,6 +37,11 @@ requireUncached('./foo')();
```
+## Related
+
+- [clear-require](https://github.com/sindresorhus/clear-require) - Clear a module from the require cache
+
+
## License
-MIT © [Sindre Sorhus](http://sindresorhus.com)
+MIT © [Sindre Sorhus](https://sindresorhus.com)
diff --git a/tools/eslint/node_modules/ms/LICENSE b/tools/eslint/node_modules/resolve/LICENSE
index 6c07561b62..ee27ba4b44 100644
--- a/tools/eslint/node_modules/ms/LICENSE
+++ b/tools/eslint/node_modules/resolve/LICENSE
@@ -1,6 +1,4 @@
-(The MIT License)
-
-Copyright (c) 2014 Guillermo Rauch <rauchg@gmail.com>
+This software is released under the MIT license:
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
diff --git a/tools/eslint/node_modules/resolve/index.js b/tools/eslint/node_modules/resolve/index.js
new file mode 100644
index 0000000000..51f194b4ca
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/index.js
@@ -0,0 +1,5 @@
+var core = require('./lib/core');
+exports = module.exports = require('./lib/async');
+exports.core = core;
+exports.isCore = function (x) { return core[x] };
+exports.sync = require('./lib/sync');
diff --git a/tools/eslint/node_modules/resolve/lib/async.js b/tools/eslint/node_modules/resolve/lib/async.js
new file mode 100644
index 0000000000..ef99946f00
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/async.js
@@ -0,0 +1,193 @@
+var core = require('./core');
+var fs = require('fs');
+var path = require('path');
+var caller = require('./caller.js');
+var nodeModulesPaths = require('./node-modules-paths.js');
+var splitRe = process.platform === 'win32' ? /[\/\\]/ : /\//;
+
+module.exports = function resolve (x, opts, cb) {
+ if (typeof opts === 'function') {
+ cb = opts;
+ opts = {};
+ }
+ if (!opts) opts = {};
+ if (typeof x !== 'string') {
+ var err = new TypeError('path must be a string');
+ return process.nextTick(function () {
+ cb(err);
+ });
+ }
+
+ var isFile = opts.isFile || function (file, cb) {
+ fs.stat(file, function (err, stat) {
+ if (err && err.code === 'ENOENT') cb(null, false)
+ else if (err) cb(err)
+ else cb(null, stat.isFile() || stat.isFIFO())
+ });
+ };
+ var readFile = opts.readFile || fs.readFile;
+
+ var extensions = opts.extensions || [ '.js' ];
+ var y = opts.basedir || path.dirname(caller());
+
+ opts.paths = opts.paths || [];
+
+ if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(x)) {
+ var res = path.resolve(y, x);
+ if (x === '..') res += '/';
+ if (/\/$/.test(x) && res === y) {
+ loadAsDirectory(res, opts.package, onfile);
+ }
+ else loadAsFile(res, opts.package, onfile);
+ }
+ else loadNodeModules(x, y, function (err, n, pkg) {
+ if (err) cb(err)
+ else if (n) cb(null, n, pkg)
+ else if (core[x]) return cb(null, x);
+ else cb(new Error("Cannot find module '" + x + "' from '" + y + "'"))
+ });
+
+ function onfile (err, m, pkg) {
+ if (err) cb(err)
+ else if (m) cb(null, m, pkg)
+ else loadAsDirectory(res, function (err, d, pkg) {
+ if (err) cb(err)
+ else if (d) cb(null, d, pkg)
+ else cb(new Error("Cannot find module '" + x + "' from '" + y + "'"))
+ })
+ }
+
+ function loadAsFile (x, pkg, cb) {
+ if (typeof pkg === 'function') {
+ cb = pkg;
+ pkg = undefined;
+ }
+
+ var exts = [''].concat(extensions);
+ load(exts, x, pkg)
+
+ function load (exts, x, pkg) {
+ if (exts.length === 0) return cb(null, undefined, pkg);
+ var file = x + exts[0];
+
+ if (pkg) onpkg(null, pkg)
+ else loadpkg(path.dirname(file), onpkg);
+
+ function onpkg (err, pkg_, dir) {
+ pkg = pkg_;
+ if (err) return cb(err)
+ if (dir && pkg && opts.pathFilter) {
+ var rfile = path.relative(dir, file);
+ var rel = rfile.slice(0, rfile.length - exts[0].length);
+ var r = opts.pathFilter(pkg, x, rel);
+ if (r) return load(
+ [''].concat(extensions.slice()),
+ path.resolve(dir, r),
+ pkg
+ );
+ }
+ isFile(file, onex);
+ }
+ function onex (err, ex) {
+ if (err) cb(err)
+ else if (!ex) load(exts.slice(1), x, pkg)
+ else cb(null, file, pkg)
+ }
+ }
+ }
+
+ function loadpkg (dir, cb) {
+ if (dir === '' || dir === '/') return cb(null);
+ if (process.platform === 'win32' && /^\w:[\\\/]*$/.test(dir)) {
+ return cb(null);
+ }
+ if (/[\\\/]node_modules[\\\/]*$/.test(dir)) return cb(null);
+
+ var pkgfile = path.join(dir, 'package.json');
+ isFile(pkgfile, function (err, ex) {
+ // on err, ex is false
+ if (!ex) return loadpkg(
+ path.dirname(dir), cb
+ );
+
+ readFile(pkgfile, function (err, body) {
+ if (err) cb(err);
+ try { var pkg = JSON.parse(body) }
+ catch (err) {}
+
+ if (pkg && opts.packageFilter) {
+ pkg = opts.packageFilter(pkg, pkgfile);
+ }
+ cb(null, pkg, dir);
+ });
+ });
+ }
+
+ function loadAsDirectory (x, fpkg, cb) {
+ if (typeof fpkg === 'function') {
+ cb = fpkg;
+ fpkg = opts.package;
+ }
+
+ var pkgfile = path.join(x, '/package.json');
+ isFile(pkgfile, function (err, ex) {
+ if (err) return cb(err);
+ if (!ex) return loadAsFile(path.join(x, '/index'), fpkg, cb);
+
+ readFile(pkgfile, function (err, body) {
+ if (err) return cb(err);
+ try {
+ var pkg = JSON.parse(body);
+ }
+ catch (err) {}
+
+ if (opts.packageFilter) {
+ pkg = opts.packageFilter(pkg, pkgfile);
+ }
+
+ if (pkg.main) {
+ if (pkg.main === '.' || pkg.main === './'){
+ pkg.main = 'index'
+ }
+ loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) {
+ if (err) return cb(err);
+ if (m) return cb(null, m, pkg);
+ if (!pkg) return loadAsFile(path.join(x, '/index'), pkg, cb);
+
+ var dir = path.resolve(x, pkg.main);
+ loadAsDirectory(dir, pkg, function (err, n, pkg) {
+ if (err) return cb(err);
+ if (n) return cb(null, n, pkg);
+ loadAsFile(path.join(x, '/index'), pkg, cb);
+ });
+ });
+ return;
+ }
+
+ loadAsFile(path.join(x, '/index'), pkg, cb);
+ });
+ });
+ }
+
+ function loadNodeModules (x, start, cb) {
+ (function process (dirs) {
+ if (dirs.length === 0) return cb(null, undefined);
+ var dir = dirs[0];
+
+ var file = path.join(dir, '/', x);
+ loadAsFile(file, undefined, onfile);
+
+ function onfile (err, m, pkg) {
+ if (err) return cb(err);
+ if (m) return cb(null, m, pkg);
+ loadAsDirectory(path.join(dir, '/', x), undefined, ondir);
+ }
+
+ function ondir (err, n, pkg) {
+ if (err) return cb(err);
+ if (n) return cb(null, n, pkg);
+ process(dirs.slice(1));
+ }
+ })(nodeModulesPaths(start, opts));
+ }
+};
diff --git a/tools/eslint/node_modules/resolve/lib/caller.js b/tools/eslint/node_modules/resolve/lib/caller.js
new file mode 100644
index 0000000000..5536549b04
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/caller.js
@@ -0,0 +1,8 @@
+module.exports = function () {
+ // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
+ var origPrepareStackTrace = Error.prepareStackTrace;
+ Error.prepareStackTrace = function (_, stack) { return stack };
+ var stack = (new Error()).stack;
+ Error.prepareStackTrace = origPrepareStackTrace;
+ return stack[2].getFileName();
+};
diff --git a/tools/eslint/node_modules/resolve/lib/core.js b/tools/eslint/node_modules/resolve/lib/core.js
new file mode 100644
index 0000000000..6adbbce9ea
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/core.js
@@ -0,0 +1,22 @@
+var current = process.versions.node.split('.');
+
+function versionIncluded(version) {
+ if (version === '*') return true;
+ var versionParts = version.split('.');
+ for (var i = 0; i < 3; ++i) {
+ if ((current[i] || 0) >= (versionParts[i] || 0)) return true;
+ }
+ return false;
+}
+
+var data = require('./core.json');
+
+var core = {};
+for (var version in data) {
+ if (Object.prototype.hasOwnProperty.call(data, version) && versionIncluded(version)) {
+ for (var i = 0; i < data[version].length; ++i) {
+ core[data[version][i]] = true;
+ }
+ }
+}
+module.exports = core;
diff --git a/tools/eslint/node_modules/resolve/lib/core.json b/tools/eslint/node_modules/resolve/lib/core.json
new file mode 100644
index 0000000000..843844ebf8
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/core.json
@@ -0,0 +1,47 @@
+{
+ "*": [
+ "assert",
+ "buffer_ieee754",
+ "buffer",
+ "child_process",
+ "cluster",
+ "console",
+ "constants",
+ "crypto",
+ "_debugger",
+ "dgram",
+ "dns",
+ "domain",
+ "events",
+ "freelist",
+ "fs",
+ "http",
+ "https",
+ "_linklist",
+ "module",
+ "net",
+ "os",
+ "path",
+ "punycode",
+ "querystring",
+ "readline",
+ "repl",
+ "stream",
+ "string_decoder",
+ "sys",
+ "timers",
+ "tls",
+ "tty",
+ "url",
+ "util",
+ "vm",
+ "zlib"
+ ],
+ "0.11": [
+ "_http_server"
+ ],
+ "1.0": [
+ "process",
+ "v8"
+ ]
+}
diff --git a/tools/eslint/node_modules/resolve/lib/node-modules-paths.js b/tools/eslint/node_modules/resolve/lib/node-modules-paths.js
new file mode 100644
index 0000000000..ce0a0d9f2f
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/node-modules-paths.js
@@ -0,0 +1,38 @@
+var path = require('path');
+
+module.exports = function (start, opts) {
+ var modules = opts.moduleDirectory
+ ? [].concat(opts.moduleDirectory)
+ : ['node_modules']
+ ;
+
+ // ensure that `start` is an absolute path at this point,
+ // resolving against the process' current working directory
+ start = path.resolve(start);
+
+ var prefix = '/';
+ if (/^([A-Za-z]:)/.test(start)) {
+ prefix = '';
+ } else if (/^\\\\/.test(start)) {
+ prefix = '\\\\';
+ }
+
+ var splitRe = process.platform === 'win32' ? /[\/\\]/ : /\/+/;
+
+ var parts = start.split(splitRe);
+
+ var dirs = [];
+ for (var i = parts.length - 1; i >= 0; i--) {
+ if (modules.indexOf(parts[i]) !== -1) continue;
+ dirs = dirs.concat(modules.map(function(module_dir) {
+ return prefix + path.join(
+ path.join.apply(path, parts.slice(0, i + 1)),
+ module_dir
+ );
+ }));
+ }
+ if (process.platform === 'win32'){
+ dirs[dirs.length-1] = dirs[dirs.length-1].replace(":", ":\\");
+ }
+ return dirs.concat(opts.paths);
+}
diff --git a/tools/eslint/node_modules/resolve/lib/sync.js b/tools/eslint/node_modules/resolve/lib/sync.js
new file mode 100644
index 0000000000..71ae939ccf
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/lib/sync.js
@@ -0,0 +1,84 @@
+var core = require('./core');
+var fs = require('fs');
+var path = require('path');
+var caller = require('./caller.js');
+var nodeModulesPaths = require('./node-modules-paths.js');
+
+module.exports = function (x, opts) {
+ if (!opts) opts = {};
+ var isFile = opts.isFile || function (file) {
+ try { var stat = fs.statSync(file) }
+ catch (err) {
+ if (err && err.code === 'ENOENT') return false;
+ throw err;
+ }
+ return stat.isFile() || stat.isFIFO();
+ };
+ var readFileSync = opts.readFileSync || fs.readFileSync;
+
+ var extensions = opts.extensions || [ '.js' ];
+ var y = opts.basedir || path.dirname(caller());
+
+ opts.paths = opts.paths || [];
+
+ if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[\\\/])/.test(x)) {
+ var res = path.resolve(y, x);
+ if (x === '..') res += '/';
+ var m = loadAsFileSync(res) || loadAsDirectorySync(res);
+ if (m) return m;
+ } else {
+ var n = loadNodeModulesSync(x, y);
+ if (n) return n;
+ }
+
+ if (core[x]) return x;
+
+ throw new Error("Cannot find module '" + x + "' from '" + y + "'");
+
+ function loadAsFileSync (x) {
+ if (isFile(x)) {
+ return x;
+ }
+
+ for (var i = 0; i < extensions.length; i++) {
+ var file = x + extensions[i];
+ if (isFile(file)) {
+ return file;
+ }
+ }
+ }
+
+ function loadAsDirectorySync (x) {
+ var pkgfile = path.join(x, '/package.json');
+ if (isFile(pkgfile)) {
+ var body = readFileSync(pkgfile, 'utf8');
+ try {
+ var pkg = JSON.parse(body);
+ if (opts.packageFilter) {
+ pkg = opts.packageFilter(pkg, x);
+ }
+
+ if (pkg.main) {
+ var m = loadAsFileSync(path.resolve(x, pkg.main));
+ if (m) return m;
+ var n = loadAsDirectorySync(path.resolve(x, pkg.main));
+ if (n) return n;
+ }
+ }
+ catch (err) {}
+ }
+
+ return loadAsFileSync(path.join( x, '/index'));
+ }
+
+ function loadNodeModulesSync (x, start) {
+ var dirs = nodeModulesPaths(start, opts);
+ for (var i = 0; i < dirs.length; i++) {
+ var dir = dirs[i];
+ var m = loadAsFileSync(path.join( dir, '/', x));
+ if (m) return m;
+ var n = loadAsDirectorySync(path.join( dir, '/', x ));
+ if (n) return n;
+ }
+ }
+};
diff --git a/tools/eslint/node_modules/resolve/package.json b/tools/eslint/node_modules/resolve/package.json
new file mode 100644
index 0000000000..1497e7a15e
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/package.json
@@ -0,0 +1,101 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "resolve@^1.1.6",
+ "scope": null,
+ "escapedName": "resolve",
+ "name": "resolve",
+ "rawSpec": "^1.1.6",
+ "spec": ">=1.1.6 <2.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/rechoir"
+ ]
+ ],
+ "_from": "resolve@>=1.1.6 <2.0.0",
+ "_id": "resolve@1.2.0",
+ "_inCache": true,
+ "_location": "/resolve",
+ "_nodeVersion": "7.2.0",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/resolve-1.2.0.tgz_1481676943045_0.8319015400484204"
+ },
+ "_npmUser": {
+ "name": "ljharb",
+ "email": "ljharb@gmail.com"
+ },
+ "_npmVersion": "3.10.9",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "resolve@^1.1.6",
+ "scope": null,
+ "escapedName": "resolve",
+ "name": "resolve",
+ "rawSpec": "^1.1.6",
+ "spec": ">=1.1.6 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/rechoir"
+ ],
+ "_resolved": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
+ "_shasum": "9589c3f2f6149d1417a40becc1663db6ec6bc26c",
+ "_shrinkwrap": null,
+ "_spec": "resolve@^1.1.6",
+ "_where": "/Users/trott/io.js/tools/node_modules/rechoir",
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/node-resolve/issues"
+ },
+ "dependencies": {},
+ "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
+ "devDependencies": {
+ "safe-publish-latest": "^1.1.1",
+ "tap": "0.4.13",
+ "tape": "^4.6.3"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "9589c3f2f6149d1417a40becc1663db6ec6bc26c",
+ "tarball": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz"
+ },
+ "gitHead": "8e4a4659f4120c145e2f12bb01cf4ddad61730b3",
+ "homepage": "https://github.com/substack/node-resolve#readme",
+ "keywords": [
+ "resolve",
+ "require",
+ "node",
+ "module"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "ljharb",
+ "email": "ljharb@gmail.com"
+ },
+ {
+ "name": "substack",
+ "email": "substack@gmail.com"
+ }
+ ],
+ "name": "resolve",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/node-resolve.git"
+ },
+ "scripts": {
+ "prepublish": "! type safe-publish-latest >/dev/null 2>&1 || safe-publish-latest",
+ "test": "npm run --silent tests-only",
+ "tests-only": "tape test/*.js"
+ },
+ "version": "1.2.0"
+}
diff --git a/tools/eslint/node_modules/resolve/readme.markdown b/tools/eslint/node_modules/resolve/readme.markdown
new file mode 100644
index 0000000000..db0d69f878
--- /dev/null
+++ b/tools/eslint/node_modules/resolve/readme.markdown
@@ -0,0 +1,148 @@
+# resolve
+
+implements the [node `require.resolve()`
+algorithm](https://nodejs.org/api/modules.html#modules_all_together)
+such that you can `require.resolve()` on behalf of a file asynchronously and
+synchronously
+
+[![build status](https://secure.travis-ci.org/substack/node-resolve.png)](http://travis-ci.org/substack/node-resolve)
+
+# example
+
+asynchronously resolve:
+
+``` js
+var resolve = require('resolve');
+resolve('tap', { basedir: __dirname }, function (err, res) {
+ if (err) console.error(err)
+ else console.log(res)
+});
+```
+
+```
+$ node example/async.js
+/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
+```
+
+synchronously resolve:
+
+``` js
+var resolve = require('resolve');
+var res = resolve.sync('tap', { basedir: __dirname });
+console.log(res);
+```
+
+```
+$ node example/sync.js
+/home/substack/projects/node-resolve/node_modules/tap/lib/main.js
+```
+
+# methods
+
+``` js
+var resolve = require('resolve')
+```
+
+## resolve(id, opts={}, cb)
+
+Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`.
+
+options are:
+
+* opts.basedir - directory to begin resolving from
+
+* opts.package - `package.json` data applicable to the module being loaded
+
+* opts.extensions - array of file extensions to search in order
+
+* opts.readFile - how to read files asynchronously
+
+* opts.isFile - function to asynchronously test whether a file exists
+
+* opts.packageFilter - transform the parsed package.json contents before looking
+at the "main" field
+
+* opts.pathFilter(pkg, path, relativePath) - transform a path within a package
+ * pkg - package data
+ * path - the path being resolved
+ * relativePath - the path relative from the package.json location
+ * returns - a relative path that will be joined from the package.json location
+
+* opts.paths - require.paths array to use if nothing is found on the normal
+node_modules recursive walk (probably don't use this)
+
+* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+
+default `opts` values:
+
+``` javascript
+{
+ paths: [],
+ basedir: __dirname,
+ extensions: [ '.js' ],
+ readFile: fs.readFile,
+ isFile: function (file, cb) {
+ fs.stat(file, function (err, stat) {
+ if (err && err.code === 'ENOENT') cb(null, false)
+ else if (err) cb(err)
+ else cb(null, stat.isFile())
+ });
+ },
+ moduleDirectory: 'node_modules'
+}
+```
+
+## resolve.sync(id, opts)
+
+Synchronously resolve the module path string `id`, returning the result and
+throwing an error when `id` can't be resolved.
+
+options are:
+
+* opts.basedir - directory to begin resolving from
+
+* opts.extensions - array of file extensions to search in order
+
+* opts.readFile - how to read files synchronously
+
+* opts.isFile - function to synchronously test whether a file exists
+
+* `opts.packageFilter(pkg, pkgfile)` - transform the parsed package.json
+* contents before looking at the "main" field
+
+* opts.paths - require.paths array to use if nothing is found on the normal
+node_modules recursive walk (probably don't use this)
+
+* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"`
+
+default `opts` values:
+
+``` javascript
+{
+ paths: [],
+ basedir: __dirname,
+ extensions: [ '.js' ],
+ readFileSync: fs.readFileSync,
+ isFile: function (file) {
+ try { return fs.statSync(file).isFile() }
+ catch (e) { return false }
+ },
+ moduleDirectory: 'node_modules'
+}
+````
+
+## resolve.isCore(pkg)
+
+Return whether a package is in core.
+
+# install
+
+With [npm](https://npmjs.org) do:
+
+```
+npm install resolve
+```
+
+# license
+
+MIT
diff --git a/tools/eslint/node_modules/shelljs/.eslintrc.json b/tools/eslint/node_modules/shelljs/.eslintrc.json
new file mode 100644
index 0000000000..4f98ed05f6
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/.eslintrc.json
@@ -0,0 +1,32 @@
+{
+ "env": {
+ "node": true
+ },
+ "extends": "airbnb-base/legacy",
+ "rules": {
+ "comma-dangle": 0,
+ "global-require": 0,
+ "vars-on-top": 0,
+ "spaced-comment": [2, "always", { "markers": ["@", "@include"], "exceptions": ["@"] }],
+ "no-param-reassign": 0,
+ "no-console": 0,
+ "curly": [2, "multi-line"],
+ "func-names": 0,
+ "quote-props": 0,
+ "no-underscore-dangle": 0,
+ "max-len": 0,
+ "no-use-before-define": 0,
+ "no-empty": 0,
+ "no-else-return": 0,
+ "no-throw-literal": 0,
+ "newline-per-chained-call": 0,
+ "consistent-return": 0,
+ "no-mixed-operators": 0,
+ "no-prototype-builtins": 0,
+ "new-cap": [2, {
+ "capIsNewExceptions": [
+ "ShellString"
+ ]}
+ ]
+ }
+}
diff --git a/tools/eslint/node_modules/shelljs/README.md b/tools/eslint/node_modules/shelljs/README.md
index d6dcb63408..f18c41c234 100644
--- a/tools/eslint/node_modules/shelljs/README.md
+++ b/tools/eslint/node_modules/shelljs/README.md
@@ -1,10 +1,17 @@
# ShellJS - Unix shell commands for Node.js
-[![Join the chat at https://gitter.im/shelljs/shelljs](https://badges.gitter.im/shelljs/shelljs.svg)](https://gitter.im/shelljs/shelljs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-[![Build Status](https://travis-ci.org/shelljs/shelljs.svg?branch=master)](http://travis-ci.org/shelljs/shelljs)
-[![Build status](https://ci.appveyor.com/api/projects/status/42txr0s3ux5wbumv/branch/master?svg=true)](https://ci.appveyor.com/project/shelljs/shelljs)
+[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square)](https://gitter.im/shelljs/shelljs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Travis](https://img.shields.io/travis/shelljs/shelljs/master.svg?style=flat-square&label=unix)](https://travis-ci.org/shelljs/shelljs)
+[![AppVeyor](https://img.shields.io/appveyor/ci/shelljs/shelljs/master.svg?style=flat-square&label=windows)](https://ci.appveyor.com/project/shelljs/shelljs/branch/master)
+[![npm version](https://img.shields.io/npm/v/shelljs.svg?style=flat-square)](https://www.npmjs.com/package/shelljs)
+[![npm downloads](https://img.shields.io/npm/dm/shelljs.svg?style=flat-square)](https://www.npmjs.com/package/shelljs)
-ShellJS is a portable **(Windows/Linux/OS X)** implementation of Unix shell commands on top of the Node.js API. You can use it to eliminate your shell script's dependency on Unix while still keeping its familiar and powerful commands. You can also install it globally so you can run it from outside Node projects - say goodbye to those gnarly Bash scripts!
+ShellJS is a portable **(Windows/Linux/OS X)** implementation of Unix shell commands on top of the
+Node.js API. You can use it to eliminate your shell script's dependency on Unix while still keeping
+its familiar and powerful commands. You can also install it globally so you can run it from outside
+Node projects - say goodbye to those gnarly Bash scripts!
+
+ShellJS supports node `v0.11`, `v0.12`, `v4`, `v5`, `v6`, and all releases of iojs.
The project is [unit-tested](http://travis-ci.org/shelljs/shelljs) and battled-tested in projects like:
@@ -14,11 +21,40 @@ The project is [unit-tested](http://travis-ci.org/shelljs/shelljs) and battled-t
+ [Zepto](http://zeptojs.com) - jQuery-compatible JavaScript library for modern browsers
+ [Yeoman](http://yeoman.io/) - Web application stack and development tool
+ [Deployd.com](http://deployd.com) - Open source PaaS for quick API backend generation
-
-and [many more](https://npmjs.org/browse/depended/shelljs).
++ And [many more](https://npmjs.org/browse/depended/shelljs).
If you have feedback, suggestions, or need help, feel free to post in our [issue tracker](https://github.com/shelljs/shelljs/issues).
+Think ShellJS is cool? Check out some related projects (like
+[cash](https://github.com/dthree/cash)--a javascript-based POSIX shell)
+in our [Wiki page](https://github.com/shelljs/shelljs/wiki)!
+
+Upgrading from an older version? Check out our [breaking
+changes](https://github.com/shelljs/shelljs/wiki/Breaking-Changes) page to see
+what changes to watch out for while upgrading.
+
+## Command line use
+
+If you just want cross platform UNIX commands, checkout our new project
+[shelljs/shx](https://github.com/shelljs/shx), a utility to expose `shelljs` to
+the command line.
+
+For example:
+
+```
+$ shx mkdir -p foo
+$ shx touch foo/bar.txt
+$ shx rm -rf foo
+```
+
+## A quick note about the docs
+
+For documentation on all the latest features, check out our
+[README](https://github.com/shelljs/shelljs). To read docs that are consistent
+with the latest release, check out [the npm
+page](https://www.npmjs.com/package/shelljs) or
+[shelljs.org](http://documentup.com/shelljs/shelljs).
+
## Installing
Via npm:
@@ -47,14 +83,14 @@ if (!which('git')) {
}
// Copy files to release dir
-mkdir('-p', 'out/Release');
-cp('-R', 'stuff/*', 'out/Release');
+rm('-rf', 'out/Release');
+cp('-R', 'stuff/', 'out/Release');
// Replace macros in each .js file
cd('lib');
ls('*.js').forEach(function(file) {
sed('-i', 'BUILD_VERSION', 'v0.1.2', file);
- sed('-i', /.*REMOVE_THIS_LINE.*\n/, '', file);
+ sed('-i', /^.*REMOVE_THIS_LINE.*$/, '', file);
sed('-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file);
});
cd('..');
@@ -78,14 +114,14 @@ if not which 'git'
exit 1
# Copy files to release dir
-mkdir '-p', 'out/Release'
-cp '-R', 'stuff/*', 'out/Release'
+rm '-rf', 'out/Release'
+cp '-R', 'stuff/', 'out/Release'
# Replace macros in each .js file
cd 'lib'
for file in ls '*.js'
sed '-i', 'BUILD_VERSION', 'v0.1.2', file
- sed '-i', /.*REMOVE_THIS_LINE.*\n/, '', file
+ sed '-i', /^.*REMOVE_THIS_LINE.*$/, '', file
sed '-i', /.*REPLACE_LINE_WITH_MACRO.*\n/, cat('macro.js'), file
cd '..'
@@ -106,56 +142,6 @@ var shell = require('shelljs');
shell.echo('hello world');
```
-## Make tool
-
-A convenience script `shelljs/make` is also provided to mimic the behavior of a Unix Makefile.
-In this case all shell objects are global, and command line arguments will cause the script to
-execute only the corresponding function in the global `target` object. To avoid redundant calls,
-target functions are executed only once per script.
-
-Example:
-
-```javascript
-require('shelljs/make');
-
-target.all = function() {
- target.bundle();
- target.docs();
-};
-
-target.bundle = function() {
- cd(__dirname);
- mkdir('-p', 'build');
- cd('src');
- cat('*.js').to('../build/output.js');
-};
-
-target.docs = function() {
- cd(__dirname);
- mkdir('-p', 'docs');
- var files = ls('src/*.js');
- for(var i = 0; i < files.length; i++) {
- var text = grep('//@', files[i]); // extract special comments
- text = text.replace(/\/\/@/g, ''); // remove comment tags
- text.toEnd('docs/my_docs.md');
- }
-};
-```
-
-To run the target `all`, call the above script without arguments: `$ node make`. To run the target `docs`: `$ node make docs`.
-
-You can also pass arguments to your targets by using the `--` separator. For example, to pass `arg1` and `arg2` to a target `bundle`, do `$ node make bundle -- arg1 arg2`:
-
-```javascript
-require('shelljs/make');
-
-target.bundle = function(argsArray) {
- // argsArray = ['arg1', 'arg2']
- /* ... */
-}
-```
-
-
<!-- DO NOT MODIFY BEYOND THIS POINT - IT'S AUTOMATICALLY GENERATED -->
@@ -163,6 +149,11 @@ target.bundle = function(argsArray) {
All commands run synchronously, unless otherwise stated.
+All commands accept standard bash globbing characters (`*`, `?`, etc.),
+compatible with the [node glob module](https://github.com/isaacs/node-glob).
+
+For less-commonly used commands and features, please check out our [wiki
+page](https://github.com/shelljs/shelljs/wiki).
### cd([dir])
@@ -220,17 +211,21 @@ Available options:
+ `-f`: force (default behavior)
+ `-n`: no-clobber
-+ `-r, -R`: recursive
++ `-u`: only copy if source is newer than dest
++ `-r`, `-R`: recursive
++ `-L`: follow symlinks
++ `-P`: don't follow symlinks
Examples:
```javascript
cp('file1', 'dir1');
+cp('-R', 'path/to/dir/', '~/newCopy/');
cp('-Rf', '/tmp/*', '/usr/local/*', '/home/tmp');
cp('-Rf', ['/tmp/*', '/usr/local/*'], '/home/tmp'); // same as above
```
-Copies files. The wildcard `*` is accepted.
+Copies files.
### rm([options,] file [, file ...])
@@ -248,7 +243,7 @@ rm('some_file.txt', 'another_file.txt');
rm(['some_file.txt', 'another_file.txt']); // same as above
```
-Removes files. The wildcard `*` is accepted.
+Removes files.
### mv([options ,] source [, source ...], dest')
@@ -266,7 +261,7 @@ mv('file1', 'file2', 'dir/');
mv(['file1', 'file2'], 'dir/'); // same as above
```
-Moves files. The wildcard `*` is accepted.
+Moves files.
### mkdir([options,] dir [, dir ...])
@@ -320,10 +315,44 @@ var str = cat(['file1', 'file2']); // same as above
Returns a string containing the given file, or a concatenated string
containing the files if more than one file is given (a new line character is
-introduced between each file). Wildcard `*` accepted.
+introduced between each file).
+
+
+### head([{'-n': \<num\>},] file [, file ...])
+### head([{'-n': \<num\>},] file_array)
+Available options:
+
++ `-n <num>`: Show the first `<num>` lines of the files
+
+Examples:
+
+```javascript
+var str = head({'-n': 1}, 'file*.txt');
+var str = head('file1', 'file2');
+var str = head(['file1', 'file2']); // same as above
+```
+
+Read the start of a file.
+
+
+### tail([{'-n': \<num\>},] file [, file ...])
+### tail([{'-n': \<num\>},] file_array)
+Available options:
+
++ `-n <num>`: Show the last `<num>` lines of the files
+
+Examples:
+
+```javascript
+var str = tail({'-n': 1}, 'file*.txt');
+var str = tail('file1', 'file2');
+var str = tail(['file1', 'file2']); // same as above
+```
+
+Read the end of a file.
-### 'string'.to(file)
+### ShellString.prototype.to(file)
Examples:
@@ -331,11 +360,12 @@ Examples:
cat('input.txt').to('output.txt');
```
-Analogous to the redirection operator `>` in Unix, but works with JavaScript strings (such as
-those returned by `cat`, `grep`, etc). _Like Unix redirections, `to()` will overwrite any existing file!_
+Analogous to the redirection operator `>` in Unix, but works with
+ShellStrings (such as those returned by `cat`, `grep`, etc). _Like Unix
+redirections, `to()` will overwrite any existing file!_
-### 'string'.toEnd(file)
+### ShellString.prototype.toEnd(file)
Examples:
@@ -343,8 +373,8 @@ Examples:
cat('input.txt').toEnd('output.txt');
```
-Analogous to the redirect-and-append operator `>>` in Unix, but works with JavaScript strings (such as
-those returned by `cat`, `grep`, etc).
+Analogous to the redirect-and-append operator `>>` in Unix, but works with
+ShellStrings (such as those returned by `cat`, `grep`, etc).
### sed([options,] search_regex, replacement, file [, file ...])
@@ -364,11 +394,48 @@ Reads an input string from `files` and performs a JavaScript `replace()` on the
using the given search regex and replacement string or function. Returns the new string after replacement.
+### sort([options,] file [, file ...])
+### sort([options,] file_array)
+Available options:
+
++ `-r`: Reverse the result of comparisons
++ `-n`: Compare according to numerical value
+
+Examples:
+
+```javascript
+sort('foo.txt', 'bar.txt');
+sort('-r', 'foo.txt');
+```
+
+Return the contents of the files, sorted line-by-line. Sorting multiple
+files mixes their content, just like unix sort does.
+
+
+### uniq([options,] [input, [output]])
+Available options:
+
++ `-i`: Ignore case while comparing
++ `-c`: Prefix lines by the number of occurrences
++ `-d`: Only print duplicate lines, one for each group of identical lines
+
+Examples:
+
+```javascript
+uniq('foo.txt');
+uniq('-i', 'foo.txt');
+uniq('-cd', 'foo.txt', 'bar.txt');
+```
+
+Filter adjacent matching lines from input
+
+
### grep([options,] regex_filter, file [, file ...])
### grep([options,] regex_filter, file_array)
Available options:
+ `-v`: Inverse the sense of the regex and print the lines not matching the criteria.
++ `-l`: Print only filenames of matching files
Examples:
@@ -378,7 +445,7 @@ grep('GLOBAL_VARIABLE', '*.js');
```
Reads input string from given files and returns a string containing all lines of the
-file that match the given `regex_filter`. Wildcard `*` accepted.
+file that match the given `regex_filter`.
### which(command)
@@ -394,7 +461,10 @@ Searches for `command` in the system's PATH. On Windows, this uses the
Returns string containing the absolute path to the command.
-### echo(string [, string ...])
+### echo([options,] string [, string ...])
+Available options:
+
++ `-e`: interpret backslash escapes (default)
Examples:
@@ -517,9 +587,13 @@ exec('some_long_running_process', function(code, stdout, stderr) {
```
Executes the given `command` _synchronously_, unless otherwise specified. When in synchronous
-mode returns the object `{ code:..., stdout:... , stderr:... }`, containing the program's
-`stdout`, `stderr`, and its exit `code`. Otherwise returns the child process object,
-and the `callback` gets the arguments `(code, stdout, stderr)`.
+mode, this returns a ShellString (compatible with ShellJS v0.6.x, which returns an object
+of the form `{ code:..., stdout:... , stderr:... }`). Otherwise, this returns the child process
+object, and the `callback` gets the arguments `(code, stdout, stderr)`.
+
+Not seeing the behavior you want? `exec()` runs everything through `sh`
+by default (or `cmd.exe` on Windows), which differs from `bash`. If you
+need bash-specific behavior, try out the `{shell: 'path/to/bash'}` option.
**Note:** For long-lived processes, it's best to run `exec()` asynchronously as
the current synchronous implementation uses a lot of CPU. This should be getting
@@ -553,7 +627,8 @@ Notable exceptions:
+ There is no "quiet" option since default behavior is to run silent.
-### touch([options,] file)
+### touch([options,] file [, file ...])
+### touch([options,] file_array)
Available options:
+ `-a`: Change only the access time
@@ -580,6 +655,7 @@ Available options:
+ `+/-e`: exit upon error (`config.fatal`)
+ `+/-v`: verbose: show all commands (`config.verbose`)
++ `+/-f`: disable filename expansion (globbing)
Examples:
@@ -607,14 +683,45 @@ Follows Python's [tempfile algorithm](http://docs.python.org/library/tempfile.ht
### error()
-Tests if error occurred in the last command. Returns `null` if no error occurred,
-otherwise returns string explaining the error
+Tests if error occurred in the last command. Returns a truthy value if an
+error returned and a falsy value otherwise.
+**Note**: do not rely on the
+return value to be an error message. If you need the last error message, use
+the `.stderr` attribute from the last command's return value instead.
+
+
+### ShellString(str)
+
+Examples:
+
+```javascript
+var foo = ShellString('hello world');
+```
+
+Turns a regular string into a string-like object similar to what each
+command returns. This has special methods, like `.to()` and `.toEnd()`
+
+
+### Pipes
+
+Examples:
+
+```javascript
+grep('foo', 'file1.txt', 'file2.txt').sed(/o/g, 'a').to('output.txt');
+echo('files with o\'s in the name:\n' + ls().grep('o'));
+cat('test.js').exec('node'); // pipe to exec() call
+```
+
+Commands can send their output to another command in a pipe-like fashion.
+`sed`, `grep`, `cat`, `exec`, `to`, and `toEnd` can appear on the right-hand
+side of a pipe. Pipes can be chained.
## Configuration
### config.silent
+
Example:
```javascript
@@ -629,19 +736,22 @@ Suppresses all command output if `true`, except for `echo()` calls.
Default is `false`.
### config.fatal
+
Example:
```javascript
require('shelljs/global');
config.fatal = true; // or set('-e');
-cp('this_file_does_not_exist', '/dev/null'); // dies here
+cp('this_file_does_not_exist', '/dev/null'); // throws Error here
/* more commands... */
```
-If `true` the script will die on errors. Default is `false`. This is
-analogous to Bash's `set -e`
+If `true` the script will throw a Javascript error when any shell.js
+command encounters an error. Default is `false`. This is analogous to
+Bash's `set -e`
### config.verbose
+
Example:
```javascript
@@ -656,3 +766,19 @@ Will print each command as follows:
cd dir/
ls subdir/
```
+
+### config.globOptions
+
+Example:
+
+```javascript
+config.globOptions = {nodir: true};
+```
+
+Use this value for calls to `glob.sync()` instead of the default options.
+
+## Team
+
+| [![Nate Fischer](https://avatars.githubusercontent.com/u/5801521?s=130)](https://github.com/nfischer) | [![Ari Porad](https://avatars1.githubusercontent.com/u/1817508?v=3&s=130)](http://github.com/ariporad) |
+|:---:|:---:|
+| [Nate Fischer](https://github.com/nfischer) | [Ari Porad](http://github.com/ariporad) |
diff --git a/tools/eslint/node_modules/shelljs/bin/shjs b/tools/eslint/node_modules/shelljs/bin/shjs
index aae3bc64ce..75ca58b9d9 100755
--- a/tools/eslint/node_modules/shelljs/bin/shjs
+++ b/tools/eslint/node_modules/shelljs/bin/shjs
@@ -32,24 +32,8 @@ for (var i = 0, l = args.length; i < l; i++) {
}
}
-if (scriptName.match(/\.coffee$/)) {
- //
- // CoffeeScript
- //
- if (which('coffee')) {
- exec('coffee "' + scriptName + '" ' + args.join(' '), function(code) {
- process.exit(code);
- });
- } else {
- console.log('ShellJS: CoffeeScript interpreter not found');
- console.log();
- process.exit(1);
- }
-} else {
- //
- // JavaScript
- //
- exec('node "' + scriptName + '" ' + args.join(' '), function(code) {
- process.exit(code);
- });
-}
+var path = require('path');
+var extensions = require('interpret').extensions;
+var rechoir = require('rechoir');
+rechoir.prepare(extensions, scriptName);
+require(require.resolve(path.resolve(process.cwd(), scriptName)));
diff --git a/tools/eslint/node_modules/shelljs/global.js b/tools/eslint/node_modules/shelljs/global.js
index 97f0033cc1..b232e66d5e 100644
--- a/tools/eslint/node_modules/shelljs/global.js
+++ b/tools/eslint/node_modules/shelljs/global.js
@@ -1,3 +1,12 @@
+/* eslint no-extend-native: 0 */
var shell = require('./shell.js');
-for (var cmd in shell)
+var common = require('./src/common');
+Object.keys(shell).forEach(function (cmd) {
global[cmd] = shell[cmd];
+});
+
+var _to = require('./src/to');
+String.prototype.to = common.wrap('to', _to);
+
+var _toEnd = require('./src/toEnd');
+String.prototype.toEnd = common.wrap('toEnd', _toEnd);
diff --git a/tools/eslint/node_modules/shelljs/package.json b/tools/eslint/node_modules/shelljs/package.json
index 5dc19b8f52..b6cfe9545d 100644
--- a/tools/eslint/node_modules/shelljs/package.json
+++ b/tools/eslint/node_modules/shelljs/package.json
@@ -2,53 +2,49 @@
"_args": [
[
{
- "raw": "shelljs@^0.6.0",
+ "raw": "shelljs@^0.7.5",
"scope": null,
"escapedName": "shelljs",
"name": "shelljs",
- "rawSpec": "^0.6.0",
- "spec": ">=0.6.0 <0.7.0",
+ "rawSpec": "^0.7.5",
+ "spec": ">=0.7.5 <0.8.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/eslint"
]
],
- "_from": "shelljs@>=0.6.0 <0.7.0",
- "_id": "shelljs@0.6.1",
+ "_from": "shelljs@>=0.7.5 <0.8.0",
+ "_id": "shelljs@0.7.5",
"_inCache": true,
"_location": "/shelljs",
- "_nodeVersion": "6.0.0",
+ "_nodeVersion": "6.7.0",
"_npmOperationalInternal": {
- "host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/shelljs-0.6.1.tgz_1470519555022_0.9348916830495"
+ "host": "packages-18-east.internal.npmjs.com",
+ "tmp": "tmp/shelljs-0.7.5.tgz_1477547417527_0.3151172921061516"
},
"_npmUser": {
"name": "nfischer",
"email": "ntfschr@gmail.com"
},
- "_npmVersion": "3.5.2",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
- "raw": "shelljs@^0.6.0",
+ "raw": "shelljs@^0.7.5",
"scope": null,
"escapedName": "shelljs",
"name": "shelljs",
- "rawSpec": "^0.6.0",
- "spec": ">=0.6.0 <0.7.0",
+ "rawSpec": "^0.7.5",
+ "spec": ">=0.7.5 <0.8.0",
"type": "range"
},
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz",
- "_shasum": "ec6211bed1920442088fe0f70b2837232ed2c8a8",
+ "_resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.5.tgz",
+ "_shasum": "2eef7a50a21e1ccf37da00df767ec69e30ad0675",
"_shrinkwrap": null,
- "_spec": "shelljs@^0.6.0",
+ "_spec": "shelljs@^0.7.5",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
- "author": {
- "name": "Artur Adib",
- "email": "arturadib@gmail.com"
- },
"bin": {
"shjs": "./bin/shjs"
},
@@ -63,26 +59,39 @@
},
{
"name": "Nate Fischer",
- "email": "ntfschr@gmail.com"
+ "email": "ntfschr@gmail.com",
+ "url": "https://github.com/nfischer"
}
],
- "dependencies": {},
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
"description": "Portable Unix shell commands for Node.js",
"devDependencies": {
"coffee-script": "^1.10.0",
- "jshint": "~2.1.11"
+ "eslint": "^2.0.0",
+ "eslint-config-airbnb-base": "^3.0.0",
+ "eslint-plugin-import": "^1.11.1",
+ "shelljs-changelog": "^0.2.0",
+ "shelljs-release": "^0.2.0",
+ "travis-check-changes": "^0.2.0"
},
"directories": {},
"dist": {
- "shasum": "ec6211bed1920442088fe0f70b2837232ed2c8a8",
- "tarball": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz"
+ "shasum": "2eef7a50a21e1ccf37da00df767ec69e30ad0675",
+ "tarball": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.5.tgz"
},
"engines": {
- "node": ">=0.10.0"
+ "iojs": "*",
+ "node": ">=0.11.0"
},
- "gitHead": "a5b9e2a64ffdf9f837d6ceb15d7f42221875542b",
+ "gitHead": "1a15022f2747d322d771dd7ae0c00840e469a52a",
"homepage": "http://github.com/shelljs/shelljs",
"keywords": [
+ "shelljs",
+ "bash",
"unix",
"shell",
"makefile",
@@ -114,7 +123,15 @@
"url": "git://github.com/shelljs/shelljs.git"
},
"scripts": {
+ "after-travis": "travis-check-changes",
+ "changelog": "shelljs-changelog",
+ "gendocs": "node scripts/generate-docs",
+ "lint": "eslint .",
+ "posttest": "npm run lint",
+ "release:major": "shelljs-release major",
+ "release:minor": "shelljs-release minor",
+ "release:patch": "shelljs-release patch",
"test": "node scripts/run-tests"
},
- "version": "0.6.1"
+ "version": "0.7.5"
}
diff --git a/tools/eslint/node_modules/shelljs/plugin.js b/tools/eslint/node_modules/shelljs/plugin.js
new file mode 100644
index 0000000000..f879ab320e
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/plugin.js
@@ -0,0 +1,16 @@
+// Various utilties exposed to plugins
+
+require('./shell'); // Create the ShellJS instance (mandatory)
+
+var common = require('./src/common');
+
+var exportedAttributes = [
+ 'error', // For signaling errors from within commands
+ 'parseOptions', // For custom option parsing
+ 'readFromPipe', // For commands with the .canReceivePipe attribute
+ 'register', // For registering plugins
+];
+
+exportedAttributes.forEach(function (attr) {
+ exports[attr] = common[attr];
+});
diff --git a/tools/eslint/node_modules/shelljs/scripts/generate-docs.js b/tools/eslint/node_modules/shelljs/scripts/generate-docs.js
index 3a31a91abd..f777c8ad26 100755
--- a/tools/eslint/node_modules/shelljs/scripts/generate-docs.js
+++ b/tools/eslint/node_modules/shelljs/scripts/generate-docs.js
@@ -1,5 +1,5 @@
#!/usr/bin/env node
-/* globals cat, cd, echo, grep, sed */
+/* globals cat, cd, echo, grep, sed, ShellString */
require('../global');
echo('Appending docs to README.md');
@@ -7,18 +7,19 @@ echo('Appending docs to README.md');
cd(__dirname + '/..');
// Extract docs from shell.js
-var docs = grep('//@', 'shell.js');
+var docs = grep('^//@', 'shell.js');
-docs = docs.replace(/\/\/\@include (.+)/g, function(match, path) {
- var file = path.match('.js$') ? path : path+'.js';
- return grep('//@', file);
+// Now extract docs from the appropriate src/*.js files
+docs = docs.replace(/\/\/@include (.+)/g, function (match, path) {
+ var file = path.match('.js$') ? path : path + '.js';
+ return grep('^//@', file);
});
// Remove '//@'
-docs = docs.replace(/\/\/\@ ?/g, '');
+docs = docs.replace(/\/\/@ ?/g, '');
// Wipe out the old docs
-cat('README.md').replace(/## Command reference(.|\n)*/, '## Command reference').to('README.md');
+ShellString(cat('README.md').replace(/## Command reference(.|\n)*\n## Team/, '## Command reference\n## Team')).to('README.md');
// Append new docs to README
sed('-i', /## Command reference/, '## Command reference\n\n' + docs, 'README.md');
diff --git a/tools/eslint/node_modules/shelljs/scripts/run-tests.js b/tools/eslint/node_modules/shelljs/scripts/run-tests.js
index e8e7ff2f87..99205623f9 100755
--- a/tools/eslint/node_modules/shelljs/scripts/run-tests.js
+++ b/tools/eslint/node_modules/shelljs/scripts/run-tests.js
@@ -1,55 +1,29 @@
#!/usr/bin/env node
-/* globals cd, echo, exec, exit, ls, pwd, test */
+/* globals cd, echo, exec, exit, ls */
require('../global');
-var common = require('../src/common');
var failed = false;
//
-// Lint
-//
-var JSHINT_BIN = 'node_modules/jshint/bin/jshint';
-cd(__dirname + '/..');
-
-if (!test('-f', JSHINT_BIN)) {
- echo('JSHint not found. Run `npm install` in the root dir first.');
- exit(1);
-}
-
-var jsfiles = common.expand([pwd() + '/*.js',
- pwd() + '/scripts/*.js',
- pwd() + '/src/*.js',
- pwd() + '/test/*.js'
- ]).join(' ');
-if (exec('node ' + pwd() + '/' + JSHINT_BIN + ' ' + jsfiles).code !== 0) {
- failed = true;
- echo('*** JSHINT FAILED! (return code != 0)');
- echo();
-} else {
- echo('All JSHint tests passed');
- echo();
-}
-
-//
// Unit tests
//
cd(__dirname + '/../test');
-ls('*.js').forEach(function(file) {
+ls('*.js').forEach(function (file) {
echo('Running test:', file);
- if (exec('node ' + file).code !== 123) { // 123 avoids false positives (e.g. premature exit)
+ if (exec(JSON.stringify(process.execPath) + ' ' + file).code !== 123) { // 123 avoids false positives (e.g. premature exit)
failed = true;
echo('*** TEST FAILED! (missing exit code "123")');
echo();
}
});
+echo();
+
if (failed) {
- echo();
echo('*******************************************************');
echo('WARNING: Some tests did not pass!');
echo('*******************************************************');
exit(1);
} else {
- echo();
echo('All tests passed.');
}
diff --git a/tools/eslint/node_modules/shelljs/shell.js b/tools/eslint/node_modules/shelljs/shell.js
index 93aff709a3..9e49ef5e79 100644
--- a/tools/eslint/node_modules/shelljs/shell.js
+++ b/tools/eslint/node_modules/shelljs/shell.js
@@ -8,86 +8,95 @@
var common = require('./src/common');
-
//@
//@ All commands run synchronously, unless otherwise stated.
+//@ All commands accept standard bash globbing characters (`*`, `?`, etc.),
+//@ compatible with the [node glob module](https://github.com/isaacs/node-glob).
+//@
+//@ For less-commonly used commands and features, please check out our [wiki
+//@ page](https://github.com/shelljs/shelljs/wiki).
//@
+// Boilerplate
+// -----------
+// Copy the code block below here & replace variables with appropiate values
+// ```
+// //@include ./src/fileName
+// var functionName = require('./src/fileName');
+// exports.nameOfCommand = common.wrap(nameOfCommand, functionName, {globStart: firstIndexToExpand});
+// ```
+//
+// The //@include includes the docs for that command
+//
+// firstIndexToExpand should usually be 1 (so, put {globStart: 1})
+// Increase this value if the command takes arguments that shouldn't be expanded
+// with wildcards, such as with the regexes for sed & grep
+
//@include ./src/cd
-var _cd = require('./src/cd');
-exports.cd = common.wrap('cd', _cd);
+require('./src/cd');
//@include ./src/pwd
-var _pwd = require('./src/pwd');
-exports.pwd = common.wrap('pwd', _pwd);
+require('./src/pwd');
//@include ./src/ls
-var _ls = require('./src/ls');
-exports.ls = common.wrap('ls', _ls);
+require('./src/ls');
//@include ./src/find
-var _find = require('./src/find');
-exports.find = common.wrap('find', _find);
+require('./src/find');
//@include ./src/cp
-var _cp = require('./src/cp');
-exports.cp = common.wrap('cp', _cp);
+require('./src/cp');
//@include ./src/rm
-var _rm = require('./src/rm');
-exports.rm = common.wrap('rm', _rm);
+require('./src/rm');
//@include ./src/mv
-var _mv = require('./src/mv');
-exports.mv = common.wrap('mv', _mv);
+require('./src/mv');
//@include ./src/mkdir
-var _mkdir = require('./src/mkdir');
-exports.mkdir = common.wrap('mkdir', _mkdir);
+require('./src/mkdir');
//@include ./src/test
-var _test = require('./src/test');
-exports.test = common.wrap('test', _test);
+require('./src/test');
//@include ./src/cat
-var _cat = require('./src/cat');
-exports.cat = common.wrap('cat', _cat);
+require('./src/cat');
+
+//@include ./src/head
+require('./src/head');
+
+//@include ./src/tail
+require('./src/tail');
//@include ./src/to
-var _to = require('./src/to');
-String.prototype.to = common.wrap('to', _to);
+require('./src/to');
//@include ./src/toEnd
-var _toEnd = require('./src/toEnd');
-String.prototype.toEnd = common.wrap('toEnd', _toEnd);
+require('./src/toEnd');
//@include ./src/sed
-var _sed = require('./src/sed');
-exports.sed = common.wrap('sed', _sed);
+require('./src/sed');
+
+//@include ./src/sort
+require('./src/sort');
+
+//@include ./src/uniq
+require('./src/uniq');
//@include ./src/grep
-var _grep = require('./src/grep');
-exports.grep = common.wrap('grep', _grep);
+require('./src/grep');
//@include ./src/which
-var _which = require('./src/which');
-exports.which = common.wrap('which', _which);
+require('./src/which');
//@include ./src/echo
-var _echo = require('./src/echo');
-exports.echo = _echo; // don't common.wrap() as it could parse '-options'
+require('./src/echo');
//@include ./src/dirs
-var _dirs = require('./src/dirs').dirs;
-exports.dirs = common.wrap("dirs", _dirs);
-var _pushd = require('./src/dirs').pushd;
-exports.pushd = common.wrap('pushd', _pushd);
-var _popd = require('./src/dirs').popd;
-exports.popd = common.wrap("popd", _popd);
+require('./src/dirs');
//@include ./src/ln
-var _ln = require('./src/ln');
-exports.ln = common.wrap('ln', _ln);
+require('./src/ln');
//@
//@ ### exit(code)
@@ -100,20 +109,16 @@ exports.exit = process.exit;
exports.env = process.env;
//@include ./src/exec
-var _exec = require('./src/exec');
-exports.exec = common.wrap('exec', _exec, {notUnix:true});
+require('./src/exec');
//@include ./src/chmod
-var _chmod = require('./src/chmod');
-exports.chmod = common.wrap('chmod', _chmod);
+require('./src/chmod');
//@include ./src/touch
-var _touch = require('./src/touch');
-exports.touch = common.wrap('touch', _touch);
+require('./src/touch');
//@include ./src/set
-var _set = require('./src/set');
-exports.set = common.wrap('set', _set);
+require('./src/set');
//@
@@ -121,15 +126,29 @@ exports.set = common.wrap('set', _set);
//@
//@include ./src/tempdir
-var _tempDir = require('./src/tempdir');
-exports.tempdir = common.wrap('tempdir', _tempDir);
-
+require('./src/tempdir');
//@include ./src/error
-var _error = require('./src/error');
-exports.error = _error;
+exports.error = require('./src/error');
+
+//@include ./src/common
+exports.ShellString = common.ShellString;
+//@
+//@ ### Pipes
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ grep('foo', 'file1.txt', 'file2.txt').sed(/o/g, 'a').to('output.txt');
+//@ echo('files with o\'s in the name:\n' + ls().grep('o'));
+//@ cat('test.js').exec('node'); // pipe to exec() call
+//@ ```
+//@
+//@ Commands can send their output to another command in a pipe-like fashion.
+//@ `sed`, `grep`, `cat`, `exec`, `to`, and `toEnd` can appear on the right-hand
+//@ side of a pipe. Pipes can be chained.
//@
//@ ## Configuration
@@ -139,6 +158,7 @@ exports.config = common.config;
//@
//@ ### config.silent
+//@
//@ Example:
//@
//@ ```javascript
@@ -154,20 +174,23 @@ exports.config = common.config;
//@
//@ ### config.fatal
+//@
//@ Example:
//@
//@ ```javascript
//@ require('shelljs/global');
//@ config.fatal = true; // or set('-e');
-//@ cp('this_file_does_not_exist', '/dev/null'); // dies here
+//@ cp('this_file_does_not_exist', '/dev/null'); // throws Error here
//@ /* more commands... */
//@ ```
//@
-//@ If `true` the script will die on errors. Default is `false`. This is
-//@ analogous to Bash's `set -e`
+//@ If `true` the script will throw a Javascript error when any shell.js
+//@ command encounters an error. Default is `false`. This is analogous to
+//@ Bash's `set -e`
//@
//@ ### config.verbose
+//@
//@ Example:
//@
//@ ```javascript
@@ -182,3 +205,14 @@ exports.config = common.config;
//@ cd dir/
//@ ls subdir/
//@ ```
+
+//@
+//@ ### config.globOptions
+//@
+//@ Example:
+//@
+//@ ```javascript
+//@ config.globOptions = {nodir: true};
+//@ ```
+//@
+//@ Use this value for calls to `glob.sync()` instead of the default options.
diff --git a/tools/eslint/node_modules/shelljs/src/cat.js b/tools/eslint/node_modules/shelljs/src/cat.js
index 5840b4ea77..a74a25c842 100644
--- a/tools/eslint/node_modules/shelljs/src/cat.js
+++ b/tools/eslint/node_modules/shelljs/src/cat.js
@@ -1,6 +1,10 @@
var common = require('./common');
var fs = require('fs');
+common.register('cat', _cat, {
+ canReceivePipe: true,
+});
+
//@
//@ ### cat(file [, file ...])
//@ ### cat(file_array)
@@ -15,26 +19,22 @@ var fs = require('fs');
//@
//@ Returns a string containing the given file, or a concatenated string
//@ containing the files if more than one file is given (a new line character is
-//@ introduced between each file). Wildcard `*` accepted.
+//@ introduced between each file).
function _cat(options, files) {
- var cat = '';
-
- if (!files)
- common.error('no paths given');
+ var cat = common.readFromPipe();
- if (typeof files === 'string')
- files = [].slice.call(arguments, 1);
- // if it's array leave it as it is
+ if (!files && !cat) common.error('no paths given');
- files = common.expand(files);
+ files = [].slice.call(arguments, 1);
- files.forEach(function(file) {
- if (!fs.existsSync(file))
+ files.forEach(function (file) {
+ if (!fs.existsSync(file)) {
common.error('no such file or directory: ' + file);
+ }
cat += fs.readFileSync(file, 'utf8');
});
- return common.ShellString(cat);
+ return cat;
}
module.exports = _cat;
diff --git a/tools/eslint/node_modules/shelljs/src/cd.js b/tools/eslint/node_modules/shelljs/src/cd.js
index b7b9931b8f..634ed835cb 100644
--- a/tools/eslint/node_modules/shelljs/src/cd.js
+++ b/tools/eslint/node_modules/shelljs/src/cd.js
@@ -1,28 +1,38 @@
var fs = require('fs');
var common = require('./common');
+common.register('cd', _cd, {});
+
//@
//@ ### cd([dir])
//@ Changes to directory `dir` for the duration of the script. Changes to home
//@ directory if no argument is supplied.
function _cd(options, dir) {
- if (!dir)
- dir = common.getUserHome();
+ if (!dir) dir = common.getUserHome();
if (dir === '-') {
- if (!common.state.previousDir)
+ if (!process.env.OLDPWD) {
common.error('could not find previous directory');
- else
- dir = common.state.previousDir;
+ } else {
+ dir = process.env.OLDPWD;
+ }
}
- if (!fs.existsSync(dir))
- common.error('no such file or directory: ' + dir);
-
- if (!fs.statSync(dir).isDirectory())
- common.error('not a directory: ' + dir);
-
- common.state.previousDir = process.cwd();
- process.chdir(dir);
+ try {
+ var curDir = process.cwd();
+ process.chdir(dir);
+ process.env.OLDPWD = curDir;
+ } catch (e) {
+ // something went wrong, let's figure out the error
+ var err;
+ try {
+ fs.statSync(dir); // if this succeeds, it must be some sort of file
+ err = 'not a directory: ' + dir;
+ } catch (e2) {
+ err = 'no such file or directory: ' + dir;
+ }
+ if (err) common.error(err);
+ }
+ return '';
}
module.exports = _cd;
diff --git a/tools/eslint/node_modules/shelljs/src/chmod.js b/tools/eslint/node_modules/shelljs/src/chmod.js
index 6c6de10ce1..a1afd90e75 100644
--- a/tools/eslint/node_modules/shelljs/src/chmod.js
+++ b/tools/eslint/node_modules/shelljs/src/chmod.js
@@ -4,30 +4,32 @@ var path = require('path');
var PERMS = (function (base) {
return {
- OTHER_EXEC : base.EXEC,
- OTHER_WRITE : base.WRITE,
- OTHER_READ : base.READ,
+ OTHER_EXEC: base.EXEC,
+ OTHER_WRITE: base.WRITE,
+ OTHER_READ: base.READ,
- GROUP_EXEC : base.EXEC << 3,
- GROUP_WRITE : base.WRITE << 3,
- GROUP_READ : base.READ << 3,
+ GROUP_EXEC: base.EXEC << 3,
+ GROUP_WRITE: base.WRITE << 3,
+ GROUP_READ: base.READ << 3,
- OWNER_EXEC : base.EXEC << 6,
- OWNER_WRITE : base.WRITE << 6,
- OWNER_READ : base.READ << 6,
+ OWNER_EXEC: base.EXEC << 6,
+ OWNER_WRITE: base.WRITE << 6,
+ OWNER_READ: base.READ << 6,
- // Literal octal numbers are apparently not allowed in "strict" javascript. Using parseInt is
- // the preferred way, else a jshint warning is thrown.
- STICKY : parseInt('01000', 8),
- SETGID : parseInt('02000', 8),
- SETUID : parseInt('04000', 8),
+ // Literal octal numbers are apparently not allowed in "strict" javascript.
+ STICKY: parseInt('01000', 8),
+ SETGID: parseInt('02000', 8),
+ SETUID: parseInt('04000', 8),
- TYPE_MASK : parseInt('0770000', 8)
+ TYPE_MASK: parseInt('0770000', 8)
};
-})({
- EXEC : 1,
- WRITE : 2,
- READ : 4
+}({
+ EXEC: 1,
+ WRITE: 2,
+ READ: 4
+}));
+
+common.register('chmod', _chmod, {
});
//@
@@ -62,11 +64,8 @@ function _chmod(options, mode, filePattern) {
// Special case where the specified file permissions started with - to subtract perms, which
// get picked up by the option parser as command flags.
// If we are down by one argument and options starts with -, shift everything over.
- filePattern = mode;
- mode = options;
- options = '';
- }
- else {
+ [].unshift.call(arguments, '');
+ } else {
common.error('You must specify a file.');
}
}
@@ -77,15 +76,14 @@ function _chmod(options, mode, filePattern) {
'v': 'verbose'
});
- if (typeof filePattern === 'string') {
- filePattern = [ filePattern ];
- }
+ filePattern = [].slice.call(arguments, 2);
var files;
+ // TODO: replace this with a call to common.expand()
if (options.recursive) {
files = [];
- common.expand(filePattern).forEach(function addFile(expandedFile) {
+ filePattern.forEach(function addFile(expandedFile) {
var stat = fs.lstatSync(expandedFile);
if (!stat.isSymbolicLink()) {
@@ -98,9 +96,8 @@ function _chmod(options, mode, filePattern) {
}
}
});
- }
- else {
- files = common.expand(filePattern);
+ } else {
+ files = filePattern;
}
files.forEach(function innerChmod(file) {
@@ -124,7 +121,6 @@ function _chmod(options, mode, filePattern) {
if (isNaN(parseInt(mode, 8))) {
// parse options
mode.split(',').forEach(function (symbolicMode) {
- /*jshint regexdash:true */
var pattern = /([ugoa]*)([=\+-])([rwxXst]*)/i;
var matches = pattern.exec(symbolicMode);
@@ -133,19 +129,20 @@ function _chmod(options, mode, filePattern) {
var operator = matches[2];
var change = matches[3];
- var changeOwner = applyTo.indexOf('u') != -1 || applyTo === 'a' || applyTo === '';
- var changeGroup = applyTo.indexOf('g') != -1 || applyTo === 'a' || applyTo === '';
- var changeOther = applyTo.indexOf('o') != -1 || applyTo === 'a' || applyTo === '';
+ var changeOwner = applyTo.indexOf('u') !== -1 || applyTo === 'a' || applyTo === '';
+ var changeGroup = applyTo.indexOf('g') !== -1 || applyTo === 'a' || applyTo === '';
+ var changeOther = applyTo.indexOf('o') !== -1 || applyTo === 'a' || applyTo === '';
- var changeRead = change.indexOf('r') != -1;
- var changeWrite = change.indexOf('w') != -1;
- var changeExec = change.indexOf('x') != -1;
- var changeExecDir = change.indexOf('X') != -1;
- var changeSticky = change.indexOf('t') != -1;
- var changeSetuid = change.indexOf('s') != -1;
+ var changeRead = change.indexOf('r') !== -1;
+ var changeWrite = change.indexOf('w') !== -1;
+ var changeExec = change.indexOf('x') !== -1;
+ var changeExecDir = change.indexOf('X') !== -1;
+ var changeSticky = change.indexOf('t') !== -1;
+ var changeSetuid = change.indexOf('s') !== -1;
- if (changeExecDir && isDir)
+ if (changeExecDir && isDir) {
changeExec = true;
+ }
var mask = 0;
if (changeOwner) {
@@ -175,35 +172,37 @@ function _chmod(options, mode, filePattern) {
case '=':
newPerms = type + mask;
- // According to POSIX, when using = to explicitly set the permissions, setuid and setgid can never be cleared.
+ // According to POSIX, when using = to explicitly set the
+ // permissions, setuid and setgid can never be cleared.
if (fs.statSync(file).isDirectory()) {
newPerms |= (PERMS.SETUID + PERMS.SETGID) & perms;
}
break;
+ default:
+ common.error('Could not recognize operator: `' + operator + '`');
}
if (options.verbose) {
console.log(file + ' -> ' + newPerms.toString(8));
}
- if (perms != newPerms) {
+ if (perms !== newPerms) {
if (!options.verbose && options.changes) {
console.log(file + ' -> ' + newPerms.toString(8));
}
fs.chmodSync(file, newPerms);
perms = newPerms; // for the next round of changes!
}
- }
- else {
+ } else {
common.error('Invalid symbolic mode change: ' + symbolicMode);
}
});
- }
- else {
+ } else {
// they gave us a full number
newPerms = type + parseInt(mode, 8);
- // POSIX rules are that setuid and setgid can only be added using numeric form, but not cleared.
+ // POSIX rules are that setuid and setgid can only be added using numeric
+ // form, but not cleared.
if (fs.statSync(file).isDirectory()) {
newPerms |= (PERMS.SETUID + PERMS.SETGID) & perms;
}
@@ -211,5 +210,6 @@ function _chmod(options, mode, filePattern) {
fs.chmodSync(file, newPerms);
}
});
+ return '';
}
module.exports = _chmod;
diff --git a/tools/eslint/node_modules/shelljs/src/common.js b/tools/eslint/node_modules/shelljs/src/common.js
index 33198bd8a0..8211feff4e 100644
--- a/tools/eslint/node_modules/shelljs/src/common.js
+++ b/tools/eslint/node_modules/shelljs/src/common.js
@@ -1,68 +1,132 @@
+// Ignore warning about 'new String()'
+/* eslint no-new-wrappers: 0 */
+'use strict';
+
var os = require('os');
var fs = require('fs');
-var _ls = require('./ls');
+var glob = require('glob');
+var shell = require('..');
+
+var shellMethods = Object.create(shell);
// Module globals
var config = {
silent: false,
fatal: false,
verbose: false,
+ noglob: false,
+ globOptions: {},
+ maxdepth: 255
};
exports.config = config;
var state = {
error: null,
+ errorCode: 0,
currentCmd: 'shell.js',
- previousDir: null,
tempDir: null
};
exports.state = state;
+delete process.env.OLDPWD; // initially, there's no previous directory
+
var platform = os.type().match(/^Win/) ? 'win' : 'unix';
exports.platform = platform;
+// This is populated by calls to commonl.wrap()
+var pipeMethods = [];
+
function log() {
- if (!config.silent)
+ if (!config.silent) {
console.error.apply(console, arguments);
+ }
}
exports.log = log;
-// Shows error message. Throws unless _continue or config.fatal are true
-function error(msg, _continue) {
- if (state.error === null)
- state.error = '';
- var log_entry = state.currentCmd + ': ' + msg;
- if (state.error === '')
- state.error = log_entry;
- else
- state.error += '\n' + log_entry;
+// Shows error message. Throws if config.fatal is true
+function error(msg, _code, options) {
+ // Validate input
+ if (typeof msg !== 'string') throw new Error('msg must be a string');
+
+ var DEFAULT_OPTIONS = {
+ continue: false,
+ code: 1,
+ prefix: state.currentCmd + ': ',
+ silent: false,
+ };
+
+ if (typeof _code === 'number' && typeof options === 'object') {
+ options.code = _code;
+ } else if (typeof _code === 'object') { // no 'code'
+ options = _code;
+ } else if (typeof _code === 'number') { // no 'options'
+ options = { code: _code };
+ } else if (typeof _code !== 'number') { // only 'msg'
+ options = {};
+ }
+ options = objectAssign({}, DEFAULT_OPTIONS, options);
+
+ if (!state.errorCode) state.errorCode = options.code;
- if (msg.length > 0)
- log(log_entry);
+ var logEntry = options.prefix + msg;
+ state.error = state.error ? state.error + '\n' : '';
+ state.error += logEntry;
- if (config.fatal)
- process.exit(1);
+ // Throw an error, or log the entry
+ if (config.fatal) throw new Error(logEntry);
+ if (msg.length > 0 && !options.silent) log(logEntry);
- if (!_continue)
- throw '';
+ if (!options.continue) {
+ throw {
+ msg: 'earlyExit',
+ retValue: (new ShellString('', state.error, state.errorCode))
+ };
+ }
}
exports.error = error;
-// In the future, when Proxies are default, we can add methods like `.to()` to primitive strings.
-// For now, this is a dummy function to bookmark places we need such strings
-function ShellString(str) {
- return str;
+//@
+//@ ### ShellString(str)
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var foo = ShellString('hello world');
+//@ ```
+//@
+//@ Turns a regular string into a string-like object similar to what each
+//@ command returns. This has special methods, like `.to()` and `.toEnd()`
+function ShellString(stdout, stderr, code) {
+ var that;
+ if (stdout instanceof Array) {
+ that = stdout;
+ that.stdout = stdout.join('\n');
+ if (stdout.length > 0) that.stdout += '\n';
+ } else {
+ that = new String(stdout);
+ that.stdout = stdout;
+ }
+ that.stderr = stderr;
+ that.code = code;
+ // A list of all commands that can appear on the right-hand side of a pipe
+ // (populated by calls to common.wrap())
+ pipeMethods.forEach(function (cmd) {
+ that[cmd] = shellMethods[cmd].bind(that);
+ });
+ return that;
}
+
exports.ShellString = ShellString;
// Return the home directory in a platform-agnostic way, with consideration for
// older versions of node
function getUserHome() {
var result;
- if (os.homedir)
+ if (os.homedir) {
result = os.homedir(); // node 3+
- else
+ } else {
result = process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'];
+ }
return result;
}
exports.getUserHome = getUserHome;
@@ -72,49 +136,50 @@ exports.getUserHome = getUserHome;
// Returns {'reference': 'string-value', 'bob': false} when passed two dictionaries of the form:
// parseOptions({'-r': 'string-value'}, {'r':'reference', 'b':'bob'});
function parseOptions(opt, map) {
- if (!map)
- error('parseOptions() internal error: no map given');
+ if (!map) error('parseOptions() internal error: no map given');
// All options are false by default
var options = {};
- for (var letter in map) {
- if (map[letter][0] !== '!')
+ Object.keys(map).forEach(function (letter) {
+ if (map[letter][0] !== '!') {
options[map[letter]] = false;
- }
+ }
+ });
- if (!opt)
- return options; // defaults
+ if (!opt) return options; // defaults
var optionName;
if (typeof opt === 'string') {
- if (opt[0] !== '-')
+ if (opt[0] !== '-') {
return options;
+ }
// e.g. chars = ['R', 'f']
var chars = opt.slice(1).split('');
- chars.forEach(function(c) {
+ chars.forEach(function (c) {
if (c in map) {
optionName = map[c];
- if (optionName[0] === '!')
- options[optionName.slice(1, optionName.length-1)] = false;
- else
+ if (optionName[0] === '!') {
+ options[optionName.slice(1)] = false;
+ } else {
options[optionName] = true;
+ }
} else {
- error('option not recognized: '+c);
+ error('option not recognized: ' + c);
}
});
} else if (typeof opt === 'object') {
- for (var key in opt) {
+ Object.keys(opt).forEach(function (key) {
// key is a string of the form '-r', '-d', etc.
var c = key[1];
if (c in map) {
optionName = map[c];
options[optionName] = opt[key]; // assign the given value
} else {
- error('option not recognized: '+c);
+ error('option not recognized: ' + c);
}
- }
+ });
} else {
error('options must be strings or key-value pairs');
}
@@ -127,29 +192,18 @@ exports.parseOptions = parseOptions;
// expand(['file*.js']) = ['file1.js', 'file2.js', ...]
// (if the files 'file1.js', 'file2.js', etc, exist in the current dir)
function expand(list) {
+ if (!Array.isArray(list)) {
+ throw new TypeError('must be an array');
+ }
var expanded = [];
- list.forEach(function(listEl) {
- // Wildcard present on directory names ?
- if(listEl.search(/\*[^\/]*\//) > -1 || listEl.search(/\*\*[^\/]*\//) > -1) {
- var match = listEl.match(/^([^*]+\/|)(.*)/);
- var root = match[1];
- var rest = match[2];
- var restRegex = rest.replace(/\*\*/g, ".*").replace(/\*/g, "[^\\/]*");
- restRegex = new RegExp(restRegex);
-
- _ls('-R', root).filter(function (e) {
- return restRegex.test(e);
- }).forEach(function(file) {
- expanded.push(file);
- });
- }
- // Wildcard present on file names ?
- else if (listEl.search(/\*/) > -1) {
- _ls('', listEl).forEach(function(file) {
- expanded.push(file);
- });
- } else {
+ list.forEach(function (listEl) {
+ // Don't expand non-strings
+ if (typeof listEl !== 'string') {
expanded.push(listEl);
+ } else {
+ var ret = glob.sync(listEl, config.globOptions);
+ // if glob fails, interpret the string literally
+ expanded = expanded.concat(ret.length > 0 ? ret : [listEl]);
}
});
return expanded;
@@ -161,7 +215,7 @@ exports.expand = expand;
function unlinkSync(file) {
try {
fs.unlinkSync(file);
- } catch(e) {
+ } catch (e) {
// Try to override file permission
if (e.code === 'EPERM') {
fs.chmodSync(file, '0666');
@@ -176,78 +230,133 @@ exports.unlinkSync = unlinkSync;
// e.g. 'shelljs_a5f185d0443ca...'
function randomFileName() {
function randomHash(count) {
- if (count === 1)
- return parseInt(16*Math.random(), 10).toString(16);
- else {
- var hash = '';
- for (var i=0; i<count; i++)
- hash += randomHash(1);
- return hash;
+ if (count === 1) {
+ return parseInt(16 * Math.random(), 10).toString(16);
}
+ var hash = '';
+ for (var i = 0; i < count; i++) {
+ hash += randomHash(1);
+ }
+ return hash;
}
- return 'shelljs_'+randomHash(20);
+ return 'shelljs_' + randomHash(20);
}
exports.randomFileName = randomFileName;
-// extend(target_obj, source_obj1 [, source_obj2 ...])
-// Shallow extend, e.g.:
-// extend({A:1}, {b:2}, {c:3}) returns {A:1, b:2, c:3}
-function extend(target) {
+// objectAssign(target_obj, source_obj1 [, source_obj2 ...])
+// Ponyfill for Object.assign
+// objectAssign({A:1}, {b:2}, {c:3}) returns {A:1, b:2, c:3}
+function objectAssign(target) {
var sources = [].slice.call(arguments, 1);
- sources.forEach(function(source) {
- for (var key in source)
+ sources.forEach(function (source) {
+ Object.keys(source).forEach(function (key) {
target[key] = source[key];
+ });
});
return target;
}
-exports.extend = extend;
+exports.extend = Object.assign || objectAssign;
-// Common wrapper for all Unix-like commands
+// Common wrapper for all Unix-like commands that performs glob expansion,
+// command-logging, and other nice things
function wrap(cmd, fn, options) {
- return function() {
+ options = options || {};
+ if (options.canReceivePipe) {
+ pipeMethods.push(cmd);
+ }
+ return function () {
var retValue = null;
state.currentCmd = cmd;
state.error = null;
+ state.errorCode = 0;
try {
var args = [].slice.call(arguments, 0);
+ // Log the command to stderr, if appropriate
if (config.verbose) {
- args.unshift(cmd);
- console.log.apply(console, args);
- args.shift();
+ console.error.apply(console, [cmd].concat(args));
}
- if (options && options.notUnix) {
+ // If this is coming from a pipe, let's set the pipedValue (otherwise, set
+ // it to the empty string)
+ state.pipedValue = (this && typeof this.stdout === 'string') ? this.stdout : '';
+
+ if (options.unix === false) { // this branch is for exec()
retValue = fn.apply(this, args);
- } else {
- if (typeof args[0] === 'object' && args[0].constructor.name === 'Object') {
- args = args; // object count as options
+ } else { // and this branch is for everything else
+ if (args[0] instanceof Object && args[0].constructor.name === 'Object') {
+ // a no-op, allowing the syntax `touch({'-r': file}, ...)`
} else if (args.length === 0 || typeof args[0] !== 'string' || args[0].length <= 1 || args[0][0] !== '-') {
args.unshift(''); // only add dummy option if '-option' not already present
}
+
+ // flatten out arrays that are arguments, to make the syntax:
+ // `cp([file1, file2, file3], dest);`
+ // equivalent to:
+ // `cp(file1, file2, file3, dest);`
+ args = args.reduce(function (accum, cur) {
+ if (Array.isArray(cur)) {
+ return accum.concat(cur);
+ }
+ accum.push(cur);
+ return accum;
+ }, []);
+
+ // Convert ShellStrings (basically just String objects) to regular strings
+ args = args.map(function (arg) {
+ if (arg instanceof Object && arg.constructor.name === 'String') {
+ return arg.toString();
+ }
+ return arg;
+ });
+
// Expand the '~' if appropriate
var homeDir = getUserHome();
- args = args.map(function(arg) {
- if (typeof arg === 'string' && arg.slice(0, 2) === '~/' || arg === '~')
+ args = args.map(function (arg) {
+ if (typeof arg === 'string' && arg.slice(0, 2) === '~/' || arg === '~') {
return arg.replace(/^~/, homeDir);
- else
- return arg;
+ }
+ return arg;
});
- retValue = fn.apply(this, args);
+
+ // Perform glob-expansion on all arguments after globStart, but preserve
+ // the arguments before it (like regexes for sed and grep)
+ if (!config.noglob && options.allowGlobbing === true) {
+ args = args.slice(0, options.globStart).concat(expand(args.slice(options.globStart)));
+ }
+
+ try {
+ // parse options if options are provided
+ if (typeof options.cmdOptions === 'object') {
+ args[0] = parseOptions(args[0], options.cmdOptions);
+ }
+
+ retValue = fn.apply(this, args);
+ } catch (e) {
+ if (e.msg === 'earlyExit') {
+ retValue = e.retValue;
+ } else {
+ throw e; // this is probably a bug that should be thrown up the call stack
+ }
+ }
}
} catch (e) {
if (!state.error) {
// If state.error hasn't been set it's an error thrown by Node, not us - probably a bug...
- console.log('shell.js: internal error');
- console.log(e.stack || e);
+ console.error('ShellJS: internal error');
+ console.error(e.stack || e);
process.exit(1);
}
- if (config.fatal)
- throw e;
+ if (config.fatal) throw e;
+ }
+
+ if (options.wrapOutput &&
+ (typeof retValue === 'string' || Array.isArray(retValue))) {
+ retValue = new ShellString(retValue, state.error, state.errorCode);
}
state.currentCmd = 'shell.js';
@@ -255,3 +364,40 @@ function wrap(cmd, fn, options) {
};
} // wrap
exports.wrap = wrap;
+
+// This returns all the input that is piped into the current command (or the
+// empty string, if this isn't on the right-hand side of a pipe
+function _readFromPipe() {
+ return state.pipedValue;
+}
+exports.readFromPipe = _readFromPipe;
+
+var DEFAULT_WRAP_OPTIONS = {
+ allowGlobbing: true,
+ canReceivePipe: false,
+ cmdOptions: false,
+ globStart: 1,
+ pipeOnly: false,
+ unix: true,
+ wrapOutput: true,
+ overWrite: false,
+};
+
+// Register a new ShellJS command
+function _register(name, implementation, wrapOptions) {
+ wrapOptions = wrapOptions || {};
+ // If an option isn't specified, use the default
+ wrapOptions = objectAssign({}, DEFAULT_WRAP_OPTIONS, wrapOptions);
+
+ if (shell[name] && !wrapOptions.overWrite) {
+ throw new Error('unable to overwrite `' + name + '` command');
+ }
+
+ if (wrapOptions.pipeOnly) {
+ wrapOptions.canReceivePipe = true;
+ shellMethods[name] = wrap(name, implementation, wrapOptions);
+ } else {
+ shell[name] = wrap(name, implementation, wrapOptions);
+ }
+}
+exports.register = _register;
diff --git a/tools/eslint/node_modules/shelljs/src/cp.js b/tools/eslint/node_modules/shelljs/src/cp.js
index 54404efb16..487c4f7172 100644
--- a/tools/eslint/node_modules/shelljs/src/cp.js
+++ b/tools/eslint/node_modules/shelljs/src/cp.js
@@ -3,42 +3,77 @@ var path = require('path');
var common = require('./common');
var os = require('os');
+common.register('cp', _cp, {
+ cmdOptions: {
+ 'f': '!no_force',
+ 'n': 'no_force',
+ 'u': 'update',
+ 'R': 'recursive',
+ 'r': 'recursive',
+ 'L': 'followsymlink',
+ 'P': 'noFollowsymlink',
+ },
+ wrapOutput: false,
+});
+
// Buffered file copy, synchronous
// (Using readFileSync() + writeFileSync() could easily cause a memory overflow
// with large files)
-function copyFileSync(srcFile, destFile) {
- if (!fs.existsSync(srcFile))
+function copyFileSync(srcFile, destFile, options) {
+ if (!fs.existsSync(srcFile)) {
common.error('copyFileSync: no such file or directory: ' + srcFile);
-
- var BUF_LENGTH = 64*1024,
- buf = new Buffer(BUF_LENGTH),
- bytesRead = BUF_LENGTH,
- pos = 0,
- fdr = null,
- fdw = null;
-
- try {
- fdr = fs.openSync(srcFile, 'r');
- } catch(e) {
- common.error('copyFileSync: could not read src file ('+srcFile+')');
}
+ // Check the mtimes of the files if the '-u' flag is provided
try {
- fdw = fs.openSync(destFile, 'w');
- } catch(e) {
- common.error('copyFileSync: could not write to dest file (code='+e.code+'):'+destFile);
+ if (options.update && fs.statSync(srcFile).mtime < fs.statSync(destFile).mtime) {
+ return;
+ }
+ } catch (e) {
+ // If we're here, destFile probably doesn't exist, so just do a normal copy
}
- while (bytesRead === BUF_LENGTH) {
- bytesRead = fs.readSync(fdr, buf, 0, BUF_LENGTH, pos);
- fs.writeSync(fdw, buf, 0, bytesRead);
- pos += bytesRead;
- }
+ if (fs.lstatSync(srcFile).isSymbolicLink() && !options.followsymlink) {
+ try {
+ fs.lstatSync(destFile);
+ common.unlinkSync(destFile); // re-link it
+ } catch (e) {
+ // it doesn't exist, so no work needs to be done
+ }
- fs.closeSync(fdr);
- fs.closeSync(fdw);
+ var symlinkFull = fs.readlinkSync(srcFile);
+ fs.symlinkSync(symlinkFull, destFile, os.platform() === 'win32' ? 'junction' : null);
+ } else {
+ var BUF_LENGTH = 64 * 1024;
+ var buf = new Buffer(BUF_LENGTH);
+ var bytesRead = BUF_LENGTH;
+ var pos = 0;
+ var fdr = null;
+ var fdw = null;
- fs.chmodSync(destFile, fs.statSync(srcFile).mode);
+ try {
+ fdr = fs.openSync(srcFile, 'r');
+ } catch (e) {
+ common.error('copyFileSync: could not read src file (' + srcFile + ')');
+ }
+
+ try {
+ fdw = fs.openSync(destFile, 'w');
+ } catch (e) {
+ common.error('copyFileSync: could not write to dest file (code=' + e.code + '):' + destFile);
+ }
+
+ while (bytesRead === BUF_LENGTH) {
+ bytesRead = fs.readSync(fdr, buf, 0, BUF_LENGTH, pos);
+ fs.writeSync(fdw, buf, 0, bytesRead);
+ pos += bytesRead;
+ }
+
+ fs.closeSync(fdr);
+ fs.closeSync(fdw);
+
+ fs.chmodSync(destFile, fs.statSync(srcFile).mode);
+ }
}
// Recursively copies 'sourceDir' into 'destDir'
@@ -52,40 +87,94 @@ function copyFileSync(srcFile, destFile) {
function cpdirSyncRecursive(sourceDir, destDir, opts) {
if (!opts) opts = {};
- /* Create the directory where all our junk is moving to; read the mode of the source directory and mirror it */
- var checkDir = fs.statSync(sourceDir);
+ /* Ensure there is not a run away recursive copy. */
+ if (typeof opts.depth === 'undefined') {
+ opts.depth = 0;
+ }
+ if (opts.depth >= common.config.maxdepth) {
+ // Max depth has been reached, end copy.
+ return;
+ }
+ opts.depth++;
+
+ // Create the directory where all our junk is moving to; read the mode of the
+ // source directory and mirror it
try {
+ var checkDir = fs.statSync(sourceDir);
fs.mkdirSync(destDir, checkDir.mode);
} catch (e) {
- //if the directory already exists, that's okay
+ // if the directory already exists, that's okay
if (e.code !== 'EEXIST') throw e;
}
var files = fs.readdirSync(sourceDir);
for (var i = 0; i < files.length; i++) {
- var srcFile = sourceDir + "/" + files[i];
- var destFile = destDir + "/" + files[i];
+ var srcFile = sourceDir + '/' + files[i];
+ var destFile = destDir + '/' + files[i];
var srcFileStat = fs.lstatSync(srcFile);
+ var symlinkFull;
+ if (opts.followsymlink) {
+ if (cpcheckcycle(sourceDir, srcFile)) {
+ // Cycle link found.
+ console.error('Cycle link found.');
+ symlinkFull = fs.readlinkSync(srcFile);
+ fs.symlinkSync(symlinkFull, destFile, os.platform() === 'win32' ? 'junction' : null);
+ continue;
+ }
+ }
if (srcFileStat.isDirectory()) {
/* recursion this thing right on back. */
cpdirSyncRecursive(srcFile, destFile, opts);
- } else if (srcFileStat.isSymbolicLink()) {
- var symlinkFull = fs.readlinkSync(srcFile);
- fs.symlinkSync(symlinkFull, destFile, os.platform() === "win32" ? "junction" : null);
+ } else if (srcFileStat.isSymbolicLink() && !opts.followsymlink) {
+ symlinkFull = fs.readlinkSync(srcFile);
+ try {
+ fs.lstatSync(destFile);
+ common.unlinkSync(destFile); // re-link it
+ } catch (e) {
+ // it doesn't exist, so no work needs to be done
+ }
+ fs.symlinkSync(symlinkFull, destFile, os.platform() === 'win32' ? 'junction' : null);
+ } else if (srcFileStat.isSymbolicLink() && opts.followsymlink) {
+ srcFileStat = fs.statSync(srcFile);
+ if (srcFileStat.isDirectory()) {
+ cpdirSyncRecursive(srcFile, destFile, opts);
+ } else {
+ copyFileSync(srcFile, destFile, opts);
+ }
} else {
/* At this point, we've hit a file actually worth copying... so copy it on over. */
if (fs.existsSync(destFile) && opts.no_force) {
common.log('skipping existing file: ' + files[i]);
} else {
- copyFileSync(srcFile, destFile);
+ copyFileSync(srcFile, destFile, opts);
}
}
-
} // for files
} // cpdirSyncRecursive
+function cpcheckcycle(sourceDir, srcFile) {
+ var srcFileStat = fs.lstatSync(srcFile);
+ if (srcFileStat.isSymbolicLink()) {
+ // Do cycle check. For example:
+ // $ mkdir -p 1/2/3/4
+ // $ cd 1/2/3/4
+ // $ ln -s ../../3 link
+ // $ cd ../../../..
+ // $ cp -RL 1 copy
+ var cyclecheck = fs.statSync(srcFile);
+ if (cyclecheck.isDirectory()) {
+ var sourcerealpath = fs.realpathSync(sourceDir);
+ var symlinkrealpath = fs.realpathSync(srcFile);
+ var re = new RegExp(symlinkrealpath);
+ if (re.test(sourcerealpath)) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
//@
//@ ### cp([options,] source [, source ...], dest)
@@ -94,117 +183,92 @@ function cpdirSyncRecursive(sourceDir, destDir, opts) {
//@
//@ + `-f`: force (default behavior)
//@ + `-n`: no-clobber
-//@ + `-r, -R`: recursive
+//@ + `-u`: only copy if source is newer than dest
+//@ + `-r`, `-R`: recursive
+//@ + `-L`: follow symlinks
+//@ + `-P`: don't follow symlinks
//@
//@ Examples:
//@
//@ ```javascript
//@ cp('file1', 'dir1');
+//@ cp('-R', 'path/to/dir/', '~/newCopy/');
//@ cp('-Rf', '/tmp/*', '/usr/local/*', '/home/tmp');
//@ cp('-Rf', ['/tmp/*', '/usr/local/*'], '/home/tmp'); // same as above
//@ ```
//@
-//@ Copies files. The wildcard `*` is accepted.
+//@ Copies files.
function _cp(options, sources, dest) {
- options = common.parseOptions(options, {
- 'f': '!no_force',
- 'n': 'no_force',
- 'R': 'recursive',
- 'r': 'recursive'
- });
+ // If we're missing -R, it actually implies -L (unless -P is explicit)
+ if (options.followsymlink) {
+ options.noFollowsymlink = false;
+ }
+ if (!options.recursive && !options.noFollowsymlink) {
+ options.followsymlink = true;
+ }
// Get sources, dest
if (arguments.length < 3) {
common.error('missing <source> and/or <dest>');
- } else if (arguments.length > 3) {
+ } else {
sources = [].slice.call(arguments, 1, arguments.length - 1);
dest = arguments[arguments.length - 1];
- } else if (typeof sources === 'string') {
- sources = [sources];
- } else if ('length' in sources) {
- sources = sources; // no-op for array
- } else {
- common.error('invalid arguments');
}
- var exists = fs.existsSync(dest),
- stats = exists && fs.statSync(dest);
+ var destExists = fs.existsSync(dest);
+ var destStat = destExists && fs.statSync(dest);
// Dest is not existing dir, but multiple sources given
- if ((!exists || !stats.isDirectory()) && sources.length > 1)
+ if ((!destExists || !destStat.isDirectory()) && sources.length > 1) {
common.error('dest is not a directory (too many sources)');
-
- // Dest is an existing file, but no -f given
- if (exists && stats.isFile() && options.no_force)
- common.error('dest file already exists: ' + dest);
-
- if (options.recursive) {
- // Recursive allows the shortcut syntax "sourcedir/" for "sourcedir/*"
- // (see Github issue #15)
- sources.forEach(function(src, i) {
- if (src[src.length - 1] === '/') {
- sources[i] += '*';
- // If src is a directory and dest doesn't exist, 'cp -r src dest' should copy src/* into dest
- } else if (fs.statSync(src).isDirectory() && !exists) {
- sources[i] += '/*';
- }
- });
-
- // Create dest
- try {
- fs.mkdirSync(dest, parseInt('0777', 8));
- } catch (e) {
- // like Unix's cp, keep going even if we can't create dest dir
- }
}
- sources = common.expand(sources);
+ // Dest is an existing file, but -n is given
+ if (destExists && destStat.isFile() && options.no_force) {
+ return new common.ShellString('', '', 0);
+ }
- sources.forEach(function(src) {
+ sources.forEach(function (src) {
if (!fs.existsSync(src)) {
- common.error('no such file or directory: '+src, true);
+ common.error('no such file or directory: ' + src, { continue: true });
return; // skip file
}
-
- // If here, src exists
- if (fs.statSync(src).isDirectory()) {
+ var srcStat = fs.statSync(src);
+ if (!options.noFollowsymlink && srcStat.isDirectory()) {
if (!options.recursive) {
// Non-Recursive
- common.log(src + ' is a directory (not copied)');
+ common.error("omitting directory '" + src + "'", { continue: true });
} else {
// Recursive
// 'cp /a/source dest' should create 'source' in 'dest'
- var newDest = path.join(dest, path.basename(src)),
- checkDir = fs.statSync(src);
+ var newDest = (destStat && destStat.isDirectory()) ?
+ path.join(dest, path.basename(src)) :
+ dest;
+
try {
- fs.mkdirSync(newDest, checkDir.mode);
+ fs.statSync(path.dirname(dest));
+ cpdirSyncRecursive(src, newDest, { no_force: options.no_force, followsymlink: options.followsymlink });
} catch (e) {
- //if the directory already exists, that's okay
- if (e.code !== 'EEXIST') {
- common.error('dest file no such file or directory: ' + newDest, true);
- throw e;
- }
+ common.error("cannot create directory '" + dest + "': No such file or directory");
}
-
- cpdirSyncRecursive(src, newDest, {no_force: options.no_force});
}
- return; // done with dir
- }
+ } else {
+ // If here, src is a file
- // If here, src is a file
+ // When copying to '/path/dir':
+ // thisDest = '/path/dir/file1'
+ var thisDest = dest;
+ if (destStat && destStat.isDirectory()) {
+ thisDest = path.normalize(dest + '/' + path.basename(src));
+ }
- // When copying to '/path/dir':
- // thisDest = '/path/dir/file1'
- var thisDest = dest;
- if (fs.existsSync(dest) && fs.statSync(dest).isDirectory())
- thisDest = path.normalize(dest + '/' + path.basename(src));
+ if (fs.existsSync(thisDest) && options.no_force) {
+ return; // skip file
+ }
- if (fs.existsSync(thisDest) && options.no_force) {
- common.error('dest file already exists: ' + thisDest, true);
- return; // skip file
+ copyFileSync(src, thisDest, options);
}
-
- copyFileSync(src, thisDest);
}); // forEach(src)
+ return new common.ShellString('', common.state.error, common.state.errorCode);
}
module.exports = _cp;
diff --git a/tools/eslint/node_modules/shelljs/src/dirs.js b/tools/eslint/node_modules/shelljs/src/dirs.js
index 58fae8b3c6..cf5fe02f50 100644
--- a/tools/eslint/node_modules/shelljs/src/dirs.js
+++ b/tools/eslint/node_modules/shelljs/src/dirs.js
@@ -2,6 +2,16 @@ var common = require('./common');
var _cd = require('./cd');
var path = require('path');
+common.register('dirs', _dirs, {
+ wrapOutput: false,
+});
+common.register('pushd', _pushd, {
+ wrapOutput: false,
+});
+common.register('popd', _popd, {
+ wrapOutput: false,
+});
+
// Pushd/popd/dirs internals
var _dirStack = [];
@@ -13,9 +23,8 @@ function _parseStackIndex(index) {
if (_isStackIndex(index)) {
if (Math.abs(index) < _dirStack.length + 1) { // +1 for pwd
return (/^-/).test(index) ? Number(index) - 1 : Number(index);
- } else {
- common.error(index + ': directory stack index out of range');
}
+ common.error(index + ': directory stack index out of range');
} else {
common.error(index + ': invalid number');
}
@@ -54,7 +63,7 @@ function _pushd(options, dir) {
}
options = common.parseOptions(options, {
- 'n' : 'no-cd'
+ 'n': 'no-cd'
});
var dirs = _actualDirStack();
@@ -120,7 +129,7 @@ function _popd(options, index) {
}
options = common.parseOptions(options, {
- 'n' : 'no-cd'
+ 'n': 'no-cd'
});
if (!_dirStack.length) {
@@ -163,10 +172,10 @@ function _dirs(options, index) {
}
options = common.parseOptions(options, {
- 'c' : 'clear'
+ 'c': 'clear'
});
- if (options['clear']) {
+ if (options.clear) {
_dirStack = [];
return _dirStack;
}
diff --git a/tools/eslint/node_modules/shelljs/src/echo.js b/tools/eslint/node_modules/shelljs/src/echo.js
index b574adc5c3..2b0e7d9198 100644
--- a/tools/eslint/node_modules/shelljs/src/echo.js
+++ b/tools/eslint/node_modules/shelljs/src/echo.js
@@ -1,7 +1,14 @@
var common = require('./common');
+common.register('echo', _echo, {
+ allowGlobbing: false,
+});
+
+//@
+//@ ### echo([options,] string [, string ...])
+//@ Available options:
//@
-//@ ### echo(string [, string ...])
+//@ + `-e`: interpret backslash escapes (default)
//@
//@ Examples:
//@
@@ -12,9 +19,16 @@ var common = require('./common');
//@
//@ Prints string to stdout, and returns string with additional utility methods
//@ like `.to()`.
-function _echo() {
- var messages = [].slice.call(arguments, 0);
+function _echo(opts, messages) {
+ // allow strings starting with '-', see issue #20
+ messages = [].slice.call(arguments, opts ? 0 : 1);
+
+ if (messages[0] === '-e') {
+ // ignore -e
+ messages.shift();
+ }
+
console.log.apply(console, messages);
- return common.ShellString(messages.join(' '));
+ return messages.join(' ');
}
module.exports = _echo;
diff --git a/tools/eslint/node_modules/shelljs/src/error.js b/tools/eslint/node_modules/shelljs/src/error.js
index 112563db80..507c86ddd7 100644
--- a/tools/eslint/node_modules/shelljs/src/error.js
+++ b/tools/eslint/node_modules/shelljs/src/error.js
@@ -2,8 +2,12 @@ var common = require('./common');
//@
//@ ### error()
-//@ Tests if error occurred in the last command. Returns `null` if no error occurred,
-//@ otherwise returns string explaining the error
+//@ Tests if error occurred in the last command. Returns a truthy value if an
+//@ error returned and a falsy value otherwise.
+//@
+//@ **Note**: do not rely on the
+//@ return value to be an error message. If you need the last error message, use
+//@ the `.stderr` attribute from the last command's return value instead.
function error() {
return common.state.error;
}
diff --git a/tools/eslint/node_modules/shelljs/src/exec.js b/tools/eslint/node_modules/shelljs/src/exec.js
index 4174adbd32..f6875b1e5f 100644
--- a/tools/eslint/node_modules/shelljs/src/exec.js
+++ b/tools/eslint/node_modules/shelljs/src/exec.js
@@ -5,85 +5,95 @@ var path = require('path');
var fs = require('fs');
var child = require('child_process');
-var DEFAULT_MAXBUFFER_SIZE = 20*1024*1024;
+var DEFAULT_MAXBUFFER_SIZE = 20 * 1024 * 1024;
+
+common.register('exec', _exec, {
+ unix: false,
+ canReceivePipe: true,
+ wrapOutput: false,
+});
// Hack to run child_process.exec() synchronously (sync avoids callback hell)
// Uses a custom wait loop that checks for a flag file, created when the child process is done.
// (Can't do a wait loop that checks for internal Node variables/messages as
// Node is single-threaded; callbacks and other internal state changes are done in the
// event loop).
-function execSync(cmd, opts) {
+function execSync(cmd, opts, pipe) {
var tempDir = _tempDir();
- var stdoutFile = path.resolve(tempDir+'/'+common.randomFileName()),
- stderrFile = path.resolve(tempDir+'/'+common.randomFileName()),
- codeFile = path.resolve(tempDir+'/'+common.randomFileName()),
- scriptFile = path.resolve(tempDir+'/'+common.randomFileName()),
- sleepFile = path.resolve(tempDir+'/'+common.randomFileName());
+ var stdoutFile = path.resolve(tempDir + '/' + common.randomFileName());
+ var stderrFile = path.resolve(tempDir + '/' + common.randomFileName());
+ var codeFile = path.resolve(tempDir + '/' + common.randomFileName());
+ var scriptFile = path.resolve(tempDir + '/' + common.randomFileName());
+ var sleepFile = path.resolve(tempDir + '/' + common.randomFileName());
opts = common.extend({
silent: common.config.silent,
- cwd: _pwd(),
+ cwd: _pwd().toString(),
env: process.env,
maxBuffer: DEFAULT_MAXBUFFER_SIZE
}, opts);
- var previousStdoutContent = '',
- previousStderrContent = '';
+ var previousStdoutContent = '';
+ var previousStderrContent = '';
// Echoes stdout and stderr changes from running process, if not silent
function updateStream(streamFile) {
- if (opts.silent || !fs.existsSync(streamFile))
+ if (opts.silent || !fs.existsSync(streamFile)) {
return;
+ }
- var previousStreamContent,
- proc_stream;
+ var previousStreamContent;
+ var procStream;
if (streamFile === stdoutFile) {
previousStreamContent = previousStdoutContent;
- proc_stream = process.stdout;
+ procStream = process.stdout;
} else { // assume stderr
previousStreamContent = previousStderrContent;
- proc_stream = process.stderr;
+ procStream = process.stderr;
}
var streamContent = fs.readFileSync(streamFile, 'utf8');
// No changes since last time?
- if (streamContent.length <= previousStreamContent.length)
+ if (streamContent.length <= previousStreamContent.length) {
return;
+ }
- proc_stream.write(streamContent.substr(previousStreamContent.length));
+ procStream.write(streamContent.substr(previousStreamContent.length));
previousStreamContent = streamContent;
}
- function escape(str) {
- return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0");
- }
-
if (fs.existsSync(scriptFile)) common.unlinkSync(scriptFile);
if (fs.existsSync(stdoutFile)) common.unlinkSync(stdoutFile);
if (fs.existsSync(stderrFile)) common.unlinkSync(stderrFile);
if (fs.existsSync(codeFile)) common.unlinkSync(codeFile);
- var execCommand = '"'+process.execPath+'" '+scriptFile;
+ var execCommand = JSON.stringify(process.execPath) + ' ' + JSON.stringify(scriptFile);
var script;
+ opts.cwd = path.resolve(opts.cwd);
+ var optString = JSON.stringify(opts);
+
if (typeof child.execSync === 'function') {
script = [
"var child = require('child_process')",
" , fs = require('fs');",
- "var childProcess = child.exec('"+escape(cmd)+"', {env: process.env, maxBuffer: "+opts.maxBuffer+"}, function(err) {",
- " fs.writeFileSync('"+escape(codeFile)+"', err ? err.code.toString() : '0');",
- "});",
- "var stdoutStream = fs.createWriteStream('"+escape(stdoutFile)+"');",
- "var stderrStream = fs.createWriteStream('"+escape(stderrFile)+"');",
- "childProcess.stdout.pipe(stdoutStream, {end: false});",
- "childProcess.stderr.pipe(stderrStream, {end: false});",
- "childProcess.stdout.pipe(process.stdout);",
- "childProcess.stderr.pipe(process.stderr);",
- "var stdoutEnded = false, stderrEnded = false;",
- "function tryClosingStdout(){ if(stdoutEnded){ stdoutStream.end(); } }",
- "function tryClosingStderr(){ if(stderrEnded){ stderrStream.end(); } }",
- "childProcess.stdout.on('end', function(){ stdoutEnded = true; tryClosingStdout(); });",
- "childProcess.stderr.on('end', function(){ stderrEnded = true; tryClosingStderr(); });"
- ].join('\n');
+ 'var childProcess = child.exec(' + JSON.stringify(cmd) + ', ' + optString + ', function(err) {',
+ ' fs.writeFileSync(' + JSON.stringify(codeFile) + ", err ? err.code.toString() : '0');",
+ '});',
+ 'var stdoutStream = fs.createWriteStream(' + JSON.stringify(stdoutFile) + ');',
+ 'var stderrStream = fs.createWriteStream(' + JSON.stringify(stderrFile) + ');',
+ 'childProcess.stdout.pipe(stdoutStream, {end: false});',
+ 'childProcess.stderr.pipe(stderrStream, {end: false});',
+ 'childProcess.stdout.pipe(process.stdout);',
+ 'childProcess.stderr.pipe(process.stderr);'
+ ].join('\n') +
+ (pipe ? '\nchildProcess.stdin.end(' + JSON.stringify(pipe) + ');\n' : '\n') +
+ [
+ 'var stdoutEnded = false, stderrEnded = false;',
+ 'function tryClosingStdout(){ if(stdoutEnded){ stdoutStream.end(); } }',
+ 'function tryClosingStderr(){ if(stderrEnded){ stderrStream.end(); } }',
+ "childProcess.stdout.on('end', function(){ stdoutEnded = true; tryClosingStdout(); });",
+ "childProcess.stderr.on('end', function(){ stderrEnded = true; tryClosingStderr(); });"
+ ].join('\n');
fs.writeFileSync(scriptFile, script);
@@ -94,17 +104,27 @@ function execSync(cmd, opts) {
}
// Welcome to the future
- child.execSync(execCommand, opts);
+ try {
+ child.execSync(execCommand, opts);
+ } catch (e) {
+ // Clean up immediately if we have an exception
+ try { common.unlinkSync(scriptFile); } catch (e2) {}
+ try { common.unlinkSync(stdoutFile); } catch (e2) {}
+ try { common.unlinkSync(stderrFile); } catch (e2) {}
+ try { common.unlinkSync(codeFile); } catch (e2) {}
+ throw e;
+ }
} else {
- cmd += ' > '+stdoutFile+' 2> '+stderrFile; // works on both win/unix
+ cmd += ' > ' + stdoutFile + ' 2> ' + stderrFile; // works on both win/unix
script = [
"var child = require('child_process')",
" , fs = require('fs');",
- "var childProcess = child.exec('"+escape(cmd)+"', {env: process.env, maxBuffer: "+opts.maxBuffer+"}, function(err) {",
- " fs.writeFileSync('"+escape(codeFile)+"', err ? err.code.toString() : '0');",
- "});"
- ].join('\n');
+ 'var childProcess = child.exec(' + JSON.stringify(cmd) + ', ' + optString + ', function(err) {',
+ ' fs.writeFileSync(' + JSON.stringify(codeFile) + ", err ? err.code.toString() : '0');",
+ '});'
+ ].join('\n') +
+ (pipe ? '\nchildProcess.stdin.end(' + JSON.stringify(pipe) + ');\n' : '\n');
fs.writeFileSync(scriptFile, script);
@@ -117,6 +137,7 @@ function execSync(cmd, opts) {
while (!fs.existsSync(codeFile)) { updateStream(stdoutFile); fs.writeFileSync(sleepFile, 'a'); }
while (!fs.existsSync(stdoutFile)) { updateStream(stdoutFile); fs.writeFileSync(sleepFile, 'a'); }
while (!fs.existsSync(stderrFile)) { updateStream(stderrFile); fs.writeFileSync(sleepFile, 'a'); }
+ try { common.unlinkSync(sleepFile); } catch (e) {}
}
// At this point codeFile exists, but it's not necessarily flushed yet.
@@ -130,53 +151,46 @@ function execSync(cmd, opts) {
var stderr = fs.readFileSync(stderrFile, 'utf8');
// No biggie if we can't erase the files now -- they're in a temp dir anyway
- try { common.unlinkSync(scriptFile); } catch(e) {}
- try { common.unlinkSync(stdoutFile); } catch(e) {}
- try { common.unlinkSync(stderrFile); } catch(e) {}
- try { common.unlinkSync(codeFile); } catch(e) {}
- try { common.unlinkSync(sleepFile); } catch(e) {}
-
- // some shell return codes are defined as errors, per http://tldp.org/LDP/abs/html/exitcodes.html
- if (code === 1 || code === 2 || code >= 126) {
- common.error('', true); // unix/shell doesn't really give an error message after non-zero exit codes
+ try { common.unlinkSync(scriptFile); } catch (e) {}
+ try { common.unlinkSync(stdoutFile); } catch (e) {}
+ try { common.unlinkSync(stderrFile); } catch (e) {}
+ try { common.unlinkSync(codeFile); } catch (e) {}
+
+ if (code !== 0) {
+ common.error('', code, { continue: true });
}
- // True if successful, false if not
- var obj = {
- code: code,
- output: stdout, // deprecated
- stdout: stdout,
- stderr: stderr
- };
+ var obj = common.ShellString(stdout, stderr, code);
return obj;
} // execSync()
// Wrapper around exec() to enable echoing output to console in real time
-function execAsync(cmd, opts, callback) {
+function execAsync(cmd, opts, pipe, callback) {
var stdout = '';
var stderr = '';
opts = common.extend({
silent: common.config.silent,
- cwd: _pwd(),
+ cwd: _pwd().toString(),
env: process.env,
maxBuffer: DEFAULT_MAXBUFFER_SIZE
}, opts);
- var c = child.exec(cmd, opts, function(err) {
- if (callback)
+ var c = child.exec(cmd, opts, function (err) {
+ if (callback) {
callback(err ? err.code : 0, stdout, stderr);
+ }
});
- c.stdout.on('data', function(data) {
+ if (pipe) c.stdin.end(pipe);
+
+ c.stdout.on('data', function (data) {
stdout += data;
- if (!opts.silent)
- process.stdout.write(data);
+ if (!opts.silent) process.stdout.write(data);
});
- c.stderr.on('data', function(data) {
+ c.stderr.on('data', function (data) {
stderr += data;
- if (!opts.silent)
- process.stderr.write(data);
+ if (!opts.silent) process.stderr.write(data);
});
return c;
@@ -210,16 +224,22 @@ function execAsync(cmd, opts, callback) {
//@ ```
//@
//@ Executes the given `command` _synchronously_, unless otherwise specified. When in synchronous
-//@ mode returns the object `{ code:..., stdout:... , stderr:... }`, containing the program's
-//@ `stdout`, `stderr`, and its exit `code`. Otherwise returns the child process object,
-//@ and the `callback` gets the arguments `(code, stdout, stderr)`.
+//@ mode, this returns a ShellString (compatible with ShellJS v0.6.x, which returns an object
+//@ of the form `{ code:..., stdout:... , stderr:... }`). Otherwise, this returns the child process
+//@ object, and the `callback` gets the arguments `(code, stdout, stderr)`.
+//@
+//@ Not seeing the behavior you want? `exec()` runs everything through `sh`
+//@ by default (or `cmd.exe` on Windows), which differs from `bash`. If you
+//@ need bash-specific behavior, try out the `{shell: 'path/to/bash'}` option.
//@
//@ **Note:** For long-lived processes, it's best to run `exec()` asynchronously as
//@ the current synchronous implementation uses a lot of CPU. This should be getting
//@ fixed soon.
function _exec(command, options, callback) {
- if (!command)
- common.error('must specify command');
+ options = options || {};
+ if (!command) common.error('must specify command');
+
+ var pipe = common.readFromPipe();
// Callback is defined instead of options.
if (typeof options === 'function') {
@@ -238,10 +258,11 @@ function _exec(command, options, callback) {
}, options);
try {
- if (options.async)
- return execAsync(command, options, callback);
- else
- return execSync(command, options);
+ if (options.async) {
+ return execAsync(command, options, pipe, callback);
+ } else {
+ return execSync(command, options, pipe);
+ }
} catch (e) {
common.error('internal error');
}
diff --git a/tools/eslint/node_modules/shelljs/src/find.js b/tools/eslint/node_modules/shelljs/src/find.js
index c96fb2f7ad..f96a51e783 100644
--- a/tools/eslint/node_modules/shelljs/src/find.js
+++ b/tools/eslint/node_modules/shelljs/src/find.js
@@ -1,7 +1,10 @@
var fs = require('fs');
+var path = require('path');
var common = require('./common');
var _ls = require('./ls');
+common.register('find', _find, {});
+
//@
//@ ### find(path [, path ...])
//@ ### find(path_array)
@@ -18,30 +21,30 @@ var _ls = require('./ls');
//@ The main difference from `ls('-R', path)` is that the resulting file names
//@ include the base directories, e.g. `lib/resources/file1` instead of just `file1`.
function _find(options, paths) {
- if (!paths)
+ if (!paths) {
common.error('no path specified');
- else if (typeof paths === 'object')
- paths = paths; // assume array
- else if (typeof paths === 'string')
+ } else if (typeof paths === 'string') {
paths = [].slice.call(arguments, 1);
+ }
var list = [];
function pushFile(file) {
- if (common.platform === 'win')
+ if (common.platform === 'win') {
file = file.replace(/\\/g, '/');
+ }
list.push(file);
}
// why not simply do ls('-R', paths)? because the output wouldn't give the base dirs
// to get the base dir in the output, we need instead ls('-R', 'dir/*') for every directory
- paths.forEach(function(file) {
+ paths.forEach(function (file) {
pushFile(file);
if (fs.statSync(file).isDirectory()) {
- _ls('-RA', file+'/*').forEach(function(subfile) {
- pushFile(subfile);
+ _ls({ recursive: true, all: true }, file).forEach(function (subfile) {
+ pushFile(path.join(file, subfile));
});
}
});
diff --git a/tools/eslint/node_modules/shelljs/src/grep.js b/tools/eslint/node_modules/shelljs/src/grep.js
index 78008ce19e..30842bcb85 100644
--- a/tools/eslint/node_modules/shelljs/src/grep.js
+++ b/tools/eslint/node_modules/shelljs/src/grep.js
@@ -1,12 +1,22 @@
var common = require('./common');
var fs = require('fs');
+common.register('grep', _grep, {
+ globStart: 2, // don't glob-expand the regex
+ canReceivePipe: true,
+ cmdOptions: {
+ 'v': 'inverse',
+ 'l': 'nameOnly',
+ },
+});
+
//@
//@ ### grep([options,] regex_filter, file [, file ...])
//@ ### grep([options,] regex_filter, file_array)
//@ Available options:
//@
//@ + `-v`: Inverse the sense of the regex and print the lines not matching the criteria.
+//@ + `-l`: Print only filenames of matching files
//@
//@ Examples:
//@
@@ -16,37 +26,42 @@ var fs = require('fs');
//@ ```
//@
//@ Reads input string from given files and returns a string containing all lines of the
-//@ file that match the given `regex_filter`. Wildcard `*` accepted.
+//@ file that match the given `regex_filter`.
function _grep(options, regex, files) {
- options = common.parseOptions(options, {
- 'v': 'inverse'
- });
+ // Check if this is coming from a pipe
+ var pipe = common.readFromPipe();
- if (!files)
- common.error('no paths given');
+ if (!files && !pipe) common.error('no paths given', 2);
- if (typeof files === 'string')
- files = [].slice.call(arguments, 2);
- // if it's array leave it as it is
+ files = [].slice.call(arguments, 2);
- files = common.expand(files);
+ if (pipe) {
+ files.unshift('-');
+ }
- var grep = '';
- files.forEach(function(file) {
- if (!fs.existsSync(file)) {
- common.error('no such file or directory: ' + file, true);
+ var grep = [];
+ files.forEach(function (file) {
+ if (!fs.existsSync(file) && file !== '-') {
+ common.error('no such file or directory: ' + file, 2, { continue: true });
return;
}
- var contents = fs.readFileSync(file, 'utf8'),
- lines = contents.split(/\r*\n/);
- lines.forEach(function(line) {
- var matched = line.match(regex);
- if ((options.inverse && !matched) || (!options.inverse && matched))
- grep += line + '\n';
- });
+ var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
+ var lines = contents.split(/\r*\n/);
+ if (options.nameOnly) {
+ if (contents.match(regex)) {
+ grep.push(file);
+ }
+ } else {
+ lines.forEach(function (line) {
+ var matched = line.match(regex);
+ if ((options.inverse && !matched) || (!options.inverse && matched)) {
+ grep.push(line);
+ }
+ });
+ }
});
- return common.ShellString(grep);
+ return grep.join('\n') + '\n';
}
module.exports = _grep;
diff --git a/tools/eslint/node_modules/shelljs/src/head.js b/tools/eslint/node_modules/shelljs/src/head.js
new file mode 100644
index 0000000000..13d5829775
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/src/head.js
@@ -0,0 +1,104 @@
+var common = require('./common');
+var fs = require('fs');
+
+common.register('head', _head, {
+ canReceivePipe: true,
+ cmdOptions: {
+ 'n': 'numLines',
+ },
+});
+
+// This reads n or more lines, or the entire file, whichever is less.
+function readSomeLines(file, numLines) {
+ var BUF_LENGTH = 64 * 1024;
+ var buf = new Buffer(BUF_LENGTH);
+ var bytesRead = BUF_LENGTH;
+ var pos = 0;
+ var fdr = null;
+
+ try {
+ fdr = fs.openSync(file, 'r');
+ } catch (e) {
+ common.error('cannot read file: ' + file);
+ }
+
+ var numLinesRead = 0;
+ var ret = '';
+ while (bytesRead === BUF_LENGTH && numLinesRead < numLines) {
+ bytesRead = fs.readSync(fdr, buf, 0, BUF_LENGTH, pos);
+ var bufStr = buf.toString('utf8', 0, bytesRead);
+ numLinesRead += bufStr.split('\n').length - 1;
+ ret += bufStr;
+ pos += bytesRead;
+ }
+
+ fs.closeSync(fdr);
+ return ret;
+}
+//@
+//@ ### head([{'-n': \<num\>},] file [, file ...])
+//@ ### head([{'-n': \<num\>},] file_array)
+//@ Available options:
+//@
+//@ + `-n <num>`: Show the first `<num>` lines of the files
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var str = head({'-n': 1}, 'file*.txt');
+//@ var str = head('file1', 'file2');
+//@ var str = head(['file1', 'file2']); // same as above
+//@ ```
+//@
+//@ Read the start of a file.
+function _head(options, files) {
+ var head = [];
+ var pipe = common.readFromPipe();
+
+ if (!files && !pipe) common.error('no paths given');
+
+ var idx = 1;
+ if (options.numLines === true) {
+ idx = 2;
+ options.numLines = Number(arguments[1]);
+ } else if (options.numLines === false) {
+ options.numLines = 10;
+ }
+ files = [].slice.call(arguments, idx);
+
+ if (pipe) {
+ files.unshift('-');
+ }
+
+ var shouldAppendNewline = false;
+ files.forEach(function (file) {
+ if (!fs.existsSync(file) && file !== '-') {
+ common.error('no such file or directory: ' + file, { continue: true });
+ return;
+ }
+
+ var contents;
+ if (file === '-') {
+ contents = pipe;
+ } else if (options.numLines < 0) {
+ contents = fs.readFileSync(file, 'utf8');
+ } else {
+ contents = readSomeLines(file, options.numLines);
+ }
+
+ var lines = contents.split('\n');
+ var hasTrailingNewline = (lines[lines.length - 1] === '');
+ if (hasTrailingNewline) {
+ lines.pop();
+ }
+ shouldAppendNewline = (hasTrailingNewline || options.numLines < lines.length);
+
+ head = head.concat(lines.slice(0, options.numLines));
+ });
+
+ if (shouldAppendNewline) {
+ head.push(''); // to add a trailing newline once we join
+ }
+ return head.join('\n');
+}
+module.exports = _head;
diff --git a/tools/eslint/node_modules/shelljs/src/ln.js b/tools/eslint/node_modules/shelljs/src/ln.js
index 878fda13e2..7393d9fcdc 100644
--- a/tools/eslint/node_modules/shelljs/src/ln.js
+++ b/tools/eslint/node_modules/shelljs/src/ln.js
@@ -2,6 +2,13 @@ var fs = require('fs');
var path = require('path');
var common = require('./common');
+common.register('ln', _ln, {
+ cmdOptions: {
+ 's': 'symlink',
+ 'f': 'force',
+ },
+});
+
//@
//@ ### ln([options,] source, dest)
//@ Available options:
@@ -18,11 +25,6 @@ var common = require('./common');
//@
//@ Links source to dest. Use -f to force the link, should dest already exist.
function _ln(options, source, dest) {
- options = common.parseOptions(options, {
- 's': 'symlink',
- 'f': 'force'
- });
-
if (!source || !dest) {
common.error('Missing <source> and/or <dest>');
}
@@ -34,7 +36,7 @@ function _ln(options, source, dest) {
if (fs.existsSync(dest)) {
if (!options.force) {
- common.error('Destination file exists', true);
+ common.error('Destination file exists', { continue: true });
}
fs.unlinkSync(dest);
@@ -45,19 +47,19 @@ function _ln(options, source, dest) {
var linkType = isWindows ? 'file' : null;
var resolvedSourcePath = isAbsolute ? sourcePath : path.resolve(process.cwd(), path.dirname(dest), source);
if (!fs.existsSync(resolvedSourcePath)) {
- common.error('Source file does not exist', true);
+ common.error('Source file does not exist', { continue: true });
} else if (isWindows && fs.statSync(resolvedSourcePath).isDirectory()) {
- linkType = 'junction';
+ linkType = 'junction';
}
try {
- fs.symlinkSync(linkType === 'junction' ? resolvedSourcePath: source, dest, linkType);
+ fs.symlinkSync(linkType === 'junction' ? resolvedSourcePath : source, dest, linkType);
} catch (err) {
common.error(err.message);
}
} else {
if (!fs.existsSync(source)) {
- common.error('Source file does not exist', true);
+ common.error('Source file does not exist', { continue: true });
}
try {
fs.linkSync(source, dest);
@@ -65,5 +67,6 @@ function _ln(options, source, dest) {
common.error(err.message);
}
}
+ return '';
}
module.exports = _ln;
diff --git a/tools/eslint/node_modules/shelljs/src/ls.js b/tools/eslint/node_modules/shelljs/src/ls.js
index 6a54b3a8d8..7f25056cd3 100644
--- a/tools/eslint/node_modules/shelljs/src/ls.js
+++ b/tools/eslint/node_modules/shelljs/src/ls.js
@@ -1,8 +1,19 @@
var path = require('path');
var fs = require('fs');
var common = require('./common');
-var _cd = require('./cd');
-var _pwd = require('./pwd');
+var glob = require('glob');
+
+var globPatternRecursive = path.sep + '**' + path.sep + '*';
+
+common.register('ls', _ls, {
+ cmdOptions: {
+ 'R': 'recursive',
+ 'A': 'all',
+ 'a': 'all_deprecated',
+ 'd': 'directory',
+ 'l': 'long',
+ },
+});
//@
//@ ### ls([options,] [path, ...])
@@ -28,14 +39,6 @@ var _pwd = require('./pwd');
//@
//@ Returns array of files in the given path, or in current directory if no path provided.
function _ls(options, paths) {
- options = common.parseOptions(options, {
- 'R': 'recursive',
- 'A': 'all',
- 'a': 'all_deprecated',
- 'd': 'directory',
- 'l': 'long'
- });
-
if (options.all_deprecated) {
// We won't support the -a option as it's hard to image why it's useful
// (it includes '.' and '..' in addition to '.*' files)
@@ -44,125 +47,75 @@ function _ls(options, paths) {
options.all = true;
}
- if (!paths)
+ if (!paths) {
paths = ['.'];
- else if (typeof paths === 'object')
- paths = paths; // assume array
- else if (typeof paths === 'string')
+ } else {
paths = [].slice.call(arguments, 1);
+ }
var list = [];
- // Conditionally pushes file to list - returns true if pushed, false otherwise
- // (e.g. prevents hidden files to be included unless explicitly told so)
- function pushFile(file, query) {
- var name = file.name || file;
- // hidden file?
- if (path.basename(name)[0] === '.') {
- // not explicitly asking for hidden files?
- if (!options.all && !(path.basename(query)[0] === '.' && path.basename(query).length > 1))
- return false;
+ function pushFile(abs, relName, stat) {
+ if (process.platform === 'win32') {
+ relName = relName.replace(/\\/g, '/');
}
-
- if (common.platform === 'win')
- name = name.replace(/\\/g, '/');
-
- if (file.name) {
- file.name = name;
+ if (options.long) {
+ stat = stat || fs.lstatSync(abs);
+ list.push(addLsAttributes(relName, stat));
} else {
- file = name;
+ // list.push(path.relative(rel || '.', file));
+ list.push(relName);
}
- list.push(file);
- return true;
}
- paths.forEach(function(p) {
- if (fs.existsSync(p)) {
- var stats = ls_stat(p);
- // Simple file?
- if (stats.isFile()) {
- if (options.long) {
- pushFile(stats, p);
- } else {
- pushFile(p, p);
- }
- return; // continue
- }
+ paths.forEach(function (p) {
+ var stat;
- // Simple dir?
- if (options.directory) {
- pushFile(p, p);
- return;
- } else if (stats.isDirectory()) {
- // Iterate over p contents
- fs.readdirSync(p).forEach(function(file) {
- var orig_file = file;
- if (options.long)
- file = ls_stat(path.join(p, file));
- if (!pushFile(file, p))
- return;
+ try {
+ stat = fs.lstatSync(p);
+ } catch (e) {
+ common.error('no such file or directory: ' + p, 2, { continue: true });
+ return;
+ }
- // Recursive?
- if (options.recursive) {
- var oldDir = _pwd();
- _cd('', p);
- if (fs.statSync(orig_file).isDirectory())
- list = list.concat(_ls('-R'+(options.all?'A':''), orig_file+'/*'));
- _cd('', oldDir);
+ // If the stat succeeded
+ if (stat.isDirectory() && !options.directory) {
+ if (options.recursive) {
+ // use glob, because it's simple
+ glob.sync(p + globPatternRecursive, { dot: options.all })
+ .forEach(function (item) {
+ pushFile(item, path.relative(p, item));
+ });
+ } else if (options.all) {
+ // use fs.readdirSync, because it's fast
+ fs.readdirSync(p).forEach(function (item) {
+ pushFile(path.join(p, item), item);
+ });
+ } else {
+ // use fs.readdirSync and then filter out secret files
+ fs.readdirSync(p).forEach(function (item) {
+ if (item[0] !== '.') {
+ pushFile(path.join(p, item), item);
}
});
- return; // continue
}
+ } else {
+ pushFile(p, p, stat);
}
-
- // p does not exist - possible wildcard present
-
- var basename = path.basename(p);
- var dirname = path.dirname(p);
- // Wildcard present on an existing dir? (e.g. '/tmp/*.js')
- if (basename.search(/\*/) > -1 && fs.existsSync(dirname) && fs.statSync(dirname).isDirectory) {
- // Escape special regular expression chars
- var regexp = basename.replace(/(\^|\$|\(|\)|<|>|\[|\]|\{|\}|\.|\+|\?)/g, '\\$1');
- // Translates wildcard into regex
- regexp = '^' + regexp.replace(/\*/g, '.*') + '$';
- // Iterate over directory contents
- fs.readdirSync(dirname).forEach(function(file) {
- if (file.match(new RegExp(regexp))) {
- var file_path = path.join(dirname, file);
- file_path = options.long ? ls_stat(file_path) : file_path;
- if (file_path.name)
- file_path.name = path.normalize(file_path.name);
- else
- file_path = path.normalize(file_path);
- if (!pushFile(file_path, basename))
- return;
-
- // Recursive?
- if (options.recursive) {
- var pp = dirname + '/' + file;
- if (fs.lstatSync(pp).isDirectory())
- list = list.concat(_ls('-R'+(options.all?'A':''), pp+'/*'));
- } // recursive
- } // if file matches
- }); // forEach
- return;
- }
-
- common.error('no such file or directory: ' + p, true);
});
+ // Add methods, to make this more compatible with ShellStrings
return list;
}
-module.exports = _ls;
-
-function ls_stat(path) {
- var stats = fs.statSync(path);
+function addLsAttributes(pathName, stats) {
// Note: this object will contain more information than .toString() returns
- stats.name = path;
- stats.toString = function() {
+ stats.name = pathName;
+ stats.toString = function () {
// Return a string resembling unix's `ls -l` format
return [this.mode, this.nlink, this.uid, this.gid, this.size, this.mtime, this.name].join(' ');
};
return stats;
}
+
+module.exports = _ls;
diff --git a/tools/eslint/node_modules/shelljs/src/mkdir.js b/tools/eslint/node_modules/shelljs/src/mkdir.js
index 8b4fd99075..f211bc89b3 100644
--- a/tools/eslint/node_modules/shelljs/src/mkdir.js
+++ b/tools/eslint/node_modules/shelljs/src/mkdir.js
@@ -2,10 +2,23 @@ var common = require('./common');
var fs = require('fs');
var path = require('path');
+common.register('mkdir', _mkdir, {
+ cmdOptions: {
+ 'p': 'fullpath',
+ },
+});
+
// Recursively creates 'dir'
function mkdirSyncRecursive(dir) {
var baseDir = path.dirname(dir);
+ // Prevents some potential problems arising from malformed UNCs or
+ // insufficient permissions.
+ /* istanbul ignore next */
+ if (baseDir === dir) {
+ common.error('dirname() failed: [' + dir + ']');
+ }
+
// Base dir exists, no recursion necessary
if (fs.existsSync(baseDir)) {
fs.mkdirSync(dir, parseInt('0777', 8));
@@ -35,34 +48,45 @@ function mkdirSyncRecursive(dir) {
//@
//@ Creates directories.
function _mkdir(options, dirs) {
- options = common.parseOptions(options, {
- 'p': 'fullpath'
- });
- if (!dirs)
- common.error('no paths given');
+ if (!dirs) common.error('no paths given');
- if (typeof dirs === 'string')
+ if (typeof dirs === 'string') {
dirs = [].slice.call(arguments, 1);
+ }
// if it's array leave it as it is
- dirs.forEach(function(dir) {
- if (fs.existsSync(dir)) {
- if (!options.fullpath)
- common.error('path already exists: ' + dir, true);
+ dirs.forEach(function (dir) {
+ try {
+ fs.lstatSync(dir);
+ if (!options.fullpath) {
+ common.error('path already exists: ' + dir, { continue: true });
+ }
return; // skip dir
+ } catch (e) {
+ // do nothing
}
// Base dir does not exist, and no -p option given
var baseDir = path.dirname(dir);
if (!fs.existsSync(baseDir) && !options.fullpath) {
- common.error('no such file or directory: ' + baseDir, true);
+ common.error('no such file or directory: ' + baseDir, { continue: true });
return; // skip dir
}
- if (options.fullpath)
- mkdirSyncRecursive(dir);
- else
- fs.mkdirSync(dir, parseInt('0777', 8));
+ try {
+ if (options.fullpath) {
+ mkdirSyncRecursive(dir);
+ } else {
+ fs.mkdirSync(dir, parseInt('0777', 8));
+ }
+ } catch (e) {
+ if (e.code === 'EACCES') {
+ common.error('cannot create directory ' + dir + ': Permission denied');
+ } else {
+ throw e;
+ }
+ }
});
+ return '';
} // mkdir
module.exports = _mkdir;
diff --git a/tools/eslint/node_modules/shelljs/src/mv.js b/tools/eslint/node_modules/shelljs/src/mv.js
index 69cc03fe1e..c09bbbc769 100644
--- a/tools/eslint/node_modules/shelljs/src/mv.js
+++ b/tools/eslint/node_modules/shelljs/src/mv.js
@@ -1,6 +1,15 @@
var fs = require('fs');
var path = require('path');
var common = require('./common');
+var cp = require('./cp');
+var rm = require('./rm');
+
+common.register('mv', _mv, {
+ cmdOptions: {
+ 'f': '!no_force',
+ 'n': 'no_force',
+ },
+});
//@
//@ ### mv([options ,] source [, source ...], dest')
@@ -18,13 +27,8 @@ var common = require('./common');
//@ mv(['file1', 'file2'], 'dir/'); // same as above
//@ ```
//@
-//@ Moves files. The wildcard `*` is accepted.
+//@ Moves files.
function _mv(options, sources, dest) {
- options = common.parseOptions(options, {
- 'f': '!no_force',
- 'n': 'no_force'
- });
-
// Get sources, dest
if (arguments.length < 3) {
common.error('missing <source> and/or <dest>');
@@ -33,28 +37,26 @@ function _mv(options, sources, dest) {
dest = arguments[arguments.length - 1];
} else if (typeof sources === 'string') {
sources = [sources];
- } else if ('length' in sources) {
- sources = sources; // no-op for array
} else {
common.error('invalid arguments');
}
- sources = common.expand(sources);
-
- var exists = fs.existsSync(dest),
- stats = exists && fs.statSync(dest);
+ var exists = fs.existsSync(dest);
+ var stats = exists && fs.statSync(dest);
// Dest is not existing dir, but multiple sources given
- if ((!exists || !stats.isDirectory()) && sources.length > 1)
+ if ((!exists || !stats.isDirectory()) && sources.length > 1) {
common.error('dest is not a directory (too many sources)');
+ }
// Dest is an existing file, but no -f given
- if (exists && stats.isFile() && options.no_force)
+ if (exists && stats.isFile() && options.no_force) {
common.error('dest file already exists: ' + dest);
+ }
- sources.forEach(function(src) {
+ sources.forEach(function (src) {
if (!fs.existsSync(src)) {
- common.error('no such file or directory: '+src, true);
+ common.error('no such file or directory: ' + src, { continue: true });
return; // skip file
}
@@ -63,20 +65,31 @@ function _mv(options, sources, dest) {
// When copying to '/path/dir':
// thisDest = '/path/dir/file1'
var thisDest = dest;
- if (fs.existsSync(dest) && fs.statSync(dest).isDirectory())
+ if (fs.existsSync(dest) && fs.statSync(dest).isDirectory()) {
thisDest = path.normalize(dest + '/' + path.basename(src));
+ }
if (fs.existsSync(thisDest) && options.no_force) {
- common.error('dest file already exists: ' + thisDest, true);
+ common.error('dest file already exists: ' + thisDest, { continue: true });
return; // skip file
}
if (path.resolve(src) === path.dirname(path.resolve(thisDest))) {
- common.error('cannot move to self: '+src, true);
+ common.error('cannot move to self: ' + src, { continue: true });
return; // skip file
}
- fs.renameSync(src, thisDest);
+ try {
+ fs.renameSync(src, thisDest);
+ } catch (e) {
+ if (e.code === 'EXDEV') { // external partition
+ // if either of these fails, the appropriate error message will bubble
+ // up to the top level automatically
+ cp('-r', src, thisDest);
+ rm('-rf', src);
+ }
+ }
}); // forEach(src)
+ return '';
} // mv
module.exports = _mv;
diff --git a/tools/eslint/node_modules/shelljs/src/popd.js b/tools/eslint/node_modules/shelljs/src/popd.js
index 11ea24fa46..d9eac3f56d 100644
--- a/tools/eslint/node_modules/shelljs/src/popd.js
+++ b/tools/eslint/node_modules/shelljs/src/popd.js
@@ -1 +1 @@
-// see dirs.js \ No newline at end of file
+// see dirs.js
diff --git a/tools/eslint/node_modules/shelljs/src/pushd.js b/tools/eslint/node_modules/shelljs/src/pushd.js
index 11ea24fa46..d9eac3f56d 100644
--- a/tools/eslint/node_modules/shelljs/src/pushd.js
+++ b/tools/eslint/node_modules/shelljs/src/pushd.js
@@ -1 +1 @@
-// see dirs.js \ No newline at end of file
+// see dirs.js
diff --git a/tools/eslint/node_modules/shelljs/src/pwd.js b/tools/eslint/node_modules/shelljs/src/pwd.js
index 26cefe0a04..38618518b5 100644
--- a/tools/eslint/node_modules/shelljs/src/pwd.js
+++ b/tools/eslint/node_modules/shelljs/src/pwd.js
@@ -1,11 +1,15 @@
var path = require('path');
var common = require('./common');
+common.register('pwd', _pwd, {
+ allowGlobbing: false,
+});
+
//@
//@ ### pwd()
//@ Returns the current directory.
function _pwd() {
var pwd = path.resolve(process.cwd());
- return common.ShellString(pwd);
+ return pwd;
}
module.exports = _pwd;
diff --git a/tools/eslint/node_modules/shelljs/src/rm.js b/tools/eslint/node_modules/shelljs/src/rm.js
index cf2e95b6d8..d6e484a085 100644
--- a/tools/eslint/node_modules/shelljs/src/rm.js
+++ b/tools/eslint/node_modules/shelljs/src/rm.js
@@ -1,6 +1,14 @@
var common = require('./common');
var fs = require('fs');
+common.register('rm', _rm, {
+ cmdOptions: {
+ 'f': 'force',
+ 'r': 'recursive',
+ 'R': 'recursive',
+ },
+});
+
// Recursively removes 'dir'
// Adapted from https://github.com/ryanmcgrath/wrench-js
//
@@ -15,32 +23,21 @@ function rmdirSyncRecursive(dir, force) {
files = fs.readdirSync(dir);
// Loop through and delete everything in the sub-tree after checking it
- for(var i = 0; i < files.length; i++) {
- var file = dir + "/" + files[i],
- currFile = fs.lstatSync(file);
+ for (var i = 0; i < files.length; i++) {
+ var file = dir + '/' + files[i];
+ var currFile = fs.lstatSync(file);
- if(currFile.isDirectory()) { // Recursive function back to the beginning
+ if (currFile.isDirectory()) { // Recursive function back to the beginning
rmdirSyncRecursive(file, force);
- }
-
- else if(currFile.isSymbolicLink()) { // Unlink symlinks
+ } else { // Assume it's a file - perhaps a try/catch belongs here?
if (force || isWriteable(file)) {
try {
common.unlinkSync(file);
} catch (e) {
- common.error('could not remove file (code '+e.code+'): ' + file, true);
+ common.error('could not remove file (code ' + e.code + '): ' + file, { continue: true });
}
}
}
-
- else // Assume it's a file - perhaps a try/catch belongs here?
- if (force || isWriteable(file)) {
- try {
- common.unlinkSync(file);
- } catch (e) {
- common.error('could not remove file (code '+e.code+'): ' + file, true);
- }
- }
}
// Now that we know everything in the sub-tree has been deleted, we can delete the main directory.
@@ -53,13 +50,13 @@ function rmdirSyncRecursive(dir, force) {
while (true) {
try {
result = fs.rmdirSync(dir);
- if (fs.existsSync(dir)) throw { code: "EAGAIN" };
+ if (fs.existsSync(dir)) throw { code: 'EAGAIN' };
break;
- } catch(er) {
+ } catch (er) {
// In addition to error codes, also check if the directory still exists and loop again if true
- if (process.platform === "win32" && (er.code === "ENOTEMPTY" || er.code === "EBUSY" || er.code === "EPERM" || er.code === "EAGAIN")) {
+ if (process.platform === 'win32' && (er.code === 'ENOTEMPTY' || er.code === 'EBUSY' || er.code === 'EPERM' || er.code === 'EAGAIN')) {
if (Date.now() - start > 1000) throw er;
- } else if (er.code === "ENOENT") {
+ } else if (er.code === 'ENOENT') {
// Directory did not exist, deletion was successful
break;
} else {
@@ -67,8 +64,8 @@ function rmdirSyncRecursive(dir, force) {
}
}
}
- } catch(e) {
- common.error('could not remove directory (code '+e.code+'): ' + dir, true);
+ } catch (e) {
+ common.error('could not remove directory (code ' + e.code + '): ' + dir, { continue: true });
}
return result;
@@ -81,7 +78,7 @@ function isWriteable(file) {
try {
var __fd = fs.openSync(file, 'a');
fs.closeSync(__fd);
- } catch(e) {
+ } catch (e) {
writePermission = false;
}
@@ -104,53 +101,45 @@ function isWriteable(file) {
//@ rm(['some_file.txt', 'another_file.txt']); // same as above
//@ ```
//@
-//@ Removes files. The wildcard `*` is accepted.
+//@ Removes files.
function _rm(options, files) {
- options = common.parseOptions(options, {
- 'f': 'force',
- 'r': 'recursive',
- 'R': 'recursive'
- });
- if (!files)
- common.error('no paths given');
-
- if (typeof files === 'string')
- files = [].slice.call(arguments, 1);
- // if it's array leave it as it is
+ if (!files) common.error('no paths given');
- files = common.expand(files);
+ // Convert to array
+ files = [].slice.call(arguments, 1);
- files.forEach(function(file) {
- if (!fs.existsSync(file)) {
+ files.forEach(function (file) {
+ var stats;
+ try {
+ stats = fs.lstatSync(file); // test for existence
+ } catch (e) {
// Path does not exist, no force flag given
- if (!options.force)
- common.error('no such file or directory: '+file, true);
-
+ if (!options.force) {
+ common.error('no such file or directory: ' + file, { continue: true });
+ }
return; // skip file
}
// If here, path exists
-
- var stats = fs.lstatSync(file);
if (stats.isFile() || stats.isSymbolicLink()) {
-
// Do not check for file writing permissions
if (options.force) {
common.unlinkSync(file);
return;
}
- if (isWriteable(file))
+ if (isWriteable(file)) {
common.unlinkSync(file);
- else
- common.error('permission denied: '+file, true);
+ } else {
+ common.error('permission denied: ' + file, { continue: true });
+ }
return;
} // simple file
// Path is an existing directory, but no -r flag given
if (stats.isDirectory() && !options.recursive) {
- common.error('path is a directory', true);
+ common.error('path is a directory', { continue: true });
return; // skip path
}
@@ -159,5 +148,6 @@ function _rm(options, files) {
rmdirSyncRecursive(file, options.force);
}
}); // forEach(file)
+ return '';
} // rm
module.exports = _rm;
diff --git a/tools/eslint/node_modules/shelljs/src/sed.js b/tools/eslint/node_modules/shelljs/src/sed.js
index baa385ba11..590ba74ffc 100644
--- a/tools/eslint/node_modules/shelljs/src/sed.js
+++ b/tools/eslint/node_modules/shelljs/src/sed.js
@@ -1,6 +1,14 @@
var common = require('./common');
var fs = require('fs');
+common.register('sed', _sed, {
+ globStart: 3, // don't glob-expand regexes
+ canReceivePipe: true,
+ cmdOptions: {
+ 'i': 'inplace',
+ },
+});
+
//@
//@ ### sed([options,] search_regex, replacement, file [, file ...])
//@ ### sed([options,] search_regex, replacement, file_array)
@@ -18,47 +26,52 @@ var fs = require('fs');
//@ Reads an input string from `files` and performs a JavaScript `replace()` on the input
//@ using the given search regex and replacement string or function. Returns the new string after replacement.
function _sed(options, regex, replacement, files) {
- options = common.parseOptions(options, {
- 'i': 'inplace'
- });
+ // Check if this is coming from a pipe
+ var pipe = common.readFromPipe();
- if (typeof replacement === 'string' || typeof replacement === 'function')
- replacement = replacement; // no-op
- else if (typeof replacement === 'number')
- replacement = replacement.toString(); // fallback
- else
- common.error('invalid replacement string');
+ if (typeof replacement !== 'string' && typeof replacement !== 'function') {
+ if (typeof replacement === 'number') {
+ replacement = replacement.toString(); // fallback
+ } else {
+ common.error('invalid replacement string');
+ }
+ }
// Convert all search strings to RegExp
- if (typeof regex === 'string')
+ if (typeof regex === 'string') {
regex = RegExp(regex);
+ }
- if (!files)
+ if (!files && !pipe) {
common.error('no files given');
+ }
- if (typeof files === 'string')
- files = [].slice.call(arguments, 3);
- // if it's array leave it as it is
+ files = [].slice.call(arguments, 3);
- files = common.expand(files);
+ if (pipe) {
+ files.unshift('-');
+ }
var sed = [];
- files.forEach(function(file) {
- if (!fs.existsSync(file)) {
- common.error('no such file or directory: ' + file, true);
+ files.forEach(function (file) {
+ if (!fs.existsSync(file) && file !== '-') {
+ common.error('no such file or directory: ' + file, 2, { continue: true });
return;
}
- var result = fs.readFileSync(file, 'utf8').split('\n').map(function (line) {
+ var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
+ var lines = contents.split(/\r*\n/);
+ var result = lines.map(function (line) {
return line.replace(regex, replacement);
}).join('\n');
sed.push(result);
- if (options.inplace)
+ if (options.inplace) {
fs.writeFileSync(file, result, 'utf8');
+ }
});
- return common.ShellString(sed.join('\n'));
+ return sed.join('\n');
}
module.exports = _sed;
diff --git a/tools/eslint/node_modules/shelljs/src/set.js b/tools/eslint/node_modules/shelljs/src/set.js
index 19e26d979d..3402cd6609 100644
--- a/tools/eslint/node_modules/shelljs/src/set.js
+++ b/tools/eslint/node_modules/shelljs/src/set.js
@@ -1,11 +1,17 @@
var common = require('./common');
+common.register('set', _set, {
+ allowGlobbing: false,
+ wrapOutput: false,
+});
+
//@
//@ ### set(options)
//@ Available options:
//@
//@ + `+/-e`: exit upon error (`config.fatal`)
//@ + `+/-v`: verbose: show all commands (`config.verbose`)
+//@ + `+/-f`: disable filename expansion (globbing)
//@
//@ Examples:
//@
@@ -18,8 +24,7 @@ var common = require('./common');
function _set(options) {
if (!options) {
var args = [].slice.call(arguments, 0);
- if (args.length < 2)
- common.error('must provide an argument');
+ if (args.length < 2) common.error('must provide an argument');
options = args[1];
}
var negate = (options[0] === '+');
@@ -28,22 +33,23 @@ function _set(options) {
}
options = common.parseOptions(options, {
'e': 'fatal',
- 'v': 'verbose'
+ 'v': 'verbose',
+ 'f': 'noglob'
});
- var key;
if (negate) {
- for (key in options)
+ Object.keys(options).forEach(function (key) {
options[key] = !options[key];
+ });
}
- for (key in options) {
+ Object.keys(options).forEach(function (key) {
// Only change the global config if `negate` is false and the option is true
// or if `negate` is true and the option is false (aka negate !== option)
if (negate !== options[key]) {
common.config[key] = options[key];
}
- }
+ });
return;
}
module.exports = _set;
diff --git a/tools/eslint/node_modules/shelljs/src/sort.js b/tools/eslint/node_modules/shelljs/src/sort.js
new file mode 100644
index 0000000000..041b037725
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/src/sort.js
@@ -0,0 +1,91 @@
+var common = require('./common');
+var fs = require('fs');
+
+common.register('sort', _sort, {
+ canReceivePipe: true,
+ cmdOptions: {
+ 'r': 'reverse',
+ 'n': 'numerical',
+ },
+});
+
+// parse out the number prefix of a line
+function parseNumber(str) {
+ var match = str.match(/^\s*(\d*)\s*(.*)$/);
+ return { num: Number(match[1]), value: match[2] };
+}
+
+// compare two strings case-insensitively, but examine case for strings that are
+// case-insensitive equivalent
+function unixCmp(a, b) {
+ var aLower = a.toLowerCase();
+ var bLower = b.toLowerCase();
+ return (aLower === bLower ?
+ -1 * a.localeCompare(b) : // unix sort treats case opposite how javascript does
+ aLower.localeCompare(bLower));
+}
+
+// compare two strings in the fashion that unix sort's -n option works
+function numericalCmp(a, b) {
+ var objA = parseNumber(a);
+ var objB = parseNumber(b);
+ if (objA.hasOwnProperty('num') && objB.hasOwnProperty('num')) {
+ return ((objA.num !== objB.num) ?
+ (objA.num - objB.num) :
+ unixCmp(objA.value, objB.value));
+ } else {
+ return unixCmp(objA.value, objB.value);
+ }
+}
+
+//@
+//@ ### sort([options,] file [, file ...])
+//@ ### sort([options,] file_array)
+//@ Available options:
+//@
+//@ + `-r`: Reverse the result of comparisons
+//@ + `-n`: Compare according to numerical value
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ sort('foo.txt', 'bar.txt');
+//@ sort('-r', 'foo.txt');
+//@ ```
+//@
+//@ Return the contents of the files, sorted line-by-line. Sorting multiple
+//@ files mixes their content, just like unix sort does.
+function _sort(options, files) {
+ // Check if this is coming from a pipe
+ var pipe = common.readFromPipe();
+
+ if (!files && !pipe) common.error('no files given');
+
+ files = [].slice.call(arguments, 1);
+
+ if (pipe) {
+ files.unshift('-');
+ }
+
+ var lines = [];
+ files.forEach(function (file) {
+ if (!fs.existsSync(file) && file !== '-') {
+ // exit upon any sort of error
+ common.error('no such file or directory: ' + file);
+ }
+
+ var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
+ lines = lines.concat(contents.trimRight().split(/\r*\n/));
+ });
+
+ var sorted;
+ sorted = lines.sort(options.numerical ? numericalCmp : unixCmp);
+
+ if (options.reverse) {
+ sorted = sorted.reverse();
+ }
+
+ return sorted.join('\n') + '\n';
+}
+
+module.exports = _sort;
diff --git a/tools/eslint/node_modules/shelljs/src/tail.js b/tools/eslint/node_modules/shelljs/src/tail.js
new file mode 100644
index 0000000000..7ece654b1e
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/src/tail.js
@@ -0,0 +1,72 @@
+var common = require('./common');
+var fs = require('fs');
+
+common.register('tail', _tail, {
+ canReceivePipe: true,
+ cmdOptions: {
+ 'n': 'numLines',
+ },
+});
+
+//@
+//@ ### tail([{'-n': \<num\>},] file [, file ...])
+//@ ### tail([{'-n': \<num\>},] file_array)
+//@ Available options:
+//@
+//@ + `-n <num>`: Show the last `<num>` lines of the files
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ var str = tail({'-n': 1}, 'file*.txt');
+//@ var str = tail('file1', 'file2');
+//@ var str = tail(['file1', 'file2']); // same as above
+//@ ```
+//@
+//@ Read the end of a file.
+function _tail(options, files) {
+ var tail = [];
+ var pipe = common.readFromPipe();
+
+ if (!files && !pipe) common.error('no paths given');
+
+ var idx = 1;
+ if (options.numLines === true) {
+ idx = 2;
+ options.numLines = Number(arguments[1]);
+ } else if (options.numLines === false) {
+ options.numLines = 10;
+ }
+ options.numLines = -1 * Math.abs(options.numLines);
+ files = [].slice.call(arguments, idx);
+
+ if (pipe) {
+ files.unshift('-');
+ }
+
+ var shouldAppendNewline = false;
+ files.forEach(function (file) {
+ if (!fs.existsSync(file) && file !== '-') {
+ common.error('no such file or directory: ' + file, { continue: true });
+ return;
+ }
+
+ var contents = file === '-' ? pipe : fs.readFileSync(file, 'utf8');
+
+ var lines = contents.split('\n');
+ if (lines[lines.length - 1] === '') {
+ lines.pop();
+ shouldAppendNewline = true;
+ } else {
+ shouldAppendNewline = false;
+ }
+
+ tail = tail.concat(lines.slice(options.numLines));
+ });
+
+ if (shouldAppendNewline) {
+ tail.push(''); // to add a trailing newline once we join
+ }
+ return tail.join('\n');
+}
+module.exports = _tail;
diff --git a/tools/eslint/node_modules/shelljs/src/tempdir.js b/tools/eslint/node_modules/shelljs/src/tempdir.js
index 79b949f0d4..cfd56b3792 100644
--- a/tools/eslint/node_modules/shelljs/src/tempdir.js
+++ b/tools/eslint/node_modules/shelljs/src/tempdir.js
@@ -2,15 +2,18 @@ var common = require('./common');
var os = require('os');
var fs = require('fs');
+common.register('tempdir', _tempDir, {
+ allowGlobbing: false,
+ wrapOutput: false,
+});
+
// Returns false if 'dir' is not a writeable directory, 'dir' otherwise
function writeableDir(dir) {
- if (!dir || !fs.existsSync(dir))
- return false;
+ if (!dir || !fs.existsSync(dir)) return false;
- if (!fs.statSync(dir).isDirectory())
- return false;
+ if (!fs.statSync(dir).isDirectory()) return false;
- var testFile = dir+'/'+common.randomFileName();
+ var testFile = dir + '/' + common.randomFileName();
try {
fs.writeFileSync(testFile, ' ');
common.unlinkSync(testFile);
@@ -34,15 +37,14 @@ function writeableDir(dir) {
//@ Follows Python's [tempfile algorithm](http://docs.python.org/library/tempfile.html#tempfile.tempdir).
function _tempDir() {
var state = common.state;
- if (state.tempDir)
- return state.tempDir; // from cache
+ if (state.tempDir) return state.tempDir; // from cache
state.tempDir = writeableDir(os.tmpdir && os.tmpdir()) || // node 0.10+
writeableDir(os.tmpDir && os.tmpDir()) || // node 0.8+
- writeableDir(process.env['TMPDIR']) ||
- writeableDir(process.env['TEMP']) ||
- writeableDir(process.env['TMP']) ||
- writeableDir(process.env['Wimp$ScrapDir']) || // RiscOS
+ writeableDir(process.env.TMPDIR) ||
+ writeableDir(process.env.TEMP) ||
+ writeableDir(process.env.TMP) ||
+ writeableDir(process.env.Wimp$ScrapDir) || // RiscOS
writeableDir('C:\\TEMP') || // Windows
writeableDir('C:\\TMP') || // Windows
writeableDir('\\TEMP') || // Windows
diff --git a/tools/eslint/node_modules/shelljs/src/test.js b/tools/eslint/node_modules/shelljs/src/test.js
index 068a1ce06e..3fb38aec43 100644
--- a/tools/eslint/node_modules/shelljs/src/test.js
+++ b/tools/eslint/node_modules/shelljs/src/test.js
@@ -1,6 +1,22 @@
var common = require('./common');
var fs = require('fs');
+common.register('test', _test, {
+ cmdOptions: {
+ 'b': 'block',
+ 'c': 'character',
+ 'd': 'directory',
+ 'e': 'exists',
+ 'f': 'file',
+ 'L': 'link',
+ 'p': 'pipe',
+ 'S': 'socket',
+ },
+ wrapOutput: false,
+ allowGlobbing: false,
+});
+
+
//@
//@ ### test(expression)
//@ Available expression primaries:
@@ -23,63 +39,43 @@ var fs = require('fs');
//@
//@ Evaluates expression using the available primaries and returns corresponding value.
function _test(options, path) {
- if (!path)
- common.error('no path given');
-
- // hack - only works with unary primaries
- options = common.parseOptions(options, {
- 'b': 'block',
- 'c': 'character',
- 'd': 'directory',
- 'e': 'exists',
- 'f': 'file',
- 'L': 'link',
- 'p': 'pipe',
- 'S': 'socket'
- });
+ if (!path) common.error('no path given');
var canInterpret = false;
- for (var key in options)
+ Object.keys(options).forEach(function (key) {
if (options[key] === true) {
canInterpret = true;
- break;
}
+ });
- if (!canInterpret)
- common.error('could not interpret expression');
+ if (!canInterpret) common.error('could not interpret expression');
if (options.link) {
try {
return fs.lstatSync(path).isSymbolicLink();
- } catch(e) {
+ } catch (e) {
return false;
}
}
- if (!fs.existsSync(path))
- return false;
+ if (!fs.existsSync(path)) return false;
- if (options.exists)
- return true;
+ if (options.exists) return true;
var stats = fs.statSync(path);
- if (options.block)
- return stats.isBlockDevice();
+ if (options.block) return stats.isBlockDevice();
+
+ if (options.character) return stats.isCharacterDevice();
- if (options.character)
- return stats.isCharacterDevice();
+ if (options.directory) return stats.isDirectory();
- if (options.directory)
- return stats.isDirectory();
+ if (options.file) return stats.isFile();
- if (options.file)
- return stats.isFile();
+ if (options.pipe) return stats.isFIFO();
- if (options.pipe)
- return stats.isFIFO();
+ if (options.socket) return stats.isSocket();
- if (options.socket)
- return stats.isSocket();
+ return false; // fallback
} // test
module.exports = _test;
diff --git a/tools/eslint/node_modules/shelljs/src/to.js b/tools/eslint/node_modules/shelljs/src/to.js
index 65d6d54af9..99f194e687 100644
--- a/tools/eslint/node_modules/shelljs/src/to.js
+++ b/tools/eslint/node_modules/shelljs/src/to.js
@@ -2,8 +2,13 @@ var common = require('./common');
var fs = require('fs');
var path = require('path');
+common.register('to', _to, {
+ pipeOnly: true,
+ wrapOutput: false,
+});
+
//@
-//@ ### 'string'.to(file)
+//@ ### ShellString.prototype.to(file)
//@
//@ Examples:
//@
@@ -11,20 +16,21 @@ var path = require('path');
//@ cat('input.txt').to('output.txt');
//@ ```
//@
-//@ Analogous to the redirection operator `>` in Unix, but works with JavaScript strings (such as
-//@ those returned by `cat`, `grep`, etc). _Like Unix redirections, `to()` will overwrite any existing file!_
+//@ Analogous to the redirection operator `>` in Unix, but works with
+//@ ShellStrings (such as those returned by `cat`, `grep`, etc). _Like Unix
+//@ redirections, `to()` will overwrite any existing file!_
function _to(options, file) {
- if (!file)
- common.error('wrong arguments');
+ if (!file) common.error('wrong arguments');
- if (!fs.existsSync( path.dirname(file) ))
- common.error('no such file or directory: ' + path.dirname(file));
+ if (!fs.existsSync(path.dirname(file))) {
+ common.error('no such file or directory: ' + path.dirname(file));
+ }
try {
- fs.writeFileSync(file, this.toString(), 'utf8');
+ fs.writeFileSync(file, this.stdout || this.toString(), 'utf8');
return this;
- } catch(e) {
- common.error('could not write to file (code '+e.code+'): '+file, true);
+ } catch (e) {
+ common.error('could not write to file (code ' + e.code + '): ' + file, { continue: true });
}
}
module.exports = _to;
diff --git a/tools/eslint/node_modules/shelljs/src/toEnd.js b/tools/eslint/node_modules/shelljs/src/toEnd.js
index bf29a6526d..cf91c9401c 100644
--- a/tools/eslint/node_modules/shelljs/src/toEnd.js
+++ b/tools/eslint/node_modules/shelljs/src/toEnd.js
@@ -2,8 +2,13 @@ var common = require('./common');
var fs = require('fs');
var path = require('path');
+common.register('toEnd', _toEnd, {
+ pipeOnly: true,
+ wrapOutput: false,
+});
+
//@
-//@ ### 'string'.toEnd(file)
+//@ ### ShellString.prototype.toEnd(file)
//@
//@ Examples:
//@
@@ -11,20 +16,20 @@ var path = require('path');
//@ cat('input.txt').toEnd('output.txt');
//@ ```
//@
-//@ Analogous to the redirect-and-append operator `>>` in Unix, but works with JavaScript strings (such as
-//@ those returned by `cat`, `grep`, etc).
+//@ Analogous to the redirect-and-append operator `>>` in Unix, but works with
+//@ ShellStrings (such as those returned by `cat`, `grep`, etc).
function _toEnd(options, file) {
- if (!file)
- common.error('wrong arguments');
+ if (!file) common.error('wrong arguments');
- if (!fs.existsSync( path.dirname(file) ))
- common.error('no such file or directory: ' + path.dirname(file));
+ if (!fs.existsSync(path.dirname(file))) {
+ common.error('no such file or directory: ' + path.dirname(file));
+ }
try {
- fs.appendFileSync(file, this.toString(), 'utf8');
+ fs.appendFileSync(file, this.stdout || this.toString(), 'utf8');
return this;
- } catch(e) {
- common.error('could not append to file (code '+e.code+'): '+file, true);
+ } catch (e) {
+ common.error('could not append to file (code ' + e.code + '): ' + file, { continue: true });
}
}
module.exports = _toEnd;
diff --git a/tools/eslint/node_modules/shelljs/src/touch.js b/tools/eslint/node_modules/shelljs/src/touch.js
index bbc2c19686..b672b2d255 100644
--- a/tools/eslint/node_modules/shelljs/src/touch.js
+++ b/tools/eslint/node_modules/shelljs/src/touch.js
@@ -1,8 +1,19 @@
var common = require('./common');
var fs = require('fs');
+common.register('touch', _touch, {
+ cmdOptions: {
+ 'a': 'atime_only',
+ 'c': 'no_create',
+ 'd': 'date',
+ 'm': 'mtime_only',
+ 'r': 'reference',
+ },
+});
+
//@
-//@ ### touch([options,] file)
+//@ ### touch([options,] file [, file ...])
+//@ ### touch([options,] file_array)
//@ Available options:
//@
//@ + `-a`: Change only the access time
@@ -23,28 +34,18 @@ var fs = require('fs');
//@ A FILE argument that does not exist is created empty, unless -c is supplied.
//@ This is a partial implementation of *[touch(1)](http://linux.die.net/man/1/touch)*.
function _touch(opts, files) {
- opts = common.parseOptions(opts, {
- 'a': 'atime_only',
- 'c': 'no_create',
- 'd': 'date',
- 'm': 'mtime_only',
- 'r': 'reference',
- });
-
if (!files) {
- common.error('no paths given');
- }
-
- if (Array.isArray(files)) {
- files.forEach(function(f) {
- touchFile(opts, f);
- });
+ common.error('no files given');
} else if (typeof files === 'string') {
- touchFile(opts, files);
+ files = [].slice.call(arguments, 1);
} else {
common.error('file arg should be a string file path or an Array of string file paths');
}
+ files.forEach(function (f) {
+ touchFile(opts, f);
+ });
+ return '';
}
function touchFile(opts, file) {
diff --git a/tools/eslint/node_modules/shelljs/src/uniq.js b/tools/eslint/node_modules/shelljs/src/uniq.js
new file mode 100644
index 0000000000..8f5da00285
--- /dev/null
+++ b/tools/eslint/node_modules/shelljs/src/uniq.js
@@ -0,0 +1,80 @@
+var common = require('./common');
+var fs = require('fs');
+
+// add c spaces to the left of str
+function lpad(c, str) {
+ var res = '' + str;
+ if (res.length < c) {
+ res = Array((c - res.length) + 1).join(' ') + res;
+ }
+ return res;
+}
+
+common.register('uniq', _uniq, {
+ canReceivePipe: true,
+ cmdOptions: {
+ 'i': 'ignoreCase',
+ 'c': 'count',
+ 'd': 'duplicates',
+ },
+});
+
+//@
+//@ ### uniq([options,] [input, [output]])
+//@ Available options:
+//@
+//@ + `-i`: Ignore case while comparing
+//@ + `-c`: Prefix lines by the number of occurrences
+//@ + `-d`: Only print duplicate lines, one for each group of identical lines
+//@
+//@ Examples:
+//@
+//@ ```javascript
+//@ uniq('foo.txt');
+//@ uniq('-i', 'foo.txt');
+//@ uniq('-cd', 'foo.txt', 'bar.txt');
+//@ ```
+//@
+//@ Filter adjacent matching lines from input
+function _uniq(options, input, output) {
+ // Check if this is coming from a pipe
+ var pipe = common.readFromPipe();
+
+ if (!input && !pipe) common.error('no input given');
+
+ var lines = (input ? fs.readFileSync(input, 'utf8') : pipe).
+ trimRight().
+ split(/\r*\n/);
+
+ var compare = function (a, b) {
+ return options.ignoreCase ?
+ a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase()) :
+ a.localeCompare(b);
+ };
+ var uniqed = lines.reduceRight(function (res, e) {
+ // Perform uniq -c on the input
+ if (res.length === 0) {
+ return [{ count: 1, ln: e }];
+ } else if (compare(res[0].ln, e) === 0) {
+ return [{ count: res[0].count + 1, ln: e }].concat(res.slice(1));
+ } else {
+ return [{ count: 1, ln: e }].concat(res);
+ }
+ }, []).filter(function (obj) {
+ // Do we want only duplicated objects?
+ return options.duplicates ? obj.count > 1 : true;
+ }).map(function (obj) {
+ // Are we tracking the counts of each line?
+ return (options.count ? (lpad(7, obj.count) + ' ') : '') + obj.ln;
+ }).join('\n') + '\n';
+
+ if (output) {
+ (new common.ShellString(uniqed)).to(output);
+ // if uniq writes to output, nothing is passed to the next command in the pipeline (if any)
+ return '';
+ } else {
+ return uniqed;
+ }
+}
+
+module.exports = _uniq;
diff --git a/tools/eslint/node_modules/shelljs/src/which.js b/tools/eslint/node_modules/shelljs/src/which.js
index d17634ee94..ef5d185eb0 100644
--- a/tools/eslint/node_modules/shelljs/src/which.js
+++ b/tools/eslint/node_modules/shelljs/src/which.js
@@ -2,23 +2,27 @@ var common = require('./common');
var fs = require('fs');
var path = require('path');
+common.register('which', _which, {
+ allowGlobbing: false,
+});
+
// XP's system default value for PATHEXT system variable, just in case it's not
// set on Windows.
var XP_DEFAULT_PATHEXT = '.com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh';
// Cross-platform method for splitting environment PATH variables
function splitPath(p) {
- if (!p)
- return [];
+ if (!p) return [];
- if (common.platform === 'win')
+ if (common.platform === 'win') {
return p.split(';');
- else
+ } else {
return p.split(':');
+ }
}
-function checkPath(path) {
- return fs.existsSync(path) && !fs.statSync(path).isDirectory();
+function checkPath(pathName) {
+ return fs.existsSync(pathName) && !fs.statSync(pathName).isDirectory();
}
//@
@@ -34,19 +38,17 @@ function checkPath(path) {
//@ `PATHEXT` variable to append the extension if it's not already executable.
//@ Returns string containing the absolute path to the command.
function _which(options, cmd) {
- if (!cmd)
- common.error('must specify command');
+ if (!cmd) common.error('must specify command');
- var pathEnv = process.env.path || process.env.Path || process.env.PATH,
- pathArray = splitPath(pathEnv),
- where = null;
+ var pathEnv = process.env.path || process.env.Path || process.env.PATH;
+ var pathArray = splitPath(pathEnv);
+ var where = null;
// No relative/absolute paths provided?
if (cmd.search(/\//) === -1) {
// Search for command in PATH
- pathArray.forEach(function(dir) {
- if (where)
- return; // already found it
+ pathArray.forEach(function (dir) {
+ if (where) return; // already found it
var attempt = path.resolve(dir, cmd);
@@ -88,11 +90,10 @@ function _which(options, cmd) {
}
// Command not found anywhere?
- if (!checkPath(cmd) && !where)
- return null;
+ if (!checkPath(cmd) && !where) return null;
where = where || path.resolve(cmd);
- return common.ShellString(where);
+ return where;
}
module.exports = _which;
diff --git a/tools/eslint/node_modules/string-width/package.json b/tools/eslint/node_modules/string-width/package.json
index 6fc310fca4..b0e9dfdea9 100644
--- a/tools/eslint/node_modules/string-width/package.json
+++ b/tools/eslint/node_modules/string-width/package.json
@@ -38,8 +38,7 @@
"type": "range"
},
"_requiredBy": [
- "/inquirer",
- "/table"
+ "/inquirer"
],
"_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
diff --git a/tools/eslint/node_modules/strip-ansi/package.json b/tools/eslint/node_modules/strip-ansi/package.json
index dced2726e0..323a21ebb4 100644
--- a/tools/eslint/node_modules/strip-ansi/package.json
+++ b/tools/eslint/node_modules/strip-ansi/package.json
@@ -40,7 +40,8 @@
"_requiredBy": [
"/chalk",
"/inquirer",
- "/string-width"
+ "/string-width",
+ "/table/string-width"
],
"_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
diff --git a/tools/eslint/node_modules/strip-json-comments/cli.js b/tools/eslint/node_modules/strip-json-comments/cli.js
deleted file mode 100755
index aec5aa20e4..0000000000
--- a/tools/eslint/node_modules/strip-json-comments/cli.js
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-var fs = require('fs');
-var strip = require('./strip-json-comments');
-var input = process.argv[2];
-
-
-function getStdin(cb) {
- var ret = '';
-
- process.stdin.setEncoding('utf8');
-
- process.stdin.on('data', function (data) {
- ret += data;
- });
-
- process.stdin.on('end', function () {
- cb(ret);
- });
-}
-
-if (process.argv.indexOf('-h') !== -1 || process.argv.indexOf('--help') !== -1) {
- console.log('strip-json-comments input-file > output-file');
- console.log('or');
- console.log('strip-json-comments < input-file > output-file');
- return;
-}
-
-if (process.argv.indexOf('-v') !== -1 || process.argv.indexOf('--version') !== -1) {
- console.log(require('./package').version);
- return;
-}
-
-if (input) {
- process.stdout.write(strip(fs.readFileSync(input, 'utf8')));
- return;
-}
-
-getStdin(function (data) {
- process.stdout.write(strip(data));
-});
diff --git a/tools/eslint/node_modules/strip-json-comments/index.js b/tools/eslint/node_modules/strip-json-comments/index.js
new file mode 100644
index 0000000000..4e6576e6d3
--- /dev/null
+++ b/tools/eslint/node_modules/strip-json-comments/index.js
@@ -0,0 +1,70 @@
+'use strict';
+var singleComment = 1;
+var multiComment = 2;
+
+function stripWithoutWhitespace() {
+ return '';
+}
+
+function stripWithWhitespace(str, start, end) {
+ return str.slice(start, end).replace(/\S/g, ' ');
+}
+
+module.exports = function (str, opts) {
+ opts = opts || {};
+
+ var currentChar;
+ var nextChar;
+ var insideString = false;
+ var insideComment = false;
+ var offset = 0;
+ var ret = '';
+ var strip = opts.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;
+
+ for (var i = 0; i < str.length; i++) {
+ currentChar = str[i];
+ nextChar = str[i + 1];
+
+ if (!insideComment && currentChar === '"') {
+ var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\';
+ if (!escaped) {
+ insideString = !insideString;
+ }
+ }
+
+ if (insideString) {
+ continue;
+ }
+
+ if (!insideComment && currentChar + nextChar === '//') {
+ ret += str.slice(offset, i);
+ offset = i;
+ insideComment = singleComment;
+ i++;
+ } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') {
+ i++;
+ insideComment = false;
+ ret += strip(str, offset, i);
+ offset = i;
+ continue;
+ } else if (insideComment === singleComment && currentChar === '\n') {
+ insideComment = false;
+ ret += strip(str, offset, i);
+ offset = i;
+ } else if (!insideComment && currentChar + nextChar === '/*') {
+ ret += str.slice(offset, i);
+ offset = i;
+ insideComment = multiComment;
+ i++;
+ continue;
+ } else if (insideComment === multiComment && currentChar + nextChar === '*/') {
+ i++;
+ insideComment = false;
+ ret += strip(str, offset, i + 1);
+ offset = i + 1;
+ continue;
+ }
+ }
+
+ return ret + (insideComment ? strip(str.substr(offset)) : str.substr(offset));
+};
diff --git a/tools/eslint/node_modules/strip-json-comments/package.json b/tools/eslint/node_modules/strip-json-comments/package.json
index de43cb650f..6bbd9d717f 100644
--- a/tools/eslint/node_modules/strip-json-comments/package.json
+++ b/tools/eslint/node_modules/strip-json-comments/package.json
@@ -2,75 +2,76 @@
"_args": [
[
{
- "raw": "strip-json-comments@~1.0.1",
+ "raw": "strip-json-comments@~2.0.1",
"scope": null,
"escapedName": "strip-json-comments",
"name": "strip-json-comments",
- "rawSpec": "~1.0.1",
- "spec": ">=1.0.1 <1.1.0",
+ "rawSpec": "~2.0.1",
+ "spec": ">=2.0.1 <2.1.0",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/eslint"
]
],
- "_from": "strip-json-comments@>=1.0.1 <1.1.0",
- "_id": "strip-json-comments@1.0.4",
+ "_from": "strip-json-comments@>=2.0.1 <2.1.0",
+ "_id": "strip-json-comments@2.0.1",
"_inCache": true,
"_location": "/strip-json-comments",
- "_nodeVersion": "0.12.5",
+ "_nodeVersion": "4.2.4",
+ "_npmOperationalInternal": {
+ "host": "packages-9-west.internal.npmjs.com",
+ "tmp": "tmp/strip-json-comments-2.0.1.tgz_1455006605207_0.8280157081317157"
+ },
"_npmUser": {
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
- "_npmVersion": "2.11.2",
+ "_npmVersion": "3.7.2",
"_phantomChildren": {},
"_requested": {
- "raw": "strip-json-comments@~1.0.1",
+ "raw": "strip-json-comments@~2.0.1",
"scope": null,
"escapedName": "strip-json-comments",
"name": "strip-json-comments",
- "rawSpec": "~1.0.1",
- "spec": ">=1.0.1 <1.1.0",
+ "rawSpec": "~2.0.1",
+ "spec": ">=2.0.1 <2.1.0",
"type": "range"
},
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "_shasum": "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91",
+ "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
"_shrinkwrap": null,
- "_spec": "strip-json-comments@~1.0.1",
+ "_spec": "strip-json-comments@~2.0.1",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": {
- "strip-json-comments": "cli.js"
- },
"bugs": {
"url": "https://github.com/sindresorhus/strip-json-comments/issues"
},
"dependencies": {},
"description": "Strip comments from JSON. Lets you use comments in your JSON files!",
"devDependencies": {
- "mocha": "*"
+ "ava": "*",
+ "xo": "*"
},
"directories": {},
"dist": {
- "shasum": "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91",
- "tarball": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
+ "shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
+ "tarball": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
},
"engines": {
- "node": ">=0.8.0"
+ "node": ">=0.10.0"
},
"files": [
- "cli.js",
- "strip-json-comments.js"
+ "index.js"
],
- "gitHead": "f58348696368583cc5bb18525fe31eacc9bd00e1",
- "homepage": "https://github.com/sindresorhus/strip-json-comments",
+ "gitHead": "1aef99eaa70d07981156e8aaa722e750c3b4eaf9",
+ "homepage": "https://github.com/sindresorhus/strip-json-comments#readme",
"keywords": [
"json",
"strip",
@@ -86,12 +87,9 @@
"settings",
"util",
"env",
- "environment",
- "cli",
- "bin"
+ "environment"
],
"license": "MIT",
- "main": "strip-json-comments",
"maintainers": [
{
"name": "sindresorhus",
@@ -106,7 +104,7 @@
"url": "git+https://github.com/sindresorhus/strip-json-comments.git"
},
"scripts": {
- "test": "mocha --ui tdd"
+ "test": "xo && ava"
},
- "version": "1.0.4"
+ "version": "2.0.1"
}
diff --git a/tools/eslint/node_modules/strip-json-comments/readme.md b/tools/eslint/node_modules/strip-json-comments/readme.md
index 63ce165b23..0ee58dfe3a 100644
--- a/tools/eslint/node_modules/strip-json-comments/readme.md
+++ b/tools/eslint/node_modules/strip-json-comments/readme.md
@@ -11,34 +11,23 @@ This is now possible:
}
```
-It will remove single-line comments `//` and multi-line comments `/**/`.
+It will replace single-line comments `//` and multi-line comments `/**/` with whitespace. This allows JSON error positions to remain as close as possible to the original source.
Also available as a [gulp](https://github.com/sindresorhus/gulp-strip-json-comments)/[grunt](https://github.com/sindresorhus/grunt-strip-json-comments)/[broccoli](https://github.com/sindresorhus/broccoli-strip-json-comments) plugin.
--
-
-*There's also [`json-comments`](https://npmjs.org/package/json-comments), but it's only for Node.js, inefficient, bloated as it also minifies, and comes with a `require` hook, which is :(*
-
## Install
-```sh
-$ npm install --save strip-json-comments
-```
-
-```sh
-$ bower install --save strip-json-comments
```
-
-```sh
-$ component install sindresorhus/strip-json-comments
+$ npm install --save strip-json-comments
```
## Usage
```js
-var json = '{/*rainbows*/"unicorn":"cake"}';
+const json = '{/*rainbows*/"unicorn":"cake"}';
+
JSON.parse(stripJsonComments(json));
//=> {unicorn: 'cake'}
```
@@ -46,7 +35,7 @@ JSON.parse(stripJsonComments(json));
## API
-### stripJsonComments(input)
+### stripJsonComments(input, [options])
#### input
@@ -54,25 +43,20 @@ Type: `string`
Accepts a string with JSON and returns a string without comments.
+#### options
-## CLI
+##### whitespace
-```sh
-$ npm install --global strip-json-comments
-```
+Type: `boolean`
+Default: `true`
-```sh
-$ strip-json-comments --help
-
-strip-json-comments input-file > output-file
-# or
-strip-json-comments < input-file > output-file
-```
+Replace comments with whitespace instead of stripping them entirely.
## Related
-- [`strip-css-comments`](https://github.com/sindresorhus/strip-css-comments)
+- [strip-json-comments-cli](https://github.com/sindresorhus/strip-json-comments-cli) - CLI for this module
+- [strip-css-comments](https://github.com/sindresorhus/strip-css-comments) - Strip comments from CSS
## License
diff --git a/tools/eslint/node_modules/strip-json-comments/strip-json-comments.js b/tools/eslint/node_modules/strip-json-comments/strip-json-comments.js
deleted file mode 100644
index eb77ce7456..0000000000
--- a/tools/eslint/node_modules/strip-json-comments/strip-json-comments.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/*!
- strip-json-comments
- Strip comments from JSON. Lets you use comments in your JSON files!
- https://github.com/sindresorhus/strip-json-comments
- by Sindre Sorhus
- MIT License
-*/
-(function () {
- 'use strict';
-
- var singleComment = 1;
- var multiComment = 2;
-
- function stripJsonComments(str) {
- var currentChar;
- var nextChar;
- var insideString = false;
- var insideComment = false;
- var ret = '';
-
- for (var i = 0; i < str.length; i++) {
- currentChar = str[i];
- nextChar = str[i + 1];
-
- if (!insideComment && currentChar === '"') {
- var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\';
- if (!insideComment && !escaped && currentChar === '"') {
- insideString = !insideString;
- }
- }
-
- if (insideString) {
- ret += currentChar;
- continue;
- }
-
- if (!insideComment && currentChar + nextChar === '//') {
- insideComment = singleComment;
- i++;
- } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') {
- insideComment = false;
- i++;
- ret += currentChar;
- ret += nextChar;
- continue;
- } else if (insideComment === singleComment && currentChar === '\n') {
- insideComment = false;
- } else if (!insideComment && currentChar + nextChar === '/*') {
- insideComment = multiComment;
- i++;
- continue;
- } else if (insideComment === multiComment && currentChar + nextChar === '*/') {
- insideComment = false;
- i++;
- continue;
- }
-
- if (insideComment) {
- continue;
- }
-
- ret += currentChar;
- }
-
- return ret;
- }
-
- if (typeof module !== 'undefined' && module.exports) {
- module.exports = stripJsonComments;
- } else {
- window.stripJsonComments = stripJsonComments;
- }
-})();
diff --git a/tools/eslint/node_modules/table/dist/alignString.js.map b/tools/eslint/node_modules/table/dist/alignString.js.map
deleted file mode 100644
index 9d6e8b84e3..0000000000
--- a/tools/eslint/node_modules/table/dist/alignString.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["alignString.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;AAEA,IAAI,oBAAJ;IACI,kBADJ;IAEI,mBAFJ;IAGI,mBAHJ;;AAKA,aAAa,CACT,MADS,EAET,OAFS,EAGT,QAHS,CAAb;;;;;;;AAWA,YAAY,mBAAC,OAAD,EAAU,KAAV,EAAoB;AAC5B,WAAO,UAAU,sBAAS,GAAT,EAAc,KAAd,CAAjB;AACH,CAFD;;;;;;;AASA,aAAa,oBAAC,OAAD,EAAU,KAAV,EAAoB;AAC7B,WAAO,sBAAS,GAAT,EAAc,KAAd,IAAuB,OAA9B;AACH,CAFD;;;;;;;AASA,cAAc,qBAAC,OAAD,EAAU,KAAV,EAAoB;AAC9B,QAAI,kBAAJ;;AAEA,gBAAY,QAAQ,CAApB;;AAEA,QAAI,YAAY,CAAZ,KAAkB,CAAtB,EAAyB;AACrB,eAAO,sBAAS,GAAT,EAAc,SAAd,IAA2B,OAA3B,GAAqC,sBAAS,GAAT,EAAc,SAAd,CAA5C;AACH,KAFD,MAEO;AACH,oBAAY,qBAAQ,SAAR,CAAZ;;AAEA,eAAO,sBAAS,GAAT,EAAc,SAAd,IAA2B,OAA3B,GAAqC,sBAAS,GAAT,EAAc,YAAY,CAA1B,CAA5C;AACH;AACJ,CAZD;;;;;;;;;;;;kBAuBe,UAAC,OAAD,EAAU,cAAV,EAA0B,SAA1B,EAAwC;AACnD,QAAI,uBAAJ;QACI,qBADJ;;AAGA,QAAI,CAAC,wBAAW,OAAX,CAAL,EAA0B;AACtB,cAAM,IAAI,KAAJ,CAAU,2CAAV,CAAN;AACH;;AAED,QAAI,CAAC,wBAAW,cAAX,CAAL,EAAiC;AAC7B,cAAM,IAAI,KAAJ,CAAU,mDAAV,CAAN;AACH;;AAED,mBAAe,2BAAY,OAAZ,CAAf;;AAEA,QAAI,eAAe,cAAnB,EAAmC;;;AAG/B,cAAM,IAAI,KAAJ,CAAU,2EAAV,CAAN;AACH;;AAED,QAAI,CAAC,wBAAW,SAAX,CAAL,EAA4B;AACxB,cAAM,IAAI,KAAJ,CAAU,6CAAV,CAAN;AACH;;AAED,QAAI,WAAW,OAAX,CAAmB,SAAnB,MAAkC,CAAC,CAAvC,EAA0C;AACtC,cAAM,IAAI,KAAJ,CAAU,4FAAV,CAAN;AACH;;AAED,QAAI,iBAAiB,CAArB,EAAwB;AACpB,eAAO,sBAAS,GAAT,EAAc,cAAd,CAAP;AACH;;AAED,qBAAiB,iBAAiB,YAAlC;;AAEA,QAAI,cAAc,MAAlB,EAA0B;AACtB,eAAO,UAAU,OAAV,EAAmB,cAAnB,CAAP;AACH;;AAED,QAAI,cAAc,OAAlB,EAA2B;AACvB,eAAO,WAAW,OAAX,EAAoB,cAApB,CAAP;AACH;;AAED,WAAO,YAAY,OAAZ,EAAqB,cAArB,CAAP;AACH,C","file":"alignString.js","sourcesContent":["import _ from 'lodash';\nimport stringWidth from 'string-width';\n\nlet alignCenter,\n alignLeft,\n alignRight,\n alignments;\n\nalignments = [\n 'left',\n 'right',\n 'center'\n];\n\n/**\n * @param {string} subject\n * @param {number} width\n * @returns {string}\n */\nalignLeft = (subject, width) => {\n return subject + _.repeat(' ', width);\n};\n\n/**\n * @param {string} subject\n * @param {number} width\n * @returns {string}\n */\nalignRight = (subject, width) => {\n return _.repeat(' ', width) + subject;\n};\n\n/**\n * @param {string} subject\n * @param {number} width\n * @returns {string}\n */\nalignCenter = (subject, width) => {\n let halfWidth;\n\n halfWidth = width / 2;\n\n if (halfWidth % 2 === 0) {\n return _.repeat(' ', halfWidth) + subject + _.repeat(' ', halfWidth);\n } else {\n halfWidth = _.floor(halfWidth);\n\n return _.repeat(' ', halfWidth) + subject + _.repeat(' ', halfWidth + 1);\n }\n};\n\n/**\n * Pads a string to the left and/or right to position the subject\n * text in a desired alignment within a container.\n *\n * @param {string} subject\n * @param {number} containerWidth\n * @param {string} alignment One of the valid options (left, right, center).\n * @returns {string}\n */\nexport default (subject, containerWidth, alignment) => {\n let availableWidth,\n subjectWidth;\n\n if (!_.isString(subject)) {\n throw new Error('Subject parameter value must be a string.');\n }\n\n if (!_.isNumber(containerWidth)) {\n throw new Error('Container width parameter value must be a number.');\n }\n\n subjectWidth = stringWidth(subject);\n\n if (subjectWidth > containerWidth) {\n // console.log('subjectWidth', subjectWidth, 'containerWidth', containerWidth, 'subject', subject);\n\n throw new Error('Subject parameter value width cannot be greater than the container width.');\n }\n\n if (!_.isString(alignment)) {\n throw new Error('Alignment parameter value must be a string.');\n }\n\n if (alignments.indexOf(alignment) === -1) {\n throw new Error('Alignment parameter value must be a known alignment parameter value (left, right, center).');\n }\n\n if (subjectWidth === 0) {\n return _.repeat(' ', containerWidth);\n }\n\n availableWidth = containerWidth - subjectWidth;\n\n if (alignment === 'left') {\n return alignLeft(subject, availableWidth);\n }\n\n if (alignment === 'right') {\n return alignRight(subject, availableWidth);\n }\n\n return alignCenter(subject, availableWidth);\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/alignTableData.js.map b/tools/eslint/node_modules/table/dist/alignTableData.js.map
deleted file mode 100644
index 45aea74993..0000000000
--- a/tools/eslint/node_modules/table/dist/alignTableData.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["alignTableData.js"],"names":[],"mappings":";;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;kBAOe,UAAC,IAAD,EAAO,MAAP,EAAkB;AAC7B,WAAO,mBAAM,IAAN,EAAY,UAAC,KAAD,EAAW;AAC1B,eAAO,mBAAM,KAAN,EAAa,UAAC,KAAD,EAAQ,MAAR,EAAmB;AACnC,gBAAI,eAAJ;;AAEA,qBAAS,OAAO,OAAP,CAAe,MAAf,CAAT;;AAEA,gBAAI,2BAAY,KAAZ,MAAuB,OAAO,KAAlC,EAAyC;AACrC,uBAAO,KAAP;AACH,aAFD,MAEO;AACH,uBAAO,2BAAY,KAAZ,EAAmB,OAAO,KAA1B,EAAiC,OAAO,SAAxC,CAAP;AACH;AACJ,SAVM,CAAP;AAWH,KAZM,CAAP;AAaH,C","file":"alignTableData.js","sourcesContent":["import _ from 'lodash';\nimport alignString from './alignString';\nimport stringWidth from 'string-width';\n\n/**\n * @param {table~row[]} rows\n * @param {Object} config\n * @return {table~row[]}\n */\nexport default (rows, config) => {\n return _.map(rows, (cells) => {\n return _.map(cells, (value, index1) => {\n let column;\n\n column = config.columns[index1];\n\n if (stringWidth(value) === column.width) {\n return value;\n } else {\n return alignString(value, column.width, column.alignment);\n }\n });\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/calculateCellHeight.js b/tools/eslint/node_modules/table/dist/calculateCellHeight.js
index f90110adb1..b5ec6998d5 100644
--- a/tools/eslint/node_modules/table/dist/calculateCellHeight.js
+++ b/tools/eslint/node_modules/table/dist/calculateCellHeight.js
@@ -25,7 +25,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
* @returns {number}
*/
exports.default = function (value, columnWidth) {
- let useWrapWord = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];
+ let useWrapWord = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (!_lodash2.default.isString(value)) {
throw new Error('Value must be a string.');
diff --git a/tools/eslint/node_modules/table/dist/calculateCellHeight.js.map b/tools/eslint/node_modules/table/dist/calculateCellHeight.js.map
deleted file mode 100644
index 184fdbf02c..0000000000
--- a/tools/eslint/node_modules/table/dist/calculateCellHeight.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["calculateCellHeight.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;;kBAQe,UAAC,KAAD,EAAQ,WAAR,EAA6C;AAAA,QAAxB,WAAwB,yDAAV,KAAU;;AACxD,QAAI,CAAC,wBAAW,KAAX,CAAL,EAAwB;AACpB,cAAM,IAAI,KAAJ,CAAU,yBAAV,CAAN;AACH;;AAED,QAAI,CAAC,yBAAY,WAAZ,CAAL,EAA+B;AAC3B,cAAM,IAAI,KAAJ,CAAU,kCAAV,CAAN;AACH;;AAED,QAAI,cAAc,CAAlB,EAAqB;AACjB,cAAM,IAAI,KAAJ,CAAU,sCAAV,CAAN;AACH;;AAED,QAAI,WAAJ,EAAiB;AACb,eAAO,wBAAS,KAAT,EAAgB,WAAhB,EAA6B,MAApC;AACH;;AAED,WAAO,oBAAO,2BAAY,KAAZ,IAAqB,WAA5B,CAAP;AACH,C","file":"calculateCellHeight.js","sourcesContent":["import _ from 'lodash';\nimport stringWidth from 'string-width';\nimport wrapWord from './wrapWord';\n\n/**\n * @param {string} value\n * @param {number} columnWidth\n * @param {boolean} useWrapWord\n * @returns {number}\n */\nexport default (value, columnWidth, useWrapWord = false) => {\n if (!_.isString(value)) {\n throw new Error('Value must be a string.');\n }\n\n if (!_.isInteger(columnWidth)) {\n throw new Error('Column width must be an integer.');\n }\n\n if (columnWidth < 1) {\n throw new Error('Column width must be greater than 0.');\n }\n\n if (useWrapWord) {\n return wrapWord(value, columnWidth).length;\n }\n\n return _.ceil(stringWidth(value) / columnWidth);\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/calculateCellWidthIndex.js.map b/tools/eslint/node_modules/table/dist/calculateCellWidthIndex.js.map
deleted file mode 100644
index 112a04e8ee..0000000000
--- a/tools/eslint/node_modules/table/dist/calculateCellWidthIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["calculateCellWidthIndex.js"],"names":[],"mappings":";;;;;;;;;;AACA;;;;;;;;;;;;;kBAQe,UAAC,KAAD,EAAW;AACtB,WAAO,mBAAM,KAAN,EAAa,UAAC,KAAD,EAAW;AAC3B,eAAO,2BAAY,KAAZ,CAAP;AACH,KAFM,CAAP;AAGH,C","file":"calculateCellWidthIndex.js","sourcesContent":["import _ from 'lodash';\nimport stringWidth from 'string-width';\n\n/**\n * Calculates width of each cell contents.\n *\n * @param {string[]} cells\n * @return {number[]}\n */\nexport default (cells) => {\n return _.map(cells, (value) => {\n return stringWidth(value);\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map b/tools/eslint/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map
deleted file mode 100644
index ea1e5e9ce4..0000000000
--- a/tools/eslint/node_modules/table/dist/calculateMaximumColumnWidthIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["calculateMaximumColumnWidthIndex.js"],"names":[],"mappings":";;;;;;;;;;;;;;AACA;;;;;;;;;;;;;kBAQe,UAAC,IAAD,EAAU;AACrB,QAAI,gBAAJ;;AAEA,QAAI,CAAC,KAAK,CAAL,CAAL,EAAc;AACV,cAAM,IAAI,KAAJ,CAAU,qCAAV,CAAN;AACH;;AAED,cAAU,oBAAO,MAAM,KAAK,CAAL,EAAQ,MAAd,CAAP,EAA8B,CAA9B,CAAV;;AAEA,2BAAU,IAAV,EAAgB,UAAC,GAAD,EAAS;AACrB,YAAI,yBAAJ;;AAEA,2BAAmB,uCAAwB,GAAxB,CAAnB;;AAEA,+BAAU,gBAAV,EAA4B,UAAC,UAAD,EAAa,MAAb,EAAwB;AAChD,gBAAI,QAAQ,MAAR,IAAkB,UAAtB,EAAkC;AAC9B,wBAAQ,MAAR,IAAkB,UAAlB;AACH;AACJ,SAJD;AAKH,KAVD;;AAYA,WAAO,OAAP;AACH,C","file":"calculateMaximumColumnWidthIndex.js","sourcesContent":["import _ from 'lodash';\nimport calculateCellWidthIndex from './calculateCellWidthIndex';\n\n/**\n * Produces an array of values that describe the largest value length (width) in every column.\n *\n * @param {Array[]} rows\n * @return {number[]}\n */\nexport default (rows) => {\n let columns;\n\n if (!rows[0]) {\n throw new Error('Dataset must have at least one row.');\n }\n\n columns = _.fill(Array(rows[0].length), 0);\n\n _.forEach(rows, (row) => {\n let columnWidthIndex;\n\n columnWidthIndex = calculateCellWidthIndex(row);\n\n _.forEach(columnWidthIndex, (valueWidth, index0) => {\n if (columns[index0] < valueWidth) {\n columns[index0] = valueWidth;\n }\n });\n });\n\n return columns;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/calculateRowHeightIndex.js.map b/tools/eslint/node_modules/table/dist/calculateRowHeightIndex.js.map
deleted file mode 100644
index 9816a50a9a..0000000000
--- a/tools/eslint/node_modules/table/dist/calculateRowHeightIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["calculateRowHeightIndex.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;;;;;;;;;kBASe,UAAC,IAAD,EAAO,MAAP,EAAkB;AAC7B,QAAI,qBAAJ;QACI,mBADJ;;AAGA,iBAAa,KAAK,CAAL,EAAQ,MAArB;;AAEA,mBAAe,EAAf;;AAEA,2BAAU,IAAV,EAAgB,UAAC,KAAD,EAAW;AACvB,YAAI,wBAAJ;;AAEA,0BAAkB,oBAAO,MAAM,UAAN,CAAP,EAA0B,CAA1B,CAAlB;;AAEA,+BAAU,KAAV,EAAiB,UAAC,KAAD,EAAQ,MAAR,EAAmB;AAChC,gBAAI,CAAC,wBAAW,OAAO,OAAP,CAAe,MAAf,EAAuB,KAAlC,CAAL,EAA+C;AAC3C,sBAAM,IAAI,KAAJ,CAAU,uCAAV,CAAN;AACH;;AAED,gBAAI,CAAC,yBAAY,OAAO,OAAP,CAAe,MAAf,EAAuB,QAAnC,CAAL,EAAmD;AAC/C,sBAAM,IAAI,KAAJ,CAAU,2CAAV,CAAN;AACH;;AAED,4BAAgB,MAAhB,IAA0B,mCAAoB,KAApB,EAA2B,OAAO,OAAP,CAAe,MAAf,EAAuB,KAAlD,EAAyD,OAAO,OAAP,CAAe,MAAf,EAAuB,QAAhF,CAA1B;AACH,SAVD;;AAYA,qBAAa,IAAb,CAAkB,mBAAM,eAAN,CAAlB;AACH,KAlBD;;AAoBA,WAAO,YAAP;AACH,C","file":"calculateRowHeightIndex.js","sourcesContent":["import _ from 'lodash';\nimport calculateCellHeight from './calculateCellHeight';\n\n/**\n * Calculates the vertical row span index.\n *\n * @param {Array[]} rows\n * @param {Object} config\n * @return {number[]}\n */\nexport default (rows, config) => {\n let rowSpanIndex,\n tableWidth;\n\n tableWidth = rows[0].length;\n\n rowSpanIndex = [];\n\n _.forEach(rows, (cells) => {\n let cellHeightIndex;\n\n cellHeightIndex = _.fill(Array(tableWidth), 1);\n\n _.forEach(cells, (value, index1) => {\n if (!_.isNumber(config.columns[index1].width)) {\n throw new Error('column[index].width must be a number.');\n }\n\n if (!_.isBoolean(config.columns[index1].wrapWord)) {\n throw new Error('column[index].wrapWord must be a boolean.');\n }\n\n cellHeightIndex[index1] = calculateCellHeight(value, config.columns[index1].width, config.columns[index1].wrapWord);\n });\n\n rowSpanIndex.push(_.max(cellHeightIndex));\n });\n\n return rowSpanIndex;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/createStream.js b/tools/eslint/node_modules/table/dist/createStream.js
index 1175ec6653..f9c3df5035 100644
--- a/tools/eslint/node_modules/table/dist/createStream.js
+++ b/tools/eslint/node_modules/table/dist/createStream.js
@@ -123,7 +123,7 @@ const append = (row, columnWidthIndex, config) => {
*/
exports.default = function () {
- let userConfig = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ let userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
const config = (0, _makeStreamConfig2.default)(userConfig);
diff --git a/tools/eslint/node_modules/table/dist/createStream.js.map b/tools/eslint/node_modules/table/dist/createStream.js.map
deleted file mode 100644
index b3a2563cda..0000000000
--- a/tools/eslint/node_modules/table/dist/createStream.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["createStream.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;;;AACA;;AAOA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAI,eAAJ;IACI,eADJ;IAEI,oBAFJ;;;;;;;;AAUA,SAAS,gBAAC,GAAD,EAAM,gBAAN,EAAwB,MAAxB,EAAmC;AACxC,QAAI,aAAJ;QACI,eADJ;QAEI,aAFJ;;AAIA,WAAO,YAAY,CAAC,GAAD,CAAZ,EAAmB,MAAnB,CAAP;;AAEA,WAAO,mBAAM,IAAN,EAAY,UAAC,UAAD,EAAgB;AAC/B,eAAO,uBAAQ,UAAR,EAAoB,OAAO,MAA3B,CAAP;AACH,KAFM,EAEJ,IAFI,CAEC,EAFD,CAAP;;AAIA,aAAS,EAAT;AACA,cAAU,+BAAc,gBAAd,EAAgC,OAAO,MAAvC,CAAV;AACA,cAAU,IAAV;AACA,cAAU,kCAAiB,gBAAjB,EAAmC,OAAO,MAA1C,CAAV;;AAEA,aAAS,uBAAU,MAAV,CAAT;;AAEA,YAAQ,MAAR,CAAe,KAAf,CAAqB,MAArB;AACH,CAnBD;;;;;;;;AA2BA,SAAS,gBAAC,GAAD,EAAM,gBAAN,EAAwB,MAAxB,EAAmC;AACxC,QAAI,aAAJ;QACI,eADJ;QAEI,aAFJ;;AAIA,WAAO,YAAY,CAAC,GAAD,CAAZ,EAAmB,MAAnB,CAAP;;;;AAIA,WAAO,mBAAM,IAAN,EAAY,UAAC,UAAD,EAAgB;AAC/B,eAAO,uBAAQ,UAAR,EAAoB,OAAO,MAA3B,CAAP;AACH,KAFM,EAEJ,IAFI,CAEC,EAFD,CAAP;;AAIA,aAAS,UAAT;AACA,cAAU,gCAAe,gBAAf,EAAiC,OAAO,MAAxC,CAAV;AACA,cAAU,IAAV;AACA,cAAU,kCAAiB,gBAAjB,EAAmC,OAAO,MAA1C,CAAV;;AAEA,aAAS,uBAAU,MAAV,CAAT;;AAEA,YAAQ,MAAR,CAAe,KAAf,CAAqB,MAArB;AACH,CArBD;;;;;;;AA4BA,cAAc,qBAAC,IAAD,EAAO,MAAP,EAAkB;AAC5B,QAAI,uBAAJ;QACI,aADJ;;AAGA,WAAO,kCAAmB,IAAnB,CAAP;;AAEA,WAAO,iCAAkB,IAAlB,EAAwB,MAAxB,CAAP;;AAEA,qBAAiB,uCAAwB,IAAxB,EAA8B,MAA9B,CAAjB;;AAEA,WAAO,0CAA2B,IAA3B,EAAiC,cAAjC,EAAiD,MAAjD,CAAP;AACA,WAAO,8BAAe,IAAf,EAAqB,MAArB,CAAP;AACA,WAAO,4BAAa,IAAb,EAAmB,MAAnB,CAAP;;AAEA,WAAO,IAAP;AACH,CAfD;;;;;;;kBAqBe,YAAqB;AAAA,QAApB,UAAoB,yDAAP,EAAO;;AAChC,QAAI,yBAAJ;QACI,eADJ;QAEI,cAFJ;;AAIA,aAAS,gCAAiB,UAAjB,CAAT;;AAEA,uBAAmB,yBAAY,OAAO,OAAnB,EAA4B,UAAC,MAAD,EAAY;AACvD,eAAO,OAAO,KAAP,GAAe,OAAO,WAAtB,GAAoC,OAAO,YAAlD;AACH,KAFkB,CAAnB;;AAIA,YAAQ,IAAR;;AAEA,WAAO;;;;;AAKH,eAAO,eAAC,GAAD,EAAS;AACZ,gBAAI,IAAI,MAAJ,KAAe,OAAO,WAA1B,EAAuC;AACnC,sBAAM,IAAI,KAAJ,CAAU,uDAAV,CAAN;AACH;;AAED,gBAAI,KAAJ,EAAW;AACP,wBAAQ,KAAR;;AAEA,uBAAO,OAAO,GAAP,EAAY,gBAAZ,EAA8B,MAA9B,CAAP;AACH,aAJD,MAIO;AACH,uBAAO,OAAO,GAAP,EAAY,gBAAZ,EAA8B,MAA9B,CAAP;AACH;AACJ;AAjBE,KAAP;AAmBH,C","file":"createStream.js","sourcesContent":["import makeStreamConfig from './makeStreamConfig';\nimport drawRow from './drawRow';\nimport {\n drawBorderBottom,\n drawBorderJoin,\n drawBorderTop\n} from './drawBorder';\nimport _ from 'lodash';\n\nimport stringifyTableData from './stringifyTableData';\nimport truncateTableData from './truncateTableData';\nimport mapDataUsingRowHeightIndex from './mapDataUsingRowHeightIndex';\nimport alignTableData from './alignTableData';\nimport padTableData from './padTableData';\nimport calculateRowHeightIndex from './calculateRowHeightIndex';\n\nlet append,\n create,\n prepareData;\n\n/**\n * @param {string[]} row\n * @param {number[]} columnWidthIndex\n * @param {Object} config\n * @returns {undefined}\n */\ncreate = (row, columnWidthIndex, config) => {\n let body,\n output,\n rows;\n\n rows = prepareData([row], config);\n\n body = _.map(rows, (literalRow) => {\n return drawRow(literalRow, config.border);\n }).join('');\n\n output = '';\n output += drawBorderTop(columnWidthIndex, config.border);\n output += body;\n output += drawBorderBottom(columnWidthIndex, config.border);\n\n output = _.trimEnd(output);\n\n process.stdout.write(output);\n};\n\n/**\n * @param {string[]} row\n * @param {number[]} columnWidthIndex\n * @param {Object} config\n * @returns {undefined}\n */\nappend = (row, columnWidthIndex, config) => {\n let body,\n output,\n rows;\n\n rows = prepareData([row], config);\n\n // console.log('rows', rows);\n\n body = _.map(rows, (literalRow) => {\n return drawRow(literalRow, config.border);\n }).join('');\n\n output = '\\r\\x1b[K';\n output += drawBorderJoin(columnWidthIndex, config.border);\n output += body;\n output += drawBorderBottom(columnWidthIndex, config.border);\n\n output = _.trimEnd(output);\n\n process.stdout.write(output);\n};\n\n/**\n * @param {Array} data\n * @param {Object} config\n * @returns {Array}\n */\nprepareData = (data, config) => {\n let rowHeightIndex,\n rows;\n\n rows = stringifyTableData(data);\n\n rows = truncateTableData(data, config);\n\n rowHeightIndex = calculateRowHeightIndex(rows, config);\n\n rows = mapDataUsingRowHeightIndex(rows, rowHeightIndex, config);\n rows = alignTableData(rows, config);\n rows = padTableData(rows, config);\n\n return rows;\n};\n\n/**\n * @param {Object} userConfig\n * @return {Object}\n */\nexport default (userConfig = {}) => {\n let columnWidthIndex,\n config,\n empty;\n\n config = makeStreamConfig(userConfig);\n\n columnWidthIndex = _.mapValues(config.columns, (column) => {\n return column.width + column.paddingLeft + column.paddingRight;\n });\n\n empty = true;\n\n return {\n /**\n * @param {string[]} row\n * @returns {undefined}\n */\n write: (row) => {\n if (row.length !== config.columnCount) {\n throw new Error('Row cell count does not match the config.columnCount.');\n }\n\n if (empty) {\n empty = false;\n\n return create(row, columnWidthIndex, config);\n } else {\n return append(row, columnWidthIndex, config);\n }\n }\n };\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/drawBorder.js.map b/tools/eslint/node_modules/table/dist/drawBorder.js.map
deleted file mode 100644
index adbf9d7403..0000000000
--- a/tools/eslint/node_modules/table/dist/drawBorder.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["drawBorder.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,IAAI,mBAAJ;IACI,yBADJ;IAEI,uBAFJ;IAGI,sBAHJ;;;;;;;;;;;;;;;AAkBA,QA+EI,UA/EJ,gBAAa,oBAAC,eAAD,EAAkB,KAAlB,EAA4B;AACrC,QAAI,gBAAJ;;AAEA,cAAU,mBAAM,eAAN,EAAuB,UAAC,IAAD,EAAU;AACvC,eAAO,sBAAS,MAAM,IAAf,EAAqB,IAArB,CAAP;AACH,KAFS,CAAV;;AAIA,cAAU,QAAQ,IAAR,CAAa,MAAM,IAAnB,CAAV;;AAEA,WAAO,MAAM,IAAN,GAAa,OAAb,GAAuB,MAAM,KAA7B,GAAqC,IAA5C;AACH,CAVD;;;;;;;;;;;;;;;AAyBA,QAuDI,aAvDJ,mBAAgB,uBAAC,eAAD,EAAkB,KAAlB,EAA4B;AACxC,WAAO,WAAW,eAAX,EAA4B;AAC/B,cAAM,MAAM,OADmB;AAE/B,eAAO,MAAM,QAFkB;AAG/B,cAAM,MAAM,OAHmB;AAI/B,cAAM,MAAM;AAJmB,KAA5B,CAAP;AAMH,CAPD;;;;;;;;;;;;;;;AAsBA,QAkCI,cAlCJ,oBAAiB,wBAAC,eAAD,EAAkB,KAAlB,EAA4B;AACzC,WAAO,WAAW,eAAX,EAA4B;AAC/B,cAAM,MAAM,QADmB;AAE/B,eAAO,MAAM,SAFkB;AAG/B,cAAM,MAAM,QAHmB;AAI/B,cAAM,MAAM;AAJmB,KAA5B,CAAP;AAMH,CAPD;;;;;;;;;;;;;;;AAsBA,QAaI,gBAbJ,sBAAmB,0BAAC,eAAD,EAAkB,KAAlB,EAA4B;AAC3C,WAAO,WAAW,eAAX,EAA4B;AAC/B,cAAM,MAAM,UADmB;AAE/B,eAAO,MAAM,WAFkB;AAG/B,cAAM,MAAM,UAHmB;AAI/B,cAAM,MAAM;AAJmB,KAA5B,CAAP;AAMH,CAPD;;QAUI,U,GAAA,U;QACA,a,GAAA,a;QACA,c,GAAA,c;QACA,gB,GAAA,gB","file":"drawBorder.js","sourcesContent":["import _ from 'lodash';\n\nlet drawBorder,\n drawBorderBottom,\n drawBorderJoin,\n drawBorderTop;\n\n/**\n * @typedef drawBorder~parts\n * @property {string} left\n * @property {string} right\n * @property {string} body\n * @property {string} join\n */\n\n/**\n * @param {number[]} columnSizeIndex\n * @param {drawBorder~parts} parts\n * @returns {string}\n */\ndrawBorder = (columnSizeIndex, parts) => {\n let columns;\n\n columns = _.map(columnSizeIndex, (size) => {\n return _.repeat(parts.body, size);\n });\n\n columns = columns.join(parts.join);\n\n return parts.left + columns + parts.right + '\\n';\n};\n\n/**\n * @typedef drawBorderTop~parts\n * @property {string} topLeft\n * @property {string} topRight\n * @property {string} topBody\n * @property {string} topJoin\n */\n\n/**\n * @param {number[]} columnSizeIndex\n * @param {drawBorderTop~parts} parts\n * @return {string}\n */\ndrawBorderTop = (columnSizeIndex, parts) => {\n return drawBorder(columnSizeIndex, {\n left: parts.topLeft,\n right: parts.topRight,\n body: parts.topBody,\n join: parts.topJoin\n });\n};\n\n/**\n * @typedef drawBorderJoin~parts\n * @property {string} joinLeft\n * @property {string} joinRight\n * @property {string} joinBody\n * @property {string} joinJoin\n */\n\n/**\n * @param {number[]} columnSizeIndex\n * @param {drawBorderJoin~parts} parts\n * @returns {string}\n */\ndrawBorderJoin = (columnSizeIndex, parts) => {\n return drawBorder(columnSizeIndex, {\n left: parts.joinLeft,\n right: parts.joinRight,\n body: parts.joinBody,\n join: parts.joinJoin\n });\n};\n\n/**\n * @typedef drawBorderBottom~parts\n * @property {string} topLeft\n * @property {string} topRight\n * @property {string} topBody\n * @property {string} topJoin\n */\n\n/**\n * @param {number[]} columnSizeIndex\n * @param {drawBorderBottom~parts} parts\n * @returns {string}\n */\ndrawBorderBottom = (columnSizeIndex, parts) => {\n return drawBorder(columnSizeIndex, {\n left: parts.bottomLeft,\n right: parts.bottomRight,\n body: parts.bottomBody,\n join: parts.bottomJoin\n });\n};\n\nexport {\n drawBorder,\n drawBorderTop,\n drawBorderJoin,\n drawBorderBottom\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/drawRow.js.map b/tools/eslint/node_modules/table/dist/drawRow.js.map
deleted file mode 100644
index 5cef8565f4..0000000000
--- a/tools/eslint/node_modules/table/dist/drawRow.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["drawRow.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;kBAYe,UAAC,OAAD,EAAU,MAAV,EAAqB;AAChC,SAAO,OAAO,QAAP,GAAkB,QAAQ,IAAR,CAAa,OAAO,QAApB,CAAlB,GAAkD,OAAO,SAAzD,GAAqE,IAA5E;AACH,C","file":"drawRow.js","sourcesContent":["/**\n * @typedef {Object} drawRow~border\n * @property {string} bodyLeft\n * @property {string} bodyRight\n * @property {string} bodyJoin\n */\n\n/**\n * @param {number[]} columns\n * @param {drawRow~border} border\n * @return {string}\n */\nexport default (columns, border) => {\n return border.bodyLeft + columns.join(border.bodyJoin) + border.bodyRight + '\\n';\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/drawTable.js.map b/tools/eslint/node_modules/table/dist/drawTable.js.map
deleted file mode 100644
index 8534c44da3..0000000000
--- a/tools/eslint/node_modules/table/dist/drawTable.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["drawTable.js"],"names":[],"mappings":";;;;;;;;;;AACA;;AAKA;;;;;;;;;;;;;;;kBAUe,UAAC,IAAD,EAAO,MAAP,EAAe,eAAf,EAAgC,YAAhC,EAA8C,kBAA9C,EAAqE;AAChF,QAAI,eAAJ;QACI,qBADJ;QAEI,iBAFJ;QAGI,kBAHJ;;AAKA,eAAW,KAAK,MAAhB;;AAEA,mBAAe,CAAf;;AAEA,aAAS,EAAT;;AAEA,QAAI,mBAAmB,YAAnB,EAAiC,QAAjC,CAAJ,EAAgD;AAC5C,kBAAU,+BAAc,eAAd,EAA+B,MAA/B,CAAV;AACH;;AAED,2BAAU,IAAV,EAAgB,UAAC,GAAD,EAAM,MAAN,EAAiB;AAC7B,kBAAU,uBAAQ,GAAR,EAAa,MAAb,CAAV;;AAEA,YAAI,CAAC,SAAL,EAAgB;AACZ,wBAAY,aAAa,YAAb,CAAZ;;AAEA;AACH;;AAED;;AAEA,YAAI,cAAc,CAAd,IAAmB,WAAW,WAAW,CAAzC,IAA8C,mBAAmB,YAAnB,EAAiC,QAAjC,CAAlD,EAA8F;AAC1F,sBAAU,gCAAe,eAAf,EAAgC,MAAhC,CAAV;AACH;AACJ,KAdD;;AAgBA,QAAI,mBAAmB,YAAnB,EAAiC,QAAjC,CAAJ,EAAgD;AAC5C,kBAAU,kCAAiB,eAAjB,EAAkC,MAAlC,CAAV;AACH;;AAED,WAAO,MAAP;AACH,C","file":"drawTable.js","sourcesContent":["import _ from 'lodash';\nimport {\n drawBorderTop,\n drawBorderJoin,\n drawBorderBottom\n} from './drawBorder';\nimport drawRow from './drawRow';\n\n/**\n * @param {Array} rows\n * @param {Object} border\n * @param {Array} columnSizeIndex\n * @param {Array} rowSpanIndex\n * @param {Function} drawHorizontalLine\n * @returns {string}\n */\nexport default (rows, border, columnSizeIndex, rowSpanIndex, drawHorizontalLine) => {\n let output,\n realRowIndex,\n rowCount,\n rowHeight;\n\n rowCount = rows.length;\n\n realRowIndex = 0;\n\n output = '';\n\n if (drawHorizontalLine(realRowIndex, rowCount)) {\n output += drawBorderTop(columnSizeIndex, border);\n }\n\n _.forEach(rows, (row, index0) => {\n output += drawRow(row, border);\n\n if (!rowHeight) {\n rowHeight = rowSpanIndex[realRowIndex];\n\n realRowIndex++;\n }\n\n rowHeight--;\n\n if (rowHeight === 0 && index0 !== rowCount - 1 && drawHorizontalLine(realRowIndex, rowCount)) {\n output += drawBorderJoin(columnSizeIndex, border);\n }\n });\n\n if (drawHorizontalLine(realRowIndex, rowCount)) {\n output += drawBorderBottom(columnSizeIndex, border);\n }\n\n return output;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/getBorderCharacters.js.map b/tools/eslint/node_modules/table/dist/getBorderCharacters.js.map
deleted file mode 100644
index 36ba03bf8c..0000000000
--- a/tools/eslint/node_modules/table/dist/getBorderCharacters.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["getBorderCharacters.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyBe,UAAC,IAAD,EAAU;AACrB,QAAI,SAAS,WAAb,EAA0B;AACtB,eAAO;AACH,qBAAS,GADN;AAEH,qBAAS,GAFN;AAGH,qBAAS,GAHN;AAIH,sBAAU,GAJP;;AAMH,wBAAY,GANT;AAOH,wBAAY,GAPT;AAQH,wBAAY,GART;AASH,yBAAa,GATV;;AAWH,sBAAU,GAXP;AAYH,uBAAW,GAZR;AAaH,sBAAU,GAbP;;AAeH,sBAAU,GAfP;AAgBH,sBAAU,GAhBP;AAiBH,uBAAW,GAjBR;AAkBH,sBAAU;AAlBP,SAAP;AAoBH;;AAED,QAAI,SAAS,MAAb,EAAqB;AACjB,eAAO;AACH,qBAAS,GADN;AAEH,qBAAS,GAFN;AAGH,qBAAS,GAHN;AAIH,sBAAU,GAJP;;AAMH,wBAAY,GANT;AAOH,wBAAY,GAPT;AAQH,wBAAY,GART;AASH,yBAAa,GATV;;AAWH,sBAAU,GAXP;AAYH,uBAAW,GAZR;AAaH,sBAAU,GAbP;;AAeH,sBAAU,GAfP;AAgBH,sBAAU,GAhBP;AAiBH,uBAAW,GAjBR;AAkBH,sBAAU;AAlBP,SAAP;AAoBH;;AAED,QAAI,SAAS,OAAb,EAAsB;AAClB,eAAO;AACH,qBAAS,GADN;AAEH,qBAAS,GAFN;AAGH,qBAAS,GAHN;AAIH,sBAAU,GAJP;;AAMH,wBAAY,GANT;AAOH,wBAAY,GAPT;AAQH,wBAAY,GART;AASH,yBAAa,GATV;;AAWH,sBAAU,GAXP;AAYH,uBAAW,GAZR;AAaH,sBAAU,GAbP;;AAeH,sBAAU,GAfP;AAgBH,sBAAU,GAhBP;AAiBH,uBAAW,GAjBR;AAkBH,sBAAU;AAlBP,SAAP;AAoBH;;AAED,QAAI,SAAS,MAAb,EAAqB;AACjB,eAAO;AACH,qBAAS,EADN;AAEH,qBAAS,EAFN;AAGH,qBAAS,EAHN;AAIH,sBAAU,EAJP;;AAMH,wBAAY,EANT;AAOH,wBAAY,EAPT;AAQH,wBAAY,EART;AASH,yBAAa,EATV;;AAWH,sBAAU,EAXP;AAYH,uBAAW,EAZR;AAaH,sBAAU,EAbP;;AAeH,sBAAU,EAfP;AAgBH,sBAAU,EAhBP;AAiBH,uBAAW,EAjBR;AAkBH,sBAAU;AAlBP,SAAP;AAoBH;;AAED,UAAM,IAAI,KAAJ,CAAU,oCAAV,CAAN;AACH,C","file":"getBorderCharacters.js","sourcesContent":["/* eslint-disable sorting/sort-object-props */\n\n/**\n * @typedef border\n * @property {string} topBody\n * @property {string} topJoin\n * @property {string} topLeft\n * @property {string} topRight\n * @property {string} bottomBody\n * @property {string} bottomJoin\n * @property {string} bottomLeft\n * @property {string} bottomRight\n * @property {string} bodyLeft\n * @property {string} bodyRight\n * @property {string} bodyJoin\n * @property {string} joinBody\n * @property {string} joinLeft\n * @property {string} joinRight\n * @property {string} joinJoin\n */\n\n/**\n * @param {string} name\n * @returns {border}\n */\nexport default (name) => {\n if (name === 'honeywell') {\n return {\n topBody: '═',\n topJoin: '╤',\n topLeft: '╔',\n topRight: '╗',\n\n bottomBody: '═',\n bottomJoin: '╧',\n bottomLeft: '╚',\n bottomRight: '╝',\n\n bodyLeft: '║',\n bodyRight: '║',\n bodyJoin: '│',\n\n joinBody: '─',\n joinLeft: '╟',\n joinRight: '╢',\n joinJoin: '┼'\n };\n }\n\n if (name === 'norc') {\n return {\n topBody: '─',\n topJoin: '┬',\n topLeft: '┌',\n topRight: '┐',\n\n bottomBody: '─',\n bottomJoin: '┴',\n bottomLeft: '└',\n bottomRight: '┘',\n\n bodyLeft: '│',\n bodyRight: '│',\n bodyJoin: '│',\n\n joinBody: '─',\n joinLeft: '├',\n joinRight: '┤',\n joinJoin: '┼'\n };\n }\n\n if (name === 'ramac') {\n return {\n topBody: '-',\n topJoin: '+',\n topLeft: '+',\n topRight: '+',\n\n bottomBody: '-',\n bottomJoin: '+',\n bottomLeft: '+',\n bottomRight: '+',\n\n bodyLeft: '|',\n bodyRight: '|',\n bodyJoin: '|',\n\n joinBody: '-',\n joinLeft: '|',\n joinRight: '|',\n joinJoin: '|'\n };\n }\n\n if (name === 'void') {\n return {\n topBody: '',\n topJoin: '',\n topLeft: '',\n topRight: '',\n\n bottomBody: '',\n bottomJoin: '',\n bottomLeft: '',\n bottomRight: '',\n\n bodyLeft: '',\n bodyRight: '',\n bodyJoin: '',\n\n joinBody: '',\n joinLeft: '',\n joinRight: '',\n joinJoin: ''\n };\n }\n\n throw new Error('Unknown border template \"${name}\".');\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/index.js.map b/tools/eslint/node_modules/table/dist/index.js.map
deleted file mode 100644
index dcf5ef8d34..0000000000
--- a/tools/eslint/node_modules/table/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;QAGI,Y;QACA,mB","file":"index.js","sourcesContent":["import table from './table';\nimport createStream from './createStream';\nimport getBorderCharacters from './getBorderCharacters';\n\nexport {\n createStream,\n getBorderCharacters\n};\n\nexport default table;\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/makeConfig.js b/tools/eslint/node_modules/table/dist/makeConfig.js
index 830ece67ef..45ad8e899c 100644
--- a/tools/eslint/node_modules/table/dist/makeConfig.js
+++ b/tools/eslint/node_modules/table/dist/makeConfig.js
@@ -29,7 +29,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
* @returns {Object}
*/
const makeBorder = function makeBorder() {
- let border = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ let border = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _lodash2.default.assign({}, (0, _getBorderCharacters2.default)('honeywell'), border);
};
@@ -44,8 +44,8 @@ const makeBorder = function makeBorder() {
* @returns {Object}
*/
const makeColumns = function makeColumns(rows) {
- let columns = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- let columnDefault = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
+ let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ let columnDefault = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
const maximumColumnWidthIndex = (0, _calculateMaximumColumnWidthIndex2.default)(rows);
@@ -77,7 +77,7 @@ const makeColumns = function makeColumns(rows) {
*/
exports.default = function (rows) {
- let userConfig = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+ let userConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
(0, _validateConfig2.default)('config.json', userConfig);
diff --git a/tools/eslint/node_modules/table/dist/makeConfig.js.map b/tools/eslint/node_modules/table/dist/makeConfig.js.map
deleted file mode 100644
index 25c7051d27..0000000000
--- a/tools/eslint/node_modules/table/dist/makeConfig.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["makeConfig.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,IAAI,mBAAJ;IACI,oBADJ;;;;;;;;AASA,aAAa,sBAAiB;AAAA,QAAhB,MAAgB,yDAAP,EAAO;;AAC1B,WAAO,sBAAS,EAAT,EAAa,mCAAoB,WAApB,CAAb,EAA+C,MAA/C,CAAP;AACH,CAFD;;;;;;;;;;;AAaA,cAAc,qBAAC,IAAD,EAA4C;AAAA,QAArC,OAAqC,yDAA3B,EAA2B;AAAA,QAAvB,aAAuB,yDAAP,EAAO;;AACtD,QAAI,gCAAJ;;AAEA,8BAA0B,gDAAiC,IAAjC,CAA1B;;AAEA,yBAAQ,KAAK,CAAL,EAAQ,MAAhB,EAAwB,UAAC,KAAD,EAAW;AAC/B,YAAI,2BAAc,QAAQ,KAAR,CAAd,CAAJ,EAAmC;AAC/B,oBAAQ,KAAR,IAAiB,EAAjB;AACH;;AAED,gBAAQ,KAAR,IAAiB,sBAAS;AACtB,uBAAW,MADW;AAEtB,mBAAO,wBAAwB,KAAxB,CAFe;AAGtB,sBAAU,KAHY;AAItB,sBAAU,QAJY;AAKtB,yBAAa,CALS;AAMtB,0BAAc;AANQ,SAAT,EAOd,aAPc,EAOC,QAAQ,KAAR,CAPD,CAAjB;AAQH,KAbD;;AAeA,WAAO,OAAP;AACH,CArBD;;;;;;;;;;;kBA+Be,UAAC,IAAD,EAA2B;AAAA,QAApB,UAAoB,yDAAP,EAAO;;AACtC,QAAI,eAAJ;;AAEA,kCAAe,UAAf;;AAEA,aAAS,yBAAY,UAAZ,CAAT;;AAEA,WAAO,MAAP,GAAgB,WAAW,OAAO,MAAlB,CAAhB;AACA,WAAO,OAAP,GAAiB,YAAY,IAAZ,EAAkB,OAAO,OAAzB,EAAkC,OAAO,aAAzC,CAAjB;;AAEA,QAAI,CAAC,OAAO,kBAAZ,EAAgC;;;;AAI5B,eAAO,kBAAP,GAA4B,YAAM;AAC9B,mBAAO,IAAP;AACH,SAFD;AAGH;;AAED,WAAO,MAAP;AACH,C","file":"makeConfig.js","sourcesContent":["import _ from 'lodash';\nimport getBorderCharacters from './getBorderCharacters';\nimport validateConfig from './validateConfig';\nimport calculateMaximumColumnWidthIndex from './calculateMaximumColumnWidthIndex';\n\nlet makeBorder,\n makeColumns;\n\n/**\n * Merges user provided border characters with the default border (\"honeywell\") characters.\n *\n * @param {Object} border\n * @returns {Object}\n */\nmakeBorder = (border = {}) => {\n return _.assign({}, getBorderCharacters('honeywell'), border);\n};\n\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n *\n * @param {Array[]} rows\n * @param {Object} columns\n * @param {Object} columnDefault\n * @returns {Object}\n */\nmakeColumns = (rows, columns = {}, columnDefault = {}) => {\n let maximumColumnWidthIndex;\n\n maximumColumnWidthIndex = calculateMaximumColumnWidthIndex(rows);\n\n _.times(rows[0].length, (index) => {\n if (_.isUndefined(columns[index])) {\n columns[index] = {};\n }\n\n columns[index] = _.assign({\n alignment: 'left',\n width: maximumColumnWidthIndex[index],\n wrapWord: false,\n truncate: Infinity,\n paddingLeft: 1,\n paddingRight: 1\n }, columnDefault, columns[index]);\n });\n\n return columns;\n};\n\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n *\n * @param {Array[]} rows\n * @param {Object} userConfig\n * @returns {Object}\n */\nexport default (rows, userConfig = {}) => {\n let config;\n\n validateConfig(userConfig);\n\n config = _.cloneDeep(userConfig);\n\n config.border = makeBorder(config.border);\n config.columns = makeColumns(rows, config.columns, config.columnDefault);\n\n if (!config.drawHorizontalLine) {\n /**\n * @returns {boolean}\n */\n config.drawHorizontalLine = () => {\n return true;\n };\n }\n\n return config;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/makeStreamConfig.js b/tools/eslint/node_modules/table/dist/makeStreamConfig.js
index 06e212adbf..1482dae079 100644
--- a/tools/eslint/node_modules/table/dist/makeStreamConfig.js
+++ b/tools/eslint/node_modules/table/dist/makeStreamConfig.js
@@ -25,7 +25,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
* @returns {Object}
*/
const makeBorder = function makeBorder() {
- let border = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ let border = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _lodash2.default.assign({}, (0, _getBorderCharacters2.default)('honeywell'), border);
};
@@ -40,8 +40,8 @@ const makeBorder = function makeBorder() {
* @returns {Object}
*/
const makeColumns = function makeColumns(columnCount) {
- let columns = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- let columnDefault = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
+ let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ let columnDefault = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
_lodash2.default.times(columnCount, index => {
if (_lodash2.default.isUndefined(columns[index])) {
@@ -86,7 +86,7 @@ const makeColumns = function makeColumns(columnCount) {
*/
exports.default = function () {
- let userConfig = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ let userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _validateConfig2.default)('streamConfig.json', userConfig);
diff --git a/tools/eslint/node_modules/table/dist/makeStreamConfig.js.map b/tools/eslint/node_modules/table/dist/makeStreamConfig.js.map
deleted file mode 100644
index c3c0437ec1..0000000000
--- a/tools/eslint/node_modules/table/dist/makeStreamConfig.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["makeStreamConfig.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA;;;;AACA;;;;;;AAEA,IAAI,mBAAJ;IACI,oBADJ;;;;;;;;AASA,aAAa,sBAAiB;AAAA,QAAhB,MAAgB,yDAAP,EAAO;;AAC1B,WAAO,sBAAS,EAAT,EAAa,mCAAoB,WAApB,CAAb,EAA+C,MAA/C,CAAP;AACH,CAFD;;;;;;;;;;;AAaA,cAAc,qBAAC,WAAD,EAAmD;AAAA,QAArC,OAAqC,yDAA3B,EAA2B;AAAA,QAAvB,aAAuB,yDAAP,EAAO;;AAC7D,yBAAQ,WAAR,EAAqB,UAAC,KAAD,EAAW;AAC5B,YAAI,2BAAc,QAAQ,KAAR,CAAd,CAAJ,EAAmC;AAC/B,oBAAQ,KAAR,IAAiB,EAAjB;AACH;;AAED,gBAAQ,KAAR,IAAiB,sBAAS;AACtB,uBAAW,MADW;;AAGtB,sBAAU,KAHY;AAItB,sBAAU,QAJY;AAKtB,yBAAa,CALS;AAMtB,0BAAc;AANQ,SAAT,EAOd,aAPc,EAOC,QAAQ,KAAR,CAPD,CAAjB;AAQH,KAbD;;AAeA,WAAO,OAAP;AACH,CAjBD;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2Ce,YAAqB;AAAA,QAApB,UAAoB,yDAAP,EAAO;;AAChC,QAAI,eAAJ;;AAEA,wCAAqB,UAArB;;AAEA,aAAS,yBAAY,UAAZ,CAAT;;AAEA,QAAI,CAAC,OAAO,aAAR,IAAyB,CAAC,OAAO,aAAP,CAAqB,KAAnD,EAA0D;AACtD,cAAM,IAAI,KAAJ,CAAU,iEAAV,CAAN;AACH;;AAED,QAAI,CAAC,OAAO,WAAZ,EAAyB;AACrB,cAAM,IAAI,KAAJ,CAAU,kCAAV,CAAN;AACH;;AAED,WAAO,MAAP,GAAgB,WAAW,OAAO,MAAlB,CAAhB;AACA,WAAO,OAAP,GAAiB,YAAY,OAAO,WAAnB,EAAgC,OAAO,OAAvC,EAAgD,OAAO,aAAvD,CAAjB;;AAEA,WAAO,MAAP;AACH,C","file":"makeStreamConfig.js","sourcesContent":["import _ from 'lodash';\nimport getBorderCharacters from './getBorderCharacters';\nimport validateStreamConfig from './validateStreamConfig';\n\nlet makeBorder,\n makeColumns;\n\n/**\n * Merges user provided border characters with the default border (\"honeywell\") characters.\n *\n * @param {Object} border\n * @returns {Object}\n */\nmakeBorder = (border = {}) => {\n return _.assign({}, getBorderCharacters('honeywell'), border);\n};\n\n/**\n * Creates a configuration for every column using default\n * values for the missing configuration properties.\n *\n * @param {number} columnCount\n * @param {Object} columns\n * @param {Object} columnDefault\n * @returns {Object}\n */\nmakeColumns = (columnCount, columns = {}, columnDefault = {}) => {\n _.times(columnCount, (index) => {\n if (_.isUndefined(columns[index])) {\n columns[index] = {};\n }\n\n columns[index] = _.assign({\n alignment: 'left',\n // width: columnDefault.width,\n wrapWord: false,\n truncate: Infinity,\n paddingLeft: 1,\n paddingRight: 1\n }, columnDefault, columns[index]);\n });\n\n return columns;\n};\n\n/**\n * @typedef {Object} columnConfig\n * @property {string} alignment\n * @property {number} width\n * @property {number} truncate\n * @property {number} paddingLeft\n * @property {number} paddingRight\n */\n\n/**\n * @typedef {Object} streamConfig\n * @property {columnConfig} columnDefault\n * @property {Object} border\n * @property {columnConfig[]}\n * @property {number} columnCount Number of columns in the table (required).\n */\n\n/**\n * Makes a new configuration object out of the userConfig object\n * using default values for the missing configuration properties.\n *\n * @param {streamConfig} userConfig\n * @returns {Object}\n */\nexport default (userConfig = {}) => {\n let config;\n\n validateStreamConfig(userConfig);\n\n config = _.cloneDeep(userConfig);\n\n if (!config.columnDefault || !config.columnDefault.width) {\n throw new Error('Must provide config.columnDefault.width when creating a stream.');\n }\n\n if (!config.columnCount) {\n throw new Error('Must provide config.columnCount.');\n }\n\n config.border = makeBorder(config.border);\n config.columns = makeColumns(config.columnCount, config.columns, config.columnDefault);\n\n return config;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map b/tools/eslint/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map
deleted file mode 100644
index 4b11dec7de..0000000000
--- a/tools/eslint/node_modules/table/dist/mapDataUsingRowHeightIndex.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["mapDataUsingRowHeightIndex.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;;kBAQe,UAAC,YAAD,EAAe,cAAf,EAA+B,MAA/B,EAA0C;AACrD,QAAI,mBAAJ;QACI,mBADJ;;AAGA,iBAAa,aAAa,CAAb,EAAgB,MAA7B;;;;AAIA,iBAAa,mBAAM,YAAN,EAAoB,UAAC,KAAD,EAAQ,MAAR,EAAmB;AAChD,YAAI,kBAAJ;;AAEA,oBAAY,mBAAM,MAAM,eAAe,MAAf,CAAN,CAAN,EAAqC,YAAM;AACnD,mBAAO,oBAAO,MAAM,UAAN,CAAP,EAA0B,EAA1B,CAAP;AACH,SAFW,CAAZ;;;;;;;;AAUA,+BAAU,KAAV,EAAiB,UAAC,KAAD,EAAQ,MAAR,EAAmB;AAChC,gBAAI,qBAAJ;;AAEA,gBAAI,OAAO,OAAP,CAAe,MAAf,EAAuB,QAA3B,EAAqC;AACjC,+BAAe,wBAAS,KAAT,EAAgB,OAAO,OAAP,CAAe,MAAf,EAAuB,KAAvC,CAAf;AACH,aAFD,MAEO;AACH,+BAAe,0BAAW,KAAX,EAAkB,OAAO,OAAP,CAAe,MAAf,EAAuB,KAAzC,CAAf;AACH;;;;AAID,mCAAU,YAAV,EAAwB,UAAC,IAAD,EAAO,MAAP,EAAkB;;;AAGtC,0BAAU,MAAV,EAAkB,MAAlB,IAA4B,IAA5B;AACH,aAJD;AAKH,SAhBD;;AAkBA,eAAO,SAAP;AACH,KAhCY,CAAb;;AAkCA,WAAO,uBAAU,UAAV,CAAP;AACH,C","file":"mapDataUsingRowHeightIndex.js","sourcesContent":["import _ from 'lodash';\nimport wrapString from './wrapString';\nimport wrapWord from './wrapWord';\n\n/**\n * @param {Array} unmappedRows\n * @param {number[]} rowHeightIndex\n * @param {Object} config\n * @return {Array}\n */\nexport default (unmappedRows, rowHeightIndex, config) => {\n let mappedRows,\n tableWidth;\n\n tableWidth = unmappedRows[0].length;\n\n // console.log('unmappedRows', unmappedRows, 'rowHeightIndex', rowHeightIndex, 'config', config, 'tableWidth', tableWidth);\n\n mappedRows = _.map(unmappedRows, (cells, index0) => {\n let rowHeight;\n\n rowHeight = _.map(Array(rowHeightIndex[index0]), () => {\n return _.fill(Array(tableWidth), '');\n });\n\n // console.log('rowHeight', rowHeight);\n\n // rowHeight\n // [{row index within rowSaw; index2}]\n // [{cell index within a virtual row; index1}]\n\n _.forEach(cells, (value, index1) => {\n let chunkedValue;\n\n if (config.columns[index1].wrapWord) {\n chunkedValue = wrapWord(value, config.columns[index1].width);\n } else {\n chunkedValue = wrapString(value, config.columns[index1].width);\n }\n\n // console.log('chunkedValue', chunkedValue.length, 'rowHeight', rowHeight.length);\n\n _.forEach(chunkedValue, (part, index2) => {\n // console.log(rowHeight[index2]);\n\n rowHeight[index2][index1] = part;\n });\n });\n\n return rowHeight;\n });\n\n return _.flatten(mappedRows);\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/padTableData.js.map b/tools/eslint/node_modules/table/dist/padTableData.js.map
deleted file mode 100644
index e900566a56..0000000000
--- a/tools/eslint/node_modules/table/dist/padTableData.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["padTableData.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;kBAOe,UAAC,IAAD,EAAO,MAAP,EAAkB;AAC7B,WAAO,mBAAM,IAAN,EAAY,UAAC,KAAD,EAAW;AAC1B,eAAO,mBAAM,KAAN,EAAa,UAAC,KAAD,EAAQ,MAAR,EAAmB;AACnC,gBAAI,eAAJ;;AAEA,qBAAS,OAAO,OAAP,CAAe,MAAf,CAAT;;AAEA,mBAAO,sBAAS,GAAT,EAAc,OAAO,WAArB,IAAoC,KAApC,GAA4C,sBAAS,GAAT,EAAc,OAAO,YAArB,CAAnD;AACH,SANM,CAAP;AAOH,KARM,CAAP;AASH,C","file":"padTableData.js","sourcesContent":["import _ from 'lodash';\n\n/**\n * @param {table~row[]} rows\n * @param {Object} config\n * @return {table~row[]}\n */\nexport default (rows, config) => {\n return _.map(rows, (cells) => {\n return _.map(cells, (value, index1) => {\n let column;\n\n column = config.columns[index1];\n\n return _.repeat(' ', column.paddingLeft) + value + _.repeat(' ', column.paddingRight);\n });\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/stringifyTableData.js.map b/tools/eslint/node_modules/table/dist/stringifyTableData.js.map
deleted file mode 100644
index c38e20fa83..0000000000
--- a/tools/eslint/node_modules/table/dist/stringifyTableData.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["stringifyTableData.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;kBAQe,UAAC,IAAD,EAAU;AACrB,WAAO,mBAAM,IAAN,EAAY,UAAC,KAAD,EAAW;AAC1B,eAAO,mBAAM,KAAN,EAAa,MAAb,CAAP;AACH,KAFM,CAAP;AAGH,C","file":"stringifyTableData.js","sourcesContent":["import _ from 'lodash';\n\n/**\n * Casts all cell values to a string.\n *\n * @param {table~row[]} rows\n * @return {table~row[]}\n */\nexport default (rows) => {\n return _.map(rows, (cells) => {\n return _.map(cells, String);\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/table.js b/tools/eslint/node_modules/table/dist/table.js
index 9066efaee8..b62ffd2b74 100644
--- a/tools/eslint/node_modules/table/dist/table.js
+++ b/tools/eslint/node_modules/table/dist/table.js
@@ -109,7 +109,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
* @returns {string}
*/
exports.default = function (data) {
- let userConfig = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
+ let userConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
let rows;
diff --git a/tools/eslint/node_modules/table/dist/table.js.map b/tools/eslint/node_modules/table/dist/table.js.map
deleted file mode 100644
index 843d2e105c..0000000000
--- a/tools/eslint/node_modules/table/dist/table.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["table.js"],"names":[],"mappings":";;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgEe,UAAC,IAAD,EAA2B;AAAA,MAApB,UAAoB,yDAAP,EAAO;;AACtC,MAAI,uBAAJ;MACI,eADJ;MAEI,uBAFJ;MAGI,aAHJ;;AAKA,mCAAkB,IAAlB;;AAEA,SAAO,kCAAmB,IAAnB,CAAP;;AAEA,WAAS,0BAAW,IAAX,EAAiB,UAAjB,CAAT;;AAEA,SAAO,iCAAkB,IAAlB,EAAwB,MAAxB,CAAP;;AAEA,mBAAiB,uCAAwB,IAAxB,EAA8B,MAA9B,CAAjB;;AAEA,SAAO,0CAA2B,IAA3B,EAAiC,cAAjC,EAAiD,MAAjD,CAAP;AACA,SAAO,8BAAe,IAAf,EAAqB,MAArB,CAAP;AACA,SAAO,4BAAa,IAAb,EAAmB,MAAnB,CAAP;;AAEA,mBAAiB,uCAAwB,KAAK,CAAL,CAAxB,CAAjB;;AAEA,SAAO,yBAAU,IAAV,EAAgB,OAAO,MAAvB,EAA+B,cAA/B,EAA+C,cAA/C,EAA+D,OAAO,kBAAtE,CAAP;AACH,C","file":"table.js","sourcesContent":["import drawTable from './drawTable';\nimport calculateCellWidthIndex from './calculateCellWidthIndex';\nimport makeConfig from './makeConfig';\nimport calculateRowHeightIndex from './calculateRowHeightIndex';\nimport mapDataUsingRowHeightIndex from './mapDataUsingRowHeightIndex';\nimport alignTableData from './alignTableData';\nimport padTableData from './padTableData';\nimport validateTableData from './validateTableData';\nimport stringifyTableData from './stringifyTableData';\nimport truncateTableData from './truncateTableData';\n\n/**\n * @typedef {string} table~cell\n */\n\n/**\n * @typedef {table~cell[]} table~row\n */\n\n/**\n * @typedef {Object} table~columns\n * @property {string} alignment Cell content alignment (enum: left, center, right) (default: left).\n * @property {number} width Column width (default: auto).\n * @property {number} truncate Number of characters are which the content will be truncated (default: Infinity).\n * @property {number} paddingLeft Cell content padding width left (default: 1).\n * @property {number} paddingRight Cell content padding width right (default: 1).\n */\n\n/**\n * @typedef {Object} table~border\n * @property {string} topBody\n * @property {string} topJoin\n * @property {string} topLeft\n * @property {string} topRight\n * @property {string} bottomBody\n * @property {string} bottomJoin\n * @property {string} bottomLeft\n * @property {string} bottomRight\n * @property {string} bodyLeft\n * @property {string} bodyRight\n * @property {string} bodyJoin\n * @property {string} joinBody\n * @property {string} joinLeft\n * @property {string} joinRight\n * @property {string} joinJoin\n */\n\n/**\n * Used to tell whether to draw a horizontal line.\n * This callback is called for each non-content line of the table.\n * The default behavior is to always return true.\n *\n * @typedef {Function} drawHorizontalLine\n * @param {number} index\n * @param {number} size\n * @return {boolean}\n */\n\n/**\n * @typedef {Object} table~config\n * @property {table~border} border\n * @property {table~columns[]} columns Column specific configuration.\n * @property {table~columns} columnDefault Default values for all columns. Column specific settings overwrite the default values.\n * @property {table~drawHorizontalLine} drawHorizontalLine\n */\n\n/**\n * Generates a text table.\n *\n * @param {table~row[]} data\n * @param {table~config} userConfig\n * @return {string}\n */\nexport default (data, userConfig = {}) => {\n let cellWidthIndex,\n config,\n rowHeightIndex,\n rows;\n\n validateTableData(data);\n\n rows = stringifyTableData(data);\n\n config = makeConfig(rows, userConfig);\n\n rows = truncateTableData(data, config);\n\n rowHeightIndex = calculateRowHeightIndex(rows, config);\n\n rows = mapDataUsingRowHeightIndex(rows, rowHeightIndex, config);\n rows = alignTableData(rows, config);\n rows = padTableData(rows, config);\n\n cellWidthIndex = calculateCellWidthIndex(rows[0]);\n\n return drawTable(rows, config.border, cellWidthIndex, rowHeightIndex, config.drawHorizontalLine);\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/truncateTableData.js.map b/tools/eslint/node_modules/table/dist/truncateTableData.js.map
deleted file mode 100644
index dca05c3b51..0000000000
--- a/tools/eslint/node_modules/table/dist/truncateTableData.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["truncateTableData.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;kBAQe,UAAC,IAAD,EAAO,MAAP,EAAkB;AAC7B,WAAO,mBAAM,IAAN,EAAY,UAAC,KAAD,EAAW;AAC1B,eAAO,mBAAM,KAAN,EAAa,UAAC,OAAD,EAAU,KAAV,EAAoB;AACpC,mBAAO,wBAAW,OAAX,EAAoB;AACvB,wBAAQ,OAAO,OAAP,CAAe,KAAf,EAAsB;AADP,aAApB,CAAP;AAGH,SAJM,CAAP;AAKH,KANM,CAAP;AAOH,C","file":"truncateTableData.js","sourcesContent":["import _ from 'lodash';\n\n/**\n * @todo Make it work with ASCII content.\n * @param {table~row[]} rows\n * @param {Object} config\n * @return {table~row[]}\n */\nexport default (rows, config) => {\n return _.map(rows, (cells) => {\n return _.map(cells, (content, index) => {\n return _.truncate(content, {\n length: config.columns[index].truncate\n });\n });\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/validateConfig.js b/tools/eslint/node_modules/table/dist/validateConfig.js
index 965ddc5db4..caba30134d 100644
--- a/tools/eslint/node_modules/table/dist/validateConfig.js
+++ b/tools/eslint/node_modules/table/dist/validateConfig.js
@@ -1,62 +1,756 @@
'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _ajv = require('ajv');
-
-var _ajv2 = _interopRequireDefault(_ajv);
-
-var _ajvKeywords = require('ajv-keywords');
-
-var _ajvKeywords2 = _interopRequireDefault(_ajvKeywords);
-
-var _config = require('./schemas/config.json');
-
-var _config2 = _interopRequireDefault(_config);
-
-var _streamConfig = require('./schemas/streamConfig.json');
-
-var _streamConfig2 = _interopRequireDefault(_streamConfig);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-const ajv = new _ajv2.default({
- allErrors: true
-});
-
-(0, _ajvKeywords2.default)(ajv, 'typeof');
-
-ajv.addSchema(_config2.default);
-ajv.addSchema(_streamConfig2.default);
-
-/**
- * @param {string} schemaId
- * @param {formatData~config} config
- * @returns {undefined}
- */
-
-exports.default = function (schemaId) {
- let config = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
-
- if (!ajv.validate(schemaId, config)) {
- const errors = ajv.errors.map(error => {
- return {
- dataPath: error.dataPath,
- message: error.message,
- params: error.params,
- schemaPath: error.schemaPath
+var equal = require('ajv/lib/compile/equal');
+var validate = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ var refVal = [];
+ var refVal1 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || validate.schema.properties[key0]);
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ if (data.topBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal2(data.topBody, (dataPath || '') + '.topBody', data, 'topBody', rootData)) {
+ if (vErrors === null) vErrors = refVal2.errors;
+ else vErrors = vErrors.concat(refVal2.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topJoin, (dataPath || '') + '.topJoin', data, 'topJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topLeft, (dataPath || '') + '.topLeft', data, 'topLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topRight, (dataPath || '') + '.topRight', data, 'topRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomBody, (dataPath || '') + '.bottomBody', data, 'bottomBody', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomJoin, (dataPath || '') + '.bottomJoin', data, 'bottomJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomLeft, (dataPath || '') + '.bottomLeft', data, 'bottomLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomRight, (dataPath || '') + '.bottomRight', data, 'bottomRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyLeft, (dataPath || '') + '.bodyLeft', data, 'bodyLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyRight, (dataPath || '') + '.bodyRight', data, 'bodyRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyJoin, (dataPath || '') + '.bodyJoin', data, 'bodyJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinBody, (dataPath || '') + '.joinBody', data, 'joinBody', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinLeft, (dataPath || '') + '.joinLeft', data, 'joinLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinRight, (dataPath || '') + '.joinRight', data, 'joinRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinJoin, (dataPath || '') + '.joinJoin', data, 'joinJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal1.schema = {
+ "type": "object",
+ "properties": {
+ "topBody": {
+ "$ref": "#/definitions/border"
+ },
+ "topJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "topLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "topRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomBody": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "joinBody": {
+ "$ref": "#/definitions/border"
+ },
+ "joinLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "joinRight": {
+ "$ref": "#/definitions/border"
+ },
+ "joinJoin": {
+ "$ref": "#/definitions/border"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal1.errors = null;
+ refVal[1] = refVal1;
+ var refVal2 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if (typeof data !== "string") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'string'
+ },
+ message: 'should be string'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal2.schema = {
+ "type": "string"
+ };
+ refVal2.errors = null;
+ refVal[2] = refVal2;
+ var refVal3 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || pattern0.test(key0));
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ for (var key0 in data) {
+ if (pattern0.test(key0)) {
+ var errs_1 = errors;
+ if (!refVal4(data[key0], (dataPath || '') + '[\'' + key0 + '\']', data, key0, rootData)) {
+ if (vErrors === null) vErrors = refVal4.errors;
+ else vErrors = vErrors.concat(refVal4.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal3.schema = {
+ "type": "object",
+ "patternProperties": {
+ "^[0-9]+$": {
+ "$ref": "#/definitions/column"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal3.errors = null;
+ refVal[3] = refVal3;
+ var refVal4 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || validate.schema.properties[key0]);
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ var data1 = data.alignment;
+ if (data1 !== undefined) {
+ var errs_1 = errors;
+ var schema1 = validate.schema.properties.alignment.enum;
+ var valid1;
+ valid1 = false;
+ for (var i1 = 0; i1 < schema1.length; i1++)
+ if (equal(data1, schema1[i1])) {
+ valid1 = true;
+ break;
+ }
+ if (!valid1) {
+ var err = {
+ keyword: 'enum',
+ dataPath: (dataPath || '') + '.alignment',
+ schemaPath: '#/properties/alignment/enum',
+ params: {
+ allowedValues: schema1
+ },
+ message: 'should be equal to one of the allowed values'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ if (typeof data1 !== "string") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.alignment',
+ schemaPath: '#/properties/alignment/type',
+ params: {
+ type: 'string'
+ },
+ message: 'should be string'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.width !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.width !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.width',
+ schemaPath: '#/properties/width/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.wrapWord !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.wrapWord !== "boolean") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.wrapWord',
+ schemaPath: '#/properties/wrapWord/type',
+ params: {
+ type: 'boolean'
+ },
+ message: 'should be boolean'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.truncate !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.truncate !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.truncate',
+ schemaPath: '#/properties/truncate/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.paddingLeft !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.paddingLeft !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.paddingLeft',
+ schemaPath: '#/properties/paddingLeft/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.paddingRight !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.paddingRight !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.paddingRight',
+ schemaPath: '#/properties/paddingRight/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal4.schema = {
+ "type": "object",
+ "properties": {
+ "alignment": {
+ "type": "string",
+ "enum": ["left", "right", "center"]
+ },
+ "width": {
+ "type": "number"
+ },
+ "wrapWord": {
+ "type": "boolean"
+ },
+ "truncate": {
+ "type": "number"
+ },
+ "paddingLeft": {
+ "type": "number"
+ },
+ "paddingRight": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal4.errors = null;
+ refVal[4] = refVal4;
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || key0 == 'border' || key0 == 'columns' || key0 == 'columnDefault' || key0 == 'drawHorizontalLine');
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ if (data.border !== undefined) {
+ var errs_1 = errors;
+ if (!refVal1(data.border, (dataPath || '') + '.border', data, 'border', rootData)) {
+ if (vErrors === null) vErrors = refVal1.errors;
+ else vErrors = vErrors.concat(refVal1.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.columns !== undefined) {
+ var errs_1 = errors;
+ if (!refVal3(data.columns, (dataPath || '') + '.columns', data, 'columns', rootData)) {
+ if (vErrors === null) vErrors = refVal3.errors;
+ else vErrors = vErrors.concat(refVal3.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.columnDefault !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[4](data.columnDefault, (dataPath || '') + '.columnDefault', data, 'columnDefault', rootData)) {
+ if (vErrors === null) vErrors = refVal[4].errors;
+ else vErrors = vErrors.concat(refVal[4].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.drawHorizontalLine !== undefined) {
+ var errs_1 = errors;
+ var errs__1 = errors;
+ var valid1;
+ if (!(typeof data.drawHorizontalLine == "function")) {
+ if (errs__1 == errors) {
+ var err = {
+ keyword: 'typeof',
+ dataPath: (dataPath || '') + '.drawHorizontalLine',
+ schemaPath: '#/properties/drawHorizontalLine/typeof',
+ params: {
+ keyword: 'typeof'
+ },
+ message: 'should pass "typeof" keyword validation'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ } else {
+ for (var i1 = errs__1; i1 < errors; i1++) {
+ var ruleErr1 = vErrors[i1];
+ if (ruleErr1.dataPath === undefined) {
+ ruleErr1.dataPath = (dataPath || '') + '.drawHorizontalLine';
+ }
+ if (ruleErr1.schemaPath === undefined) {
+ ruleErr1.schemaPath = "#/properties/drawHorizontalLine/typeof";
+ }
+ }
+ }
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
};
- });
-
- /* eslint-disable no-console */
- console.log('config', config);
- console.log('errors', errors);
- /* eslint-enable no-console */
-
- throw new Error('Invalid config.');
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+})();
+validate.schema = {
+ "id": "config.json",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "border": {
+ "$ref": "#/definitions/borders"
+ },
+ "columns": {
+ "$ref": "#/definitions/columns"
+ },
+ "columnDefault": {
+ "$ref": "#/definitions/column"
+ },
+ "drawHorizontalLine": {
+ "typeof": "function"
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "columns": {
+ "type": "object",
+ "patternProperties": {
+ "^[0-9]+$": {
+ "$ref": "#/definitions/column"
+ }
+ },
+ "additionalProperties": false
+ },
+ "column": {
+ "type": "object",
+ "properties": {
+ "alignment": {
+ "type": "string",
+ "enum": ["left", "right", "center"]
+ },
+ "width": {
+ "type": "number"
+ },
+ "wrapWord": {
+ "type": "boolean"
+ },
+ "truncate": {
+ "type": "number"
+ },
+ "paddingLeft": {
+ "type": "number"
+ },
+ "paddingRight": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "borders": {
+ "type": "object",
+ "properties": {
+ "topBody": {
+ "$ref": "#/definitions/border"
+ },
+ "topJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "topLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "topRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomBody": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "joinBody": {
+ "$ref": "#/definitions/border"
+ },
+ "joinLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "joinRight": {
+ "$ref": "#/definitions/border"
+ },
+ "joinJoin": {
+ "$ref": "#/definitions/border"
+ }
+ },
+ "additionalProperties": false
+ },
+ "border": {
+ "type": "string"
+ }
}
};
-
-module.exports = exports['default']; \ No newline at end of file
+validate.errors = null;
+module.exports = validate; \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/validateConfig.js.map b/tools/eslint/node_modules/table/dist/validateConfig.js.map
deleted file mode 100644
index ad5e82b80b..0000000000
--- a/tools/eslint/node_modules/table/dist/validateConfig.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["validateConfig.js"],"names":[],"mappings":";;;;;;AAAA;;;;AACA;;;;;;;;;;;;;;;;;;;kBAce,YAAiB;AAAA,QAAhB,MAAgB,yDAAP,EAAO;;AAC5B,QAAI,eAAJ;;AAEA,aAAS,aAAI,cAAJ,CAAmB,MAAnB,mBAAT;;AAEA,QAAI,CAAC,OAAO,KAAZ,EAAmB;;AAEf,gBAAQ,GAAR,CAAY,QAAZ,EAAsB,MAAtB;AACA,gBAAQ,GAAR,CAAY,OAAZ,EAAqB;AACjB,qBAAS,OAAO,KAAP,CAAa,OADL;AAEjB,oBAAQ,OAAO,KAAP,CAAa,MAFJ;AAGjB,sBAAU,OAAO,KAAP,CAAa,QAHN;AAIjB,wBAAY,OAAO,KAAP,CAAa;AAJR,SAArB;;;AAQA,cAAM,IAAI,KAAJ,CAAU,iBAAV,CAAN;AACH;AACJ,C","file":"validateConfig.js","sourcesContent":["import schema from './schemas/config.json';\nimport tv4 from 'tv4';\n\n/**\n * @typedef {string} cell\n */\n\n/**\n * @typedef {cell[]} validateData~column\n */\n\n/**\n * @param {formatData~config} config\n * @returns {undefined}\n */\nexport default (config = {}) => {\n let result;\n\n result = tv4.validateResult(config, schema);\n\n if (!result.valid) {\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('error', {\n message: result.error.message,\n params: result.error.params,\n dataPath: result.error.dataPath,\n schemaPath: result.error.schemaPath\n });\n /* eslint-enable no-console */\n\n throw new Error('Invalid config.');\n }\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/validateStreamConfig.js b/tools/eslint/node_modules/table/dist/validateStreamConfig.js
index e5cc85e304..09ea2aac92 100644
--- a/tools/eslint/node_modules/table/dist/validateStreamConfig.js
+++ b/tools/eslint/node_modules/table/dist/validateStreamConfig.js
@@ -1,53 +1,742 @@
'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-
-var _streamConfig = require('./schemas/streamConfig.json');
-
-var _streamConfig2 = _interopRequireDefault(_streamConfig);
-
-var _tv = require('tv4');
-
-var _tv2 = _interopRequireDefault(_tv);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
-/**
- * @typedef {string} cell
- */
-
-/**
- * @typedef {cell[]} validateData~column
- */
-
-/**
- * @param {formatData~config} config
- * @returns {undefined}
- */
-
-exports.default = function () {
- var config = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
-
- var result = void 0;
-
- result = _tv2.default.validateResult(config, _streamConfig2.default);
-
- if (!result.valid) {
- /* eslint-disable no-console */
- console.log('config', config);
- console.log('error', {
- message: result.error.message,
- params: result.error.params,
- dataPath: result.error.dataPath,
- schemaPath: result.error.schemaPath
- });
- /* eslint-enable no-console */
-
- throw new Error('Invalid config.');
+var equal = require('ajv/lib/compile/equal');
+var validate = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ var refVal = [];
+ var refVal1 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || validate.schema.properties[key0]);
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ if (data.topBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal2(data.topBody, (dataPath || '') + '.topBody', data, 'topBody', rootData)) {
+ if (vErrors === null) vErrors = refVal2.errors;
+ else vErrors = vErrors.concat(refVal2.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topJoin, (dataPath || '') + '.topJoin', data, 'topJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topLeft, (dataPath || '') + '.topLeft', data, 'topLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.topRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.topRight, (dataPath || '') + '.topRight', data, 'topRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomBody, (dataPath || '') + '.bottomBody', data, 'bottomBody', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomJoin, (dataPath || '') + '.bottomJoin', data, 'bottomJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomLeft, (dataPath || '') + '.bottomLeft', data, 'bottomLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bottomRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bottomRight, (dataPath || '') + '.bottomRight', data, 'bottomRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyLeft, (dataPath || '') + '.bodyLeft', data, 'bodyLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyRight, (dataPath || '') + '.bodyRight', data, 'bodyRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.bodyJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.bodyJoin, (dataPath || '') + '.bodyJoin', data, 'bodyJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinBody !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinBody, (dataPath || '') + '.joinBody', data, 'joinBody', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinLeft !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinLeft, (dataPath || '') + '.joinLeft', data, 'joinLeft', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinRight !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinRight, (dataPath || '') + '.joinRight', data, 'joinRight', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.joinJoin !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[2](data.joinJoin, (dataPath || '') + '.joinJoin', data, 'joinJoin', rootData)) {
+ if (vErrors === null) vErrors = refVal[2].errors;
+ else vErrors = vErrors.concat(refVal[2].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal1.schema = {
+ "type": "object",
+ "properties": {
+ "topBody": {
+ "$ref": "#/definitions/border"
+ },
+ "topJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "topLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "topRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomBody": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "joinBody": {
+ "$ref": "#/definitions/border"
+ },
+ "joinLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "joinRight": {
+ "$ref": "#/definitions/border"
+ },
+ "joinJoin": {
+ "$ref": "#/definitions/border"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal1.errors = null;
+ refVal[1] = refVal1;
+ var refVal2 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if (typeof data !== "string") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'string'
+ },
+ message: 'should be string'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal2.schema = {
+ "type": "string"
+ };
+ refVal2.errors = null;
+ refVal[2] = refVal2;
+ var refVal3 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || pattern0.test(key0));
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ for (var key0 in data) {
+ if (pattern0.test(key0)) {
+ var errs_1 = errors;
+ if (!refVal4(data[key0], (dataPath || '') + '[\'' + key0 + '\']', data, key0, rootData)) {
+ if (vErrors === null) vErrors = refVal4.errors;
+ else vErrors = vErrors.concat(refVal4.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal3.schema = {
+ "type": "object",
+ "patternProperties": {
+ "^[0-9]+$": {
+ "$ref": "#/definitions/column"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal3.errors = null;
+ refVal[3] = refVal3;
+ var refVal4 = (function() {
+ var pattern0 = new RegExp('^[0-9]+$');
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || validate.schema.properties[key0]);
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ var data1 = data.alignment;
+ if (data1 !== undefined) {
+ var errs_1 = errors;
+ var schema1 = validate.schema.properties.alignment.enum;
+ var valid1;
+ valid1 = false;
+ for (var i1 = 0; i1 < schema1.length; i1++)
+ if (equal(data1, schema1[i1])) {
+ valid1 = true;
+ break;
+ }
+ if (!valid1) {
+ var err = {
+ keyword: 'enum',
+ dataPath: (dataPath || '') + '.alignment',
+ schemaPath: '#/properties/alignment/enum',
+ params: {
+ allowedValues: schema1
+ },
+ message: 'should be equal to one of the allowed values'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ if (typeof data1 !== "string") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.alignment',
+ schemaPath: '#/properties/alignment/type',
+ params: {
+ type: 'string'
+ },
+ message: 'should be string'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.width !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.width !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.width',
+ schemaPath: '#/properties/width/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.wrapWord !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.wrapWord !== "boolean") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.wrapWord',
+ schemaPath: '#/properties/wrapWord/type',
+ params: {
+ type: 'boolean'
+ },
+ message: 'should be boolean'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.truncate !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.truncate !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.truncate',
+ schemaPath: '#/properties/truncate/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.paddingLeft !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.paddingLeft !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.paddingLeft',
+ schemaPath: '#/properties/paddingLeft/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.paddingRight !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.paddingRight !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.paddingRight',
+ schemaPath: '#/properties/paddingRight/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+ })();
+ refVal4.schema = {
+ "type": "object",
+ "properties": {
+ "alignment": {
+ "type": "string",
+ "enum": ["left", "right", "center"]
+ },
+ "width": {
+ "type": "number"
+ },
+ "wrapWord": {
+ "type": "boolean"
+ },
+ "truncate": {
+ "type": "number"
+ },
+ "paddingLeft": {
+ "type": "number"
+ },
+ "paddingRight": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ };
+ refVal4.errors = null;
+ refVal[4] = refVal4;
+ return function validate(data, dataPath, parentData, parentDataProperty, rootData) {
+ 'use strict';
+ var vErrors = null;
+ var errors = 0;
+ if (rootData === undefined) rootData = data;
+ if ((data && typeof data === "object" && !Array.isArray(data))) {
+ var errs__0 = errors;
+ var valid1 = true;
+ for (var key0 in data) {
+ var isAdditional0 = !(false || key0 == 'border' || key0 == 'columns' || key0 == 'columnDefault' || key0 == 'columnCount');
+ if (isAdditional0) {
+ valid1 = false;
+ var err = {
+ keyword: 'additionalProperties',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/additionalProperties',
+ params: {
+ additionalProperty: '' + key0 + ''
+ },
+ message: 'should NOT have additional properties'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ }
+ if (data.border !== undefined) {
+ var errs_1 = errors;
+ if (!refVal1(data.border, (dataPath || '') + '.border', data, 'border', rootData)) {
+ if (vErrors === null) vErrors = refVal1.errors;
+ else vErrors = vErrors.concat(refVal1.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.columns !== undefined) {
+ var errs_1 = errors;
+ if (!refVal3(data.columns, (dataPath || '') + '.columns', data, 'columns', rootData)) {
+ if (vErrors === null) vErrors = refVal3.errors;
+ else vErrors = vErrors.concat(refVal3.errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.columnDefault !== undefined) {
+ var errs_1 = errors;
+ if (!refVal[4](data.columnDefault, (dataPath || '') + '.columnDefault', data, 'columnDefault', rootData)) {
+ if (vErrors === null) vErrors = refVal[4].errors;
+ else vErrors = vErrors.concat(refVal[4].errors);
+ errors = vErrors.length;
+ }
+ var valid1 = errors === errs_1;
+ }
+ if (data.columnCount !== undefined) {
+ var errs_1 = errors;
+ if (typeof data.columnCount !== "number") {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + '.columnCount',
+ schemaPath: '#/properties/columnCount/type',
+ params: {
+ type: 'number'
+ },
+ message: 'should be number'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
+ }
+ var valid1 = errors === errs_1;
+ }
+ } else {
+ var err = {
+ keyword: 'type',
+ dataPath: (dataPath || '') + "",
+ schemaPath: '#/type',
+ params: {
+ type: 'object'
+ },
+ message: 'should be object'
+ };
+ if (vErrors === null) vErrors = [err];
+ else vErrors.push(err);
+ errors++;
}
+ validate.errors = vErrors;
+ return errors === 0;
+ };
+})();
+validate.schema = {
+ "id": "streamConfig.json",
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "properties": {
+ "border": {
+ "$ref": "#/definitions/borders"
+ },
+ "columns": {
+ "$ref": "#/definitions/columns"
+ },
+ "columnDefault": {
+ "$ref": "#/definitions/column"
+ },
+ "columnCount": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "columns": {
+ "type": "object",
+ "patternProperties": {
+ "^[0-9]+$": {
+ "$ref": "#/definitions/column"
+ }
+ },
+ "additionalProperties": false
+ },
+ "column": {
+ "type": "object",
+ "properties": {
+ "alignment": {
+ "type": "string",
+ "enum": ["left", "right", "center"]
+ },
+ "width": {
+ "type": "number"
+ },
+ "wrapWord": {
+ "type": "boolean"
+ },
+ "truncate": {
+ "type": "number"
+ },
+ "paddingLeft": {
+ "type": "number"
+ },
+ "paddingRight": {
+ "type": "number"
+ }
+ },
+ "additionalProperties": false
+ },
+ "borders": {
+ "type": "object",
+ "properties": {
+ "topBody": {
+ "$ref": "#/definitions/border"
+ },
+ "topJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "topLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "topRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomBody": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bottomRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyRight": {
+ "$ref": "#/definitions/border"
+ },
+ "bodyJoin": {
+ "$ref": "#/definitions/border"
+ },
+ "joinBody": {
+ "$ref": "#/definitions/border"
+ },
+ "joinLeft": {
+ "$ref": "#/definitions/border"
+ },
+ "joinRight": {
+ "$ref": "#/definitions/border"
+ },
+ "joinJoin": {
+ "$ref": "#/definitions/border"
+ }
+ },
+ "additionalProperties": false
+ },
+ "border": {
+ "type": "string"
+ }
+ }
};
-
-module.exports = exports['default'];
-//# sourceMappingURL=validateStreamConfig.js.map
+validate.errors = null;
+module.exports = validate; \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/validateStreamConfig.js.map b/tools/eslint/node_modules/table/dist/validateStreamConfig.js.map
deleted file mode 100644
index c43bee9d5f..0000000000
--- a/tools/eslint/node_modules/table/dist/validateStreamConfig.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["validateStreamConfig.js"],"names":[],"mappings":";;;;;;AAAA;;;;AACA;;;;;;;;;;;;;;;;;;;kBAce,YAAiB;AAAA,QAAhB,MAAgB,yDAAP,EAAO;;AAC5B,QAAI,eAAJ;;AAEA,aAAS,aAAI,cAAJ,CAAmB,MAAnB,yBAAT;;AAEA,QAAI,CAAC,OAAO,KAAZ,EAAmB;;AAEf,gBAAQ,GAAR,CAAY,QAAZ,EAAsB,MAAtB;AACA,gBAAQ,GAAR,CAAY,OAAZ,EAAqB;AACjB,qBAAS,OAAO,KAAP,CAAa,OADL;AAEjB,oBAAQ,OAAO,KAAP,CAAa,MAFJ;AAGjB,sBAAU,OAAO,KAAP,CAAa,QAHN;AAIjB,wBAAY,OAAO,KAAP,CAAa;AAJR,SAArB;;;AAQA,cAAM,IAAI,KAAJ,CAAU,iBAAV,CAAN;AACH;AACJ,C","file":"validateStreamConfig.js","sourcesContent":["import schema from './schemas/streamConfig.json';\nimport tv4 from 'tv4';\n\n/**\n * @typedef {string} cell\n */\n\n/**\n * @typedef {cell[]} validateData~column\n */\n\n/**\n * @param {formatData~config} config\n * @returns {undefined}\n */\nexport default (config = {}) => {\n let result;\n\n result = tv4.validateResult(config, schema);\n\n if (!result.valid) {\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('error', {\n message: result.error.message,\n params: result.error.params,\n dataPath: result.error.dataPath,\n schemaPath: result.error.schemaPath\n });\n /* eslint-enable no-console */\n\n throw new Error('Invalid config.');\n }\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/validateTableData.js.map b/tools/eslint/node_modules/table/dist/validateTableData.js.map
deleted file mode 100644
index 92092051fa..0000000000
--- a/tools/eslint/node_modules/table/dist/validateTableData.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["validateTableData.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAce,UAAC,IAAD,EAAU;AACrB,QAAI,qBAAJ;;AAEA,QAAI,CAAC,uBAAU,IAAV,CAAL,EAAsB;AAClB,cAAM,IAAI,KAAJ,CAAU,8BAAV,CAAN;AACH;;AAED,QAAI,KAAK,MAAL,KAAgB,CAApB,EAAuB;AACnB,cAAM,IAAI,KAAJ,CAAU,qCAAV,CAAN;AACH;;AAED,QAAI,KAAK,CAAL,EAAQ,MAAR,KAAmB,CAAvB,EAA0B;AACtB,cAAM,IAAI,KAAJ,CAAU,wCAAV,CAAN;AACH;;AAED,mBAAe,KAAK,CAAL,EAAQ,MAAvB;;AAEA,2BAAU,IAAV,EAAgB,UAAC,KAAD,EAAW;AACvB,YAAI,CAAC,uBAAU,KAAV,CAAL,EAAuB;AACnB,kBAAM,IAAI,KAAJ,CAAU,kCAAV,CAAN;AACH;;AAED,YAAI,MAAM,MAAN,KAAiB,YAArB,EAAmC;AAC/B,kBAAM,IAAI,KAAJ,CAAU,+CAAV,CAAN;AACH;;;;AAID,+BAAU,KAAV,EAAiB,UAAC,IAAD,EAAU;AACvB,gBAAI,cAAc,IAAd,CAAmB,IAAnB,CAAJ,EAA8B;AAC1B,sBAAM,IAAI,KAAJ,CAAU,iDAAV,CAAN;AACH;AACJ,SAJD;AAKH,KAhBD;AAiBH,C","file":"validateTableData.js","sourcesContent":["import _ from 'lodash';\n\n/**\n * @typedef {string} cell\n */\n\n/**\n * @typedef {cell[]} validateData~column\n */\n\n/**\n * @param {column[]} rows\n * @returns {undefined}\n */\nexport default (rows) => {\n let columnNumber;\n\n if (!_.isArray(rows)) {\n throw new Error('Table data must be an array.');\n }\n\n if (rows.length === 0) {\n throw new Error('Table must define at least one row.');\n }\n\n if (rows[0].length === 0) {\n throw new Error('Table must define at least one column.');\n }\n\n columnNumber = rows[0].length;\n\n _.forEach(rows, (cells) => {\n if (!_.isArray(cells)) {\n throw new Error('Table row data must be an array.');\n }\n\n if (cells.length !== columnNumber) {\n throw new Error('Table must have a consistent number of cells.');\n }\n\n // @todo Make an exception for newline characters.\n // @see https://github.com/gajus/table/issues/9\n _.forEach(cells, (cell) => {\n if (/[\\x01-\\x1A]/.test(cell)) {\n throw new Error('Table data must not contain control characters.');\n }\n });\n });\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/wrapString.js.map b/tools/eslint/node_modules/table/dist/wrapString.js.map
deleted file mode 100644
index 0ba89f7ddd..0000000000
--- a/tools/eslint/node_modules/table/dist/wrapString.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["wrapString.js"],"names":[],"mappings":";;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;;;;;;;kBAae,UAAC,OAAD,EAAU,IAAV,EAAmB;AAC9B,QAAI,eAAJ;QACI,qBADJ;;AAGA,mBAAe,OAAf;;AAEA,aAAS,EAAT;;AAEA,OAAG;AACC,eAAO,IAAP,CAAY,yBAAM,YAAN,EAAoB,CAApB,EAAuB,IAAvB,CAAZ;;AAEA,uBAAe,oBAAO,yBAAM,YAAN,EAAoB,IAApB,CAAP,CAAf;AACH,KAJD,QAIS,2BAAY,YAAZ,CAJT;;AAMA,WAAO,MAAP;AACH,C","file":"wrapString.js","sourcesContent":["import _ from 'lodash';\nimport slice from 'slice-ansi';\nimport stringWidth from 'string-width';\n\n/**\n * Creates an array of strings split into groups the length of size.\n * This function works with strings that contain ASCII characters.\n *\n * wrapText is different from would-be \"chunk\" implementation\n * in that whitespace characters that occur on a chunk size limit are trimmed.\n *\n * @param {string} subject\n * @param {number} size\n * @returns {Array}\n */\nexport default (subject, size) => {\n let chunks,\n subjectSlice;\n\n subjectSlice = subject;\n\n chunks = [];\n\n do {\n chunks.push(slice(subjectSlice, 0, size));\n\n subjectSlice = _.trim(slice(subjectSlice, size));\n } while (stringWidth(subjectSlice));\n\n return chunks;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/dist/wrapWord.js.map b/tools/eslint/node_modules/table/dist/wrapWord.js.map
deleted file mode 100644
index 92e36ba776..0000000000
--- a/tools/eslint/node_modules/table/dist/wrapWord.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["wrapWord.js"],"names":[],"mappings":";;;;;;;;;;AACA;;;;AACA;;;;;;;;;;;;kBAOe,UAAC,KAAD,EAAQ,IAAR,EAAiB;AAC5B,QAAI,cAAJ;QACI,eADJ;QAEI,WAFJ;QAGI,gBAHJ;;AAKA,cAAU,KAAV;;AAEA,aAAS,EAAT;;;AAGA,SAAK,IAAI,MAAJ,CAAW,WAAW,IAAX,GAAkB,mBAAlB,IAAyC,OAAO,CAAhD,IAAqD,yBAAhE,CAAL;;AAEA,OAAG;AACC,gBAAQ,QAAQ,KAAR,CAAc,EAAd,CAAR;;;;AAIA,YAAI,KAAJ,EAAW;AACP,oBAAQ,MAAM,CAAN,CAAR;;AAEA,sBAAU,yBAAM,OAAN,EAAe,2BAAY,KAAZ,CAAf,CAAV;;AAEA,oBAAQ,oBAAO,KAAP,CAAR;AACH,SAND,MAMO;AACH,oBAAQ,yBAAM,OAAN,EAAe,CAAf,EAAkB,IAAlB,CAAR;AACA,sBAAU,yBAAM,OAAN,EAAe,IAAf,CAAV;AACH;;AAED,eAAO,IAAP,CAAY,KAAZ;AACH,KAjBD,QAiBS,2BAAY,OAAZ,CAjBT;;AAmBA,WAAO,MAAP;AACH,C","file":"wrapWord.js","sourcesContent":["import _ from 'lodash';\nimport slice from 'slice-ansi';\nimport stringWidth from 'string-width';\n\n/**\n * @param {string} input\n * @param {number} size\n * @returns {Array}\n */\nexport default (input, size) => {\n let chunk,\n chunks,\n re,\n subject;\n\n subject = input;\n\n chunks = [];\n\n // https://regex101.com/r/gY5kZ1/1\n re = new RegExp('(^.{1,' + size + '}(\\\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\\\\\|/|_|\\\\.|,|;|\\-))');\n\n do {\n chunk = subject.match(re);\n\n // console.log('chunk', chunk, re);\n\n if (chunk) {\n chunk = chunk[0];\n\n subject = slice(subject, stringWidth(chunk));\n\n chunk = _.trim(chunk);\n } else {\n chunk = slice(subject, 0, size);\n subject = slice(subject, size);\n }\n\n chunks.push(chunk);\n } while (stringWidth(subject));\n\n return chunks;\n};\n"]} \ No newline at end of file
diff --git a/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/index.js b/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/index.js
new file mode 100644
index 0000000000..d506327c3e
--- /dev/null
+++ b/tools/eslint/node_modules/table/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/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/license b/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/license
new file mode 100644
index 0000000000..654d0bfe94
--- /dev/null
+++ b/tools/eslint/node_modules/table/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/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/package.json b/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..4f2674f067
--- /dev/null
+++ b/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,113 @@
+{
+ "_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/trott/io.js/tools/node_modules/table/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": "/table/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": [
+ "/table/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/trott/io.js/tools/node_modules/table/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": "ERROR: No README data found!",
+ "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/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/readme.md b/tools/eslint/node_modules/table/node_modules/is-fullwidth-code-point/readme.md
new file mode 100644
index 0000000000..093b0281b2
--- /dev/null
+++ b/tools/eslint/node_modules/table/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/tools/eslint/node_modules/table/node_modules/string-width/index.js b/tools/eslint/node_modules/table/node_modules/string-width/index.js
new file mode 100644
index 0000000000..25a8943c1d
--- /dev/null
+++ b/tools/eslint/node_modules/table/node_modules/string-width/index.js
@@ -0,0 +1,35 @@
+'use strict';
+const stripAnsi = require('strip-ansi');
+const isFullwidthCodePoint = require('is-fullwidth-code-point');
+
+module.exports = str => {
+ if (typeof str !== 'string' || str.length === 0) {
+ return 0;
+ }
+
+ let width = 0;
+
+ str = stripAnsi(str);
+
+ for (let i = 0; i < str.length; i++) {
+ const code = str.codePointAt(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/tools/eslint/node_modules/table/node_modules/string-width/license b/tools/eslint/node_modules/table/node_modules/string-width/license
new file mode 100644
index 0000000000..654d0bfe94
--- /dev/null
+++ b/tools/eslint/node_modules/table/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/tools/eslint/node_modules/table/node_modules/string-width/package.json b/tools/eslint/node_modules/table/node_modules/string-width/package.json
new file mode 100644
index 0000000000..2fd6a297eb
--- /dev/null
+++ b/tools/eslint/node_modules/table/node_modules/string-width/package.json
@@ -0,0 +1,125 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "string-width@^2.0.0",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "/Users/trott/io.js/tools/node_modules/table"
+ ]
+ ],
+ "_from": "string-width@>=2.0.0 <3.0.0",
+ "_id": "string-width@2.0.0",
+ "_inCache": true,
+ "_location": "/table/string-width",
+ "_nodeVersion": "4.5.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/string-width-2.0.0.tgz_1474527284011_0.7386264291126281"
+ },
+ "_npmUser": {
+ "name": "sindresorhus",
+ "email": "sindresorhus@gmail.com"
+ },
+ "_npmVersion": "3.10.7",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "string-width@^2.0.0",
+ "scope": null,
+ "escapedName": "string-width",
+ "name": "string-width",
+ "rawSpec": "^2.0.0",
+ "spec": ">=2.0.0 <3.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/table"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz",
+ "_shasum": "635c5436cc72a6e0c387ceca278d4e2eec52687e",
+ "_shrinkwrap": null,
+ "_spec": "string-width@^2.0.0",
+ "_where": "/Users/trott/io.js/tools/node_modules/table",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.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": "635c5436cc72a6e0c387ceca278d4e2eec52687e",
+ "tarball": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "523d7ba4dbb24d40cde88d2c36bb1c7124ab6f82",
+ "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": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/tools/eslint/node_modules/table/node_modules/string-width/readme.md b/tools/eslint/node_modules/table/node_modules/string-width/readme.md
new file mode 100644
index 0000000000..1ab42c9358
--- /dev/null
+++ b/tools/eslint/node_modules/table/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/tools/eslint/node_modules/table/package.json b/tools/eslint/node_modules/table/package.json
index fb2f250fa0..33c29ec498 100644
--- a/tools/eslint/node_modules/table/package.json
+++ b/tools/eslint/node_modules/table/package.json
@@ -14,20 +14,22 @@
]
],
"_from": "table@>=3.7.8 <4.0.0",
- "_id": "table@3.8.0",
+ "_id": "table@3.8.3",
"_inCache": true,
"_location": "/table",
- "_nodeVersion": "6.4.0",
+ "_nodeVersion": "6.8.1",
"_npmOperationalInternal": {
"host": "packages-16-east.internal.npmjs.com",
- "tmp": "tmp/table-3.8.0.tgz_1474139512457_0.8613335366826504"
+ "tmp": "tmp/table-3.8.3.tgz_1476810452789_0.6529890382662416"
},
"_npmUser": {
"name": "gajus",
"email": "gajus@gajus.com"
},
- "_npmVersion": "3.10.3",
- "_phantomChildren": {},
+ "_npmVersion": "3.10.8",
+ "_phantomChildren": {
+ "strip-ansi": "3.0.1"
+ },
"_requested": {
"raw": "table@^3.7.8",
"scope": null,
@@ -40,8 +42,8 @@
"_requiredBy": [
"/eslint"
],
- "_resolved": "https://registry.npmjs.org/table/-/table-3.8.0.tgz",
- "_shasum": "252166c7f3286684a9d561b0f3a8929caf3a997b",
+ "_resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "_shasum": "2bbc542f0fda9861a755d3947fefd8b3f513855f",
"_shrinkwrap": null,
"_spec": "table@^3.7.8",
"_where": "/Users/trott/io.js/tools/node_modules/eslint",
@@ -59,28 +61,33 @@
"chalk": "^1.1.1",
"lodash": "^4.0.0",
"slice-ansi": "0.0.4",
- "string-width": "^1.0.1"
+ "string-width": "^2.0.0"
},
"description": "Formats data into a string table.",
"devDependencies": {
+ "ajv-cli": "^1.1.0",
"babel": "^6.5.2",
"babel-cli": "^6.14.0",
+ "babel-core": "^6.14.0",
"babel-plugin-add-module-exports": "^0.2.1",
+ "babel-plugin-istanbul": "^2.0.3",
"babel-preset-es2015-node4": "^2.1.0",
"babel-register": "^6.14.0",
"chai": "^3.4.1",
"eslint": "^3.5.0",
"eslint-config-canonical": "^1.8.6",
"gitdown": "^2.4.0",
+ "husky": "^0.11.7",
"mocha": "^3.0.2",
+ "nyc": "^8.3.1",
"sinon": "^1.17.2"
},
"directories": {},
"dist": {
- "shasum": "252166c7f3286684a9d561b0f3a8929caf3a997b",
- "tarball": "https://registry.npmjs.org/table/-/table-3.8.0.tgz"
+ "shasum": "2bbc542f0fda9861a755d3947fefd8b3f513855f",
+ "tarball": "https://registry.npmjs.org/table/-/table-3.8.3.tgz"
},
- "gitHead": "076dd77627213007a989b2c845fa2f3a38896eeb",
+ "gitHead": "2d1c0d9ebad31f9c76e784e6a88f701de8705005",
"homepage": "https://github.com/gajus/table#readme",
"keywords": [
"ascii",
@@ -98,6 +105,17 @@
}
],
"name": "table",
+ "nyc": {
+ "include": [
+ "src/*.js"
+ ],
+ "instrument": false,
+ "lines": 70,
+ "require": [
+ "babel-register"
+ ],
+ "sourceMap": false
+ },
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
@@ -105,10 +123,13 @@
"url": "git+https://github.com/gajus/table.git"
},
"scripts": {
- "build": "babel --copy-files ./src --out-dir ./dist",
- "lint": "eslint ./src ./tests",
- "readme": "gitdown ./.README/README.md --output-file ./README.md",
- "test": "mocha --compilers js:babel-register"
+ "build": "rm -fr ./dist && babel --copy-files ./src --out-dir ./dist && npm run make-validators",
+ "lint": "npm run build && eslint ./src ./tests",
+ "make-readme": "gitdown ./.README/README.md --output-file ./README.md",
+ "make-validators": "ajv compile --all-errors --inline-refs=false -s src/schemas/config -c ajv-keywords/keywords/typeof -o dist/validateConfig.js && ajv compile --all-errors --inline-refs=false -s src/schemas/streamConfig -c ajv-keywords/keywords/typeof -o dist/validateStreamConfig.js",
+ "precommit": "npm run lint && npm run test",
+ "prepublish": "NODE_ENV=production npm run build",
+ "test": "npm run build && nyc --check-coverage mocha"
},
- "version": "3.8.0"
+ "version": "3.8.3"
}
diff --git a/tools/eslint/node_modules/tryit/package.json b/tools/eslint/node_modules/tryit/package.json
index 7a7a28b076..e0b4e1b8da 100644
--- a/tools/eslint/node_modules/tryit/package.json
+++ b/tools/eslint/node_modules/tryit/package.json
@@ -14,15 +14,19 @@
]
],
"_from": "tryit@>=1.0.1 <2.0.0",
- "_id": "tryit@1.0.2",
+ "_id": "tryit@1.0.3",
"_inCache": true,
"_location": "/tryit",
- "_nodeVersion": "4.1.0",
+ "_nodeVersion": "6.8.1",
+ "_npmOperationalInternal": {
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/tryit-1.0.3.tgz_1477606530482_0.8131801665294915"
+ },
"_npmUser": {
"name": "henrikjoreteg",
"email": "henrik@joreteg.com"
},
- "_npmVersion": "3.3.8",
+ "_npmVersion": "3.10.8",
"_phantomChildren": {},
"_requested": {
"raw": "tryit@^1.0.1",
@@ -36,8 +40,8 @@
"_requiredBy": [
"/is-resolvable"
],
- "_resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz",
- "_shasum": "c196b0073e6b1c595d93c9c830855b7acc32a453",
+ "_resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+ "_shasum": "393be730a9446fd1ead6da59a014308f36c289cb",
"_shrinkwrap": null,
"_spec": "tryit@^1.0.1",
"_where": "/Users/trott/io.js/tools/node_modules/is-resolvable",
@@ -56,10 +60,13 @@
},
"directories": {},
"dist": {
- "shasum": "c196b0073e6b1c595d93c9c830855b7acc32a453",
- "tarball": "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz"
+ "shasum": "393be730a9446fd1ead6da59a014308f36c289cb",
+ "tarball": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz"
},
- "gitHead": "b567b4feb491e2ee89addd3d06f66d6ec2217cf5",
+ "files": [
+ "tryit.js"
+ ],
+ "gitHead": "706147151922a456988a641b08984b2d1fcf2a86",
"homepage": "https://github.com/HenrikJoreteg/tryit#readme",
"keywords": [
"errors",
@@ -84,5 +91,5 @@
"scripts": {
"test": "node test/test.js | tap-spec"
},
- "version": "1.0.2"
+ "version": "1.0.3"
}
diff --git a/tools/eslint/node_modules/typedarray/package.json b/tools/eslint/node_modules/typedarray/package.json
index ab02da539b..1982137041 100644
--- a/tools/eslint/node_modules/typedarray/package.json
+++ b/tools/eslint/node_modules/typedarray/package.json
@@ -2,18 +2,18 @@
"_args": [
[
{
- "raw": "typedarray@~0.0.5",
+ "raw": "typedarray@^0.0.6",
"scope": null,
"escapedName": "typedarray",
"name": "typedarray",
- "rawSpec": "~0.0.5",
- "spec": ">=0.0.5 <0.1.0",
+ "rawSpec": "^0.0.6",
+ "spec": ">=0.0.6 <0.0.7",
"type": "range"
},
"/Users/trott/io.js/tools/node_modules/concat-stream"
]
],
- "_from": "typedarray@>=0.0.5 <0.1.0",
+ "_from": "typedarray@>=0.0.6 <0.0.7",
"_id": "typedarray@0.0.6",
"_inCache": true,
"_location": "/typedarray",
@@ -24,12 +24,12 @@
"_npmVersion": "1.4.3",
"_phantomChildren": {},
"_requested": {
- "raw": "typedarray@~0.0.5",
+ "raw": "typedarray@^0.0.6",
"scope": null,
"escapedName": "typedarray",
"name": "typedarray",
- "rawSpec": "~0.0.5",
- "spec": ">=0.0.5 <0.1.0",
+ "rawSpec": "^0.0.6",
+ "spec": ">=0.0.6 <0.0.7",
"type": "range"
},
"_requiredBy": [
@@ -38,7 +38,7 @@
"_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777",
"_shrinkwrap": null,
- "_spec": "typedarray@~0.0.5",
+ "_spec": "typedarray@^0.0.6",
"_where": "/Users/trott/io.js/tools/node_modules/concat-stream",
"author": {
"name": "James Halliday",
diff --git a/tools/eslint/package.json b/tools/eslint/package.json
index f0155d8933..d6c8d488cb 100644
--- a/tools/eslint/package.json
+++ b/tools/eslint/package.json
@@ -2,25 +2,25 @@
"_args": [
[
{
- "raw": "eslint",
+ "raw": "eslint@3.13.0",
"scope": null,
"escapedName": "eslint",
"name": "eslint",
- "rawSpec": "",
- "spec": "latest",
- "type": "tag"
+ "rawSpec": "3.13.0",
+ "spec": "3.13.0",
+ "type": "version"
},
"/Users/trott/io.js/tools"
]
],
- "_from": "eslint@latest",
- "_id": "eslint@3.8.0",
+ "_from": "eslint@3.13.0",
+ "_id": "eslint@3.13.0",
"_inCache": true,
"_location": "/eslint",
"_nodeVersion": "4.4.7",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/eslint-3.8.0.tgz_1476481030547_0.1366094599943608"
+ "tmp": "tmp/eslint-3.13.0.tgz_1483735229408_0.023912116652354598"
},
"_npmUser": {
"name": "eslint",
@@ -29,21 +29,21 @@
"_npmVersion": "2.15.8",
"_phantomChildren": {},
"_requested": {
- "raw": "eslint",
+ "raw": "eslint@3.13.0",
"scope": null,
"escapedName": "eslint",
"name": "eslint",
- "rawSpec": "",
- "spec": "latest",
- "type": "tag"
+ "rawSpec": "3.13.0",
+ "spec": "3.13.0",
+ "type": "version"
},
"_requiredBy": [
"#USER"
],
- "_resolved": "https://registry.npmjs.org/eslint/-/eslint-3.8.0.tgz",
- "_shasum": "4fbbf6833d66654860c23a099c47a0f086de34b7",
+ "_resolved": "https://registry.npmjs.org/eslint/-/eslint-3.13.0.tgz",
+ "_shasum": "636925fd163c9babe2e8be7ae43caf518d469577",
"_shrinkwrap": null,
- "_spec": "eslint",
+ "_spec": "eslint@3.13.0",
"_where": "/Users/trott/io.js/tools",
"author": {
"name": "Nicholas C. Zakas",
@@ -56,6 +56,7 @@
"url": "https://github.com/eslint/eslint/issues/"
},
"dependencies": {
+ "babel-code-frame": "^6.16.0",
"chalk": "^1.1.3",
"concat-stream": "^1.4.6",
"debug": "^2.1.1",
@@ -66,8 +67,8 @@
"esutils": "^2.0.2",
"file-entry-cache": "^2.0.0",
"glob": "^7.0.3",
- "globals": "^9.2.0",
- "ignore": "^3.1.5",
+ "globals": "^9.14.0",
+ "ignore": "^3.2.0",
"imurmurhash": "^0.1.4",
"inquirer": "^0.12.0",
"is-my-json-valid": "^2.10.0",
@@ -83,9 +84,9 @@
"pluralize": "^1.2.1",
"progress": "^1.1.8",
"require-uncached": "^1.0.2",
- "shelljs": "^0.6.0",
+ "shelljs": "^0.7.5",
"strip-bom": "^3.0.0",
- "strip-json-comments": "~1.0.1",
+ "strip-json-comments": "~2.0.1",
"table": "^3.7.8",
"text-table": "~0.2.0",
"user-home": "^2.0.0"
@@ -118,9 +119,9 @@
"leche": "^2.1.1",
"linefix": "^0.1.1",
"load-perf": "^0.2.0",
- "markdownlint": "^0.2.0",
+ "markdownlint": "^0.3.1",
"mocha": "^2.4.5",
- "mock-fs": "^3.10.0",
+ "mock-fs": "^3.12.1",
"npm-license": "^0.3.2",
"phantomjs-prebuilt": "^2.1.7",
"proxyquire": "^1.7.10",
@@ -132,8 +133,8 @@
},
"directories": {},
"dist": {
- "shasum": "4fbbf6833d66654860c23a099c47a0f086de34b7",
- "tarball": "https://registry.npmjs.org/eslint/-/eslint-3.8.0.tgz"
+ "shasum": "636925fd163c9babe2e8be7ae43caf518d469577",
+ "tarball": "https://registry.npmjs.org/eslint/-/eslint-3.13.0.tgz"
},
"engines": {
"node": ">=4"
@@ -146,7 +147,7 @@
"lib",
"messages"
],
- "gitHead": "82220042725dd0e86b5ddbeac4166e1eb147aa04",
+ "gitHead": "8571ab82af1d86bf4aa6a9be79ece42493607c69",
"homepage": "http://eslint.org",
"keywords": [
"ast",
@@ -193,5 +194,5 @@
"release": "node Makefile.js release",
"test": "node Makefile.js test"
},
- "version": "3.8.0"
+ "version": "3.13.0"
}